diff --git a/package.json b/package.json index fb19169..3923753 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "marco", - "version": "1.33.1", + "version": "1.34.0", "private": true, "description": "Unhosted maps app", "repository": { diff --git a/release/assets/main-CdHYOqFD.js b/release/assets/main-B66TikLz.js similarity index 56% rename from release/assets/main-CdHYOqFD.js rename to release/assets/main-B66TikLz.js index 0d32a0d..ae8730b 100644 --- a/release/assets/main-CdHYOqFD.js +++ b/release/assets/main-B66TikLz.js @@ -1 +1 @@ -var t=Object.create,e=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,o=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),a=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:"Module"}),r},l=(t,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(var l,c=r(i),u=0,h=c.length;ui[t]).bind(null,l),enumerable:!(a=n(i,l))||a.enumerable});return t},c=(n,r,o)=>(o=null!=n?t(i(n)):{},l(!r&&n&&n.__esModule&&s.call(n,"default")?o:e(o,"default",{value:n,enumerable:!0}),n)),u=(t=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(t,{get:(t,e)=>("undefined"!=typeof require?require:t)[e]}):t)(function(t){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Calling `require` for "'+t+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});!function(){const t=document.createElement("link").relList;if(!(t&&t.supports&&t.supports("modulepreload"))){for(const t of document.querySelectorAll('link[rel="modulepreload"]'))e(t);new MutationObserver(t=>{for(const n of t)if("childList"===n.type)for(const t of n.addedNodes)"LINK"===t.tagName&&"modulepreload"===t.rel&&e(t)}).observe(document,{childList:!0,subtree:!0})}function e(t){if(t.ep)return;t.ep=!0;const e=function(t){const e={};return t.integrity&&(e.integrity=t.integrity),t.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),"use-credentials"===t.crossOrigin?e.credentials="include":"anonymous"===t.crossOrigin?e.credentials="omit":e.credentials="same-origin",e}(t);fetch(t.href,e)}}();var h,d=Object.prototype,p=Symbol("undefined"),f=function(t){return t[t.ADD=0]="ADD",t[t.ONCE=1]="ONCE",t[t.REMOVE=2]="REMOVE",t}(f||{}),g=1,m=class{_descriptors;_mixins;_isInit;_lazyChains;_values;_revisions;source;proto;_parent;_listeners;_listenersVersion=1;_inheritedEnd=-1;_flattenedVersion=0;constructor(t){this._parent=void 0,this._descriptors=void 0,this._mixins=void 0,this._lazyChains=void 0,this._values=void 0,this._revisions=void 0,this._isInit=!1,this.source=t,this.proto=void 0===t.constructor?void 0:t.constructor.prototype,this._listeners=void 0}get parent(){let t=this._parent;if(void 0===t){let e=y(this.source);this._parent=t=null===e||e===d?null:_(e)}return t}setInitializing(){this._isInit=!0}unsetInitializing(){this._isInit=!1}isInitializing(){return this._isInit}isPrototypeMeta(t){return this.proto===this.source&&this.source===t}_getOrCreateOwnMap(t){return this[t]||(this[t]=Object.create(null))}_getOrCreateOwnSet(t){return this[t]||(this[t]=new Set)}_findInheritedMap(t,e){let n=this;for(;null!==n;){let r=n[t];if(void 0!==r){let t=r.get(e);if(void 0!==t)return t}n=n.parent}}_hasInInheritedSet(t,e){let n=this;for(;null!==n;){let r=n[t];if(void 0!==r&&r.has(e))return!0;n=n.parent}return!1}valueFor(t){let e=this._values;return void 0!==e?e[t]:void 0}setValueFor(t,e){this._getOrCreateOwnMap("_values")[t]=e}revisionFor(t){let e=this._revisions;return void 0!==e?e[t]:void 0}setRevisionFor(t,e){this._getOrCreateOwnMap("_revisions")[t]=e}writableLazyChainsFor(t){let e=this._getOrCreateOwnMap("_lazyChains"),n=e[t];return void 0===n&&(n=e[t]=[]),n}readableLazyChainsFor(t){let e=this._lazyChains;if(void 0!==e)return e[t]}addMixin(t){this._getOrCreateOwnSet("_mixins").add(t)}hasMixin(t){return this._hasInInheritedSet("_mixins",t)}forEachMixins(t){let e,n=this;for(;null!==n;){let r=n._mixins;void 0!==r&&(e=void 0===e?new Set:e,r.forEach(n=>{e.has(n)||(e.add(n),t(n))})),n=n.parent}}writeDescriptors(t,e){(this._descriptors||(this._descriptors=new Map)).set(t,e)}peekDescriptors(t){let e=this._findInheritedMap("_descriptors",t);return e===p?void 0:e}removeDescriptors(t){this.writeDescriptors(t,p)}forEachDescriptors(t){let e,n=this;for(;null!==n;){let r=n._descriptors;void 0!==r&&(e=void 0===e?new Set:e,r.forEach((n,r)=>{e.has(r)||(e.add(r),n!==p&&t(r,n))})),n=n.parent}}addToListeners(t,e,n,r,i){this.pushListener(t,e,n,r?f.ONCE:f.ADD,i)}removeFromListeners(t,e,n){this.pushListener(t,e,n,f.REMOVE)}pushListener(t,e,n,r,i=!1){let s=this.writableListeners(),o=x(s,t,e,n);if(-1!==o&&o0&&(t.splice(0,this._inheritedEnd),this._inheritedEnd=0);for(let n of e)-1===x(t,n.event,n.target,n.method)&&(t.unshift(n),this._inheritedEnd++)}}this._flattenedVersion=g}return this._listeners}matchingListeners(t){let e,n=this.flattenedListeners();if(void 0!==n)for(let r of n)r.event!==t||r.kind!==f.ADD&&r.kind!==f.ONCE||(void 0===e&&(e=[]),e.push(r.target,r.method,r.kind===f.ONCE));return e}observerEvents(){let t,e=this.flattenedListeners();if(void 0!==e)for(let n of e)n.kind!==f.ADD&&n.kind!==f.ONCE||-1===n.event.indexOf(":change")||(void 0===t&&(t=[]),t.push(n));return t}},y=Object.getPrototypeOf,v=new WeakMap;function b(t,e){v.set(t,e)}function w(t){let e=v.get(t);if(void 0!==e)return e;let n=y(t);for(;null!==n;){if(e=v.get(n),void 0!==e)return e.proto!==n&&(e.proto=n),e;n=y(n)}return null}var _=function(t){let e=w(t);if(null!==e&&e.source===t)return e;let n=new m(t);return b(t,n),n};function x(t,e,n,r){for(let i=t.length-1;i>=0;i--){let s=t[i];if(s.event===e&&s.target===n&&s.method===r)return i}return-1}function C(t){let[e,n,r]=t;return 3===t.length&&("function"==typeof e||"object"==typeof e&&null!==e)&&"string"==typeof n&&("object"==typeof r&&null!==r||void 0===r)}function k(t){let e=function(){return t};return O(e),e}var S=class{enumerable=!0;configurable=!0;_dependentKeys=void 0;_meta=void 0;setup(t,e,n,r){r.writeDescriptors(e,this)}teardown(t,e,n){n.removeDescriptors(e)}};function E(t,e){return function(){return e.get(this,t)}}function R(t,e){let n=function(n){return e.set(this,t,n)};return L.add(n),n}var L=new WeakSet;function T(t,e){let n=function(e,n,r,i){let s=3===arguments.length?_(e):i;return t.setup(e,n,r,s),{enumerable:t.enumerable,configurable:t.configurable,get:E(n,t),set:R(n,t)}};return O(n,t),Object.setPrototypeOf(n,e.prototype),n}var P=new WeakMap;function I(t,e,n){let r=void 0===n?w(t):n;if(null!==r)return r.peekDescriptors(e)}function M(t){return P.get(t)}function A(t){return"function"==typeof t&&P.has(t)}function O(t,e=!0){P.set(t,e)}var N={ENABLE_OPTIONAL_FEATURES:!1,EXTEND_PROTOTYPES:{Array:!1},LOG_STACKTRACE_ON_DEPRECATION:!0,LOG_VERSION:!0,LOG_INSPECTOR_HINT:!0,RAISE_ON_DEPRECATION:!1,STRUCTURED_PROFILE:!1,_DEBUG_RENDER_TREE:!1,_ALL_DEPRECATIONS_ENABLED:!1,_OVERRIDE_DEPRECATION_VERSION:null,_DEFAULT_ASYNC_OBSERVERS:!1,_RERENDER_LOOP_LIMIT:1e3,FEATURES:{}},z=globalThis.EmberENV;if("object"==typeof z&&null!==z){for(let e in z){if(!Object.prototype.hasOwnProperty.call(z,e)||"EXTEND_PROTOTYPES"===e||"EMBER_LOAD_HOOKS"===e)continue;let t=N[e];N[e]=!0===t?!1!==z[e]:!1===t?!0===z[e]:z[e]}let{FEATURES:t}=z;if("object"==typeof t&&null!==t)for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(N.FEATURES[e]=!0===t[e])}function F(){return N}var D,j,U,B,$,q,V,W,H=()=>{},G=new WeakMap,Z=Symbol("BrandedArray");function K(t){return Array.isArray(t)&&Z in t}function Y(t,e){if(null===t)return e;if(K(t))return t.push(e),t;{const n=[t,e];return n[Z]=!0,n}}function X(t,e){K(t)?t.forEach(e):null!==t&&e(t)}function J(t,e){if(K(t)&&t.length>1){let n=t.indexOf(e),r=t.length-1;return n!==r&&(t[n]=t[r]),t.length=r,t}return null}function Q(t){let e=G.get(t);return void 0===e&&(e={parents:null,children:null,eagerDestructors:null,destructors:null,state:0},G.set(t,e)),e}function tt(t,e){let n=Q(t),r=Q(e);return n.children=Y(n.children,e),r.parents=Y(r.parents,t),e}function et(t,e,n=!1){let r=Q(t),i=n?"eagerDestructors":"destructors";return r[i]=Y(r[i],e),e}function nt(t){let e=Q(t);if(e.state>=1)return;let{parents:n,children:r,eagerDestructors:i,destructors:s}=e;e.state=1,X(r,nt),X(i,e=>{e(t)}),X(s,e=>{D(t,e)}),j(()=>{X(n,e=>{!function(t,e){let n=Q(e);2!==n.state&&(n.children=J(n.children,t))}(t,e)}),e.state=2})}function rt(t){let e=G.get(t);return void 0!==e&&null!==e.children}function it(t){let e=G.get(t);return void 0!==e&&e.state>=1}function st(t){let e=G.get(t);return void 0!==e&&e.state>=2}var ot=1;function at(){ot++}var lt=Symbol("TAG_COMPUTE");function ct(t){return t[lt]()}function ut(t,e){return e>=t[lt]()}var ht=Symbol("TAG_TYPE"),dt=class t{static combine(e){switch(e.length){case 0:return yt;case 1:return e[0];default:{let n=new t(2);return n.subtag=e,n}}}revision=1;lastChecked=1;lastValue=1;isUpdating=!1;subtag=null;subtagBufferCache=null;constructor(t){this[ht]=t}[lt](){let{lastChecked:t}=this;if(this.isUpdating)this.lastChecked=++ot;else if(t!==ot){this.isUpdating=!0,this.lastChecked=ot;try{let{subtag:t,revision:e}=this;if(null!==t)if(Array.isArray(t))for(const n of t){let t=n[lt]();e=Math.max(t,e)}else{let n=t[lt]();n===this.subtagBufferCache?e=Math.max(e,this.lastValue):(this.subtagBufferCache=null,e=Math.max(e,n))}this.lastValue=e}finally{this.isUpdating=!1}}return this.lastValue}static updateTag(t,e){let n=t,r=e;r===yt?n.subtag=null:(n.subtagBufferCache=r[lt](),n.subtag=r)}static dirtyTag(t,e){t.revision=++ot,H()}},pt=dt.dirtyTag,ft=dt.updateTag;function gt(){return new dt(0)}function mt(){return new dt(1)}var yt=new dt(3);function vt(t){return t===yt}var bt=class{[ht]=100;[lt](){return NaN}},wt=new bt,_t=class{[ht]=101;[lt](){return ot}},xt=new _t,Ct=dt.combine,kt=mt(),St=mt(),Et=mt();ct(kt),pt(kt),ct(kt),ft(kt,Ct([St,Et])),ct(kt),pt(St),ct(kt),pt(Et),ct(kt),ft(kt,Et),ct(kt),pt(Et),ct(kt);var Rt=class{tags=new Set;last=null;add(t){t!==yt&&(this.tags.add(t),this.last=t)}combine(){let{tags:t}=this;return 0===t.size?yt:1===t.size?this.last:Ct(Array.from(this.tags))}},Lt=null,Tt=[];function Pt(){Tt.push(Lt),Lt=new Rt}function It(){let t=Lt;return Lt=Tt.pop()||null,function(t){if(null==t)throw new Error("Expected value to be present");return t}(t).combine()}function Mt(){Tt.push(Lt),Lt=null}function At(){Lt=Tt.pop()||null}function Ot(){for(;Tt.length>0;)Tt.pop();Lt=null}function Nt(){return null!==Lt}function zt(t){null!==Lt&&Lt.add(t)}var Ft=Symbol("FN"),Dt=Symbol("LAST_VALUE"),jt=Symbol("TAG"),Ut=Symbol("SNAPSHOT");function Bt(t){return{[Ft]:t,[Dt]:void 0,[jt]:void 0,[Ut]:-1}}function $t(t){let e=t[Ft],n=t[jt],r=t[Ut];if(void 0!==n&&ut(n,r))zt(n);else{Pt();try{t[Dt]=e()}finally{n=It(),t[jt]=n,t[Ut]=ct(n),zt(n)}}return t[Dt]}function qt(t){return vt(t[jt])}function Vt(t){let e;Pt();try{t()}finally{e=It()}return e}function Wt(t){Mt();try{return t()}finally{At()}}var Ht=new WeakMap;function Gt(t,e,n){let r=void 0===n?Ht.get(t):n;if(void 0===r)return;let i=r.get(e);void 0!==i&&pt(i,!0)}function Zt(t){let e=Ht.get(t);return void 0===e&&(e=new Map,Ht.set(t,e)),e}function Kt(t,e,n){let r=void 0===n?Zt(t):n,i=r.get(e);return void 0===i&&(i=mt(),r.set(e,i)),i}function Yt(t){return null!==t&&("object"==typeof t||"function"==typeof t)}function Xt(t){return t}function Jt(t){return t}function Qt(t){return!!t&&t.length>0}function te(t){return 0===t.length?void 0:t[t.length-1]}function ee(t){return 0===t.length?void 0:t[0]}function ne(){return Object.create(null)}function re(t){return null!=t}function ie(t){return"function"==typeof t||"object"==typeof t&&null!==t}var se=class{stack;current=null;constructor(t=[]){this.stack=t}get size(){return this.stack.length}push(t){this.current=t,this.stack.push(t)}pop(){let t=this.stack.pop();return this.current=te(this.stack)??null,void 0===t?null:t}nth(t){let e=this.stack.length;return e_e(t),null,t.debugLabel):t}function ye(t){return 3===t[oe]}function ve(t){const e=ge(()=>_e(t),e=>xe(t,e));return e.debugLabel=t.debugLabel,e[oe]=3,e}function be(t){return t.tag===yt}function we(t){return null!==t.update}function _e(t){const e=t;let{tag:n}=e;if(n===yt)return e.lastValue;const{lastRevision:r}=e;let i;if(null!==n&&ut(n,r))i=e.lastValue;else{const{compute:t}=e,r=Vt(()=>{i=e.lastValue=t()});n=e.tag=r,e.lastRevision=ct(r)}return zt(n),i}function xe(t,e){(0,t.update)(e)}function Ce(t,e){const n=t,r=n[oe];let i,s=n.children;if(null===s)s=n.children=new Map;else{const t=s.get(e);if(t)return t}if(2===r){const t=_e(n);i=re(t)?fe(t[e]):ce}else i=ge(()=>{const t=_e(n);if(re(t))return $(t,e)},t=>{const r=_e(n);if(re(r))return q(r,e,t)});return s.set(e,i),i}function ke(t,e){let n=t;for(const r of e)n=Ce(n,r);return n}var Se=new WeakMap;function Ee(t){return Se.get(t)}function Re(t,e){Se.set(t,e)}function Le(t){if("symbol"==typeof t)return null;const e=Number(t);return isNaN(e)?null:e%1==0?e:null}var Te=class{constructor(t){this.named=t}get(t,e){const n=this.named[e];if(void 0!==n)return _e(n)}has(t,e){return e in this.named}ownKeys(){return Object.keys(this.named)}isExtensible(){return!1}getOwnPropertyDescriptor(t,e){return{enumerable:!0,configurable:!0}}},Pe=class{constructor(t){this.positional=t}get(t,e){let{positional:n}=this;if("length"===e)return n.length;const r=Le(e);return null!==r&&r>=0&&r=0&&n{const{named:e,positional:n}=t,r=new Te(e),i=new Pe(n),s=Object.create(null),o=new Proxy(s,r),a=new Proxy([],i);return Re(o,(t,n)=>function(t,e){return Vt(()=>{e in t&&_e(t[e])})}(e,n)),Re(a,(t,e)=>function(t,e){return Vt(()=>{"[]"===e&&t.forEach(_e);const n=Le(e);null!==n&&n>=0&&n-1?function(t){return $e.test(qe.call(t))}:function(){return!0},We=new WeakMap,He=Object.freeze(function(){});function Ge(t){let e=We.get(t);return void 0===e&&(e=Ve(t),We.set(t,e)),e}We.set(He,!1);var Ze=class{listeners=void 0;observers=void 0},Ke=new WeakMap;function Ye(t){let e=Ke.get(t);return void 0===e&&(e=new Ze,Ke.set(t,e)),e}function Xe(t){return Ke.get(t)}function Je(t,e){Ye(t).observers=e}function Qe(t,e){Ye(t).listeners=e}var tn=new WeakSet;function en(t,e){return Ge(t)?!tn.has(e)&&Ge(e)?nn(t,nn(e,He)):nn(t,e):t}function nn(t,e){function n(){let n=this._super;this._super=e;let r=t.apply(this,arguments);return this._super=n,r}tn.add(n);let r=Ke.get(t);return void 0!==r&&Ke.set(n,r),n}function rn(t,e,n,r,i,s=!0){r||"function"!=typeof n||(r=n,n=null),_(t).addToListeners(e,n,r,!0===i,s)}function sn(t,e,n,r){let i,s;"object"==typeof n?(i=n,s=r):(i=null,s=n),_(t).removeFromListeners(e,i,s)}function on(t,e,n,r,i){if(void 0===r){let n=void 0===i?w(t):i;r=null!==n?n.matchingListeners(e):void 0}if(void 0===r||0===r.length)return!1;for(let s=r.length-3;s>=0;s-=3){let i=r[s],o=r[s+1],a=r[s+2];if(!o)continue;a&&sn(t,e,i,o),i||(i=t);let l=typeof o;"string"!==l&&"symbol"!==l||(o=i[o]),o.apply(i,n)}return!0}function an(t,e){let n=w(t);if(null===n)return!1;let r=n.matchingListeners(e);return void 0!==r&&r.length>0}function ln(...t){let e=t.pop();return Qe(e,t),e}function cn(t){return t+":change"}var un=!N._DEFAULT_ASYNC_OBSERVERS,hn=new Map,dn=new Map;function pn(t,e,n,r,i=un){let s=cn(e);rn(t,s,n,r,!1,i);let o=w(t);null!==o&&(o.isPrototypeMeta(t)||o.isInitializing())||gn(t,s,i)}function fn(t,e,n,r,i=un){let s=cn(e),o=w(t);null!==o&&(o.isPrototypeMeta(t)||o.isInitializing())||vn(t,s,i),sn(t,s,n,r)}function gn(t,e,n=!1){let r=function(t,e){let n=!0===e?hn:dn;return n.has(t)||(n.set(t,new Map),et(t,()=>function(t){hn.size>0&&hn.delete(t),dn.size>0&&dn.delete(t)}(t),!0)),n.get(t)}(t,n);if(r.has(e))r.get(e).count++;else{let n=e.substring(0,e.lastIndexOf(":")),i=Ue(t,n,Zt(t),w(t));r.set(e,{count:1,path:n,tag:i,lastRevision:ct(i),suspended:!1})}}var mn=!1,yn=[];function vn(t,e,n=!1){if(!0===mn)return void yn.push([t,e,n]);let r=!0===n?hn:dn,i=r.get(t);if(void 0!==i){let n=i.get(e);n.count--,0===n.count&&(i.delete(e),0===i.size&&r.delete(t))}}function bn(t){dn.has(t)&&dn.get(t).forEach(e=>{e.tag=Ue(t,e.path,Zt(t),w(t)),e.lastRevision=ct(e.tag)}),hn.has(t)&&hn.get(t).forEach(e=>{e.tag=Ue(t,e.path,Zt(t),w(t)),e.lastRevision=ct(e.tag)})}var wn=0;function _n(t){let e=ct(xt);wn!==e&&(wn=e,dn.forEach((e,n)=>{let r=w(n);e.forEach((e,i)=>{if(!ut(e.tag,e.lastRevision)){let s=()=>{try{on(n,i,[n,e.path],void 0,r)}finally{e.tag=Ue(n,e.path,Zt(n),w(n)),e.lastRevision=ct(e.tag)}};t?t("actions",s):s()}})}))}function xn(){hn.forEach((t,e)=>{let n=w(e);t.forEach((t,r)=>{if(!t.suspended&&!ut(t.tag,t.lastRevision))try{t.suspended=!0,on(e,r,[e,t.path],void 0,n)}finally{t.tag=Ue(e,t.path,Zt(e),w(e)),t.lastRevision=ct(t.tag),t.suspended=!1}})})}function Cn(t,e,n){let r=hn.get(t);if(!r)return;let i=r.get(cn(e));i&&(i.suspended=n)}var kn=()=>{},{toString:Sn}=Object.prototype,{toString:En}=Function.prototype,{isArray:Rn}=Array,{keys:Ln}=Object,{stringify:Tn}=JSON,Pn=100,In=/^[\w$]+$/;function Mn(t){return"number"==typeof t&&2===arguments.length?this:An(t,0)}function An(t,e,n){let r=!1;switch(typeof t){case"undefined":return"undefined";case"object":if(null===t)return"null";if(Rn(t)){r=!0;break}if(t.toString===Sn||void 0===t.toString)break;return t.toString();case"function":return t.toString===En?t.name?`[Function:${t.name}]`:"[Function]":t.toString();case"string":return Tn(t);default:return t.toString()}if(void 0===n)n=new WeakSet;else if(n.has(t))return"[Circular]";return n.add(t),r?function(t,e,n){if(e>4)return"[Array]";let r="[";for(let i=0;i=Pn){r+=`... ${t.length-Pn} more items`;break}r+=An(t[i],e,n)}return r+=" ]",r}(t,e+1,n):function(t,e,n){if(e>4)return"[Object]";let r="{",i=Ln(t);for(let s=0;s=Pn){r+=`... ${i.length-Pn} more keys`;break}let o=i[s];kn(),r+=`${On(String(o))}: ${An(t[o],e,n)}`}return r+=" }",r}(t,e+1,n)}function On(t){return In.test(t)?t:Tn(t)}var Nn=/\.@each$/;function zn(t,e){let n=t.indexOf("{");n<0?e(t.replace(Nn,".[]")):Fn("",t,n,e)}function Fn(t,e,n,r){let i,s,o=e.indexOf("}"),a=0,l=e.substring(n+1,o).split(","),c=e.substring(o+1);for(t+=e.substring(0,n),s=l.length;a0&&this._property(...t)}setup(t,e,n,r){if(super.setup(t,e,n,r),!1===this._hasConfig){let{get:t,set:e}=n;void 0!==t&&(this._getter=t),void 0!==e&&(this._setter=function(n,r){let i=e.call(this,r);return void 0!==t&&void 0===i?t.call(this):i})}}_property(...t){let e=[];function n(t){e.push(t)}for(let r of t)zn(r,n);this._dependentKeys=e}get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i),o=r.revisionFor(e);if(void 0!==o&&ut(s,o))n=r.valueFor(e);else{let{_getter:o,_dependentKeys:a}=this;Wt(()=>{n=o.call(t,e)}),void 0!==a&&ft(s,je(t,a,i,r)),r.setValueFor(e,n),r.setRevisionFor(e,ct(s)),De(r,e,n)}return zt(s),Array.isArray(n)&&zt(Kt(n,"[]")),n}set(t,e,n){this._readOnly&&this._throwReadOnlyError(t,e);let r,i=_(t);i.isInitializing()&&void 0!==this._dependentKeys&&this._dependentKeys.length>0&&"function"==typeof t[Bn]&&t.isComponent&&pn(t,e,()=>{t[Bn](e)},void 0,!0);try{Vn(),r=this._set(t,e,n,i),De(i,e,r);let s=Zt(t),o=Kt(t,e,s),{_dependentKeys:a}=this;void 0!==a&&ft(o,je(t,a,s,i)),i.setRevisionFor(e,ct(o))}finally{Wn()}return r}_throwReadOnlyError(t,e){throw new Error(`Cannot set read-only property "${e}" on object: ${Mn(t)}`)}_set(t,e,n,r){let i,s=void 0!==r.revisionFor(e),o=r.valueFor(e),{_setter:a}=this;Cn(t,e,!0);try{i=a.call(t,e,n,o)}finally{Cn(t,e,!1)}return s&&o===i||(r.setValueFor(e,i),qn(t,e,r,n)),i}teardown(t,e,n){void 0!==n.revisionFor(e)&&(n.setRevisionFor(e,void 0),n.setValueFor(e,void 0)),super.teardown(t,e,n)}},Kn=class extends Zn{get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i),o=r.revisionFor(e);if(void 0!==o&&ut(s,o))n=r.valueFor(e);else{let{_getter:i}=this,o=Vt(()=>{n=i.call(t,e)});ft(s,o),r.setValueFor(e,n),r.setRevisionFor(e,ct(s)),De(r,e,n)}return zt(s),Array.isArray(n)&&zt(Kt(n,"[]",i)),n}},Yn=class extends Function{readOnly(){return M(this)._readOnly=!0,this}meta(t){let e=M(this);return 0===arguments.length?e._meta||{}:(e._meta=t,this)}get _getter(){return M(this)._getter}set enumerable(t){M(this).enumerable=t}};function Xn(...t){return C(t)?T(new Zn([]),Yn)(t[0],t[1],t[2]):T(new Zn(t),Yn)}function Jn(...t){return T(new Kn(t),Yn)}function Qn(t,e){return Boolean(I(t,e))}function tr(t,e){let n=w(t);return n?n.valueFor(e):void 0}var er=new WeakSet;function nr(t){return!!Yt(t)&&er.has(t)}function rr(t){Yt(t)&&er.add(t)}var ir=new WeakSet;function sr(t){return ir.has(t)}var or=class{size=0;misses=0;hits=0;constructor(t,e,n=new Map){this.limit=t,this.func=e,this.store=n}get(t){return this.store.has(t)?(this.hits++,this.store.get(t)):(this.misses++,this.set(t,this.func(t)))}set(t,e){return this.limit>this.size&&(this.size++,this.store.set(t,e)),e}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},ar=new or(1e3,t=>t.indexOf("."));function lr(t){return"string"==typeof t&&-1!==ar.get(t)}var cr=Symbol("PROXY_CONTENT");function ur(t){return"object"==typeof t&&null!==t&&"function"==typeof t.unknownProperty}function hr(t,e){return lr(e)?pr(t,e):dr(t,e)}function dr(t,e){if(null==t)return;let n;return"object"==typeof t||"function"==typeof t?(n=t[e],void 0===n&&"object"==typeof t&&!(e in t)&&ur(t)&&(n=t.unknownProperty(e)),Nt()&&(zt(Kt(t,e)),(Array.isArray(n)||sr(n))&&zt(Kt(n,"[]")))):n=t[e],n}function pr(t,e,n){let r="string"==typeof e?e.split("."):e;for(let i of r){if(null==t||t.isDestroyed)return;if(n&&("__proto__"===i||"constructor"===i))return;t=dr(t,i)}return t}dr("foo","a"),dr("foo",1),dr({},"a"),dr({},1),dr({unknownProperty(){}},"a"),dr({unknownProperty(){}},1),hr({},"foo"),hr({},"foo.bar");var fr={};function gr(t,e){let n=t;do{let t=Object.getOwnPropertyDescriptor(n,e);if(void 0!==t)return t;n=Object.getPrototypeOf(n)}while(null!==n);return null}function mr(t,e,n,r){return t.isDestroyed?n:lr(e)?function(t,e,n,r){let i=e.split("."),s=i.pop(),o=pr(t,i,!0);if(null!=o)return mr(o,s,n);if(!r)throw new Error(`Property set failed: object in path "${i.join(".")}" could not be found.`)}(t,e,n,r):yr(t,e,n)}function yr(t,e,n){let r,i=gr(t,e);return null!==i&&L.has(i.set)?(t[e]=n,n):(r=t[e],void 0!==r||"object"!=typeof t||e in t||"function"!=typeof t.setUnknownProperty?(t[e]=n,r!==n&&qn(t,e)):t.setUnknownProperty(e,n),n)}function vr(t,e,n){return mr(t,e,n,!0)}function br(t){return T(new _r(t),wr)}rr(fr),Vt(()=>dr({},"a")),Vt(()=>dr({},1)),Vt(()=>dr({a:[]},"a")),Vt(()=>dr({a:fr},"a"));var wr=class extends Function{readOnly(){return M(this).readOnly(),this}oneWay(){return M(this).oneWay(),this}meta(t){let e=M(this);if(0===arguments.length)return e._meta||{};e._meta=t}},_r=class extends S{altKey;constructor(t){super(),this.altKey=t}setup(t,e,n,r){super.setup(t,e,n,r),Fe.add(this)}get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i);Wt(()=>{n=hr(t,this.altKey)});let o=r.revisionFor(e);return void 0!==o&&ut(s,o)||(ft(s,Ue(t,this.altKey,i,r)),r.setRevisionFor(e,ct(s)),De(r,e,n)),zt(s),n}set(t,e,n){return mr(t,this.altKey,n)}readOnly(){this.set=xr}oneWay(){this.set=Cr}};function xr(t,e){throw new Error(`Cannot set read-only property '${e}' on object: ${Mn(t)}`)}function Cr(t,e,n){return Dn(t,e,null),mr(t,e,n)}function kr(t,e,n,r){return void 0===e?(e=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),on(t,"@array:before",[t,e,n,r]),t}function Sr(t,e,n,r,i=!0){void 0===e?(e=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1));let s=w(t);if(i&&((r<0||n<0||r-n!==0)&&qn(t,"length",s),qn(t,"[]",s)),on(t,"@array:change",[t,e,n,r]),null!==s){let i=-1===n?0:n,o=t.length-((-1===r?0:r)-i),a=e<0?o+e:e;void 0!==s.revisionFor("firstObject")&&0===a&&qn(t,"firstObject",s),void 0!==s.revisionFor("lastObject")&&o-1Or}),Or="7.2.0",Nr=class{_registry;_coreLibIndex;constructor(){this._registry=[],this._coreLibIndex=0}_getLibraryByName(t){let e=this._registry;for(let n of e)if(n.name===t)return n}register(t,e,n){let r=this._registry.length;this._getLibraryByName(t)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:t,version:e}))}registerCoreLibrary(t,e){this.register(t,e,!0)}deRegister(t){let e,n=this._getLibraryByName(t);n&&(e=this._registry.indexOf(n),this._registry.splice(e,1))}},zr=new Nr;function Fr(t,e){let n,r={},i=1;for(2===arguments.length&&Array.isArray(e)?(i=0,n=arguments[1]):n=Array.from(arguments);i{let n=Object.keys(e);for(let r of n)mr(t,r,e[r])}),e}zr.registerCoreLibrary("Ember",Or);var jr=Symbol("OWNER");function Ur(t){return t[jr]}function Br(t){return Ur(t)}function $r(t,e){!function(t,e){t[jr]=e}(t,e)}function qr(t,...e){let n,r;C(e)?n=e:"string"==typeof e[0]&&(r=e[0]);let i=Xn({get:function(e){return(Br(this)||this.container).lookup(`${t}:${r||e}`)},set(t,e){Dn(this,t,null,e)}});return n?i(n[0],n[1],n[2]):i}function Vr(t,e){let n=new WeakMap,r="function"==typeof e;return{getter:function(i){let s;return zt(Kt(i,t)),r&&!n.has(i)?(s=e.call(i),n.set(i,s)):s=n.get(i),s},setter:function(e,r){Gt(e,t),n.set(e,r)}}}function Wr(...t){if(!C(t)){let e=t[0],n=e?e.initializer:void 0,r=e?e.value:void 0,i=function(t,e){return Hr([t,e,{initializer:n||(()=>r)}])};return O(i),i}return Hr(t)}function Hr([t,e,n]){let{getter:r,setter:i}=Vr(e,n?n.initializer:void 0);function s(){let t=r(this);return(Array.isArray(t)||sr(t))&&zt(Kt(t,"[]")),t}function o(t){i(this,t),Gt(this,Ae)}let a={enumerable:!0,configurable:!0,isTracked:!0,get:s,set:o};return L.add(o),_(t).writeDescriptors(e,new Gr(s,o)),a}var Gr=class{constructor(t,e){this._get=t,this._set=e,Fe.add(this)}get(t){return this._get.call(t)}set(t,e,n){this._set.call(t,n)}},Zr=(...t)=>{const[e,n,r]=t,i=new WeakMap,s=r.get;r.get=function(){return i.has(this)||i.set(this,Bt(s.bind(this))),$t(i.get(this))}},Kr=a({ENV:()=>N,context:()=>Jr,getENV:()=>F,getLookup:()=>Qr,setLookup:()=>ti}),Yr=globalThis,Xr=Yr.Ember,Jr=void 0===Xr?{imports:Yr,exports:Yr,lookup:Yr}:{imports:Xr.imports||Yr,exports:Xr.exports||Yr,lookup:Xr.lookup||Yr};function Qr(){return Jr.lookup}function ti(t){Jr.lookup=t}var ei=new WeakMap;function ni(t,e){Yt(t)&&ei.set(t,e)}function ri(t){return ei.get(t)}var ii=Object.prototype.hasOwnProperty,si=!1,oi={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(t){this._set++,this._unprocessedNamespaces=t}},ai=!1,li=[],ci=Object.create(null);function ui(t){oi.unprocessedNamespaces=!0,li.push(t)}function hi(t){let e=ri(t);delete ci[e],li.splice(li.indexOf(t),1),e in Jr.lookup&&t===Jr.lookup[e]&&(Jr.lookup[e]=void 0)}function di(){if(!oi.unprocessedNamespaces)return;let t=Jr.lookup,e=Object.keys(t);for(let n of e){if(!_i(n.charCodeAt(0)))continue;let e=xi(t,n);e&&ni(e,n)}}function pi(t){return si||gi(),ci[t]}function fi(t){bi([t.toString()],t,new Set)}function gi(){let t=oi.unprocessedNamespaces;if(t&&(di(),oi.unprocessedNamespaces=!1),t||ai){let t=li;for(let e of t)fi(e);ai=!1}}function mi(){return si}function yi(t){si=Boolean(t)}function vi(){ai=!0}function bi(t,e,n){let r=t.length,i=t.join(".");ci[i]=e,ni(e,i);for(let s in e){if(!ii.call(e,s))continue;let i=e[s];if(t[r]=s,i&&void 0===ri(i))ni(i,t.join("."));else if(i&&wi(i)){if(n.has(i))continue;n.add(i),bi(t,i,n)}}t.length=r}function wi(t){return null!=t&&"object"==typeof t&&t.isNamespace}function _i(t){return t>=65&&t<=90}function xi(t,e){try{let n=t[e];return(null!==n&&"object"==typeof n||"function"==typeof n)&&n.isNamespace&&n}catch(n){}}var Ci=a({ASYNC_OBSERVERS:()=>dn,ComputedDescriptor:()=>S,ComputedProperty:()=>Zn,DEBUG_INJECTION_FUNCTIONS:()=>{},Libraries:()=>Nr,NAMESPACES:()=>li,NAMESPACES_BY_ID:()=>ci,PROPERTY_DID_CHANGE:()=>Bn,PROXY_CONTENT:()=>cr,SYNC_OBSERVERS:()=>hn,TrackedDescriptor:()=>Gr,_getPath:()=>pr,_getProp:()=>dr,_setProp:()=>yr,activateObserver:()=>gn,addArrayObserver:()=>Ir,addListener:()=>rn,addNamespace:()=>ui,addObserver:()=>pn,alias:()=>br,arrayContentDidChange:()=>Sr,arrayContentWillChange:()=>kr,autoComputed:()=>Jn,beginPropertyChanges:()=>Vn,cached:()=>Zr,changeProperties:()=>Hn,computed:()=>Xn,createCache:()=>Bt,defineDecorator:()=>jn,defineProperty:()=>Dn,defineValue:()=>Un,deprecateProperty:()=>ki,descriptorForDecorator:()=>M,descriptorForProperty:()=>I,eachProxyArrayDidChange:()=>Ri,eachProxyArrayWillChange:()=>Ei,endPropertyChanges:()=>Wn,expandProperties:()=>zn,findNamespace:()=>pi,findNamespaces:()=>di,flushAsyncObservers:()=>_n,get:()=>hr,getCachedValueFor:()=>tr,getProperties:()=>Fr,getValue:()=>$t,hasListeners:()=>an,hasUnknownProperty:()=>ur,inject:()=>qr,isClassicDecorator:()=>A,isComputed:()=>Qn,isConst:()=>qt,isElementDescriptor:()=>C,isNamespaceSearchDisabled:()=>mi,libraries:()=>zr,makeComputedDecorator:()=>T,markObjectAsDirty:()=>ze,nativeDescDecorator:()=>k,notifyPropertyChange:()=>qn,objectAt:()=>Me,on:()=>ln,processAllNamespaces:()=>gi,processNamespace:()=>fi,removeArrayObserver:()=>Mr,removeListener:()=>sn,removeNamespace:()=>hi,removeObserver:()=>fn,replace:()=>Rr,replaceInNativeArray:()=>Tr,revalidateObservers:()=>bn,sendEvent:()=>on,set:()=>mr,setClassicDecorator:()=>O,setNamespaceSearchDisabled:()=>yi,setProperties:()=>Dr,setUnprocessedMixins:()=>vi,tagForObject:()=>Ne,tagForProperty:()=>Oe,tracked:()=>Wr,trySet:()=>vr});function ki(t,e,n){Object.defineProperty(t,e,{configurable:!0,enumerable:!1,set(t){mr(this,n,t)},get(){return hr(this,n)}})}var Si=new WeakMap;function Ei(t,e,n,r){let i=Si.get(t);void 0!==i&&i.arrayWillChange(t,e,n,r)}function Ri(t,e,n,r){let i=Si.get(t);void 0!==i&&i.arrayDidChange(t,e,n,r)}var Li={get onerror(){}},Ti=setTimeout,Pi=()=>{};function Ii(t){if("function"==typeof Promise){const e=Promise.resolve();return()=>e.then(t)}if("function"==typeof MutationObserver){let e=0,n=new MutationObserver(t),r=document.createTextNode("");return n.observe(r,{characterData:!0}),()=>(e=++e%2,r.data=""+e,e)}return()=>Ti(t,0)}function Mi(t){let e=Pi;return{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),now:()=>Date.now(),next:Ii(t),clearNext:e}}var Ai=/\d+/;function Oi(t){let e=typeof t;return"number"===e&&t==t||"string"===e&&Ai.test(t)}function Ni(t){return t.onError||t.onErrorTarget&&t.onErrorTarget[t.onErrorMethod]}function zi(t,e,n){let r=-1;for(let i=0,s=n.length;i=e[n]?i=n+6:s=n;return t>=e[i]?i+6:i}var Ui=class{constructor(t,e={},n={}){this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=t,this.options=e,this.globalOptions=n}stackFor(t){if(t0){let t=Ni(this.globalOptions);s=t?this.invokeWithOnError:this.invoke;for(let o=this.index;o0&&this.flush(!0)}hasWork(){return this._queueBeingFlushed.length>0||this._queue.length>0}cancel({target:t,method:e}){let n=this._queue,r=this.targetQueues.get(t);void 0!==r&&r.delete(e);let i=zi(t,e,n);return i>-1?(n[i+1]=null,!0):(n=this._queueBeingFlushed,i=zi(t,e,n),i>-1&&(n[i+1]=null,!0))}push(t,e,n,r){return this._queue.push(t,e,n,r),{queue:this,target:t,method:e}}pushUnique(t,e,n,r){let i=this.targetQueues.get(t);void 0===i&&(i=new Map,this.targetQueues.set(t,i));let s=i.get(e);if(void 0===s){let s=this._queue.push(t,e,n,r)-4;i.set(e,s)}else{let t=this._queue;t[s+2]=n,t[s+3]=r}return{queue:this,target:t,method:e}}_getDebugInfo(t){if(t)return Di(this._queue,4)}invoke(t,e,n){void 0===n?e.call(t):e.apply(t,n)}invokeWithOnError(t,e,n,r,i){try{void 0===n?e.call(t):e.apply(t,n)}catch(X8){r(X8,i)}}},Bi=class{constructor(t=[],e){this.queues={},this.queueNameIndex=0,this.queueNames=t,t.reduce(function(t,n){return t[n]=new Ui(n,e[n],e),t},this.queues)}schedule(t,e,n,r,i,s){let o=this.queues[t];if(void 0===o)throw new Error(`You attempted to schedule an action in a queue (${t}) that doesn't exist`);if(null==n)throw new Error(`You attempted to schedule an action in a queue (${t}) for a method that doesn't exist`);return this.queueNameIndex=0,i?o.pushUnique(e,n,r,s):o.push(e,n,r,s)}flush(t=!1){let e,n,r=this.queueNames.length;for(;this.queueNameIndexi){let e=r-i;t=new Array(e);for(let n=0;n{hs++,!1!==this._autorun&&(this._autorun=!1,this._autorunStack=null,this._end(!0))};let n=this.options._buildPlatform||Mi;this._platform=n(this._boundAutorunEnd)}get counters(){return{begin:Zi,end:Ki,events:{begin:Yi,end:0},autoruns:{created:us,completed:hs},run:Xi,join:Ji,defer:Qi,schedule:ts,scheduleIterable:es,deferOnce:ns,scheduleOnce:rs,setTimeout:is,later:ss,throttle:os,debounce:as,cancelTimers:ls,cancel:cs,loops:{total:ds,nested:ps}}}get defaultQueue(){return this._defaultQueue}begin(){Zi++;let t,e=this.options,n=this.currentInstance;return!1!==this._autorun?(t=n,this._cancelAutorun()):(null!==n&&(ps++,this.instanceStack.push(n)),ds++,t=this.currentInstance=new Bi(this.queueNames,e),Yi++,this._trigger("begin",t,n)),this._onBegin(t,n),t}end(){Ki++,this._end(!1)}on(t,e){if("function"!=typeof e)throw new TypeError("Callback must be a function");let n=this._eventCallbacks[t];if(void 0===n)throw new TypeError(`Cannot on() event ${t} because it does not exist`);n.push(e)}off(t,e){let n=this._eventCallbacks[t];if(!t||void 0===n)throw new TypeError(`Cannot off() event ${t} because it does not exist`);let r=!1;if(e)for(let i=0;i0&&Oi(n[i-1])&&(r=parseInt(n.pop(),10)),[t,e,n,r]}(...arguments);return this._later(t,e,n,r)}throttle(){os++;let t,[e,n,r,i,s=!0]=Hi(...arguments),o=Fi(e,n,this._timers);if(-1===o)t=this._later(e,n,s?Vi:r,i),s&&this._join(e,n,r);else{t=this._timers[o+1];let e=o+4;this._timers[e]!==Vi&&(this._timers[e]=r)}return t}debounce(){as++;let t,[e,n,r,i,s=!1]=Hi(...arguments),o=this._timers,a=Fi(e,n,o);if(-1===a)t=this._later(e,n,s?Vi:r,i),s&&this._join(e,n,r);else{let s=this._platform.now()+i,l=a+4;o[l]===Vi&&(r=Vi),t=o[a+1];let c=ji(s,o);if(a+6===c)o[a]=s,o[l]=r;else{let i=this._timers[a+5];this._timers.splice(c,0,s,t,e,n,r,i),this._timers.splice(a,6)}0===a&&this._reinstallTimerTimeout()}return t}cancelTimers(){ls++,this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()}hasTimers(){return this._timers.length>0||this._autorun}cancel(t){if(cs++,null==t)return!1;let e=typeof t;return"number"===e?this._cancelLaterTimer(t):!("object"!==e||!t.queue||!t.method)&&t.queue.cancel(t)}ensureInstance(){this._ensureInstance()}getDebugInfo(){if(this.DEBUG)return{autorun:this._autorunStack,counters:this.counters,timers:Di(this._timers,6,2),instanceStack:[this.currentInstance,...this.instanceStack].map(t=>t&&t._getDebugInfo(this.DEBUG))}}_end(t){let e=this.currentInstance,n=null;if(null===e)throw new Error("end called without begin");let r,i=!1;try{r=e.flush(t)}finally{if(!i)if(i=!0,1===r){const t=this.queueNames[e.queueNameIndex];this._scheduleAutorun(t)}else this.currentInstance=null,this.instanceStack.length>0&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger("end",e,n),this._onEnd(e,n)}}_join(t,e,n){return null===this.currentInstance?this._run(t,e,n):void 0===t&&void 0===n?e():e.apply(t,n)}_run(t,e,n){let r=Ni(this.options);if(this.begin(),r)try{return e.apply(t,n)}catch(X8){r(X8)}finally{this.end()}else try{return e.apply(t,n)}finally{this.end()}}_cancelAutorun(){this._autorun&&(this._platform.clearNext(),this._autorun=!1,this._autorunStack=null)}_later(t,e,n,r){let i=this.DEBUG?new Error:void 0,s=this._platform.now()+r,o=Gi++;if(0===this._timers.length)this._timers.push(s,o,t,e,n,i),this._installTimerTimeout();else{let r=ji(s,this._timers);this._timers.splice(r,0,s,o,t,e,n,i),this._reinstallTimerTimeout()}return o}_cancelLaterTimer(t){for(let e=1;e0&&(this.begin(),this._scheduleExpiredTimers(),this.end())}_scheduleExpiredTimers(){let t=this._timers,e=0,n=t.length,r=this._defaultQueue,i=this._platform.now();for(;ei);e+=6){let n=t[e+4];if(n!==Vi){let i=t[e+2],s=t[e+3],o=t[e+5];this.currentInstance.schedule(r,i,s,n,!1,o)}}t.splice(0,e),this._installTimerTimeout()}_reinstallTimerTimeout(){this._clearTimerTimeout(),this._installTimerTimeout()}_clearTimerTimeout(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)}_installTimerTimeout(){if(0===this._timers.length)return;let t=this._timers[0],e=this._platform.now(),n=Math.max(0,t-e);this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n)}_ensureInstance(){let t=this.currentInstance;return null===t&&(this._autorunStack=this.DEBUG?new Error:void 0,t=this.begin(),this._scheduleAutorun(this.queueNames[0])),t}_scheduleAutorun(t){us++;const e=this._platform.next,n=this.options.flush;n?n(t,e):e(),this._autorun=!0}};fs.Queue=Ui,fs.buildPlatform=Mi,fs.buildNext=Ii;var gs=a({_backburner:()=>ws,_cancelTimers:()=>Ls,_getCurrentRunLoop:()=>ys,_hasScheduledTimers:()=>Rs,_queues:()=>bs,_rsvpErrorQueue:()=>vs,begin:()=>ks,bind:()=>Cs,cancel:()=>As,debounce:()=>Os,end:()=>Ss,join:()=>xs,later:()=>Ts,next:()=>Ms,once:()=>Ps,run:()=>_s,schedule:()=>Es,scheduleOnce:()=>Is,throttle:()=>Ns}),ms=null;function ys(){return ms}var vs=`${Math.random()}${Date.now()}`.replace(".",""),bs=["actions","routerTransitions","render","afterRender","destroy",vs],ws=new fs(bs,{defaultQueue:"actions",onBegin:function(t){ms=t},onEnd:function(t,e){ms=e,_n(Es)},onErrorTarget:Li,onErrorMethod:"onerror",flush:function(t,e){"render"!==t&&t!==vs||_n(Es),e()}});function _s(...t){return ws.run(...t)}function xs(t,e,...n){return ws.join(t,e,...n)}function Cs(...t){return(...e)=>xs(...t.concat(e))}function ks(){ws.begin()}function Ss(){ws.end()}function Es(...t){return ws.schedule(...t)}function Rs(){return ws.hasTimers()}function Ls(){ws.cancelTimers()}function Ts(...t){return ws.later(...t)}function Ps(...t){return ws.scheduleOnce("actions",...t)}function Is(...t){return ws.scheduleOnce(...t)}function Ms(...t){return ws.later(...t,1)}function As(t){return ws.cancel(t)}function Os(...t){return ws.debounce(...t)}function Ns(...t){return ws.throttle(...t)}var zs=new Set([Symbol.iterator,"concat","entries","every","filter","find","findIndex","flat","flatMap","forEach","includes","indexOf","join","keys","lastIndexOf","map","reduce","reduceRight","slice","some","values"]),Fs=new Set(["fill","push","unshift"]);function Ds(t){if("symbol"==typeof t)return null;const e=Number(t);return isNaN(e)?null:e%1==0?e:null}var js=class t{#t;constructor(e,n){this.#t=n;const r=e.slice(),i=this,s=new Map;let o=!1;return new Proxy(r,{get(t,e){const n=Ds(e);if(null!==n)return i.#e(n),zt(i.#n),t[n];if("length"===e)return o?o=!1:zt(i.#n),t[e];if(Fs.has(e)&&(o=!0),zs.has(e)){let n=s.get(e);return void 0===n&&(n=(...n)=>(zt(i.#n),t[e](...n)),s.set(e,n)),n}return t[e]},set(t,e,n){if(i.#t.equals(t[e],n))return!0;t[e]=n;const r=Ds(e);return null!==r?(i.#r(r),i.#i()):"length"===e&&i.#i(),!0},getPrototypeOf:()=>t.prototype})}#n=mt();#s=new Map;#e(t){let e=this.#s.get(t);void 0===e&&(e=mt(),this.#s.set(t,e)),zt(e)}#r(t){const e=this.#s.get(t);e&&pt(e)}#i(){pt(this.#n),this.#s.clear()}};function Us(t,e){return new js(t??[],{equals:e?.equals??Object.is,description:e?.description})}Object.setPrototypeOf(js.prototype,Array.prototype);var Bs=class t{#t;#s=new Map;#n=mt();#e(t){let e=this.#s.get(t);void 0===e&&(e=mt(),this.#s.set(t,e)),zt(e)}#r(t){const e=this.#s.get(t);e&&pt(e)}#i(){pt(this.#n)}constructor(e,n){this.#t=n;const r=Object.getPrototypeOf(e),i=Object.getOwnPropertyDescriptors(e),s=Object.create(r);for(const t in i)Object.defineProperty(s,t,i[t]);const o=this;return new Proxy(s,{get:(t,e)=>(o.#e(e),t[e]),has:(t,e)=>(o.#e(e),e in t),ownKeys:t=>(zt(o.#n),Reflect.ownKeys(t)),set:(t,e,n)=>(o.#t.equals(t[e],n)||(t[e]=n,o.#r(e),o.#i()),!0),deleteProperty:(t,e)=>(e in t&&(delete t[e],o.#r(e),o.#s.delete(e),o.#i()),!0),getPrototypeOf:()=>t.prototype})}};function $s(t,e){return new Bs(t??{},{equals:e?.equals??Object.is,description:e?.description})}function qs(t,e){const n=e?.equals??Object.is,r=new Set(t??[]),i=mt(),s=new Map;function o(t){const e=s.get(t);e&&pt(e)}const a=new Proxy(r,{get(t,e,r){if("add"===e)return function(e){if(t.has(e)){if(n(e,e))return a}else pt(i);return o(e),t.add(e),a};if("delete"===e)return function(e){return!!t.has(e)&&(o(e),pt(i),s.delete(e),t.delete(e))};if("clear"===e)return function(){0!==t.size&&(s.forEach(t=>pt(t)),pt(i),s.clear(),t.clear())};if("has"===e)return function(e){return zt(function(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}(e)),t.has(e)};if("size"===e)return zt(i),t.size;const l=Reflect.get(t,e,r);return"function"==typeof l?function(...e){return zt(i),l.apply(t,e)}:l}});return a}function Vs(t,e){const n=e?.equals??Object.is,r=new WeakSet(t??[]),i=new WeakMap;function s(t){const e=i.get(t);e&&pt(e)}const o=new Proxy(r,{get(t,e,r){if("add"===e)return function(e){return t.has(e)&&n(e,e)||(t.add(e),s(e)),o};if("delete"===e)return function(e){return!!t.has(e)&&(s(e),i.delete(e),t.delete(e))};if("has"===e)return function(e){return zt(function(t){let e=i.get(t);return void 0===e&&(e=mt(),i.set(t,e)),e}(e)),t.has(e)};const a=Reflect.get(t,e,r);return"function"==typeof a?a.bind(t):a}});return o}function Ws(t,e){const n=e?.equals??Object.is,r=t instanceof Map?new Map(t.entries()):new Map(t??[]),i=mt(),s=new Map;function o(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}function a(t){const e=s.get(t);e&&pt(e)}const l=new Proxy(r,{get(t,e,r){if("set"===e)return function(e,r){return t.has(e)&&n(t.get(e),r)||(a(e),pt(i),t.set(e,r)),l};if("delete"===e)return function(e){return!!t.has(e)&&(a(e),pt(i),s.delete(e),t.delete(e))};if("clear"===e)return function(){0!==t.size&&(s.forEach(t=>pt(t)),s.clear(),pt(i),t.clear())};if("get"===e)return function(e){return zt(o(e)),t.get(e)};if("has"===e)return function(e){return zt(o(e)),t.has(e)};if("size"===e)return zt(i),t.size;const c=Reflect.get(t,e,r);return"function"==typeof c?function(...e){return zt(i),c.apply(t,e)}:c}});return l}function Hs(t,e){const n=e?.equals??Object.is,r=t??[],i=r instanceof WeakMap?r:new WeakMap(r),s=new WeakMap;function o(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}function a(t){const e=s.get(t);e&&pt(e)}const l=new Proxy(i,{get(t,e,r){if("set"===e)return function(e,r){return t.has(e)&&n(t.get(e),r)||(a(e),t.set(e,r)),l};if("delete"===e)return function(e){return!!t.has(e)&&(a(e),s.delete(e),t.delete(e))};if("get"===e)return function(e){return zt(o(e)),t.get(e)};if("has"===e)return function(e){return zt(o(e)),t.has(e)};const i=Reflect.get(t,e,r);return"function"==typeof i?i.bind(t):i}});return l}var Gs=a({ALLOW_CYCLES:()=>{},COMPUTE:()=>lt,CONSTANT:()=>0,CONSTANT_TAG:()=>yt,CURRENT_TAG:()=>xt,CurrentTag:()=>_t,INITIAL:()=>1,VOLATILE:()=>NaN,VOLATILE_TAG:()=>wt,VolatileTag:()=>bt,beginTrackFrame:()=>Pt,beginUntrackFrame:()=>Mt,bump:()=>at,combine:()=>Ct,consumeTag:()=>zt,createCache:()=>Bt,createTag:()=>gt,createUpdatableTag:()=>mt,debug:()=>Zs,dirtyTag:()=>pt,dirtyTagFor:()=>Gt,endTrackFrame:()=>It,endUntrackFrame:()=>At,getValue:()=>$t,isConst:()=>qt,isConstTag:()=>vt,isTracking:()=>Nt,resetTracking:()=>Ot,tagFor:()=>Kt,tagMetaFor:()=>Zt,track:()=>Vt,trackedArray:()=>Us,trackedData:()=>Vr,trackedMap:()=>Ws,trackedObject:()=>$s,trackedSet:()=>qs,trackedWeakMap:()=>Hs,trackedWeakSet:()=>Vs,untrack:()=>Wt,updateTag:()=>ft,validateTag:()=>ut,valueForTag:()=>ct}),Zs={},Ks=Symbol("GLIMMER_VALIDATOR_REGISTRATION");if(Reflect.has(globalThis,Ks))throw new Error("The `@glimmer/validator` library has been included twice in this application. It could be different versions of the package, or the same version included twice by mistake. `@glimmer/validator` depends on having a single copy of the package in use at any time in an application, even if they are the same version. You must dedupe your build to remove the duplicate packages in order to prevent this error.");Reflect.set(globalThis,Ks,!0);var Ys="@warp-drive/core",Xs=globalThis;Xs.__warpDrive_universalCache=Xs.__warpDrive_universalCache??{},Xs[Ys]=Xs[Ys]??{__version:"5.8.2"};var Js=Xs[Ys],Qs=Js.__warpDrive_ModuleScopedCaches??{};if(Js.__warpDrive_hasOtherCopy)throw new Error("Multiple copies of WarpDrive detected, the application will malfunction.");function to(t,e){return e}function eo(t){return Qs[`(transient) ${t}`]??null}function no(t,e){return e}Js.__warpDrive_hasOtherCopy=!0,no(0,Symbol.for("wd:skip-cache")),no(0,Symbol.for("wd:enable-hydration")),to(0,Symbol("IS_FUTURE")),to(0,Symbol("DOC")),to(0,Symbol("FROZEN")),to(0,Symbol.for("Collection"));var ro=no(0,new WeakMap);function io(t,e){ro.set(t,e)}no(0,new Map),to(0,Symbol("IS_CACHE_HANDLER"));var so=to(0,Symbol("#[]"));function oo(t,e){return eo("signalHooks").createSignal(t,e)}to(0,Symbol("#{}"));var ao={isInitializer:!0};function lo(t){return"object"==typeof t&&null!==t&&Object.getPrototypeOf(t)===ao}var co=to(0,Symbol("Signals"));function uo(t){return t[co]||function(t){t[co]=new Map}(t),t[co]}function ho(t,e,n,r){const i={key:n,context:e,signal:oo(e,n),value:lo(r)?r.value.call(e):r,isStale:!1};return t.set(n,i),i}function po(t,e){return t?.get(e)}function fo(t,e){return{enumerable:!0,configurable:!1,get(){const n=function(t,e,n,r){let i=po(t,n);return i||(i=ho(t,e,n,r)),function(t){eo("signalHooks").consumeSignal(t)}(i.signal),i}(uo(this),this,t,e);return n.isStale=!1,n.value},set(n){const r=function(t,e,n,r){let i=po(t,n);return i||(i=ho(t,e,n,r)),i}(uo(this),this,t,e);var i;r.value!==n&&(r.value=n,(i=r)&&(i.isStale=!0,function(t){eo("signalHooks").notifySignal(t)}(i.signal)))}}}function go(t,e,n){Object.defineProperty(t,e,fo(e,n))}function mo(t,e,n){const r=fo(e,n);r.enumerable=!1,Object.defineProperty(t,e,r)}function yo(t,e,n){const r=n.get;return n.get=function(){const t=uo(this);let n=t.get(e);return n||(n=function(t,e,n,r){{const i=function(t,e,n){return eo("signalHooks").createMemo(t,e,n)}(e,n,r);return t.set(n,i),i}}(t,this,e,r.bind(this))),n()},n}var vo=new WeakMap;function bo(t){return t instanceof DOMException&&"AbortError"===t.name}var wo=class{_stream=null;_future;_triggered=!1;_trigger(){if(this._triggered)return;this._triggered=!0;const t=this._future.getStream();t.sizeHint&&(this._sizeHint=t.sizeHint),this.promise=t.then(t=>t?async function(t,e){const n=e,r=t.getReader();let i=0,s=null!==n._stream&&n._stream.readable.locked,o=s,a=n._stream?.writable.getWriter();const l=[];for(n._isPending=!1,n._isStarted=!0,n._startTime=performance.now();;){const{value:t,done:e}=await r.read();if(e)break;if(i+=t.byteLength,n._bytesLoaded=i,n._lastPacketTime=performance.now(),s=s||null!==n._stream&&n._stream.readable.locked,s){if(!o){o=!0,a=n._stream.writable.getWriter();for(const t of l)await a.ready,await a.write(t);l.length=0}await a.ready,await a.write(t)}else l.push(t)}o?(await a.ready,await a.close()):n._stream&&(await n._stream.readable.cancel("The Stream Has Already Ended"),n._stream=null),n._endTime=performance.now(),n._isComplete=!0,n._isStarted=!1}(t,this):(this._isPending=!1,void(this._isComplete=!0)),t=>{this._isPending=!1,this._isStarted=!1,bo(t)&&(this._isCancelled=!0,this._isComplete=!0),this._isErrored=!0,this._error=t})}promise=null;get isPending(){return this._trigger(),this._isPending}get sizeHint(){return this._trigger(),this._sizeHint}get stream(){if(this._trigger(),!this._stream){if(this._isComplete||this._isCancelled||this._isErrored)return null;this._stream=new TransformStream}return this._stream.readable}get isStarted(){return this._trigger(),this._isStarted}get bytesLoaded(){return this._trigger(),this._bytesLoaded}get startTime(){return this._trigger(),this._startTime}get endTime(){return this._trigger(),this._endTime}get lastPacketTime(){return this._trigger(),this._lastPacketTime}get isComplete(){return this._trigger(),this._isComplete}get isCancelled(){return this._trigger(),this._isCancelled}get isErrored(){return this._trigger(),this._isErrored}get error(){return this._trigger(),this._error}get elapsedTime(){return(this.endTime||this.lastPacketTime)-this.startTime}get completedRatio(){return this.sizeHint?this.bytesLoaded/this.sizeHint:0}get remainingRatio(){return 1-this.completedRatio}get duration(){return this.endTime-this.startTime}get speed(){return this.bytesLoaded/(this.elapsedTime/1e3)}constructor(t){this._future=t}abort=()=>{this._future.abort()}};mo(wo.prototype,"_isPending",!0),mo(wo.prototype,"_isStarted",!1),mo(wo.prototype,"_isComplete",!1),mo(wo.prototype,"_isCancelled",!1),mo(wo.prototype,"_isErrored",!1),mo(wo.prototype,"_error",null),mo(wo.prototype,"_sizeHint",0),mo(wo.prototype,"_bytesLoaded",0),mo(wo.prototype,"_startTime",0),mo(wo.prototype,"_endTime",0),mo(wo.prototype,"_lastPacketTime",0);var _o={};function xo(t,e,n){const r=Object.assign({},e),i=Object.assign({},r.cacheOptions);return n?i.reload=!0:!1===n?(delete i.reload,i.backgroundReload=!0):(delete i.backgroundReload,delete i.reload),r.cacheOptions=i,t.request(r)}function Co(t,e,n){let r={...Object.getOwnPropertyDescriptor(t,e)};for(let i of n)r=i(t,e,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(t):void 0,r.initializer=void 0),Object.defineProperty(t,e,r)}go(_o,"reason",null),go(_o,"value",null),go(_o,"result",null),go(_o,"error",null),go(_o,"status","pending"),go(_o,"isPending",!0),go(_o,"isLoading",!0),go(_o,"isSuccess",!1),go(_o,"isError",!1),go(_o,"request",null),go(_o,"response",null),Object.defineProperty(_o,"isCancelled",{get(){return this.isError&&bo(this.reason)}}),Object.defineProperty(_o,"loadingState",{get(){return this._loadingState||(this._loadingState=new wo(this._request)),this._loadingState}});var ko=Symbol.dispose||Symbol.for("dispose"),So=class{_requester;constructor(t,e){this._args=e,this.store=t,this._subscribedTo=null,this._subscription=null,this._intervalStart=null,this._invalidated=!1,this._nextInterval=null,this._requester=null,this.isDestroyed=!1,this[ko]=Ro,this._installListeners(),this._beginPolling()}async _beginPolling(){try{this.isIdle||await this.request}catch{}finally{this.isDestroyed||this._scheduleInterval()}}get isIdle(){const{request:t,query:e}=this._args;return Boolean(!t&&!e)}static{Co(this.prototype,"isIdle",[yo])}get autorefreshTypes(){const{autorefresh:t}=this._args;let e;return e=!0===t?["online","invalid"]:"string"==typeof t?t.split(","):[],new Set(e)}static{Co(this.prototype,"autorefreshTypes",[yo])}async _scheduleInterval(){const{autorefreshThreshold:t}=this._args;if("undefined"!=typeof window&&"number"==typeof t&&t>0&&this.autorefreshTypes.has("interval")&&null===this._intervalStart){if(this._latestRequest){try{await this._latestRequest}catch{}if(this.isDestroyed)return}this._intervalStart=Date.now(),this._nextInterval=setTimeout(()=>{this._maybeUpdate()},t)}}_clearInterval(){this._nextInterval&&(clearTimeout(this._nextInterval),this._intervalStart=null)}_updateSubscriptions(){if(this.isIdle)return;const t=this._request.lid;if(this._subscribedTo===t)return;this._removeSubscriptions();const e=this._getRequester();this._requester=e,t&&Eo(e)&&(this._subscribedTo=t,this._subscription=e.notifications.subscribe(t,(n,r)=>{if(!this._isUpdating)switch(r){case"invalidated":this.autorefreshTypes.has("invalid")&&(this._invalidated=!0,this._maybeUpdate());break;case"state":{const n=e.requestManager._deduped.get(t)?.priority,r=this.reqState;n?n.blocking&&!r.isLoading?(this.isRefreshing=!1,this._maybeUpdate("policy",!0)):this.isRefreshing=!0:this.isRefreshing=!1}}}))}_removeSubscriptions(){const t=this._requester;this._subscription&&t&&Eo(t)&&(t.notifications.unsubscribe(this._subscription),this._subscribedTo=null,this._subscription=null,this._requester=null)}_installListeners(){"undefined"!=typeof window&&(this.isOnline=window.navigator.onLine,this._unavailableStart=this.isOnline?null:Date.now(),this.isHidden="hidden"===document.visibilityState,this._onlineChanged=t=>{this.isOnline="online"===t.type,"offline"===t.type&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},this._backgroundChanged=()=>{const t="hidden"===document.visibilityState;this.isHidden=t,t&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},window.addEventListener("online",this._onlineChanged,{passive:!0,capture:!0}),window.addEventListener("offline",this._onlineChanged,{passive:!0,capture:!0}),document.addEventListener("visibilitychange",this._backgroundChanged,{passive:!0,capture:!0}))}_maybeUpdate(t,e){if(this.isIdle)return;const{reqState:n}=this;if(n.isPending)return;if(!Boolean(this.isOnline&&!this.isHidden&&(t||this.autorefreshTypes.size))){if(!e&&t&&"_invalidated"!==t)throw new Error("Reload not available: the network is not online or the tab is hidden");return}const{autorefreshTypes:r}=this;let i=this._invalidated||Boolean(t);if(!i&&r.has("online")){const{_unavailableStart:t}=this,{autorefreshThreshold:e}=this._args,n="number"==typeof e?e:3e4;i=Boolean(t&&Date.now()-t>n)}if(!i&&r.has("interval")){const{_intervalStart:t}=this,{autorefreshThreshold:e}=this._args;t&&"number"==typeof e&&e>0&&(i=Boolean(Date.now()-t>=e))}if(this._unavailableStart=null,this._invalidated=!1,i){this._clearInterval(),this._isUpdating=!0;const e=("_invalidated"===t?null:t)??this._args.autorefreshBehavior??"policy",r=this._getRequester();switch(n._request.requester||(n._request.requester=r),e){case"reload":this._latestRequest=n.reload();break;case"refresh":this._latestRequest=n.refresh();break;case"policy":this._latestRequest=n.refresh(!0)}"refresh"!==e&&(this._localRequest=this._latestRequest),this._scheduleInterval(),this._latestRequest.finally(()=>{this._isUpdating=!1})}}_getRequester(){return this._args.request?.requester?this._args.request.requester:this.store}retry=async()=>{this._maybeUpdate("reload"),await this._localRequest};refresh=async()=>{this._maybeUpdate("refresh"),await this._latestRequest};get errorFeatures(){return{isHidden:this.isHidden,isOnline:this.isOnline,retry:this.retry}}static{Co(this.prototype,"errorFeatures",[yo])}get contentFeatures(){const t={isHidden:this.isHidden,isOnline:this.isOnline,reload:this.retry,refresh:this.refresh,isRefreshing:this.isRefreshing,latestRequest:this._latestRequest};return t.isRefreshing&&(t.abort=()=>{this._latestRequest?.abort()}),t}static{Co(this.prototype,"contentFeatures",[yo])}get _request(){const{request:t,query:e}=this._args,{_localRequest:n,_originalRequest:r,_originalQuery:i}=this;return n&&t===r&&e===i?n:(this._originalQuery=e,this._originalRequest=t,t||this.store.request(e))}static{Co(this.prototype,"_request",[yo])}get request(){{const t=this._request;return this._updateSubscriptions(),t}}static{Co(this.prototype,"request",[yo])}get reqState(){return function(t){let e=vo.get(t);return e||(e=function(t){const e=(n=t,ro.get(n));var n;const r=Object.create(_o);return r._request=t,r.reload=()=>xo(t.requester,r.request,!0),r.refresh=(e=!1)=>xo(t.requester,r.request,!0===e&&null),e?e.isError?(r.error=e.result,r.reason=e.result,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=e.result.request,r.response=e.result.response):(r.result=e.result.content,r.value=e.result.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=e.result.request,r.response=e.result.response):t.then(e=>{io(t,{isError:!1,result:e}),r.result=e.content,r.value=e.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=e.request,r.response=e.response},e=>{io(t,{isError:!0,result:e}),r.error=e,r.reason=e,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=e.request,r.response=e.response}),r}(t),vo.set(t,e)),e}(this.request)}get result(){return this.reqState.result}};function Eo(t){return"requestManager"in t}function Ro(){const t=this;t.isDestroyed=!0,t._removeSubscriptions(),"undefined"!=typeof window&&(t._clearInterval(),window.removeEventListener("online",t._onlineChanged,{passive:!0,capture:!0}),window.removeEventListener("offline",t._onlineChanged,{passive:!0,capture:!0}),document.removeEventListener("visibilitychange",t._backgroundChanged,{passive:!0,capture:!0}))}go(So.prototype,"isOnline",!0),go(So.prototype,"isHidden",!1),go(So.prototype,"isRefreshing",!1),go(So.prototype,"_localRequest",void 0),go(So.prototype,"_latestRequest",void 0);var Lo={};go(Lo,"reason",null),go(Lo,"value",null),go(Lo,"result",null),go(Lo,"error",null),go(Lo,"status","pending"),go(Lo,"isPending",!0),go(Lo,"isLoading",!0),go(Lo,"isSuccess",!1),go(Lo,"isError",!1);var To=pt;!function(){const t=function(t){const e=t.wellknown.Array;return{createSignal:(t,n)=>n===e?[Oe(t,n),Oe(t,"length"),Oe(t,"[]")]:Oe(t,n),consumeSignal(t){if(Array.isArray(t))return zt(t[0]),zt(t[1]),void zt(t[2]);zt(t)},notifySignal(t){if(Array.isArray(t))return To(t[0]),To(t[1]),void To(t[2]);To(t)},createMemo:(t,e,n)=>{{const r=Oe(t,e),i=Bt(n);let s;const o=()=>{s=$t(i)};return()=>{const t=Vt(o);return ft(r,t),zt(t),s}}},willSyncFlushWatchers:()=>!!ws.currentInstance&&!0!==ws._autorun,waitFor:async t=>t}}({wellknown:{Array:so}});var e;e=t,Qs["(transient) signalHooks"]=e}();var Po=a({getOwner:()=>Io,setOwner:()=>$r}),Io=Br;function Mo(t){let e=Object.create(t);return e._dict=null,delete e._dict,e}var Ao="object"==typeof self&&null!==self&&self.Object===Object&&"undefined"!=typeof Window&&self.constructor===Window&&"object"==typeof document&&null!==document&&self.document===document&&"object"==typeof location&&null!==location&&self.location===location&&"object"==typeof history&&null!==history&&self.history===history&&"object"==typeof navigator&&null!==navigator&&self.navigator===navigator&&"string"==typeof navigator.userAgent;function Oo(t){let e=t._promiseCallbacks;return e||(e=t._promiseCallbacks={}),e}var No={mixin(t){return t.on=this.on,t.off=this.off,t.trigger=this.trigger,t._promiseCallbacks=void 0,t},on(t,e){if("function"!=typeof e)throw new TypeError("Callback must be a function");let n=Oo(this),r=n[t];r||(r=n[t]=[]),-1===r.indexOf(e)&&r.push(e)},off(t,e){let n=Oo(this);if(!e)return void(n[t]=[]);let r=n[t],i=r.indexOf(e);-1!==i&&r.splice(i,1)},trigger(t,e,n){let r=Oo(this)[t];if(r){let t;for(let i=0;i{for(let t=0;t{e===n?Zo(t,n):Ho(t,n)},e=>Ko(t,e))}(t,e):"function"==typeof n?function(t,e,n){zo.async(t=>{let r=!1,i=function(n,i){try{n.call(i,n=>{r||(r=!0,e===n?Zo(t,n):Ho(t,n))},e=>{r||(r=!0,Ko(t,e))})}catch(s){return s}}(n,e,t._label);!r&&i&&(r=!0,Ko(t,i))},t)}(t,e,n):Zo(t,e)}function Ho(t,e){if(t===e)Zo(t,e);else if(function(t){let e=typeof t;return null!==t&&("object"===e||"function"===e)}(e)){let n;try{n=e.then}catch(X8){return void Ko(t,X8)}Wo(t,e,n)}else Zo(t,e)}function Go(t){t._onError&&t._onError(t._result),Xo(t)}function Zo(t,e){t._state===$o&&(t._result=e,t._state=qo,0===t._subscribers.length?zo.instrument&&jo("fulfilled",t):zo.async(Xo,t))}function Ko(t,e){t._state===$o&&(t._state=Vo,t._result=e,zo.async(Go,t))}function Yo(t,e,n,r){let i=t._subscribers,s=i.length;t._onError=null,i[s]=e,i[s+qo]=n,i[s+Vo]=r,0===s&&t._state&&zo.async(Xo,t)}function Xo(t){let e=t._subscribers,n=t._state;if(zo.instrument&&jo(n===qo?"fulfilled":"rejected",t),0===e.length)return;let r,i,s=t._result;for(let o=0;oJo(i,s,n,o))}return s}var ta=class{constructor(t,e,n,r){this._instanceConstructor=t,this.promise=new t(Bo,r),this._abortOnReject=n,this._isUsingOwnPromise=t===ia,this._isUsingOwnResolve=t.resolve===Uo,this._init(...arguments)}_init(t,e){let n=e.length||0;this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(e)}_enumerate(t){let e=this.length,n=this.promise;for(let r=0;n._state===$o&&re(t)),e,n)}else this._willSettleAt(r.resolve(t),e,n)}_eachEntry(t,e,n){null!==t&&"object"==typeof t?this._settleMaybeThenable(t,e,n):this._setResultAt(qo,e,t,n)}_settledAt(t,e,n,r){let i=this.promise;i._state===$o&&(this._abortOnReject&&t===Vo?Ko(i,n):(this._setResultAt(t,e,n,r),this._checkFullfillment()))}_setResultAt(t,e,n,r){this._remaining--,this._result[e]=n}_willSettleAt(t,e,n){Yo(t,void 0,t=>this._settledAt(qo,e,t,n),t=>this._settledAt(Vo,e,t,n))}};function ea(t,e,n){this._remaining--,this._result[e]=t===qo?{state:"fulfilled",value:n}:{state:"rejected",reason:n}}var na="rsvp_"+Date.now()+"-",ra=0,ia=class t{constructor(e,n){this._id=ra++,this._label=n,this._state=void 0,this._result=void 0,this._subscribers=[],zo.instrument&&jo("created",this),Bo!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){let n=!1;try{e(e=>{n||(n=!0,Ho(t,e))},e=>{n||(n=!0,Ko(t,e))})}catch(r){Ko(t,r)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}_onError(t){zo.after(()=>{this._onError&&zo.trigger("error",t,this._label)})}catch(t,e){return this.then(void 0,t,e)}finally(t,e){let n=this,r=n.constructor;return"function"==typeof t?n.then(e=>r.resolve(t()).then(()=>e),e=>r.resolve(t()).then(()=>{throw e})):n.then(t,t)}};function sa(t,e){return{then:(n,r)=>t.call(e,n,r)}}function oa(t,e){let n=function(){let n=arguments.length,r=new Array(n+1),i=!1;for(let t=0;taa(t,e,n,r))}(s,r,t,this):aa(s,r,t,this)};return n.__proto__=t,n}function aa(t,e,n,r){try{n.apply(r,e)}catch(X8){Ko(t,X8)}return t}function la(t,e){return ia.all(t,e)}ia.cast=Uo,ia.all=function(t,e){return Array.isArray(t)?new ta(this,t,!0,e).promise:this.reject(new TypeError("Promise.all must be called with an array"),e)},ia.race=function(t,e){let n=this,r=new n(Bo,e);if(!Array.isArray(t))return Ko(r,new TypeError("Promise.race must be called with an array")),r;for(let i=0;r._state===$o&&iHo(r,t),t=>Ko(r,t));return r},ia.resolve=Uo,ia.reject=function(t,e){let n=new this(Bo,e);return Ko(n,t),n},ia.prototype._guidKey=na,ia.prototype.then=Qo;var ca=class extends ta{constructor(t,e,n){super(t,e,!1,n)}};function ua(t,e){return Array.isArray(t)?new ca(ia,t,e).promise:ia.reject(new TypeError("Promise.allSettled must be called with an array"),e)}function ha(t,e){return ia.race(t,e)}ca.prototype._setResultAt=ea;var da=class extends ta{constructor(t,e,n=!0,r){super(t,e,n,r)}_init(t,e){this._result={},this._enumerate(e)}_enumerate(t){let e,n,r=Object.keys(t),i=r.length,s=this.promise;this._remaining=i;for(let o=0;s._state===$o&&o{throw t}),t}function ya(t){let e={resolve:void 0,reject:void 0};return e.promise=new ia((t,n)=>{e.resolve=t,e.reject=n},t),e}fa.prototype._setResultAt=ea;var va=class extends ta{constructor(t,e,n,r){super(t,e,!0,r,n)}_init(t,e,n,r,i){let s=e.length||0;this.length=s,this._remaining=s,this._result=new Array(s),this._mapFn=i,this._enumerate(e)}_setResultAt(t,e,n,r){if(r)try{this._eachEntry(this._mapFn(n,e),e,!1)}catch(X8){this._settledAt(Vo,e,X8,!1)}else this._remaining--,this._result[e]=n}};function ba(t,e,n){return"function"!=typeof e?ia.reject(new TypeError("map expects a function as a second argument"),n):ia.resolve(t,n).then(function(t){if(!Array.isArray(t))throw new TypeError("map must be called with an array");return new va(ia,t,e,n).promise})}function wa(t,e){return ia.resolve(t,e)}function _a(t,e){return ia.reject(t,e)}var xa={},Ca=class extends va{_checkFullfillment(){if(0===this._remaining&&null!==this._result){let t=this._result.filter(t=>t!==xa);Zo(this.promise,t),this._result=null}}_setResultAt(t,e,n,r){if(r){this._result[e]=n;let t,r=!0;try{t=this._mapFn(n,e)}catch(X8){r=!1,this._settledAt(Vo,e,X8,!1)}r&&this._eachEntry(t,e,!1)}else this._remaining--,n||(this._result[e]=xa)}};function ka(t,e,n){return"function"!=typeof e?ia.reject(new TypeError("filter expects function as a second argument"),n):ia.resolve(t,n).then(function(t){if(!Array.isArray(t))throw new TypeError("filter must be called with an array");return new Ca(ia,t,e,n).promise})}var Sa,Ea=0;function Ra(t,e){Na[Ea]=t,Na[Ea+1]=e,2===(Ea+=2)&&Oa()}var La="undefined"!=typeof window?window:void 0,Ta=La||{},Pa=Ta.MutationObserver||Ta.WebKitMutationObserver,Ia="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Ma="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function Aa(){return()=>setTimeout(za,1)}var Oa,Na=new Array(1e3);function za(){for(let t=0;tt(za)}():Pa?function(){let t=0,e=new Pa(za),n=document.createTextNode("");return e.observe(n,{characterData:!0}),()=>n.data=t=++t%2}():Ma?function(){let t=new MessageChannel;return t.port1.onmessage=za,()=>t.port2.postMessage(0)}():void 0===La&&"function"==typeof window.require?function(){try{const t=Function("return this")().require("vertx");return void 0!==(Sa=t.runOnLoop||t.runOnContext)?function(){Sa(za)}:Aa()}catch(t){return Aa()}}():Aa(),zo.async=Ra,zo.after=t=>setTimeout(t,0);var Fa=wa,Da=(t,e)=>zo.async(t,e);function ja(){zo.on(...arguments)}function Ua(){zo.off(...arguments)}if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){let t=window.__PROMISE_INSTRUMENTATION__;Fo("instrument",!0);for(let e in t)t.hasOwnProperty(e)&&ja(e,t[e])}var Ba={asap:Ra,cast:Fa,Promise:ia,EventTarget:No,all:la,allSettled:ua,race:ha,hash:pa,hashSettled:ga,rethrow:ma,defer:ya,denodeify:oa,configure:Fo,on:ja,off:Ua,resolve:wa,reject:_a,map:ba,async:Da,filter:ka},$a=Object.freeze(Object.defineProperty({__proto__:null,EventTarget:No,Promise:ia,all:la,allSettled:ua,asap:Ra,async:Da,cast:Fa,configure:Fo,default:Ba,defer:ya,denodeify:oa,filter:ka,hash:pa,hashSettled:ga,map:ba,off:Ua,on:ja,race:ha,reject:_a,resolve:wa,rethrow:ma},Symbol.toStringTag,{value:"Module"}));function qa(t){let e=function(t){if(!t)return;let e=t;return e.errorThrown?function(t){let e=t.errorThrown;return"string"==typeof e&&(e=new Error(e)),Object.defineProperty(e,"__reason_with_error_thrown__",{value:t,enumerable:!1}),e}(e):"UnrecognizedURLError"!==t.name&&"TransitionAborted"!==t.name?t:void 0}(t);if(e){let t=null;if(!t)throw e;t(e)}}Fo("async",(t,e)=>{ws.schedule("actions",null,t,e)}),Fo("after",t=>{ws.schedule(vs,null,t)}),ja("error",qa);var Va=class{static _leakTracking;owner;registry;cache;factoryManagerCache;validationCache;isDestroyed;isDestroying;constructor(t,e={}){this.registry=t,this.owner=e.owner||null,this.cache=Mo(e.cache||null),this.factoryManagerCache=Mo(e.factoryManagerCache||null),this.isDestroyed=!1,this.isDestroying=!1}lookup(t,e){if(this.isDestroyed)throw new Error(`Cannot call \`.lookup('${t}')\` after the owner has been destroyed`);return function(t,e,n={}){let r=e;if(!0===n.singleton||void 0===n.singleton&&Wa(t,e)){let e=t.cache[r];if(void 0!==e)return e}return function(t,e,n,r){let i=Ga(t,e,n);if(void 0!==i){if(function(t,e,{instantiate:n,singleton:r}){return!1!==r&&!1!==n&&(!0===r||Wa(t,e))&&Ha(t,e)}(t,n,r)){let n=t.cache[e]=i.create();return t.isDestroying&&"function"==typeof n.destroy&&n.destroy(),n}if(function(t,e,{instantiate:n,singleton:r}){return!1!==n&&(!1===r||!Wa(t,e))&&Ha(t,e)}(t,n,r))return i.create();if(function(t,e,{instantiate:n,singleton:r}){return!1!==r&&!n&&Wa(t,e)&&!Ha(t,e)}(t,n,r)||function(t,e,{instantiate:n,singleton:r}){return!(!1!==n||!1!==r&&Wa(t,e)||Ha(t,e))}(t,n,r))return i.class;throw new Error("Could not create factory")}}(t,r,e,n)}(this,this.registry.normalize(t),e)}destroy(){this.isDestroying=!0,Za(this)}finalizeDestroy(){Ka(this),this.isDestroyed=!0}reset(t){this.isDestroyed||(void 0===t?(Za(this),Ka(this)):function(t,e){let n=t.cache[e];delete t.factoryManagerCache[e],n&&(delete t.cache[e],n.destroy&&n.destroy())}(this,this.registry.normalize(t)))}ownerInjection(){let t={};return $r(t,this.owner),t}factoryFor(t){if(this.isDestroyed)throw new Error(`Cannot call \`.factoryFor('${t}')\` after the owner has been destroyed`);return Ga(this,this.registry.normalize(t),t)}};function Wa(t,e){return!1!==t.registry.getOption(e,"singleton")}function Ha(t,e){return!1!==t.registry.getOption(e,"instantiate")}function Ga(t,e,n){let r=t.factoryManagerCache[e];if(void 0!==r)return r;let i=t.registry.resolve(e);if(void 0===i)return;let s=new Qa(t,i,n,e);return t.factoryManagerCache[e]=s,s}function Za(t){let e=t.cache,n=Object.keys(e);for(let r of n){let t=e[r];t.destroy&&t.destroy()}}function Ka(t){t.cache=Mo(null),t.factoryManagerCache=Mo(null)}var Ya=Symbol("INIT_FACTORY");function Xa(t){return t[Ya]}function Ja(t,e){t[Ya]=e}var Qa=class{container;owner;class;fullName;normalizedName;madeToString;injections;constructor(t,e,n,r){this.container=t,this.owner=t.owner,this.class=e,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0}toString(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString}create(t){let{container:e}=this;if(e.isDestroyed)throw new Error(`Cannot create new instances after the owner has been destroyed (you attempted to create ${this.fullName})`);let n=t?{...t}:{};return $r(n,e.owner),Ja(n,this),this.class.create(n)}};function tl(t){let e=Object.create(null);e[t]=1;for(let n in e)if(n===t)return n;return t}var el=0;function nl(){return++el}var rl="ember",il=new WeakMap,sl=new Map,ol=tl(`__ember${Date.now()}`);function al(t,e=rl){let n=e+nl().toString();return Yt(t)&&il.set(t,n),n}function ll(t){let e;if(Yt(t))e=il.get(t),void 0===e&&(e=`${rl}${nl()}`,il.set(t,e));else if(e=sl.get(t),void 0===e){let n=typeof t;e="string"===n?`st${nl()}`:"number"===n?`nu${nl()}`:"symbol"===n?`sy${nl()}`:`(${t})`,sl.set(t,e)}return e}var cl=Array.prototype.concat;function ul(t,e,n,r){let i=n[t]||r[t];return e[t]&&(i=i?cl.call(i,e[t]):e[t]),i}function hl(t,e,n,r){if(!0===n)return e;let i=n._getter;if(void 0===i)return e;let s=r[t],o="function"==typeof s?M(s):s;if(void 0===o||!0===o)return e;let a=o._getter;if(void 0===a)return e;let l,c=en(i,a),u=n._setter,h=o._setter;if(l=void 0!==h?void 0!==u?en(u,h):h:u,c!==i||l!==u){let t=n._dependentKeys||[],e=new Zn([...t,{get:c,set:l}]);return e._readOnly=n._readOnly,e._meta=n._meta,e.enumerable=n.enumerable,T(e,Zn)}return e}function dl(t,e,n,r){if(void 0!==r[t])return e;let i=n[t];return"function"==typeof i?en(e,i):e}function pl(t){return t?Array.isArray(t)?t:[t]:[]}function fl(t,e,n){return pl(n[t]).concat(pl(e))}function gl(t,e,n){let r=n[t];if(!r)return e;let i=Object.assign({},r),s=!1,o=Object.keys(e);for(let a of o){let t=e[a];"function"==typeof t?(s=!0,i[a]=dl(a,t,r,{})):i[a]=t}return s&&(i._super=He),i}function ml(t,e,n,r,i,s,o){let a;for(let l=0;l{let e=s.indexOf(t);-1!==e&&s.splice(e,1)}))}else yl(e,a,n,r,i,s,o)}function yl(t,e,n,r,i,s,o){let a=ul("concatenatedProperties",e,r,i),l=ul("mergedProperties",e,r,i),c=Object.keys(e);for(let u of c){let c=e[u];if(void 0===c)continue;if(-1===s.indexOf(u)){s.push(u);let e=t.peekDescriptors(u);if(void 0===e){if(!A(c)){let t=r[u]=i[u];"function"==typeof t&&vl(i,u,t,!1)}}else n[u]=e,o.push(u),e.teardown(i,u,t)}let h="function"==typeof c;if(h){let t=M(c);if(void 0!==t){n[u]=hl(u,c,t,n),r[u]=void 0;continue}}a&&a.indexOf(u)>=0||"concatenatedProperties"===u||"mergedProperties"===u?c=fl(u,c,r):l&&l.indexOf(u)>-1?c=gl(u,c,r):h&&(c=dl(u,c,r,n)),r[u]=c,n[u]=void 0}}function vl(t,e,n,r){let i=Xe(n);if(void 0===i)return;let{observers:s,listeners:o}=i;if(void 0!==s){let n=r?pn:fn;for(let r of s.paths)n(t,r,null,e,s.sync)}if(void 0!==o){let n=r?rn:sn;for(let r of o)n(t,r,null,e)}}function bl(t,e,n=!1){let r=Object.create(null),i=Object.create(null),s=_(t),o=[],a=[];t._super=He,ml(e,s,r,i,t,o,a);for(let l of o){let e=i[l],o=r[l];void 0!==e?("function"==typeof e&&vl(t,l,e,!0),Un(t,l,e,-1!==a.indexOf(l),!n)):void 0!==o&&jn(t,l,o,s)}return s.isPrototypeMeta(t)||bn(t),t}var wl=new WeakSet,_l=class t{mixins;properties;ownerConstructor;_without;constructor(t,e){wl.add(this),this.properties=function(t){if(void 0!==t)for(let e of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,e);void 0===n.get&&void 0===n.set||Object.defineProperty(t,e,{value:k(n)})}return t}(e),this.mixins=xl(t),this.ownerConstructor=void 0,this._without=void 0}static create(...t){return vi(),new this(t,void 0)}static mixins(t){let e=w(t),n=[];return null===e||e.forEachMixins(t=>{t.properties||n.push(t)}),n}reopen(...e){if(0===e.length)return this;if(this.properties){let e=new t(void 0,this.properties);this.properties=void 0,this.mixins=[e]}else this.mixins||(this.mixins=[]);return this.mixins=this.mixins.concat(xl(e)),this}apply(t,e=!1){return bl(t,[this],e)}applyPartial(t){return bl(t,[this])}detect(t){if("object"!=typeof t||null===t)return!1;if(wl.has(t))return Cl(t,this);let e=w(t);return null!==e&&e.hasMixin(this)}without(...e){let n=new t([this]);return n._without=e,n}keys(){return kl(this)}toString(){return"(unknown mixin)"}};function xl(t){let e,n=t&&t.length||0;if(n>0){e=new Array(n);for(let r=0;rCl(t,e,n))}function kl(t,e=new Set,n=new Set){if(!n.has(t)){if(n.add(t),t.properties){let n=Object.keys(t.properties);for(let t of n)e.add(t)}else t.mixins&&t.mixins.forEach(t=>kl(t,e,n));return e}}var Sl=_l.create({mergedProperties:["actions"],send(t,...e){if(this.actions&&this.actions[t]&&!0!==this.actions[t].apply(this,e))return;let n=hr(this,"target");n&&n.send(...arguments)}}),{isArray:El}=Array;function Rl(t){return null==t?[]:El(t)?t:[t]}var Ll=a({default:()=>zl});function Tl(t){return"object"==typeof t&&null!==t&&"function"==typeof t.setUnknownProperty}var Pl=_l.prototype.reopen,Il=new WeakSet,Ml=new WeakMap,Al=new Set;function Ol(t){Al.has(t)||t.destroy()}function Nl(t,e){let n=_(t);if(void 0!==e){let r=t.concatenatedProperties,i=t.mergedProperties,s=Object.keys(e);for(let o of s){let s=e[o],a=I(t,o,n),l=void 0!==a;if(!l){if(void 0!==r&&r.length>0&&r.includes(o)){let e=t[o];s=e?Rl(e).concat(s):Rl(s)}if(void 0!==i&&i.length>0&&i.includes(o)){let e=t[o];s=Object.assign({},e,s)}}l?a.set(t,o,s):Tl(t)&&!(o in t)?t.setUnknownProperty(o,s):t[o]=s}}t.init(e),n.unsetInitializing();let r=n.observerEvents();if(void 0!==r)for(let i=0;in.willDestroy()),_(e).setInitializing()}reopen(...t){return bl(this,t),this}init(t){}get isDestroyed(){return st(this)}set isDestroyed(t){}get isDestroying(){return it(this)}set isDestroying(t){}destroy(){Al.add(this);try{nt(this)}finally{Al.delete(this)}return this}willDestroy(){}toString(){let t="object"==typeof this&&null!==this&&"function"==typeof this.toStringExtension?`:${this.toStringExtension()}`:"";return`<${Xa(this)||"(unknown)"}:${ll(this)}${t}>`}static extend(...t){let e=class extends(this){};return Pl.apply(e.PrototypeMixin,t),e}static create(...t){let e,n=t[0];return void 0!==n?(e=new this(Br(n)),Ja(e,Xa(n))):e=new this,t.length<=1?Nl(e,n):Nl(e,Fl.apply(this,t)),e}static reopen(...t){return this.willReopen(),Pl.apply(this.PrototypeMixin,t),this}static willReopen(){let t=this.prototype;Il.has(t)&&(Il.delete(t),Ml.has(this)&&Ml.set(this,_l.create(this.PrototypeMixin)))}static reopenClass(...t){return bl(this,t),this}static detect(t){if("function"!=typeof t)return!1;for(;t;){if(t===this)return!0;t=t.superclass}return!1}static detectInstance(t){return t instanceof this}static metaForProperty(t){return I(this.proto(),t)._meta||{}}static eachComputedProperty(t,e=this){this.proto();let n={};_(this.prototype).forEachDescriptors((r,i)=>{if(i.enumerable){let s=i._meta||n;t.call(e,r,s)}})}static get PrototypeMixin(){let t=Ml.get(this);return void 0===t&&(t=_l.create(),t.ownerConstructor=this,Ml.set(this,t)),t}static get superclass(){let t=Object.getPrototypeOf(this);return t!==Function.prototype?t:void 0}static proto(){let t=this.prototype;if(!Il.has(t)){Il.add(t);let e=this.superclass;e&&e.proto(),Ml.has(this)&&this.PrototypeMixin.apply(t)}return t}static toString(){return`<${Xa(this)||"(unknown)"}:constructor>`}static isClass=!0;static isMethod=!1;static _onLookup;static _lazyInjections};function Fl(...t){let e={};for(let n of t){let t=Object.keys(n);for(let r=0,i=t.length;rjl}),jl=_l.create({get(t){return hr(this,t)},getProperties(...t){return Fr(this,...t)},set(t,e){return mr(this,t,e)},setProperties(t){return Dr(this,t)},beginPropertyChanges(){return Vn(),this},endPropertyChanges(){return Wn(),this},notifyPropertyChange(t){return qn(this,t),this},addObserver(t,e,n,r){return pn(this,t,e,n,r),this},removeObserver(t,e,n,r){return fn(this,t,e,n,r),this},hasObserverFor(t){return an(this,`${t}:change`)},incrementProperty(t,e=1){return mr(this,t,(parseFloat(hr(this,t))||0)+e)},decrementProperty(t,e=1){return mr(this,t,(hr(this,t)||0)-e)},toggleProperty(t){return mr(this,t,!hr(this,t))},cacheFor(t){let e=w(this);return null!==e?e.valueFor(t):void 0}}),Ul=a({action:()=>Vl,computed:()=>Xn,default:()=>Bl,defineProperty:()=>Dn,get:()=>hr,getProperties:()=>Fr,notifyPropertyChange:()=>qn,observer:()=>Wl,set:()=>mr,setProperties:()=>Dr,trySet:()=>vr}),Bl=class extends(zl.extend(jl)){get _debugContainerKey(){let t=Xa(this);return void 0!==t&&t.fullName}},$l=new WeakMap;function ql(t,e,n){var r;if(null!=(r=t)&&void 0!==r.constructor&&"function"==typeof r.constructor.proto&&t.constructor.proto(),!Object.prototype.hasOwnProperty.call(t,"actions")){let e=t.actions;t.actions=e?Object.assign({},e):{}}return t.actions[e]=n,{get(){let t=$l.get(this);void 0===t&&(t=new Map,$l.set(this,t));let e=t.get(n);return void 0===e&&(e=n.bind(this),t.set(n,e)),e}}}function Vl(...t){let e;if(!C(t)){e=t[0];let n=function(t,n){return ql(t,n,e)};return O(n),n}let[n,r,i]=t;return e=i?.value,ql(n,r,e)}function Wl(...t){let e,n,r,i=t.pop();"function"==typeof i?(e=i,n=t,r=!N._DEFAULT_ASYNC_OBSERVERS):(e=i.fn,n=i.dependentKeys,r=i.sync);let s=[];for(let o of n)zn(o,t=>s.push(t));return Je(e,{paths:s,sync:r}),e}function Hl(t){if(!(t instanceof MouseEvent))return!1;let e=t.shiftKey||t.metaKey||t.altKey||t.ctrlKey,n=0!==t.button;return!e&&!n}function Gl(t){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://deprecations.emberjs.com/v1.x/#toc_binding-style-attributes. Style affected: "'+t+'"'}function Zl(t){let e=t.lookup("-view-registry:main"),n=[];return Object.keys(e).forEach(t=>{let r=e[t];null===r.parentView&&n.push(r)}),n}function Kl(t){return""!==t.tagName&&t.elementId?t.elementId:ll(t)}O(Vl);var Yl=new WeakMap,Xl=new WeakMap;function Jl(t){return Yl.get(t)||null}function Ql(t){return Xl.get(t)||null}function tc(t,e){Yl.set(t,e)}function ec(t,e){Xl.set(t,e)}function nc(t){Yl.delete(t)}function rc(t){Xl.delete(t)}var ic=new WeakMap;function sc(t){return function(t,e){let n=[],r=ic.get(t);return void 0!==r&&r.forEach(t=>{let r=e[t];!r||r.isDestroying||r.isDestroyed||n.push(r)}),n}(t,Br(t).lookup("-view-registry:main"))}function oc(t,e){let n=ic.get(t);void 0===n&&(n=function(t){let e=new Set;return ic.set(t,e),e}(t)),n.add(Kl(e))}function ac(t){return t.renderer.getBounds(t)}function lc(t){let e=ac(t),n=document.createRange();return n.setStartBefore(e.firstNode),n.setEndAfter(e.lastNode),n}function cc(t){return lc(t).getClientRects()}function uc(t){return lc(t).getBoundingClientRect()}var hc="ember-application",dc=class extends Bl{events={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",focusin:"focusIn",focusout:"focusOut",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};rootElement="body";_eventHandlers=Object.create(null);_didSetup=!1;finalEventNameMapping=null;_sanitizedRootElement=null;lazyEvents=new Map;_reverseEventNameMapping=null;setup(t,e){let n=this.finalEventNameMapping={...hr(this,"events"),...t};this._reverseEventNameMapping=Object.keys(n).reduce((t,e)=>{let r=n[e];return r?{...t,[r]:e}:t},{});let r=this.lazyEvents;null!=e&&mr(this,"rootElement",e);let i=hr(this,"rootElement"),s="string"!=typeof i?i:document.querySelector(i);s.classList.add(hc),this._sanitizedRootElement=s;for(let o in n)Object.prototype.hasOwnProperty.call(n,o)&&r.set(o,n[o]??null);this._didSetup=!0}setupHandlerForBrowserEvent(t){this.setupHandler(this._sanitizedRootElement,t,this.finalEventNameMapping[t]??null)}setupHandlerForEmberEvent(t){let e=this._reverseEventNameMapping?.[t];e&&this.setupHandler(this._sanitizedRootElement,e,t)}setupHandler(t,e,n){if(null===n||!this.lazyEvents.has(e))return;let r=(t,e)=>{let r=Jl(t),i=!0;return r&&(i=r.handleEvent(n,e)),i},i=this._eventHandlers[e]=t=>{let e=t.target;do{if(Jl(e)){if(!1===r(e,t)){t.preventDefault(),t.stopPropagation();break}if(!0===t.cancelBubble)break}e=e.parentNode}while(e instanceof Element)};t.addEventListener(e,i),this.lazyEvents.delete(e)}destroy(){if(!1===this._didSetup)return;let t=this._sanitizedRootElement;if(t){for(let e in this._eventHandlers)t.removeEventListener(e,this._eventHandlers[e]);return t.classList.remove(hc),this._super(...arguments)}}toString(){return"(EventDispatcher)"}},pc=/^[^:]+:[^:]+$/,fc=class{_failSet;resolver;fallback;registrations;_normalizeCache;_options;_resolveCache;_typeOptions;constructor(t={}){this.fallback=t.fallback||null,this.resolver=t.resolver||null,this.registrations=Mo(t.registrations||null),this._normalizeCache=Mo(null),this._resolveCache=Mo(null),this._failSet=new Set,this._options=Mo(null),this._typeOptions=Mo(null)}container(t){return new Va(this,t)}register(t,e,n={}){let r=this.normalize(t);this._failSet.delete(r),this.registrations[r]=e,this._options[r]=n}unregister(t){let e=this.normalize(t);delete this.registrations[e],delete this._resolveCache[e],delete this._options[e],this._failSet.delete(e)}resolve(t){let e=function(t,e){let n,r=e,i=t._resolveCache[r];return void 0!==i?i:t._failSet.has(r)?void 0:(t.resolver&&(n=t.resolver.resolve(r)),void 0===n&&(n=t.registrations[r]),void 0===n?t._failSet.add(r):t._resolveCache[r]=n,n)}(this,this.normalize(t));return void 0===e&&null!==this.fallback&&(e=this.fallback.resolve(t)),e}describe(t){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(t):null!==this.fallback?this.fallback.describe(t):t}normalizeFullName(t){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(t):null!==this.fallback?this.fallback.normalizeFullName(t):t}normalize(t){return this._normalizeCache[t]||(this._normalizeCache[t]=this.normalizeFullName(t))}makeToString(t,e){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(t,e):null!==this.fallback?this.fallback.makeToString(t,e):"string"==typeof t?t:t.name??"(unknown class)"}has(t){return!!this.isValidFullName(t)&&function(t,e){return void 0!==t.resolve(e)}(this,this.normalize(t))}optionsForType(t,e){this._typeOptions[t]=e}getOptionsForType(t){let e=this._typeOptions[t];return void 0===e&&null!==this.fallback&&(e=this.fallback.getOptionsForType(t)),e}options(t,e){let n=this.normalize(t);this._options[n]=e}getOptions(t){let e=this.normalize(t),n=this._options[e];return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(t)),n}getOption(t,e){let n=this._options[t];if(void 0!==n&&void 0!==n[e])return n[e];let r=t.split(":")[0];return n=this._typeOptions[r],n&&void 0!==n[e]?n[e]:null!==this.fallback?this.fallback.getOption(t,e):void 0}knownForType(t){let e,n,r=Mo(null),i=Object.keys(this.registrations);for(let s of i)s.split(":")[0]===t&&(r[s]=!0);return null!==this.fallback&&(e=this.fallback.knownForType(t)),null!==this.resolver&&this.resolver.knownForType&&(n=this.resolver.knownForType(t)),Object.assign({},e,r,n)}isValidFullName(t){return pc.test(t)}},gc=Mo(null),mc=`${Math.random()}${Date.now()}`.replace(".","");function yc([t]){let e=gc[t];if(e)return e;let[n,r]=t.split(":");return gc[t]=tl(`${n}:${r}-${mc}`)}var vc=a({default:()=>bc,on:()=>ln}),bc=_l.create({on(t,e,n){return rn(this,t,e,n),this},one(t,e,n){return rn(this,t,e,n,!0),this},trigger(t,...e){on(this,t,e)},off(t,e,n){return sn(this,t,e,n),this},has(t){return an(this,t)}}),wc=_l.create(),_c=a({default:()=>xc}),xc=_l.create(wc),Cc={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object AsyncFunction]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:kc}=Object.prototype;function Sc(t){if(null===t)return"null";if(void 0===t)return"undefined";let e=Cc[kc.call(t)]||"object";return"function"===e?zl.detect(t)&&(e="class"):"object"===e&&(t instanceof Error?e="error":t instanceof zl?e="instance":t instanceof Date&&(e="date")),e}var Ec=_l.create({compare:null}),Rc={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10,regexp:11,filelist:12,error:13};function Lc(t,e){return Math.sign(t-e)}function Tc(t,e){if(t===e)return 0;let n=Sc(t),r=Sc(e);if("instance"===n&&Pc(t)&&t.constructor.compare)return t.constructor.compare(t,e);if("instance"===r&&Pc(e)&&e.constructor.compare)return-1*e.constructor.compare(e,t);let i=Lc(Rc[n],Rc[r]);if(0!==i)return i;switch(n){case"boolean":return Lc(Number(t),Number(e));case"number":return Lc(t,e);case"string":return Lc(t.localeCompare(e),0);case"array":{let n=t.length,r=e.length,i=Math.min(n,r);for(let s=0;sYc,MutableArray:()=>Gc,NativeArray:()=>Zc,default:()=>Hc,isArray:()=>Ic,makeArray:()=>Rl,removeAt:()=>$c,uniqBy:()=>Nc}),Ac=Object.freeze([]),Oc=t=>t;function Nc(t,e=Oc){let n=Yc(),r=new Set,i="function"==typeof e?e:t=>hr(t,e);return t.forEach(t=>{let e=i(t);r.has(e)||(r.add(e),n.push(t))}),n}function zc(...t){let e=2===t.length,[n,r]=t;return e?t=>r===hr(t,n):t=>Boolean(hr(t,n))}function Fc(t,e,n){let r=t.length;for(let i=n;i!r(t,e,n),0)}function Bc(t,e,n=0,r){let i=t.length;return n<0&&(n+=i),Fc(t,r&&e!=e?t=>t!=t:t=>t===e,n)}function $c(t,e,n){return Rr(t,e,n??1,Ac),t}function qc(t,e,n){return Rr(t,e,0,[n]),n}function Vc(t){let e=Xn(t);return e.enumerable=!1,e}function Wc(t){return this.map(e=>hr(e,t))}var Hc=_l.create(wc,{init(){this._super(...arguments),ir.add(this)},objectsAt(t){return t.map(t=>Me(this,t))},"[]":Vc({get(){return this},set(t,e){return this.replace(0,this.length,e),this}}),firstObject:Vc(function(){return Me(this,0)}).readOnly(),lastObject:Vc(function(){return Me(this,this.length-1)}).readOnly(),slice(t=0,e){let n,r=Yc(),i=this.length;for(t<0&&(t=i+t),n=void 0===e||e>i?i:e<0?i+e:e;t=n)&&(e=n-1),e<0&&(e+=n);for(let r=e;r>=0;r--)if(Me(this,r)===t)return r;return-1},forEach(t,e=null){let n=this.length;for(let r=0;rmr(n,t,e))},map(t,e=null){let n=Yc();return this.forEach((r,i,s)=>n[i]=t.call(e,r,i,s)),n},mapBy:Wc,filter(t,e=null){let n=Yc();return this.forEach((r,i,s)=>{t.call(e,r,i,s)&&n.push(r)}),n},reject(t,e=null){return this.filter(function(){return!t.apply(e,arguments)})},filterBy(){return this.filter(zc(...arguments))},rejectBy(){return this.reject(zc(...arguments))},find(t,e=null){return Dc(this,t,e)},findBy(){return Dc(this,zc(...arguments))},every(t,e=null){return Uc(this,t,e)},isEvery(){return Uc(this,zc(...arguments))},any(t,e=null){return jc(this,t,e)},isAny(){return jc(this,zc(...arguments))},reduce(t,e){let n=e,r=0;if(!(arguments.length>1)){if(0===this.length)throw new TypeError("Reduce of empty array with no initial value");n=this.objectAt(0),r=1}for(let i=r;in.push(r[t]?.(...e))),n},toArray(){return this.map(t=>t)},compact(){return this.filter(t=>null!=t)},includes(t,e){return-1!==Bc(this,t,e,!0)},sortBy(){let t=arguments;return this.toArray().sort((e,n)=>{for(let r=0;re!==t:t=>t==t;return this.filter(e)}}),Gc=_l.create(Hc,xc,{clear(){let t=this.length;return 0===t||this.replace(0,t,Ac),this},insertAt(t,e){return qc(this,t,e),this},removeAt(t,e){return $c(this,t,e)},pushObject(t){return qc(this,this.length,t)},pushObjects(t){return this.replace(this.length,0,t),this},popObject(){let t=this.length;if(0===t)return null;let e=Me(this,t-1);return this.removeAt(t-1,1),e},shiftObject(){if(0===this.length)return null;let t=Me(this,0);return this.removeAt(0),t},unshiftObject(t){return qc(this,0,t)},unshiftObjects(t){return this.replace(0,0,t),this},reverseObjects(){let t=this.length;if(0===t)return this;let e=this.toArray().reverse();return this.replace(0,t,e),this},setObjects(t){if(0===t.length)return this.clear();let e=this.length;return this.replace(0,e,t),this},removeObject(t){let e=this.length||0;for(;--e>=0;)Me(this,e)===t&&this.removeAt(e);return this},removeObjects(t){Vn();for(let e=t.length-1;e>=0;e--)this.removeObject(t[e]);return Wn(),this},addObject(t){return this.includes(t)||this.pushObject(t),this},addObjects(t){return Vn(),t.forEach(t=>this.addObject(t)),Wn(),this}}),Zc=_l.create(Gc,jl,{objectAt(t){return this[t]},replace(t,e,n=Ac){return Tr(this,t,e,n),this}}),Kc=["length"];Zc.keys().forEach(t=>{Array.prototype[t]&&Kc.push(t)}),Zc=Zc.without(...Kc);var Yc=function(t){return sr(t)?t:Zc.apply(t??[])},Xc=class extends Bl{},Jc=a({ControllerMixin:()=>tu,default:()=>eu,inject:()=>nu}),Qc=Symbol("MODEL"),tu=_l.create(Sl,{isController:!0,concatenatedProperties:["queryParams"],target:null,store:null,init(){this._super(...arguments);let t=Br(this);t&&(this.namespace=t.lookup("application:main"),this.target=t.lookup("router:main"))},model:Xn({get(){return this[Qc]},set(t,e){return this[Qc]=e}}),queryParams:null,_qpDelegate:null,_qpChanged(t,e){let n=e.indexOf(".[]"),r=-1===n?e:e.slice(0,n);(0,t._qpDelegate)(r,hr(t,r))}}),eu=class extends(Xc.extend(tu)){};function nu(...t){return qr("controller",...t)}var ru=!1;function iu(){return ru}function su(t){ru=Boolean(t)}var ou=Symbol("ENGINE_PARENT");function au(t){return t[ou]}var lu=_l.create({__container__:null,ownerInjection(){return this.__container__.ownerInjection()},lookup(t,e){return this.__container__.lookup(t,e)},destroy(){let t=this.__container__;t&&xs(()=>{t.destroy(),Es("destroy",t,"finalizeDestroy")}),this._super()},factoryFor(t){return this.__container__.factoryFor(t)}}),cu=_l.create({__registry__:null,resolveRegistration(t){return this.__registry__.resolve(t)},register:uu("register"),unregister:uu("unregister"),hasRegistration:uu("has"),registeredOption:uu("getOption"),registerOptions:uu("options"),registeredOptions:uu("getOptions"),registerOptionsForType:uu("optionsForType"),registeredOptionsForType:uu("getOptionsForType")});function uu(t){return function(...e){return this.__registry__[t](...e)}}var hu=class extends(Bl.extend(cu,lu)){static setupRegistry(t,e){}[ou];_booted=!1;init(t){super.init(t),ll(this),this.base??=this.application;let e=this.__registry__=new fc({fallback:this.base.__registry__});this.__container__=e.container({owner:this}),this._booted=!1}_bootPromise=null;boot(t){return this._bootPromise||(this._bootPromise=new $a.Promise(e=>{e(this._bootSync(t))})),this._bootPromise}_bootSync(t){return this._booted||(this.cloneParentDependencies(),this.setupRegistry(t),this.base.runInstanceInitializers(this),this._booted=!0),this}setupRegistry(t=this.__container__.lookup("-environment:main")){this.constructor.setupRegistry(this.__registry__,t)}unregister(t){this.__container__.reset(t),this.__registry__.unregister(t)}buildChildEngineInstance(t,e={}){let n=this.lookup(`engine:${t}`);if(!n)throw new Error(`You attempted to mount the engine '${t}', but it is not registered with its parent.`);let r=n.buildInstance(e);return r[ou]=this,r}cloneParentDependencies(){const t=au(this);["route:basic","service:-routing"].forEach(e=>{let n=t.resolveRegistration(e);this.register(e,n)});let e=t.lookup("-environment:main");this.register("-environment:main",e,{instantiate:!1});let n=["router:main",yc`-bucket-cache:main`,"-view-registry:main","renderer:-dom","service:-document"];e.isInteractive&&n.push("event_dispatcher:main"),n.forEach(e=>{let n=t.lookup(e);this.register(e,n,{instantiate:!1})})}},du=function(t,e,n){let{get:r}=n;return void 0!==r&&(n.get=function(){let t,n=Kt(this,e),i=Vt(()=>{t=r.call(this)});return ft(n,i),zt(i),t}),n};function pu(...t){if(C(t)){let[e,n,r]=t;return du(0,n,r)}{const e=t[0];let n=function(t,n){return du(0,n,e)};return O(n),n}}O(pu);var fu={Empty:0,dynamicLayout:1,dynamicTag:2,prepareArgs:4,createArgs:8,attributeHook:16,elementHook:32,dynamicScope:64,createCaller:128,updateHook:256,createInstance:512,wrapped:1024,willDestroy:2048,hasSubOwner:4096},gu=fu.Empty;function mu(t){return gu|yu(t,"dynamicLayout")|yu(t,"dynamicTag")|yu(t,"prepareArgs")|yu(t,"createArgs")|yu(t,"attributeHook")|yu(t,"elementHook")|yu(t,"dynamicScope")|yu(t,"createCaller")|yu(t,"updateHook")|yu(t,"createInstance")|yu(t,"wrapped")|yu(t,"willDestroy")|yu(t,"hasSubOwner")}function yu(t,e){return t[e]?fu[e]:gu}function vu(t,e,n){return!!(e&n)}function bu(t,e){return!!(t&e)}function wu(t,e={}){return{hasValue:Boolean(e.hasValue),hasDestroyable:Boolean(e.hasDestroyable),hasScheduledEffect:Boolean(e.hasScheduledEffect)}}function _u(t){return t.capabilities.hasValue}function xu(t){return t.capabilities.hasDestroyable}var Cu=class{constructor(t){this.factory=t}helperManagerDelegates=new WeakMap;undefinedDelegate=null;getDelegateForOwner(t){let e=this.helperManagerDelegates.get(t);if(void 0===e){let{factory:n}=this;e=n(t),this.helperManagerDelegates.set(t,e)}return e}getDelegateFor(t){if(void 0===t){let{undefinedDelegate:t}=this;if(null===t){let{factory:e}=this;this.undefinedDelegate=t=e(void 0)}return t}return this.getDelegateForOwner(t)}getHelper(t){return(e,n)=>{let r=this.getDelegateFor(n);const i=Ie(e),s=r.createHelper(t,i);if(_u(r)){let t=ge(()=>r.getValue(s),null);return xu(r)&&tt(t,r.getDestroyable(s)),t}if(xu(r)){let t=pe(void 0);return tt(t,r.getDestroyable(s)),t}return ce}}},ku=class{capabilities={hasValue:!0,hasDestroyable:!1,hasScheduledEffect:!1};createHelper(t,e){return{fn:t,args:e}}getValue({fn:t,args:e}){return Object.keys(e.named).length>0?t(...e.positional,e.named):t(...e.positional)}getDebugName(t){return t.name?`(helper function ${t.name})`:"(anonymous helper function)"}},Su=new WeakMap,Eu=new WeakMap,Ru=new WeakMap,Lu=Object.getPrototypeOf;function Tu(t,e,n){return t.set(n,e),n}function Pu(t,e){let n=e;for(;null!==n;){const e=t.get(n);if(void 0!==e)return e;n=Lu(n)}}function Iu(t,e){return Tu(Eu,t,e)}function Mu(t){const e=Pu(Eu,t);return void 0===e?null:e}function Au(t,e){return Tu(Ru,t,e)}var Ou=new Cu(()=>new ku);function Nu(t){let e=Pu(Ru,t);return void 0===e&&"function"==typeof t&&(e=Ou),e||null}function zu(t,e){return Tu(Su,t,e)}function Fu(t){const e=Pu(Su,t);return void 0===e?null:e}function Du(t){return void 0!==Pu(Su,t)}function ju(t){return function(t){return"function"==typeof t}(t)||void 0!==Pu(Ru,t)}function Uu(t){return void 0!==Pu(Eu,t)}var Bu=Object.create;function $u(){var t=Bu(null);return t.__=void 0,delete t.__,t}var qu=function(t,e,n){this.path=t,this.matcher=e,this.delegate=n};qu.prototype.to=function(t,e){var n=this.delegate;if(n&&n.willAddRoute&&(t=n.willAddRoute(this.matcher.target,t)),this.matcher.add(this.path,t),e){if(0===e.length)throw new Error("You must have an argument in the function passed to `to`");this.matcher.addChild(this.path,t,e,this.delegate)}};var Vu=function(t){this.routes=$u(),this.children=$u(),this.target=t};function Wu(t,e,n){return function(r,i){var s=t+r;if(!i)return new qu(s,e,n);i(Wu(s,e,n))}}function Hu(t,e,n){for(var r=0,i=0;i0&&47===e.charCodeAt(0)&&(e=e.substr(1));for(var r=e.split("/"),i=void 0,s=void 0,o=0;o2&&"[]"===s.slice(o-2)&&(a=!0,n[s=s.slice(0,o-2)]||(n[s]=[])),l=i[1]?fh(i[1]):""),a?n[s].push(l):n[s]=l}return n},gh.prototype.recognize=function(t){var e,n=[this.rootState],r={},i=!1,s=t.indexOf("#");-1!==s&&(t=t.substr(0,s));var o=t.indexOf("?");if(-1!==o){var a=t.substr(o+1,t.length);t=t.substr(0,o),r=this.parseQueryString(a)}"/"!==t.charAt(0)&&(t="/"+t);var l=t;gh.ENCODE_AND_DECODE_PATH_SEGMENTS?t=Zu(t):(t=decodeURI(t),l=decodeURI(l));var c=t.length;c>1&&"/"===t.charAt(c-1)&&(t=t.substr(0,c-1),l=l.substr(0,l.length-1),i=!0);for(var u=0;u0){let i=t[r-1];if(function(t){if(t&&"object"==typeof t){let e=t;return"queryParams"in e&&Object.keys(e.queryParams).every(t=>"string"==typeof t)}return!1}(i))return n=i.queryParams,e=vh.call(t,0,r-1),[e,n]}return[t,null]}function xh(t){for(let e in t){let n=t[e];if("number"==typeof n)t[e]=String(n);else if(Array.isArray(n))for(let t=0,e=n.length;t{throw this.router.transitionDidError(t,this)},Lh("Handle Abort"))}else this.promise=ia.resolve(this[Th]),this[Ph]={}}then(t,e,n){return this.promise.then(t,e,n)}catch(t,e){return this.promise.catch(t,e)}finally(t,e){return this.promise.finally(t,e)}abort(){this.rollback();let e=new t(this.router,void 0,void 0,void 0);return e.to=this.from,e.from=this.from,e.isAborted=!0,this.router.routeWillChange(e),this.router.routeDidChange(e),this}rollback(){this.isAborted||(Ch(this.router,this.sequence,this.targetName+": transition was aborted"),void 0!==this.intent&&null!==this.intent&&(this.intent.preTransitionState=this.router.state),this.isAborted=!0,this.isActive=!1,this.router.activeTransition=void 0)}redirect(t){this[Mh]=t,this.rollback(),this.router.routeWillChange(t)}retry(){this.abort();let t=this.router.transitionByIntent(this.intent,!1);return null!==this.urlMethod&&t.method(this.urlMethod),t}method(t){return this.urlMethod=t,this}send(t=!1,e,n,r,i){this.trigger(t,e,n,r,i)}trigger(t=!1,e,...n){"string"==typeof t&&(e=t,t=!1),this.router.triggerEvent(this[Th].routeInfos.slice(0,this.resolveIndex+1),t,e,n)}followRedirects(){return this.promise.catch(t=>this[Mh]?this[Mh].followRedirects():ia.reject(t))}toString(){return"Transition (sequence "+this.sequence+")"}log(t){Ch(this.router,this.sequence,t)}};function Oh(t){return Ch(t.router,t.sequence,"detected abort."),mh()}function Nh(t){return"object"==typeof t&&t instanceof Ah&&t.isTransition}var zh=function(){function t(e){let n=Error.call(this,e);this.name="UnrecognizedURLError",this.message=e||"UnrecognizedURL",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=n.stack}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}();function Fh(t,e){let n=t.factoryFor("controller:basic").class;n=class extends n{toString(){return`(generated ${e} controller)`}};let r=`controller:${e}`;return t.register(r,n),t.factoryFor(r)}function Dh(t,e){Fh(t,e);let n=`controller:${e}`;return t.lookup(n)}var jh=/\./g;function Uh(t){let e,n,r=(t=t.slice())[t.length-1];return function(t){if(t&&"object"==typeof t){let e=t.queryParams;if(e&&"object"==typeof e)return Object.keys(e).every(t=>"string"==typeof t)}return!1}(r)?(t.pop(),e=r.queryParams):e={},"string"==typeof t[0]&&(n=t.shift()),{routeName:n,models:t,queryParams:e}}function Bh(t,e){if(e._namesStashed)return;let n,r=e[e.length-1].name,i=t._routerMicrolib.recognizer.handlersFor(r);for(let s=0;s(t[e]=n,t),s)}serializeQueryParamKey(t){return t}serializeQueryParam(t,e,n){return this._router._serializeQueryParam(t,n)}deserializeQueryParam(t,e,n){return this._router._deserializeQueryParam(t,n)}_optionsForQueryParam(t){const e=hr(this,"queryParams");return hr(e,t.urlKey)||hr(e,t.prop)||e[t.urlKey]||e[t.prop]||{}}resetController(t,e,n){return this}exit(t){this.deactivate(t),this.trigger("deactivate",t),this.teardownViews()}_internalReset(t,e){let n=this.controller;n._qpDelegate=hr(this,"_qp").states.inactive,this.resetController(n,t,e)}enter(t){this[Jh]=void 0,this.activate(t),this.trigger("activate",t)}deactivate(t){}activate(t){}intermediateTransitionTo(...t){let[e,...n]=function(t,e){let n,r=Br(t),i=r.mountPoint;if(r.routable&&"string"==typeof e[0]){if(n=e[0],Wh(n))throw new Error("Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.");n=`${i}.${n}`,e[0]=n}return e}(this,t);this._router.intermediateTransitionTo(e,...n)}refresh(){return this._router._routerMicrolib.refresh(this)}setup(t,e){let n=this.controllerName||this.routeName,r=this.controllerFor(n,!0)??this.generateController(n),i=hr(this,"_qp");if(!this.controller){let t=i.propertyNames;!function(t,e){e.forEach(e=>{if(void 0===I(t,e)){let n=gr(t,e);null===n||"function"!=typeof n.get&&"function"!=typeof n.set||Dn(t,e,pu({get:n.get,set:n.set}))}pn(t,`${e}.[]`,t,t._qpChanged,!1)})}(r,t),this.controller=r}if(r._qpDelegate=i.states.allowOverrides,e){Bh(this._router,e[Th].routeInfos);let t=this._bucketCache,n=e[Ph];i.propertyNames.forEach(e=>{let s=i.map[e];s.values=n;let o=qh(s.route.fullRouteName,s.parts,s.values),a=t.lookup(o,e,s.undecoratedDefaultValue);mr(r,e,a)});let s=nd(this,e[Th]);Dr(r,s)}this.setupController(r,t,e),this._environment.options.shouldRender&&this[Xh](),_n(!1)}_qpChanged(t,e,n){if(!n)return;let r=this._bucketCache,i=qh(n.route.fullRouteName,n.parts,n.values);r.stash(i,t,e)}beforeModel(t){}afterModel(t,e){}redirect(t,e){}contextDidChange(){this.currentModel=this.context}model(t,e){let n,r,i=hr(this,"_qp").map;for(let s in t){if("queryParams"===s||i&&s in i)continue;let t=s.match(/^(.*)_id$/);null!==t&&(n=t[1]),r=!0}if(!n){if(r)return Object.assign({},t);if(e.resolveIndex<1)return;return e[Th].routeInfos[e.resolveIndex-1].context}}deserialize(t,e){return this.model(this._paramsFor(this.routeName,t),e)}setupController(t,e,n){t&&void 0!==e&&mr(t,"model",e)}controllerFor(t,e=!1){let n=Br(this),r=n.lookup(`route:${t}`);return r&&r.controllerName&&(t=r.controllerName),n.lookup(`controller:${t}`)}generateController(t){return Dh(Br(this),t)}modelFor(t){let e,n=Br(this),r=this._router&&this._router._routerMicrolib?this._router._routerMicrolib.activeTransition:void 0;e=n.routable&&void 0!==r?id(n,t):t;let i=n.lookup(`route:${e}`);if(null!=r){let t=i&&i.routeName||e;if(Object.prototype.hasOwnProperty.call(r.resolvedModels,t))return r.resolvedModels[t]}return i?.currentModel}[Jh]=void 0;[Xh](){this[Jh]=function(t){let e,n=Br(t),r=t.routeName,i=n.lookup(`controller:${t.controllerName||r}`),s=t.currentModel,o=n.lookup(`template:${t.templateName||r}`);return e=o?Du(o)?o:o(n):t._topLevelViewTemplate(n),{owner:n,name:r,controller:i,model:s,template:e}}(this),Ps(this._router,"_setOutlets")}willDestroy(){this.teardownViews()}teardownViews(){this[Jh]&&(this[Jh]=void 0,Ps(this._router,"_setOutlets"))}buildRouteInfoMetadata(){}_paramsFor(t,e){return void 0!==this._router._routerMicrolib.activeTransition?this.paramsFor(t):e}get _store(){const t=Br(this);return this.routeName,{find(e,n){let r=t.factoryFor(`model:${e}`);if(r)return r=r.class,r.find(n)}}}static{Kh(this.prototype,"_store",[Xn])}get _qp(){let t={},e=this.controllerName||this.routeName,n=Br(this),r=n.lookup(`controller:${e}`),i=hr(this,"queryParams"),s=Object.keys(i).length>0;r?t=function(t,e){let n={},r={defaultValue:!0,type:!0,scope:!0,as:!0};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]={...t[i],...e[i]},r[i]=!0);for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&!r[i]&&(n[i]={...e[i],...t[i]});return n}(function(t){let e={};for(let n of t)Vh(n,e);return e}(hr(r,"queryParams")||[]),i):s&&(r=Dh(n,e),t=i);let o=[],a={},l=[];for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;if("unknownProperty"===c||"_super"===c)continue;let n,i=t[c],s=i.scope||"model";"controller"===s&&(n=[]);let u=i.as||this.serializeQueryParamKey(c),h=hr(r,c);h=rd(h);let d=i.type||Sc(h),p=this.serializeQueryParam(h,u,d),f=`${e}:${c}`,g={undecoratedDefaultValue:hr(r,c),defaultValue:h,serializedDefaultValue:p,serializedValue:p,type:d,urlKey:u,prop:c,scopedPropertyName:f,controllerName:e,route:this,parts:n,values:null,scope:s};a[c]=a[u]=a[f]=g,o.push(g),l.push(c)}return{qps:o,map:a,propertyNames:l,states:{inactive:(t,e)=>{let n=a[t];this._qpChanged(t,e,n)},active:(t,e)=>{let n=a[t];return this._qpChanged(t,e,n),this._activeQPChanged(n,e)},allowOverrides:(t,e)=>{let n=a[t];return this._qpChanged(t,e,n),this._updatingQPChanged(n)}}}}static{Kh(this.prototype,"_qp",[Xn])}};function td(t){return t[Jh]}function ed(t,e){if(e.fullQueryParams)return e.fullQueryParams;let n=e.routeInfos.every(t=>t.route),r={...e.queryParams};return t._deserializeQueryParams(e.routeInfos,r),n&&(e.fullQueryParams=r),r}function nd(t,e){e.queryParamsFor=e.queryParamsFor||{};let n=t.fullRouteName,r=e.queryParamsFor[n];if(r)return r;let i=ed(t._router,e),s=e.queryParamsFor[n]={},o=hr(t,"_qp").qps;for(let a of o){let t=a.prop in i;s[a.prop]=t?i[a.prop]:rd(a.defaultValue)}return s}function rd(t){return Array.isArray(t)?Yc(t.slice()):t}function id(t,e){if(t.routable){let n=t.mountPoint;return"application"===e?n:`${n}.${e}`}return e}var sd=Qh.prototype.serialize;Qh.reopen({mergedProperties:["queryParams"],queryParams:{},templateName:null,controllerName:null,send(...t){if(this._router&&this._router._routerMicrolib||!iu())this._router.send(...t);else{let e=t.shift(),n=this.actions[e];if(n)return n.apply(this,t)}},actions:{queryParamsDidChange(t,e,n){let r=hr(this,"_qp").map,i=Object.keys(t).concat(Object.keys(n));for(let s of i){let t=r[s];if(t&&hr(this._optionsForQueryParam(t),"refreshModel")&&this._router.currentState){this.refresh();break}}return!0},finalizeQueryParamChange(t,e,n){if("application"!==this.fullRouteName)return!0;if(!n)return;let r,i=n[Th].routeInfos,s=this._router,o=s._queryParamsFor(i),a=s._qpUpdates,l=!1;Bh(s,i);for(let c of o.qps){let i,s,o=c.route,u=o.controller,h=c.urlKey in t&&c.urlKey;if(a.has(c.urlKey)?(i=hr(u,c.prop),s=o.serializeQueryParam(i,c.urlKey,c.type)):h?(s=t[h],void 0!==s&&(i=o.deserializeQueryParam(s,c.urlKey,c.type))):(s=c.serializedDefaultValue,i=rd(c.defaultValue)),u._qpDelegate=hr(o,"_qp").states.inactive,s!==c.serializedValue){if(n.queryParamsOnly&&!1!==r){let t=hr(o._optionsForQueryParam(c),"replace");t?r=!0:!1===t&&(r=!1)}mr(u,c.prop,i),l=!0}c.serializedValue=s,c.serializedDefaultValue!==s&&e.push({value:s,visible:!0,key:h||c.urlKey})}!0===l&&_n(!1),r&&n.method("replace"),o.qps.forEach(t=>{let e=hr(t.route,"_qp");t.route.controller._qpDelegate=hr(e,"states.active")}),s._qpUpdates.clear()}}});var od=0;function ad(t){return"function"==typeof t}var ld=class t{parent;matches;enableLoadingSubstates;explicitIndex=!1;options;constructor(t=null,e){this.parent=t,this.enableLoadingSubstates=Boolean(e&&e.enableLoadingSubstates),this.matches=[],this.options=e}route(e,n,r){let i,s=null,o=`/_unused_dummy_error_path_route_${e}/:error`;if(ad(n)?(i={},s=n):ad(r)?(i=n,s=r):i=n||{},this.enableLoadingSubstates&&(ud(this,`${e}_loading`,{resetNamespace:i.resetNamespace}),ud(this,`${e}_error`,{resetNamespace:i.resetNamespace,path:o})),s){let n=cd(this,e,i.resetNamespace),r=new t(n,this.options);ud(r,"loading"),ud(r,"error",{path:o}),s.call(r),ud(this,e,i,r.generate())}else ud(this,e,i)}push(t,e,n,r){let i=e.split(".");if(this.options.engineInfo){let t=e.slice(this.options.engineInfo.fullName.length+1),n=Object.assign({localFullName:t},this.options.engineInfo);r&&(n.serializeMethod=r),this.options.addRouteForEngine(e,n)}else if(r)throw new Error(`Defining a route serializer on route '${e}' outside an Engine is not allowed.`);""!==t&&"/"!==t&&"index"!==i[i.length-1]||(this.explicitIndex=!0),this.matches.push(t,e,n)}generate(){let t=this.matches;return this.explicitIndex||this.route("index",{path:"/"}),e=>{for(let n=0;n0){let i=Object.assign({},n);return this.emberRouter._prepareQueryParams(t,e,i),Hh(i,r.queryParams)}return!0}},dd=new WeakMap;function pd(t,e={},n={includeAttributes:!1,localizeMapUpdates:!1}){const r=new WeakMap;return t.map((i,s)=>{let{name:o,params:a,paramNames:l,context:c,route:u}=i,h=i;if(dd.has(h)&&n.includeAttributes){let t=dd.get(h);t=function(t,e){let n={get metadata(){return gd(t)}};return!Object.isExtensible(e)||e.hasOwnProperty("metadata")?Object.freeze(Object.assign({},e,n)):Object.assign(e,n)}(u,t);let e=fd(t,c);return r.set(h,t),n.localizeMapUpdates||dd.set(h,e),e}const d=n.localizeMapUpdates?r:dd;let p={find(e,n){let r,i=[];3===e.length&&(i=t.map(t=>d.get(t)));for(let s=0;t.length>s;s++)if(r=d.get(t[s]),e.call(n,r,s,i))return r},get name(){return o},get paramNames(){return l},get metadata(){return gd(i.route)},get parent(){let e=t[s-1];return void 0===e?null:d.get(e)},get child(){let e=t[s+1];return void 0===e?null:d.get(e)},get localName(){let t=this.name.split(".");return t[t.length-1]},get params(){return a},get queryParams(){return e}};return n.includeAttributes&&(p=fd(p,c)),r.set(i,p),n.localizeMapUpdates||dd.set(i,p),p})}function fd(t,e){let n={get attributes(){return e}};return!Object.isExtensible(t)||t.hasOwnProperty("attributes")?Object.freeze(Object.assign({},t,n)):Object.assign(t,n)}function gd(t){return null!=t&&void 0!==t.buildRouteInfoMetadata?t.buildRouteInfoMetadata():null}var md=class{_routePromise=void 0;_route=null;router;params={};isResolved=!1;constructor(t,e,n,r){this.name=e,this.paramNames=n,this.router=t,r&&this._processRoute(r)}getModel(t){return ia.resolve(this.context)}serialize(t){return this.params||{}}resolve(t){return ia.resolve(this.routePromise).then(e=>(yh(t),e)).then(()=>this.runBeforeModelHook(t)).then(()=>yh(t)).then(()=>this.getModel(t)).then(e=>(yh(t),e)).then(e=>this.runAfterModelHook(t,e)).then(e=>this.becomeResolved(t,e))}becomeResolved(t,e){let n,r=this.serialize(e);t&&(this.stashResolvedModel(t,e),t[Ph]=t[Ph]||{},t[Ph][this.name]=r);let i=e===this.context;!("context"in this)&&i||(n=e);let s=dd.get(this),o=new yd(this.router,this.name,this.paramNames,r,this.route,n);return void 0!==s&&dd.set(o,s),o}shouldSupersede(t){if(!t)return!0;let e=t.context===this.context;return t.name!==this.name||"context"in this&&!e||this.hasOwnProperty("params")&&!function(t,e){if(t===e)return!0;if(!t||!e)return!1;for(let n in t)if(t.hasOwnProperty(n)&&t[n]!==e[n])return!1;return!0}(this.params,t.params)}get route(){return null!==this._route?this._route:this.fetchRoute()}set route(t){this._route=t}get routePromise(){return this._routePromise||this.fetchRoute(),this._routePromise}set routePromise(t){this._routePromise=t}log(t,e){t.log&&t.log(this.name+": "+e)}updateRoute(t){return t._internalName=this.name,this.route=t}runBeforeModelHook(t){let e;return t.trigger&&t.trigger(!0,"willResolveModel",t,this.route),this.route&&void 0!==this.route.beforeModel&&(e=this.route.beforeModel(t)),Nh(e)&&(e=null),ia.resolve(e)}runAfterModelHook(t,e){let n,r=this.name;var i;return this.stashResolvedModel(t,e),void 0!==this.route&&void 0!==this.route.afterModel&&(n=this.route.afterModel(e,t)),n=Nh(i=n)?null:i,ia.resolve(n).then(()=>t.resolvedModels[r])}stashResolvedModel(t,e){t.resolvedModels=t.resolvedModels||{},t.resolvedModels[this.name]=e}fetchRoute(){let t=this.router.getRoute(this.name);return this._processRoute(t)}_processRoute(t){return this.routePromise=ia.resolve(t),function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.then}(t)?(this.routePromise=this.routePromise.then(t=>this.updateRoute(t)),void(this.route=void 0)):t?this.updateRoute(t):void 0}},yd=class extends md{isResolved;context;constructor(t,e,n,r,i,s){super(t,e,n,i),this.params=r,this.isResolved=!0,this.context=s}resolve(t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),ia.resolve(this)}},vd=class extends md{params={};constructor(t,e,n,r,i){super(t,e,n,i),r&&(this.params=r)}getModel(t){let e=this.params;t&&t[Ih]&&(e={},wh(e,this.params),e.queryParams=t[Ih]);let n,r=this.route;return r.deserialize?n=r.deserialize(e,t):r.model&&(n=r.model(e,t)),n&&Nh(n)&&(n=void 0),ia.resolve(n)}},bd=class extends md{serializer;constructor(t,e,n,r){super(t,e,n),this.context=r,this.serializer=this.router.getSerializer(e)}getModel(t){return void 0!==this.router.log&&this.router.log(this.name+": resolving provided model"),super.getModel(t)}serialize(t){let{paramNames:e,context:n}=this;t||(t=n);let r={};if(kh(t))return r[e[0]]=t,r;if(this.serializer)return this.serializer.call(null,t,e);if(void 0!==this.route&&this.route.serialize)return this.route.serialize(t,e);if(1!==e.length)return;let i=e[0];return/_id$/.test(i)?r[i]=t.id:r[i]=t,r}},wd=class{data;router;constructor(t,e={}){this.router=t,this.data=e}preTransitionState};function _d(t,e,n){let r=t.routeInfos,i=e.resolveIndex>=r.length?r.length-1:e.resolveIndex,s=e.isAborted;throw new Sd(n,t.routeInfos[i].route,s,t)}function xd(t,e){if(e.resolveIndex===t.routeInfos.length)return;let n=t.routeInfos[e.resolveIndex],r=Cd.bind(null,t,e);return n.resolve(e).then(r,null,t.promiseLabel("Proceed"))}function Cd(t,e,n){let r=t.routeInfos[e.resolveIndex].isResolved;if(t.routeInfos[e.resolveIndex++]=n,!r){let{route:t}=n;void 0!==t&&t.redirect&&t.redirect(n.context,e)}return yh(e),xd(t,e)}var kd=class{routeInfos=[];queryParams={};params={};promiseLabel(t){let e="";return Sh(this.routeInfos,function(t){return""!==e&&(e+="."),e+=t.name,!0}),Lh("'"+e+"': "+t)}resolve(t){let e=this.params;Sh(this.routeInfos,t=>(e[t.name]=t.params||{},!0)),t.resolveIndex=0;let n=xd.bind(null,this,t),r=_d.bind(null,this,t);return ia.resolve(null,this.promiseLabel("Start transition")).then(n,null,this.promiseLabel("Resolve route")).catch(r,this.promiseLabel("Handle error")).then(()=>this)}},Sd=class{constructor(t,e,n,r){this.error=t,this.route=e,this.wasAborted=n,this.state=r}},Ed=class extends wd{name;pivotHandler;contexts;queryParams;preTransitionState=void 0;constructor(t,e,n,r=[],i={},s){super(t,s),this.name=e,this.pivotHandler=n,this.contexts=r,this.queryParams=i}applyToState(t,e){let n=this.router.recognizer.handlersFor(this.name),r=n[n.length-1].handler;return this.applyToHandlers(t,n,r,e,!1)}applyToHandlers(t,e,n,r,i){let s,o,a=new kd,l=this.contexts.slice(0),c=e.length;if(this.pivotHandler)for(s=0,o=e.length;s=0;--s){let o=e[s],u=o.handler,h=t.routeInfos[s],d=null;if(d=o.names.length>0?s>=c?this.createParamHandlerInfo(u,o.names,l,h):this.getHandlerInfoForDynamicSegment(u,o.names,l,h,n,s):this.createParamHandlerInfo(u,o.names,l,h),i){d=d.becomeResolved(null,d.context);let t=h&&h.context;o.names.length>0&&void 0!==h.context&&d.context===t&&(d.params=h&&h.params),d.context=t}let p=h;(s>=c||d.shouldSupersede(h))&&(c=Math.min(s,c),p=d),r&&!i&&(p=p.becomeResolved(null,p.context)),a.routeInfos.unshift(p)}if(l.length>0)throw new Error("More context objects were passed than there are dynamic segments for the route: "+n);return r||this.invalidateChildren(a.routeInfos,c),wh(a.queryParams,this.queryParams||{}),r&&t.queryParams&&wh(a.queryParams,t.queryParams),a}invalidateChildren(t,e){for(let n=e,r=t.length;n0){if(o=n[n.length-1],kh(o))return this.createParamHandlerInfo(t,e,n,r);n.pop()}else{if(r&&r.name===t)return r;if(!this.preTransitionState)return r;o=this.preTransitionState.routeInfos[s]?.context}return new bd(this.router,t,e,o)}createParamHandlerInfo(t,e,n,r){let i={},s=e.length,o=[];for(;s--;){let a=r&&t===r.name&&r.params||{},l=n[n.length-1],c=e[s];kh(l)?i[c]=String(n.pop()):a.hasOwnProperty(c)?i[c]=a[c]:o.push(c)}if(o.length>0)throw new Error(`You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route ${t}. Missing params: ${o}`);return new vd(this.router,t,e,i)}},Rd=class extends wd{preTransitionState;url;constructor(t,e,n){super(t,n),this.url=e,this.preTransitionState=void 0}applyToState(t){let e,n,r=new kd,i=this.router.recognizer.recognize(this.url);if(!i)throw new zh(this.url);let s=!1,o=this.url;function a(t){if(t&&t.inaccessibleByURL)throw new zh(o);return t}for(e=0,n=i.length;e=0&&r;--n){let i=e[n],s=i.handler;t.add(e,{as:s}),r="/"===i.path||""===i.path||".index"===s.slice(-6)}})}hasRoute(t){return this.recognizer.hasRoute(t)}queryParamsTransition(t,e,n,r){if(this.fireQueryParamDidChange(r,t),!e&&this.activeTransition)return this.activeTransition;{let t=new Ah(this,void 0,void 0);return t.queryParamsOnly=!0,n.queryParams=this.finalizeQueryParamChange(r.routeInfos,r.queryParams,t),t[Ih]=r.queryParams,this.toReadOnlyInfos(t,r),this.routeWillChange(t),t.promise=t.promise.then(e=>(t.isAborted||(this._updateURL(t,n),this.didTransition(this.currentRouteInfos),this.toInfos(t,r.routeInfos,!0),this.routeDidChange(t)),e),null,Lh("Transition complete")),t}}transitionByIntent(t,e){try{return this.getTransitionByIntent(t,e)}catch(n){return new Ah(this,t,void 0,n,void 0)}}recognize(t){let e=new Rd(this,t),n=this.generateNewState(e);if(null===n)return n;let r=pd(n.routeInfos,n.queryParams,{includeAttributes:!1,localizeMapUpdates:!0});return r[r.length-1]}recognizeAndLoad(t){let e=new Rd(this,t),n=this.generateNewState(e);if(null===n)return ia.reject(`URL ${t} was not recognized`);let r=new Ah(this,e,n,void 0);return r.then(()=>{let t=pd(n.routeInfos,r[Ih],{includeAttributes:!0,localizeMapUpdates:!1});return t[t.length-1]})}generateNewState(t){try{return t.applyToState(this.state,!1)}catch(e){return null}}getTransitionByIntent(t,e){let n,r=Boolean(this.activeTransition),i=r?this.activeTransition[Th]:this.state,s=t.applyToState(i,e),o=Eh(i.queryParams,s.queryParams);if(Td(s.routeInfos,i.routeInfos)){if(o){let t=this.queryParamsTransition(o,r,i,s);return t.queryParamsOnly=!0,t}return this.activeTransition||new Ah(this,void 0,void 0)}if(e){let t=new Ah(this,void 0,s);return t.isIntermediate=!0,this.toReadOnlyInfos(t,s),this.setupContexts(s,t),this.routeWillChange(t),this.activeTransition}return n=new Ah(this,t,s,void 0,this.activeTransition),function(t,e){if(t.length!==e.length)return!1;for(let n=0,r=t.length;nthis.finalizeTransition(n,t),null,Lh("Settle transition promise when transition is finalized")),r||this.notifyExistingHandlers(s,n),this.fireQueryParamDidChange(s,o),n}doTransition(t,e=[],n=!1){let r,i=e[e.length-1],s={};if(i&&Object.prototype.hasOwnProperty.call(i,"queryParams")&&(s=e.pop().queryParams),void 0===t){Ch(this,"Updating query params");let{routeInfos:t}=this.state;r=new Ed(this,t[t.length-1].name,void 0,[],s)}else"/"===t.charAt(0)?(Ch(this,"Attempting URL transition to "+t),r=new Rd(this,t)):(Ch(this,"Attempting transition to "+t),r=new Ed(this,t,void 0,e,s));return this.transitionByIntent(r,n)}finalizeTransition(t,e){try{Ch(t.router,t.sequence,"Resolved all models on destination route; finalizing transition.");let n=e.routeInfos;return this.setupContexts(e,t),t.isAborted?(this.state.routeInfos=this.currentRouteInfos,ia.reject(Oh(t))):(this._updateURL(t,e),t.isActive=!1,this.activeTransition=void 0,this.triggerEvent(this.currentRouteInfos,!0,"didTransition",[]),this.didTransition(this.currentRouteInfos),this.toInfos(t,e.routeInfos,!0),this.routeDidChange(t),Ch(this,t.sequence,"TRANSITION COMPLETE."),n[n.length-1].route)}catch(r){if("object"!=typeof(n=r)||null===n||"TRANSITION_ABORTED"!==n.code){let e=t[Th].routeInfos;t.trigger(!0,"error",r,t,e[e.length-1].route),t.abort()}throw r}var n}setupContexts(t,e){let n,r,i,s=this.partitionRoutes(this.state,t);for(n=0,r=s.exited.length;n=0;--o){let t=r[o];wh(s,t.params),t.route.inaccessibleByURL&&(n=null)}if(n){s.queryParams=t._visibleQueryParams||e.queryParams;let r=this.recognizer.generate(i,s),o=t.isCausedByInitialTransition,a="replace"===n&&!t.isCausedByAbortingTransition,l=t.queryParamsOnly&&"replace"===n,c="replace"===n&&t.isCausedByAbortingReplaceTransition;o||a||l||c?this.replaceURL(r):this.updateURL(r)}}finalizeQueryParamChange(t,e,n){for(let s in e)e.hasOwnProperty(s)&&null===e[s]&&delete e[s];let r=[];this.triggerEvent(t,!0,"finalizeQueryParamChange",[e,r,n]),n&&(n._visibleQueryParams={});let i={};for(let s=0,o=r.length;s0){let n=pd(e,Object.assign({},this._lastQueryParams),{includeAttributes:!0,localizeMapUpdates:!1});t.from=n[n.length-1]||null}}toInfos(t,e,n=!1){if(void 0!==t&&e.length>0){let r=pd(e,Object.assign({},t[Ih]),{includeAttributes:n,localizeMapUpdates:!1});t.to=r[r.length-1]||null}}notifyExistingHandlers(t,e){let n,r,i,s,o=this.state.routeInfos;for(r=o.length,n=0;n{t.setURL(n),mr(e,"currentURL",n)})}didTransition(t){e.didTransition(t)}willTransition(t,n){e.willTransition(t,n)}triggerEvent(t,n,r,i){return jd.bind(e)(t,n,r,i)}routeWillChange(t){e.trigger("routeWillChange",t),e._routerService.trigger("routeWillChange",t),t.isIntermediate&&e.set("currentRoute",t.to)}routeDidChange(t){e.set("currentRoute",t.to),Ps(()=>{e.trigger("routeDidChange",t),e._routerService.trigger("routeDidChange",t)})}transitionDidError(t,n){return t.wasAborted||n.isAborted?Oh(n):(n.trigger(!1,"error",t.error,n,t.route),e._isErrorHandled(t.error)?(n.rollback(),this.routeDidChange(n),t.error):(n.abort(),t.error))}replaceURL(n){t.replaceURL?Ps(()=>{t.replaceURL(n),mr(e,"currentURL",n)}):this.updateURL(n)}},s=this.constructor.dslCallbacks||[Id],o=this._buildDSL();o.route("application",{path:"/",resetNamespace:!0,overrideNameAssertion:!0},function(){for(let t=0;tn.factoryFor(`route-map:${t}`),addRouteForEngine(t,n){e._engineInfoByRoute[t]||(e._engineInfoByRoute[t]=n)}})}_resetQueuedQueryParameterChanges(){this._queuedQPChanges={}}_hasModuleBasedResolver(){let t=hr(Io(this),"application.__registry__.resolver.moduleBasedResolver");return Boolean(t)}startRouting(){if(this.setupRouter()){let t=hr(this,"initialURL");void 0===t&&(t=hr(this,"location").getURL());let e=this.handleURL(t);if(e&&e.error)throw e.error}}setupRouter(){if(this._didSetupRouter)return!1;this._didSetupRouter=!0,this._setupLocation();let t=hr(this,"location");return!hr(t,"cancelRouterSetup")&&(this._initRouterJs(),t.onUpdateURL(t=>{this.handleURL(t)}),!0)}_setOutlets(){if(this.isDestroying||this.isDestroyed)return;let t=this._routerMicrolib.currentRouteInfos;if(!t)return;let e=null,n=null;for(let r of t){let t=td(r.route);if(!t)break;{let r={render:t,outlets:{main:void 0}};n?n.outlets.main=r:e=r,n=r}}if(null!==e)if(this._toplevelView)this._toplevelView.setOutletState(e);else{let t=Io(this),n=t.factoryFor("view:-outlet"),r=t.lookup("application:main"),i=t.lookup("-environment:main"),s=t.lookup("template:-outlet");this._toplevelView=n.create({environment:i,template:s,application:r}),this._toplevelView.setOutletState(e),t.lookup("-application-instance:main").didCreateRootView(this._toplevelView)}}handleURL(t){let e=t.split(/#(.+)?/)[0];return this._doURLTransition("handleURL",e)}_doURLTransition(t,e){this._initialTransitionStarted=!0;let n=this._routerMicrolib[t](e||"/");return $d(n,this),n}transitionTo(...t){if(Wh(t[0]))return this._doURLTransition("transitionTo",t[0]);let{routeName:e,models:n,queryParams:r}=Uh(t);return this._doTransition(e,n,r)}intermediateTransitionTo(t,...e){this._routerMicrolib.intermediateTransitionTo(t,...e),Bd(this)}replaceWith(...t){return this.transitionTo(...t).method("replace")}generate(t,...e){let n=this._routerMicrolib.generate(t,...e);return this.location.formatURL(n)}isActive(t){return this._routerMicrolib.isActive(t)}isActiveIntent(t,e,n){return this.currentState.isActiveIntent(t,e,n)}send(t,...e){this._routerMicrolib.trigger(t,...e)}hasRoute(t){return this._routerMicrolib.hasRoute(t)}reset(){this._didSetupRouter=!1,this._initialTransitionStarted=!1,this._routerMicrolib&&this._routerMicrolib.reset()}willDestroy(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),super.willDestroy(),this.reset();let t=this._engineInstances;for(let e in t){let n=t[e];for(let t in n)_s(n[t],"destroy")}}_activeQPChanged(t,e){this._queuedQPChanges[t]=e,Ps(this,this._fireQueryParamTransition)}_updatingQPChanged(t){this._qpUpdates.add(t)}_fireQueryParamTransition(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()}_setupLocation(){let t=this.location,e=this.rootURL,n=Io(this);"string"==typeof t&&(t=mr(this,"location",n.lookup(`location:${t}`))),null!==t&&"object"==typeof t&&(e&&mr(t,"rootURL",e),"function"==typeof t.initState&&t.initState())}_serializeQueryParams(t,e){qd(this,t,e,(t,n,r)=>{if(r)delete e[t],e[r.urlKey]=r.route.serializeQueryParam(n,r.urlKey,r.type);else{if(void 0===n)return;e[t]=this._serializeQueryParam(n,Sc(n))}})}_serializeQueryParam(t,e){return null==t?t:"array"===e?JSON.stringify(t):`${t}`}_deserializeQueryParams(t,e){qd(this,t,e,(t,n,r)=>{r&&(delete e[t],e[r.prop]=r.route.deserializeQueryParam(n,r.urlKey,r.type))})}_deserializeQueryParam(t,e){return null==t?t:"boolean"===e?"true"===t:"number"===e?Number(t).valueOf():"array"===e?Yc(JSON.parse(t)):t}_pruneDefaultQueryParamValues(t,e){let n=this._queryParamsFor(t);for(let r in e){let t=n.map[r];t&&t.serializedDefaultValue===e[r]&&delete e[r]}}_doTransition(t,e,n,r){let i=t||function(t){let e=t.activeTransition?t.activeTransition[Th].routeInfos:t.state.routeInfos;return e[e.length-1].name}(this._routerMicrolib);this._initialTransitionStarted=!0;let s={};this._processActiveTransitionQueryParams(i,e,s,n),Object.assign(s,n),this._prepareQueryParams(i,e,s,Boolean(r));let o=this._routerMicrolib.transitionTo(i,...e,{queryParams:s});return $d(o,this),o}_processActiveTransitionQueryParams(t,e,n,r){if(!this._routerMicrolib.activeTransition)return;let i={},s=this._qpUpdates,o=ed(this,this._routerMicrolib.activeTransition[Th]);for(let a in o)s.has(a)||(i[a]=o[a]);this._fullyScopeQueryParams(t,e,r),this._fullyScopeQueryParams(t,e,i),Object.assign(n,i)}_prepareQueryParams(t,e,n,r){let i=Ud(this,t,e);this._hydrateUnsuppliedQueryParams(i,n,Boolean(r)),this._serializeQueryParams(i.routeInfos,n),r||this._pruneDefaultQueryParamValues(i.routeInfos,n)}_getQPMeta(t){let e=t.route;return e&&hr(e,"_qp")}_queryParamsFor(t){let e=t[t.length-1].name,n=this._qpCache[e];if(void 0!==n)return n;let r,i=!0,s={},o=[];for(let l of t)if(r=this._getQPMeta(l),r){for(let t of r.qps)o.push(t);Object.assign(s,r.map)}else i=!1;let a={qps:o,map:s};return i&&(this._qpCache[e]=a),a}_fullyScopeQueryParams(t,e,n){let r,i=Ud(this,t,e).routeInfos;for(let s of i)if(r=this._getQPMeta(s),r)for(let t of r.qps){let e=t.prop in n&&t.prop||t.scopedPropertyName in n&&t.scopedPropertyName||t.urlKey in n&&t.urlKey;e&&e!==t.scopedPropertyName&&(n[t.scopedPropertyName]=n[e],delete n[e])}}_hydrateUnsuppliedQueryParams(t,e,n){let r,i,s,o=t.routeInfos,a=this._bucketCache;for(let l of o)if(r=this._getQPMeta(l),r)for(let n=0,o=r.qps.length;n=0;--n){let r=t[n],i=r.route;if(void 0!==i&&!0!==e(i,r))return}}var Nd={willResolveModel(t,e,n){this._scheduleLoadingEvent(e,n)},error(t,e,n){let r=this,i=t[t.length-1];Od(t,(t,n)=>{if(n!==i){let n=Fd(t,"error");if(n)return r._markErrorAsHandled(e),r.intermediateTransitionTo(n,e),!1}let s=zd(t,"error");return!s||(r._markErrorAsHandled(e),r.intermediateTransitionTo(s,e),!1)}),function(t,e){let n,r=[];n=t&&"object"==typeof t&&"object"==typeof t.errorThrown?t.errorThrown:t,e&&r.push(e),n&&(n.message&&r.push(n.message),n.stack&&r.push(n.stack),"string"==typeof n&&r.push(n)),console.error(...r)}(e,`Error while processing route: ${n.targetName}`)},loading(t,e){let n=this,r=t[t.length-1];Od(t,(t,i)=>{if(i!==r){let e=Fd(t,"loading");if(e)return n.intermediateTransitionTo(e),!1}let s=zd(t,"loading");return s?(n.intermediateTransitionTo(s),!1):e.pivotHandler!==t})}};function zd(t,e){let n=Io(t),{routeName:r,fullRouteName:i,_router:s}=t,o=`${i}_${e}`;return Dd(n,s,`${r}_${e}`,o)?o:""}function Fd(t,e){let n=Io(t),{routeName:r,fullRouteName:i,_router:s}=t,o="application"===i?e:`${i}.${e}`;return Dd(n,s,"application"===r?e:`${r}.${e}`,o)?o:""}function Dd(t,e,n,r){let i=e.hasRoute(r),s=t.factoryFor(`template:${n}`)||t.factoryFor(`route:${n}`);return i&&s}function jd(t,e,n,r){if(!t){if(e)return;throw new Error(`Can't trigger action '${n}' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call \`.send()\` on the \`Transition\` object passed to the \`model/beforeModel/afterModel\` hooks.`)}let i,s,o,a=!1;for(let c=t.length-1;c>=0;c--)if(i=t[c],s=i.route,o=s&&s.actions&&s.actions[n],o){if(!0!==o.apply(s,r))return void("error"===n&&s._router._markErrorAsHandled(r[0]));a=!0}let l=Nd[n];if(l)l.call(this,t,...r);else if(!a&&!e)throw new Error(`Nothing handled the action '${n}'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.`)}function Ud(t,e,n){let r=t._routerMicrolib.applyIntent(e,n),{routeInfos:i,params:s}=r;for(let o of i)o.isResolved?s[o.name]=o.params:s[o.name]=o.serialize(o.context);return r}function Bd(t){let e=t._routerMicrolib.currentRouteInfos;if(0===e.length)return;let n=Ad._routePath(e),r=e[e.length-1].name,i=t.location.getURL();mr(t,"currentPath",n),mr(t,"currentRouteName",r),mr(t,"currentURL",i)}function $d(t,e){let n=new hd(e,e._routerMicrolib,t[Th]);e.currentState||e.set("currentState",n),e.set("targetState",n),t.promise=t.catch(t=>{if(!e._isErrorHandled(t))throw t;e._clearHandledError(t)},"Transition Error")}function qd(t,e,n,r){let i=t._queryParamsFor(e);for(let s in n)Object.prototype.hasOwnProperty.call(n,s)&&r(s,n[s],i.map[s])}function Vd(t){return void 0!==t.hash?t.hash.substring(0):""}Ad.reopen({didTransition:function(){Bd(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange("url"),this.set("currentState",this.targetState)},willTransition:function(){},rootURL:"/",location:"hash",url:Xn(function(){let t=hr(this,"location");if("string"!=typeof t)return t.getURL()})});var Wd=class extends Bl{_hashchangeHandler;_location;init(){this.location=this._location??window.location,this._hashchangeHandler=void 0}getHash(){return Vd(this.location)}getURL(){let t=this.getHash().substring(1),e=t;return"/"!==e[0]&&(e="/",t&&(e+=`#${t}`)),e}setURL(t){this.location.hash=t,this.lastSetURL=t}replaceURL(t){this.location.replace(`#${t}`),this.lastSetURL=t}lastSetURL=null;onUpdateURL(t){this._removeEventListener(),this._hashchangeHandler=Cs(this,function(){let e=this.getURL();this.lastSetURL!==e&&(this.lastSetURL=null,t(e))}),window.addEventListener("hashchange",this._hashchangeHandler)}formatURL(t){return`#${t}`}willDestroy(){this._removeEventListener()}_removeEventListener(){this._hashchangeHandler&&window.removeEventListener("hashchange",this._hashchangeHandler)}};function Hd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){let e,n;return e=16*Math.random()|0,n="x"===t?e:3&e|8,n.toString(16)})}var Gd=class extends Bl{history;_popstateHandler;rootURL="/";getHash(){return Vd(this.location)}init(){this._super(...arguments);let t=document.querySelector("base"),e="";null!==t&&t.hasAttribute("href")&&(e=t.getAttribute("href")??""),this.baseURL=e,this.location=this.location??window.location,this._popstateHandler=void 0}initState(){let t=this.history??window.history;this.history=t;let{state:e}=t,n=this.formatURL(this.getURL());e&&e.path===n||this.replaceState(n)}getURL(){let{location:t,rootURL:e,baseURL:n}=this,r=t.pathname;e=e.replace(/\/$/,""),n=n.replace(/\/$/,"");let i=r.replace(new RegExp(`^${n}(?=/|$)`),"").replace(new RegExp(`^${e}(?=/|$)`),"").replace(/\/\//g,"/");return i+=(t.search||"")+this.getHash(),i}setURL(t){let{state:e}=this.history;t=this.formatURL(t),e&&e.path===t||this.pushState(t)}replaceURL(t){let{state:e}=this.history;t=this.formatURL(t),e&&e.path===t||this.replaceState(t)}pushState(t){let e={path:t,uuid:Hd()};this.history.pushState(e,"",t)}replaceState(t){let e={path:t,uuid:Hd()};this.history.replaceState(e,"",t)}onUpdateURL(t){this._removeEventListener(),this._popstateHandler=()=>{t(this.getURL())},window.addEventListener("popstate",this._popstateHandler)}formatURL(t){let{rootURL:e,baseURL:n}=this;return""!==t?(e=e.replace(/\/$/,""),n=n.replace(/\/$/,"")):"/"===n[0]&&"/"===e[0]&&(n=n.replace(/\/$/,"")),n+e+t}willDestroy(){this._removeEventListener()}_removeEventListener(){this._popstateHandler&&window.removeEventListener("popstate",this._popstateHandler)}},Zd=class extends Bl{updateCallback;initState(){this._super(...arguments);let{rootURL:t}=this}getURL(){let{path:t,rootURL:e}=this;return e=e.replace(/\/$/,""),t.replace(new RegExp(`^${e}(?=/|$)`),"")}setURL(t){this.path=t}onUpdateURL(t){this.updateCallback=t}handleURL(t){this.path=t,this.updateCallback&&this.updateCallback(t)}formatURL(t){let{rootURL:e}=this;return""!==t&&(e=e.replace(/\/$/,"")),e+t}};function Kd(t,e){return(t,...n)=>{let r=function(t,e){let n=[];function r(t){n.push(t)}for(let i of e)zn(i,r);return n}(0,[t,...n]);return Xn(...r,function(){let t=r.length-1;for(let n=0;nt),Kd(0,t=>!t);var Xd=/[ _]/g,Jd=new or(1e3,t=>function(t){return ip.get(t)}(t).replace(Xd,"-")),Qd=/^(-|_)+(.)?/,tp=/(.)(-|_|\.|\s)+(.)?/g,ep=/(^|\/|\.)([a-z])/g,np=new or(1e3,t=>{let e=(t,e,n)=>n?`_${n.toUpperCase()}`:"",n=(t,e,n,r)=>e+(r?r.toUpperCase():""),r=t.split("/");for(let i=0;it.toUpperCase())}),rp=/([a-z\d])([A-Z])/g,ip=new or(1e3,t=>t.replace(rp,"$1_$2").toLowerCase());function sp(t){return Jd.get(t)}function op(t){return Object.hasOwnProperty.call(t.since,"enabled")||N._ALL_DEPRECATIONS_ENABLED}var ap=parseFloat(N._OVERRIDE_DEPRECATION_VERSION??"7.2.0");function lp(t){return function(t,e=ap){let n=t.replace(/(\.0+)/g,"");return e>=parseFloat(n)}(t.until)}function cp(t){return{options:t,test:!op(t),isEnabled:op(t)||lp(t),isRemoved:lp(t)}}var up={DEPRECATE_IMPORT_EMBER:t=>cp({id:`deprecate-import-${sp(t).toLowerCase()}-from-ember`,for:"ember-source",since:{available:"5.10.0",enabled:"6.5.0"},until:"7.0.0",url:`https://deprecations.emberjs.com/id/import-${sp(t).toLowerCase()}-from-ember`}),DEPRECATE_IMPORT_INJECT:cp({for:"ember-source",id:"importing-inject-from-ember-service",since:{available:"6.2.0",enabled:"6.3.0"},until:"7.0.0",url:"https://deprecations.emberjs.com/id/importing-inject-from-ember-service"})},hp=a({default:()=>fp,inject:()=>dp,service:()=>pp});function dp(...t){return function(t,e){const{options:n}=e;if(e.isRemoved)throw new Error(`The API deprecated by ${n.id} was removed in ember-source ${n.until}. The message was: Importing \`inject\` from \`@ember/service\` is deprecated. Please import \`service\` instead.. Please see ${n.url} for more details.`)}(0,up.DEPRECATE_IMPORT_INJECT),qr("service",...t)}function pp(...t){return qr("service",...t)}var fp=class extends Xc{static isServiceFactory=!0},gp=Symbol("ROUTER");function mp(t,e){return"/"===e?t:t.substring(e.length)}var yp=class extends(fp.extend(bc)){[gp];get _router(){let t=this[gp];if(void 0!==t)return t;let e=Br(this).lookup("router:main");return this[gp]=e}willDestroy(){super.willDestroy(),this[gp]=void 0}transitionTo(...t){if(Wh(t[0]))return this._router._doURLTransition("transitionTo",t[0]);let{routeName:e,models:n,queryParams:r}=Uh(t);return this._router._doTransition(e,n,r,!0)}replaceWith(...t){return this.transitionTo(...t).method("replace")}urlFor(t,...e){return this._router.setupRouter(),this._router.generate(t,...e)}isActive(...t){let{routeName:e,models:n,queryParams:r}=Uh(t);this._router.setupRouter();let i=this._router._routerMicrolib;if(zt(Kt(this._router,"currentURL")),!i.isActiveIntent(e,n))return!1;if(Object.keys(r).length>0){let t=e;r=Object.assign({},r),this._router._prepareQueryParams(t,n,r,!0);let s=Object.assign({},i.state.queryParams);return this._router._prepareQueryParams(t,n,s,!0),Hh(r,s)}return!0}recognize(t){this._router.setupRouter();let e=mp(t,this.rootURL);return this._router._routerMicrolib.recognize(e)}recognizeAndLoad(t){this._router.setupRouter();let e=mp(t,this.rootURL);return this._router._routerMicrolib.recognizeAndLoad(e)}refresh(t){if(!t)return this._router._routerMicrolib.refresh();let e=Br(this).lookup(`route:${t}`);return this._router._routerMicrolib.refresh(e)}static{Zh(this.prototype,"currentRouteName",[Yd("_router.currentRouteName")])}#o=void Yh(this,"currentRouteName");static{Zh(this.prototype,"currentURL",[Yd("_router.currentURL")])}#a=void Yh(this,"currentURL");static{Zh(this.prototype,"location",[Yd("_router.location")])}#l=void Yh(this,"location");static{Zh(this.prototype,"rootURL",[Yd("_router.rootURL")])}#c=void Yh(this,"rootURL");static{Zh(this.prototype,"currentRoute",[Yd("_router.currentRoute")])}#u=void Yh(this,"currentRoute")},vp=class extends fp{[gp];get router(){let t=this[gp];if(void 0!==t)return t;let e=Br(this).lookup("router:main");return e.setupRouter(),this[gp]=e}hasRoute(t){return this.router.hasRoute(t)}transitionTo(t,e,n,r){let i=this.router._doTransition(t,e,n);return r&&i.method("replace"),i}normalizeQueryParams(t,e,n){this.router._prepareQueryParams(t,e,n)}_generateURL(t,e,n){let r={};return n&&(Object.assign(r,n),this.normalizeQueryParams(t,e,r)),this.router.generate(t,...e,{queryParams:r})}generateURL(t,e,n){if(this.router._initialTransitionStarted)return this._generateURL(t,e,n);try{return this._generateURL(t,e,n)}catch(r){return}}isActiveForRoute(t,e,n,r){let i=this.router._routerMicrolib.recognizer.handlersFor(n),s=i[i.length-1].handler,o=function(t,e){let n=0;for(let r=0;ro&&(n=s),r.isActiveIntent(n,t,e)}};vp.reopen({targetState:Yd("router.targetState"),currentState:Yd("router.currentState"),currentRouteName:Yd("router.currentRouteName"),currentPath:Yd("router.currentPath")});var bp=class{cache;constructor(){this.cache=new Map}has(t){return this.cache.has(t)}stash(t,e,n){let r=this.cache.get(t);void 0===r&&(r=new Map,this.cache.set(t,r)),r.set(e,n)}lookup(t,e,n){if(!this.has(t))return n;let r=this.cache.get(t);return r.has(e)?r.get(e):n}},wp=Ao?self:null,_p=Ao?self.location:null,xp=Ao?self.history:null,Cp=Ao?self.navigator.userAgent:"Lynx (textmode)",kp=!(!Ao||"object"!=typeof chrome||"object"==typeof opera),Sp=!!Ao&&/Firefox|FxiOS/.test(Cp),Ep=Object.freeze(Object.defineProperty({__proto__:null,hasDOM:Ao,history:xp,isChrome:kp,isFirefox:Sp,location:_p,userAgent:Cp,window:wp},Symbol.toStringTag,{value:"Module"})),Rp=-536870913;function Lp(t){return(t|=0)<0?function(t){return t&Rp}(t):function(t){return~t}(t)}function Tp(t){return(t|=0)>Rp?function(t){return~t}(t):function(t){return 536870912|t}(t)}function Pp(t){if("number"==typeof t)return t;{let e=t.errors[0];throw new Error(`Compile Error: ${e.problem} @ ${e.span.start}..${e.span.end}`)}}function Ip(t){if("error"===t.result)throw new Error(`Compile Error: ${t.problem} @ ${t.span.start}..${t.span.end}`);return t}[1,-1].forEach(t=>Tp(Lp(t)));var Mp=new WeakMap,Ap=Reflect.getPrototypeOf;function Op(t,e){return Mp.set(e,t),e}function Np(t){let e=t;for(;null!==e;){let t=Mp.get(e);if(void 0!==t)return t;e=Ap(e)}}var zp=Object.assign;function Fp(t){return Object.values(t)}function Dp(t){return Object.entries(t)}function jp(t){return Object.keys(t)}var Up=Object.freeze([]);function Bp(){return Up}var $p=Bp(),qp=Bp();function Vp(t){return t===Up}function*Wp(t){for(let e=t.length-1;e>=0;e--)yield t[e]}function*Hp(t){let e=0;for(const n of t)yield[e++,n]}function*Gp(t,e){for(let n=0;n255)throw new Error(`Opcode type over 8-bits. Got ${t}.`);let r=t|e|arguments.length-2<<8;this.buffer.push(r);for(const i of n)this.buffer.push(i);this.size=this.buffer.length}patch(t,e){if(-1!==this.buffer[t+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.");this.buffer[t+1]=e}},Xp=32,Jp=31;function Qp(t){return e=>{if(!function(t){return Array.isArray(t)&&2===t.length}(e))return!1;let n=e[0];return n===Jp||n===Xp||n===t}}var tf=Qp(39),ef=Qp(38),nf=Qp(37),rf=Qp(35);function sf(t,e,n,r){let{symbols:{upvars:i}}=n,s=i[t[1]],o=e?.lookupBuiltInHelper?.(s)??null;return r.helper(o,s)}var of=1004,af=1005,lf=1010,cf=1e3,uf=1001,hf=1002;function df(t){return{type:1,value:t}}function pf(t){return{type:5,value:t}}function ff(t){return{type:7,value:t}}function gf(t){return{type:8,value:t}}var mf=class{labels=ne();targets=[];label(t,e){this.labels[t]=e}target(t,e){this.targets.push({at:t,target:e})}patch(t){let{targets:e,labels:n}=this;for(const{at:r,target:i}of e){let e=n[i]-r;Kp(t.getbyaddr(r)),t.setbyaddr(r,e)}}};function yf(t,e,n,r){let{program:{constants:i},resolver:s}=e;if(function(t){return t<1e3}(r[0])){let[e,...n]=r;t.push(i,e,...n)}else switch(r[0]){case cf:return t.label(r[1]);case uf:return t.startLabels();case hf:return t.stopLabels();case of:return function(t,e,n,[,r,i]){if(tf(r),r[0]===Xp){let{scopeValues:t,owner:s,symbols:{lexical:o}}=n,a=t[r[1]];i(e.component(a,s,!1,o?.at(r[1])))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupComponent?.(a,o)??null;i(e.resolvedComponent(l,a))}}(s,i,n,r);case 1003:return function(t,e,n,[,r,i]){ef(r);let s=r[0];if(s===Xp){let{scopeValues:t,symbols:{lexical:s}}=n,o=t[r[1]];i(e.modifier(o,s?.at(r[1])??void 0))}else if(s===Jp){let{symbols:{upvars:s}}=n,o=s[r[1]],a=t?.lookupBuiltInModifier?.(o)??null;i(e.modifier(a,o))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupModifier?.(a,o)??null;i(e.modifier(l))}}(s,i,n,r);case af:return function(t,e,n,[,r,i]){nf(r);let s=r[0];if(s===Xp){let{scopeValues:t}=n,s=t[r[1]];i(e.helper(s))}else if(s===Jp)i(sf(r,t,n,e));else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupHelper?.(a,o)??null;i(e.helper(l,a))}}(s,i,n,r);case 1007:return function(t,e,n,[,r,{ifComponent:i,ifHelper:s}]){rf(r);let o=r[0];if(o===Xp){let{scopeValues:t,owner:o,symbols:{lexical:a}}=n,l=t[r[1]],c=e.component(l,o,!0,a?.at(r[1]));if(null!==c)return void i(c);s(e.helper(l,null,!0))}else if(o===Jp)s(sf(r,t,n,e));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=t?.lookupComponent?.(l,a)??null;if(null!==c)i(e.resolvedComponent(c,l));else{let n=t?.lookupHelper?.(l,a)??null;s(e.helper(n,l))}}}(s,i,n,r);case 1008:return function(t,e,n,[,r,{ifComponent:i,ifHelper:s,ifValue:o}]){rf(r);let a=r[0];if(a===Xp){let{scopeValues:t,owner:a,symbols:{lexical:l}}=n,c=t[r[1]];if("function"!=typeof c&&("object"!=typeof c||null===c))return void o(e.value(c));let u=e.component(c,a,!0,l?.at(r[1]));if(null!==u)return void i(u);let h=e.helper(c,null,!0);if(null!==h)return void s(h);o(e.value(c))}else if(a===Jp)s(sf(r,t,n,e));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=t?.lookupComponent?.(l,a)??null;if(null!==c)return void i(e.resolvedComponent(c,l));let u=t?.lookupHelper?.(l,a)??null;null!==u&&s(e.helper(u,l))}}(s,i,n,r);case lf:{let[,t,e]=r;e(n.symbols.upvars[t],n.moduleName);break}case 1011:{let[,t,e]=r,s=n.scopeValues[t];e(i.value(s));break}default:throw new Error(`Unexpected high level opcode ${r[0]}`)}}var vf=class{labelsStack=new se;encoder=new Yp([]);errors=[];handle;constructor(t,e,n){this.heap=t,this.meta=e,this.stdlib=n,this.handle=t.malloc()}error(t){this.encoder.encode(30,0),this.errors.push(t)}commit(t){let e=this.handle;return this.heap.pushMachine(5),this.heap.finishMalloc(e,t),Qt(this.errors)?{errors:this.errors,handle:e}:e}push(t,e,...n){let{heap:r}=this,i=e|((s=e)>=0&&s<=15?1024:0)|n.length<<8;var s;r.pushRaw(i);for(let o=0;o=-536870912?Lp(n):function(t){return{type:6,value:t}}(n)),t(30,n)}function Ef(t,e,n,r){t(0),Of(t,n,r,!1),t(16,e),t(1),t(36,8)}function Rf(t,e,n,r){t(0),Of(t,e,n,!1),t(33,2,1),t(107),r?(t(36,8),r(),t(1),t(34,1)):(t(1),t(34,1),t(36,8))}function Lf(t,e,n,r,i){t(0),Of(t,r,i,!1),t(86),Cf(t,n),t(77,e,{type:2,value:void 0}),t(1),t(36,8)}function Tf(t,e,n){Of(t,n,null,!0),t(23,e),t(24),t(61),t(64),t(40),t(1)}function Pf(t,e){!function(t,e){null!==e?t(63,ff({parameters:e})):Sf(t,null)}(t,e&&e[1]),t(62),Af(t,e)}function If(t,e){t(0),Af(t,e),t(61),t(2),t(1)}function Mf(t,e,n){let r=e[1],i=r.length,s=Math.min(n,i);if(0!==s){if(t(0),s){t(39);for(let e=0;e{for(let n of e)Cf(t,n);t(27,e.length)}),_f.add(28,(t,[,e,n,r])=>{nf(e)?t(af,e,e=>{Ef(t,e,n,r)}):(Cf(t,e),Rf(t,n,r))}),_f.add(50,(t,[,e,n,r,i])=>{Lf(t,n,e,r,i)}),_f.add(30,(t,[,e,n])=>{t(21,e),xf(t,n)}),_f.add(Xp,(t,[,e,n])=>{t(1011,e,e=>{t(29,e),xf(t,n)})}),_f.add(Jp,(t,e)=>{t(lf,e[1],()=>{t(af,e,e=>{Ef(t,e,null,null)})})}),_f.add(37,(t,e)=>{t(lf,e[1],()=>{t(af,e,e=>{Ef(t,e,null,null)})})}),_f.add(27,t=>kf(t,void 0)),_f.add(48,(t,[,e])=>{Cf(t,e),t(25)}),_f.add(49,(t,[,e])=>{Cf(t,e),t(24),t(61),t(26)}),_f.add(52,(t,[,e,n,r])=>{Cf(t,r),Cf(t,n),Cf(t,e),t(109)}),_f.add(51,(t,[,e])=>{Cf(t,e),t(110)}),_f.add(53,(t,[,e])=>{Cf(t,e),t(111)}),_f.add(54,(t,[,e])=>{t(0),Of(t,e,null,!1),t(112),t(1),t(36,8)});var Ff=class t{names;constructor(t){this.blocks=t,this.names=t?Object.keys(t):[]}get(t){return this.blocks&&this.blocks[t]||null}has(t){let{blocks:e}=this;return null!==e&&t in e}with(e,n){let{blocks:r}=this;return new t(r?zp({},r,{[e]:n}):{[e]:n})}get hasAny(){return null!==this.blocks}},Df=new Ff(null);function jf(t){if(null===t)return Df;let e=ne(),[n,r]=t;for(const[i,s]of Hp(n))e[s]=Xt(r[i]);return new Ff(e)}function Uf(t,e,n){let r=[],i=0;n(function(t,e){r.push({match:t,callback:e,label:"CLAUSE"+i++})}),t(69,1),e(),t(uf);for(let s of r.slice(0,-1))t(67,df(s.label),s.match);for(let s=r.length-1;s>=0;s--){let e=Xt(r[s]);t(cf,e.label),t(34,1),e.callback(),0!==s&&t(4,df("END"))}t(cf,"END"),t(hf),t(70)}function Bf(t,e,n){t(uf),t(0),t(6,df("ENDINITIAL")),t(69,e()),n(),t(cf,"FINALLY"),t(70),t(5),t(cf,"ENDINITIAL"),t(1),t(hf)}function $f(t,e,n,r){return Bf(t,e,()=>{t(66,df("ELSE")),n(),t(4,df("FINALLY")),t(cf,"ELSE"),void 0!==r&&r()})}var qf="&attrs";function Vf(t,e,n,r,i,s){let{compilable:o,capabilities:a,handle:l}=e,c=n?[n,[]]:null,u=jf(s);o?(t(78,l),function(t,{capabilities:e,layout:n,elementBlock:r,positional:i,named:s,blocks:o}){let{symbolTable:a}=n;if(bu(e,fu.prepareArgs))return void Hf(t,{capabilities:e,elementBlock:r,positional:i,named:s,atNames:!0,blocks:o,layout:n});t(36,4),t(33,3,1),t(35,4),t(0);let{symbols:l}=a,c=[],u=[],h=[],d=o.names;if(null!==r){let e=l.indexOf(qf);-1!==e&&(Pf(t,r),c.push(e))}for(const p of d){let e=l.indexOf(`&${p}`);-1!==e&&(Pf(t,o.get(p)),c.push(e))}if(bu(e,fu.createArgs)){let e=Nf(t,i)<<4;e|=8;let n=$p;if(null!==s){n=s[0];let e=s[1];for(let r=0;r0?1:0),t(19,0);for(const p of Wp(u))-1===p?t(34,1):t(19,p+1);null!==i&&t(34,i.length);for(const p of Wp(c))t(20,p+1);t(28,gf(n)),t(61),t(2),t(100,4),t(1),t(40),bu(e,fu.dynamicScope)&&t(60),t(98),t(35,4)}(t,{capabilities:a,layout:o,elementBlock:c,positional:r,named:i,blocks:u})):(t(78,l),Hf(t,{capabilities:a,elementBlock:c,positional:r,named:i,atNames:!0,blocks:u}))}function Wf(t,e,n,r,i,s,o,a){let l=n?[n,[]]:null,c=jf(s);Bf(t,()=>(Cf(t,e),t(33,3,0),2),()=>{t(66,df("ELSE")),a?t(81):t(80,{type:2,value:void 0}),t(79),Hf(t,{capabilities:!0,elementBlock:l,positional:r,named:i,atNames:o,blocks:c}),t(cf,"ELSE")})}function Hf(t,{capabilities:e,elementBlock:n,positional:r,named:i,atNames:s,blocks:o,layout:a}){let l=Boolean(o),c=!0===e||bu(e,fu.prepareArgs)||0!==i?.[0].length,u=o.with("attrs",n);t(36,4),t(33,3,1),t(35,4),t(0),function(t,e,n,r,i){let s=r.names;for(const l of s)Pf(t,r.get(l));let o=Nf(t,e)<<4;i&&(o|=8),r.hasAny&&(o|=7);let a=Up;if(n){a=n[0];let e=n[1];for(let n=0;n{a?(t(63,ff(a.symbolTable)),t(28,gf(a)),t(61)):t(92,4),t(95,4)}),t(35,4)}function Gf(t,e,n,r,i=null){t(97,4),t(59),t(87,0|e),i&&i(),t(88,4),t(90,4),t(38,4),t(19,0),r&&t(17,4),n&&t(18,4),t(34,1),t(96,4),t(100,4),t(1),t(40),t(60),t(98)}var Zf=new wf,Kf=["class","id","value","name","type","style","href"],Yf=["div","span","p","a"];function Xf(t){return"string"==typeof t?t:Yf[t]}function Jf(t){return"string"==typeof t?t:Kf[t]}function Qf(t){return null===t?null:[t[0].map(t=>`@${t}`),t[1]]}Zf.add(3,(t,e)=>t(42,e[1])),Zf.add(13,t=>t(55)),Zf.add(12,t=>t(54)),Zf.add(4,(t,[,e,n,r])=>{ef(e)?t(1003,e,e=>{t(0),Of(t,n,r,!1),t(57,e),t(1)}):(Cf(t,e),t(0),Of(t,n,r,!1),t(33,2,1),t(108),t(1))}),Zf.add(14,(t,[,e,n,r])=>{t(51,Jf(e),n,r??null)}),Zf.add(24,(t,[,e,n,r])=>{t(105,Jf(e),n,r??null)}),Zf.add(15,(t,[,e,n,r])=>{Cf(t,n),t(52,Jf(e),!1,r??null)}),Zf.add(22,(t,[,e,n,r])=>{Cf(t,n),t(52,Jf(e),!0,r??null)}),Zf.add(16,(t,[,e,n,r])=>{Cf(t,n),t(53,Jf(e),!1,r??null)}),Zf.add(23,(t,[,e,n,r])=>{Cf(t,n),t(53,Jf(e),!0,r??null)}),Zf.add(10,(t,[,e])=>{t(48,Xf(e))}),Zf.add(11,(t,[,e])=>{t(89),t(48,Xf(e))}),Zf.add(8,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,n,null,r,i)}):Wf(t,e,n,null,r,i,!0,!0)}),Zf.add(18,(t,[,e,n])=>Tf(t,e,n)),Zf.add(17,(t,[,e])=>Tf(t,e,null)),Zf.add(26,(t,[,e,n,r])=>{t(103,function(t,e,n){return{type:3,value:{locals:t,upvars:e,lexical:n}}}(e,n,r))}),Zf.add(1,(t,[,e])=>{if(Array.isArray(e))if(rf(e))t(1008,e,{ifComponent(e){Vf(t,e,null,null,null,null)},ifHelper(e){t(0),Ef(t,e,null,null),t(3,pf("cautious-non-dynamic-append")),t(1)},ifValue(e){t(0),t(29,e),t(3,pf("cautious-non-dynamic-append")),t(1)}});else if(28===e[0]){let[,n,r,i]=e;rf(n)?t(1007,n,{ifComponent(e){Vf(t,e,null,r,Qf(i),null)},ifHelper(e){t(0),Ef(t,e,r,i),t(3,pf("cautious-non-dynamic-append")),t(1)}}):Uf(t,()=>{Cf(t,n),t(106)},e=>{e(0,()=>{t(68),t(81),t(79),Hf(t,{capabilities:!0,elementBlock:null,positional:r,named:i,atNames:!1,blocks:jf(null)})}),e(1,()=>{Rf(t,r,i,()=>{t(3,pf("cautious-non-dynamic-append"))})})})}else t(0),Cf(t,e),t(3,pf("cautious-append")),t(1);else t(41,null==e?"":String(e))}),Zf.add(2,(t,[,e])=>{Array.isArray(e)?(t(0),Cf(t,e),t(3,pf("trusting-append")),t(1)):t(41,null==e?"":String(e))}),Zf.add(6,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,null,n,Qf(r),i)}):Wf(t,e,null,n,r,i,!1,!1)}),Zf.add(40,(t,[,e,n,r,i])=>{$f(t,()=>(Cf(t,n),void 0===i?kf(t,void 0):Cf(t,i),Cf(t,r),t(33,3,0),4),()=>{t(50),If(t,e),t(56)})}),Zf.add(41,(t,[,e,n,r])=>$f(t,()=>(Cf(t,e),t(71),1),()=>{If(t,n)},r?()=>{If(t,r)}:void 0)),Zf.add(42,(t,[,e,n,r,i])=>Bf(t,()=>(n?Cf(t,n):kf(t,null),Cf(t,e),2),()=>{t(72,df("BODY"),df("ELSE")),t(0),t(33,2,1),t(6,df("ITER")),t(cf,"ITER"),t(74,df("BREAK")),t(cf,"BODY"),Mf(t,r,2),t(34,2),t(4,df("FINALLY")),t(cf,"BREAK"),t(1),t(73),t(4,df("FINALLY")),t(cf,"ELSE"),i&&If(t,i)})),Zf.add(44,(t,[,e,n])=>{Mf(t,n,Nf(t,e))}),Zf.add(45,(t,[,e,n])=>{if(e){let[r,i]=e;Nf(t,i),function(t,e,n){t(59),t(58,e),n(),t(60)}(t,r,()=>{If(t,n)})}else If(t,n)}),Zf.add(46,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,null,n,Qf(r),i)}):Wf(t,e,null,n,r,i,!1,!1)});var tg=class{compiled=new WeakMap;constructor(t,e,n,r="plain block"){this.statements=t,this.meta=e,this.symbolTable=n,this.moduleName=r}compile(t){return function(t,e){if(t.compiled.has(e))return t.compiled.get(e);t.compiled.set(e,-1);let{statements:n,meta:r}=t,i=function(t,e,n){let r=Zf,i=bf(n,e),{encoder:s,evaluation:o}=i;function a(...t){yf(s,o,e,t)}for(const l of t)r.compile(a,l);return i.encoder.commit(e.size)}(n,r,e);return t.compiled.set(e,i),i}(this,t)}},eg=class{symbolTable;compiled=null;attrsBlockNumber;meta;constructor(t,e){this.layout=t,this.moduleName=e;let{block:n}=t,[,r]=n;r=r.slice();let i=r.indexOf(qf);this.attrsBlockNumber=-1===i?r.push(qf):i+1,this.symbolTable={symbols:r},this.meta=zf(t)}compile(t){if(null!==this.compiled)return this.compiled;let e=zf(this.layout),n=bf(t,e),{encoder:r,evaluation:i}=n;var s,o,a;s=function(...t){yf(r,i,e,t)},o=this.layout,a=this.attrsBlockNumber,s(uf),function(t,e,n){t(36,5),n(),t(35,5)}(s,0,()=>{s(91,4),s(31),s(33,3,0)}),s(66,df("BODY")),s(36,5),s(89),s(49),s(99,4),Tf(s,a,null),s(54),s(cf,"BODY"),If(s,[o.block[0],[]]),s(36,5),s(66,df("END")),s(55),s(cf,"END"),s(35,5),s(hf);let l=n.encoder.commit(e.size);return"number"!=typeof l||(this.compiled=l),l}},ng=0,rg={cacheHit:0,cacheMiss:0};function ig({id:t,moduleName:e,block:n,scope:r,isStrictMode:i}){let s,o=t||"client-"+ng++,a=null,l=new WeakMap,c=t=>{if(void 0===s&&(s=JSON.parse(n)),void 0===t)return null===a?(rg.cacheMiss++,a=new sg({id:o,block:s,moduleName:e,owner:null,scope:r,isStrictMode:i})):rg.cacheHit++,a;let c=l.get(t);return void 0===c?(rg.cacheMiss++,c=new sg({id:o,block:s,moduleName:e,owner:t,scope:r,isStrictMode:i}),l.set(t,c)):rg.cacheHit++,c};return c.__id=o,c.__meta={moduleName:e},c}var sg=class{result="ok";layout=null;wrappedLayout=null;constructor(t){this.parsedLayout=t}get moduleName(){return this.parsedLayout.moduleName}get id(){return this.parsedLayout.id}get referrer(){return{moduleName:this.parsedLayout.moduleName,owner:this.parsedLayout.owner}}asLayout(){return this.layout?this.layout:this.layout=function(t,e){let[n,r]=t.block;return new tg(n,zf(t),{symbols:r},e)}(zp({},this.parsedLayout),this.moduleName)}asWrappedLayout(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new eg(zp({},this.parsedLayout),this.moduleName)}},og=class{offset=0;constructor(t){this.heap=t}get size(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}get isMachine(){return 1024&this.heap.getbyaddr(this.offset)?1:0}get type(){return 255&this.heap.getbyaddr(this.offset)}get op1(){return this.heap.getbyaddr(this.offset+1)}get op2(){return this.heap.getbyaddr(this.offset+2)}get op3(){return this.heap.getbyaddr(this.offset+3)}},ag=1048576,lg=class{offset=0;heap;handleTable;handleState;constructor(){this.heap=new Int32Array(ag),this.handleTable=[],this.handleState=[]}entries(){return this.offset}pushRaw(t){this.sizeCheck(),this.heap[this.offset++]=t}pushOp(t){this.pushRaw(t)}pushMachine(t){this.pushRaw(1024|t)}sizeCheck(){let{heap:t}=this;if(this.offset===this.heap.length){let e=new Int32Array(t.length+ag);e.set(t,0),this.heap=e}}getbyaddr(t){return this.heap[t]}setbyaddr(t,e){this.heap[t]=e}malloc(){return this.handleTable.push(this.offset),this.handleTable.length-1}finishMalloc(t){}size(){return this.offset}getaddr(t){return this.handleTable[t]}sizeof(t){return this.handleTable,-1}free(t){this.handleState[t]=1}compact(){let t=0,{handleTable:e,handleState:n,heap:r}=this;for(let i=0;i[t,e]));helperDefinitionCache=new WeakMap;modifierDefinitionCache=new WeakMap;componentDefinitionCache=new WeakMap;value(t){let e=this.indexMap,n=e.get(t);return void 0===n&&(n=this.values.push(t)-1,e.set(t,n)),n}array(t){if(0===t.length)return pg;let e=new Array(t.length);for(let n=0;nt}helper(t,e=null,n){let r=this.helperDefinitionCache.get(t);if(void 0===r){let e=Nu(t);if(null===e)return this.helperDefinitionCache.set(t,null),null;let n="function"==typeof e?e:e.getHelper(t);r=this.value(n),this.helperDefinitionCache.set(t,r),this.helperDefinitionCount++}return r}modifier(t,e=null,n){let r=this.modifierDefinitionCache.get(t);if(void 0===r){let n=Mu(t);if(null===n)return this.modifierDefinitionCache.set(t,null),null;let i={resolvedName:e,manager:n,state:t};r=this.value(i),this.modifierDefinitionCache.set(t,r),this.modifierDefinitionCount++}return r}component(t,e,n,r){let i=this.componentDefinitionCache.get(t);if(void 0===i){let n=Fu(t);if(null===n)return this.componentDefinitionCache.set(t,null),null;let s,o=mu(n.getCapabilities(t)),a=Np(t),l=null;s=vu(0,o,fu.dynamicLayout)?a?.(e):a?.(e)??this.defaultTemplate,void 0!==s&&(s=Ip(s),l=vu(0,o,fu.wrapped)?s.asWrappedLayout():s.asLayout()),i={resolvedName:null,handle:-1,manager:n,capabilities:o,state:t,compilable:l},i.handle=this.value(i),r&&(i.debugName=r),this.componentDefinitionCache.set(t,i),this.componentDefinitionCount++}return i}resolvedComponent(t,e){let n=this.componentDefinitionCache.get(t);if(void 0===n){let{manager:r,state:i,template:s}=t,o=mu(r.getCapabilities(t)),a=null;vu(0,o,fu.dynamicLayout)||(s=s??this.defaultTemplate),null!==s&&(s=Ip(s),a=vu(0,o,fu.wrapped)?s.asWrappedLayout():s.asLayout()),n={resolvedName:e,handle:-1,manager:r,capabilities:o,state:i,compilable:a},n.handle=this.value(n),this.componentDefinitionCache.set(t,n),this.componentDefinitionCount++}return n}getValue(t){return this.values[t]}getArray(t){let e=this.reifiedArrs,n=e[t];if(void 0===n){let r=this.getValue(t);n=new Array(r.length);for(const[t,e]of Hp(r))n[t]=this.getValue(e);e[t]=n}return n}},gg=class{constructor(t,e){this.element=t,this.nextSibling=e}},mg=class{constructor(t,e,n){this.parentNode=t,this.first=e,this.last=n}parentElement(){return this.parentNode}firstNode(){return this.first}lastNode(){return this.last}};function yg(t,e){let n=t.parentElement(),r=t.firstNode(),i=t.lastNode(),s=r;for(;;){let t=s.nextSibling;if(n.insertBefore(s,e),s===i)return t;s=Jt(t)}}function vg(t){let e=t.parentElement(),n=t.firstNode(),r=t.lastNode(),i=n;for(;;){let t=i.nextSibling;if(e.removeChild(i),i===r)return t;i=Jt(t)}}function bg(t){return wg(t)?"":String(t)}function wg(t){return null==t||"function"!=typeof t.toString}function _g(t){return null!==t&&"object"==typeof t}function xg(t){return _g(t)&&"function"==typeof t.toHTML}function Cg(t){return"string"==typeof t}function kg(t,e){let n,r;if(e in t)r=e,n="prop";else{let i=e.toLowerCase();i in t?(n="prop",r=i):(n="attr",r=e)}return"prop"!==n||"style"!==r.toLowerCase()&&!function(t,e){let n=Eg[t.toUpperCase()];return!(!n||!n[e.toLowerCase()])}(t.tagName,r)||(n="attr"),{normalized:r,type:n}}var Sg,Eg={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},OUTPUT:{form:!0},BUTTON:{form:!0}},Rg="http://www.w3.org/1998/Math/MathML",Lg=["javascript:","vbscript:"],Tg=["A","AREA","BODY","LINK","IMG","IFRAME","BASE","FORM","BUTTON","INPUT"],Pg=["EMBED"],Ig=["IFRAME","OBJECT"],Mg=["href","src","background","action","formaction","xlink:href"],Ag=["src"],Og=["src","data"];function Ng(t,e){return-1!==t.indexOf(e)}function zg(t,e){return(null===t||Ng(Tg,t.toUpperCase()))&&Ng(Mg,e)}function Fg(t,e){return null!==t&&Ng(Pg,t.toUpperCase())&&Ng(Ag,e)}function Dg(t,e){return null!==t&&Ng(Ig,t.toUpperCase())&&Ng(Og,e)}function jg(t,e){return zg(t,e)||Fg(t,e)||Dg(t,e)}function Ug(t){return Sg||(Sg=function(){const t=URL;if("object"==typeof t&&null!==t&&"function"==typeof t.parse){let e=t;return t=>{let n=null;return"string"==typeof t&&(n=e.parse(t.replace(/[\t\n\r]/gu,"")).protocol),null===n?":":n}}if("function"==typeof t)return e=>{try{return new t(e).protocol}catch{return":"}};throw new Error('@glimmer/runtime needs a valid "globalThis.URL"')}()),Sg(t)}function Bg(t,e,n){if(null==n)return n;if(xg(n))return n.toHTML();const r=t.tagName;let i=bg(n);if(zg(r,e)){let t=Ug(i);if(Ng(Lg,t))return`unsafe:${i}`}if(Dg(r,e)){let t=Ug(i);if("data:"===t||Ng(Lg,t))return`unsafe:${i}`}return Fg(r,e)?`unsafe:${i}`:i}function $g(t,e,n){const{tagName:r,namespaceURI:i}=t,s={element:t,name:e,namespace:n};if("http://www.w3.org/2000/svg"===i)return qg(r,e,s);const{type:o,normalized:a}=kg(t,e);return"attr"===o?qg(r,a,s):function(t,e,n){return jg(t,e)?new Gg(e,n):function(t,e){return("INPUT"===t||"TEXTAREA"===t)&&"value"===e}(t,e)?new Kg(e,n):function(t,e){return"OPTION"===t&&"selected"===e}(t,e)?new Yg(e,n):new Hg(e,n)}(r,a,s)}function qg(t,e,n){return jg(t,e)?new Zg(n):new Wg(n)}var Vg=class{constructor(t){this.attribute=t}},Wg=class extends Vg{set(t,e,n){const r=Xg(e);if(null!==r){const{name:e,namespace:n}=this.attribute;t.__setAttribute(e,r,n)}}update(t,e){const n=Xg(t),{element:r,name:i}=this.attribute;null===n?r.removeAttribute(i):r.setAttribute(i,n)}},Hg=class extends Vg{constructor(t,e){super(e),this.normalizedName=t}value;set(t,e,n){null!=e&&(this.value=e,t.__setProperty(this.normalizedName,e))}update(t,e){const{element:n}=this.attribute;this.value!==t&&(n[this.normalizedName]=this.value=t,null==t&&this.removeAttribute())}removeAttribute(){const{element:t,namespace:e}=this.attribute;e?t.removeAttributeNS(e,this.normalizedName):t.removeAttribute(this.normalizedName)}},Gg=class extends Hg{set(t,e,n){const{element:r,name:i}=this.attribute,s=Bg(r,i,e);super.set(t,s,n)}update(t,e){const{element:n,name:r}=this.attribute,i=Bg(n,r,t);super.update(i,e)}},Zg=class extends Wg{set(t,e,n){const{element:r,name:i}=this.attribute,s=Bg(r,i,e);super.set(t,s,n)}update(t,e){const{element:n,name:r}=this.attribute,i=Bg(n,r,t);super.update(i,e)}},Kg=class extends Hg{set(t,e){const n=bg(e);t.__setProperty("value",n),""===e&&"INPUT"===this.attribute.element.tagName&&t.__setAttribute("value","",null)}update(t){const e=this.attribute.element,n=e.value,r=bg(t);n!==r&&(e.value=r)}},Yg=class extends Hg{set(t,e){null!=e&&!1!==e&&t.__setProperty("selected",!0)}update(t){this.attribute.element.selected=!!t}};function Xg(t){return!1===t||null==t||void 0===t.toString?null:!0===t?"":"function"==typeof t?null:String(t)}var Jg=class{constructor(t){this.node=t}firstNode(){return this.node}},Qg=class{constructor(t){this.node=t}lastNode(){return this.node}},tm=class{dom;updateOperations;constructing=null;operations=null;env;cursors=new se;modifierStack=new se;blockStack=new se;static forInitialRender(t,e){return new this(t,e.element,e.nextSibling).initialize()}static resume(t,e){let n=new this(t,e.parentElement(),e.reset(t)).initialize();return n.pushBlock(e),n}constructor(t,e,n){this.pushElement(e,n),this.env=t,this.dom=t.getAppendOperations(),this.updateOperations=t.getDOM()}initialize(){return this.pushAppendingBlock(),this}debugBlocks(){return this.blockStack.toArray()}get element(){return this.cursors.current.element}get nextSibling(){return this.cursors.current.nextSibling}get hasBlocks(){return this.blockStack.size>0}block(){return this.blockStack.current}popElement(){this.cursors.pop(),this.cursors.current}pushAppendingBlock(){return this.pushBlock(new em(this.element))}pushResettableBlock(){return this.pushBlock(new rm(this.element))}pushBlockList(t){return this.pushBlock(new im(this.element,t))}pushBlock(t,e=!1){let n=this.blockStack.current;return null!==n&&(e||n.didAppendBounds(t)),this.__openBlock(),this.blockStack.push(t),t}popBlock(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()}__openBlock(){}__closeBlock(){}openElement(t){let e=this.__openElement(t);return this.constructing=e,e}__openElement(t){return this.dom.createElement(t,this.element)}flushElement(t){let e=this.element,n=this.constructing;this.__flushElement(e,n),this.constructing=null,this.operations=null,this.pushModifiers(t),this.pushElement(n,null),this.didOpenElement(n)}__flushElement(t,e){this.dom.insertBefore(t,e,this.nextSibling)}closeElement(){return this.willCloseElement(),this.popElement(),this.popModifiers()}pushRemoteElement(t,e,n){return this.__pushRemoteElement(t,e,n)}__pushRemoteElement(t,e,n){if(this.pushElement(t,n),void 0===n)for(;t.lastChild;)t.removeChild(t.lastChild);let r=new nm(t);return this.pushBlock(r,!0)}popRemoteElement(){const t=this.popBlock();return this.popElement(),t}pushElement(t,e=null){this.cursors.push(new gg(t,e))}pushModifiers(t){this.modifierStack.push(t)}popModifiers(){return this.modifierStack.pop()}didAppendBounds(t){return this.block().didAppendBounds(t),t}didAppendNode(t){return this.block().didAppendNode(t),t}didOpenElement(t){return this.block().openElement(t),t}willCloseElement(){this.block().closeElement()}appendText(t){return this.didAppendNode(this.__appendText(t))}__appendText(t){let{dom:e,element:n,nextSibling:r}=this,i=e.createTextNode(t);return e.insertBefore(n,i,r),i}__appendNode(t){return this.dom.insertBefore(this.element,t,this.nextSibling),t}__appendFragment(t){let e=t.firstChild;if(e){let n=new mg(this.element,e,t.lastChild);return this.dom.insertBefore(this.element,t,this.nextSibling),n}{const t=this.__appendComment("");return new mg(this.element,t,t)}}__appendHTML(t){return this.dom.insertHTMLBefore(this.element,this.nextSibling,t)}appendDynamicHTML(t){let e=this.trustedContent(t);this.didAppendBounds(e)}appendDynamicText(t){let e=this.untrustedContent(t);return this.didAppendNode(e),e}appendDynamicFragment(t){let e=this.__appendFragment(t);this.didAppendBounds(e)}appendDynamicNode(t){let e=this.__appendNode(t),n=new mg(this.element,e,e);this.didAppendBounds(n)}trustedContent(t){return this.__appendHTML(t)}untrustedContent(t){return this.__appendText(t)}appendComment(t){return this.didAppendNode(this.__appendComment(t))}__appendComment(t){let{dom:e,element:n,nextSibling:r}=this,i=e.createComment(t);return e.insertBefore(n,i,r),i}__setAttribute(t,e,n){this.dom.setAttribute(this.constructing,t,e,n)}__setProperty(t,e){this.constructing[t]=e}setStaticAttribute(t,e,n){this.__setAttribute(t,e,n)}setDynamicAttribute(t,e,n,r){let i=$g(this.constructing,t,r);return i.set(this,e,this.env),i}},em=class{first=null;last=null;nesting=0;constructor(t){this.parent=t}parentElement(){return this.parent}firstNode(){return this.first.firstNode()}lastNode(){return this.last.lastNode()}openElement(t){this.didAppendNode(t),this.nesting++}closeElement(){this.nesting--}didAppendNode(t){0===this.nesting&&(this.first||(this.first=new Jg(t)),this.last=new Qg(t))}didAppendBounds(t){0===this.nesting&&(this.first||(this.first=t),this.last=t)}finalize(t){null===this.first&&t.appendComment("")}},nm=class extends em{constructor(t){super(t),et(this,()=>{this.parentElement()===this.firstNode().parentNode&&vg(this)})}},rm=class extends em{constructor(t){super(t)}reset(){nt(this);let t=vg(this);return this.first=null,this.last=null,this.nesting=0,t}},im=class{constructor(t,e){this.parent=t,this.boundList=e,this.parent=t,this.boundList=e}parentElement(){return this.parent}firstNode(){return this.boundList[0].firstNode()}lastNode(){let t=this.boundList;return t[t.length-1].lastNode()}openElement(t){}closeElement(){}didAppendNode(t){}didAppendBounds(t){}finalize(t){this.boundList.length}};function sm(t,e){return tm.forInitialRender(t,e)}var om={foreignObject:1,desc:1,title:1},am=Object.create(null),lm=class{constructor(t){this.document=t,this.setupUselessElement()}setupUselessElement(){this.uselessElement=this.document.createElement("div")}createElement(t,e){let n,r,i,s;if(e?(n="http://www.w3.org/2000/svg"===e.namespaceURI||"svg"===t,i=e.namespaceURI===Rg||"math"===t,r=!!om[e.tagName]):(n="svg"===t,i="math"===t,r=!1),!i&&!n||r)return this.document.createElement(t);if(am[t])throw new Error(`Cannot create a ${t} inside an SVG context`);return s=i?Rg:"http://www.w3.org/2000/svg",this.document.createElementNS(s,t)}insertBefore(t,e,n){t.insertBefore(e,n)}insertHTMLBefore(t,e,n){if(""===n){const n=this.createComment("");return t.insertBefore(n,e),new mg(t,n,n)}const r=e?e.previousSibling:t.lastChild;let i;if(null===e)t.insertAdjacentHTML("beforeend",n),i=t.lastChild;else if(e instanceof HTMLElement)e.insertAdjacentHTML("beforebegin",n),i=e.previousSibling;else{const{uselessElement:r}=this;t.insertBefore(r,e),r.insertAdjacentHTML("beforebegin",n),i=r.previousSibling,t.removeChild(r)}const s=r?r.nextSibling:t.firstChild;return new mg(t,s,i)}createTextNode(t){return this.document.createTextNode(t)}createComment(t){return this.document.createComment(t)}},cm=class extends lm{createElementNS(t,e){return this.document.createElementNS(t,e)}setAttribute(t,e,n,r=null){r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}};function um(t){return t}function hm(t){return"getDebugCustomRenderTree"in t}new class{validate(t){switch(t){case 4:case 5:case 3:case 2:case 1:case 0:case 6:case 7:case 8:return!0;default:return!1}}expected(){return"Register"}};var dm=Symbol("TYPE"),pm=Symbol("INNER"),fm=Symbol("OWNER"),gm=Symbol("ARGS"),mm=Symbol("RESOLVED"),ym=new WeakSet;function vm(t){return ym.has(t)}function bm(t,e){return vm(t)&&t[dm]===e}var wm=class{[dm];[pm];[fm];[gm];[mm];constructor(t,e,n,r,i=!1){ym.add(this),this[dm]=t,this[pm]=e,this[fm]=n,this[gm]=r,this[mm]=i}};function _m(t){let e,n,r,i,s,o=t;for(;;){let{[gm]:t,[pm]:a}=o;if(null!==t){let{named:r,positional:i}=t;i.length>0&&(e=void 0===e?i:i.concat(e)),void 0===n&&(n=[]),n.unshift(r)}if(!vm(a)){r=a,i=o[fm],s=o[mm];break}o=a}return{definition:r,owner:i,resolved:s,positional:e,named:n}}function xm(t,e,n,r,i=!1){return new wm(t,e,n,r,i)}var Cm=0,km=class{id=Cm++;value;constructor(t){this.value=t}get(){return this.value}release(){this.value=null}toString(){let t=`Ref ${this.id}`;if(null===this.value)return`${t} (released)`;try{return`${t}: ${this.value}`}catch{return t}}},Sm=class{stack=new se;refs=new WeakMap;roots=new Set;nodes=new WeakMap;begin(){this.reset()}create(t,e){let n=zp({},e,{bounds:null,refs:new Set});this.nodes.set(t,n),this.appendChild(n,t),this.enter(t)}update(t){this.enter(t)}didRender(t,e){this.nodeFor(t).bounds=e,this.exit()}willDestroy(t){this.refs.get(t).release()}commit(){this.reset()}capture(){return this.captureRefs(this.roots)}reset(){if(0!==this.stack.size){let t=this.stack.toArray()[0],e=this.refs.get(t);for(void 0!==e&&this.roots.delete(e);!this.stack.isEmpty();)this.stack.pop()}}enter(t){this.stack.push(t)}exit(){this.stack.pop()}nodeFor(t){return this.nodes.get(t)}appendChild(t,e){let n=this.stack.current,r=new km(e);if(this.refs.set(e,r),n){let e=this.nodeFor(n);e.refs.add(r),t.parent=e}else this.roots.add(r)}captureRefs(t){let e=[];return t.forEach(n=>{let r=n.get();r?e.push(this.captureNode(`render-node:${n.id}`,r)):t.delete(n)}),e}captureNode(t,e){let n=this.nodeFor(e),{type:r,name:i,args:s,instance:o,refs:a}=n,l=this.captureBounds(n),c=this.captureRefs(a);return{id:t,type:r,name:i,args:sy(s),instance:o,bounds:l,children:c}}captureBounds(t){let e=t.bounds;return{parentElement:e.parentElement(),firstNode:e.firstNode(),lastNode:e.lastNode()}}},Em=new class{evaluateOpcode=new Array(113).fill(null);constructor(){}add(t,e,n="syscall"){this.evaluateOpcode[t]={syscall:"machine"!==n,evaluate:e}}evaluate(t,e,n){let r=this.evaluateOpcode[n];r.syscall?(e.isMachine,r.syscall,e.isMachine,e.type,r.evaluate(t,e)):(e.isMachine,r.syscall,e.isMachine,e.type,r.evaluate(t.lowlevel,e))}};Em.add(39,t=>t.pushChildScope()),Em.add(40,t=>t.popScope()),Em.add(59,t=>t.pushDynamicScope()),Em.add(60,t=>t.popDynamicScope()),Em.add(28,(t,{op1:e})=>{t.stack.push(t.constants.getValue(e))}),Em.add(29,(t,{op1:e})=>{t.stack.push(pe(t.constants.getValue(e)))}),Em.add(30,(t,{op1:e})=>{let n=t.stack;if(e>=0){let r=t.constants.getValue(e);n.push(r)}else n.push(Tp(e))}),Em.add(31,t=>{let e,n=t.stack,r=um(n.pop());e=void 0===r?ce:null===r?ue:!0===r?he:!1===r?de:le(r),n.push(e)}),Em.add(33,(t,{op1:e,op2:n})=>{let r=um(t.fetchValue(um(e)))-n;t.stack.dup(r)}),Em.add(34,(t,{op1:e})=>{t.stack.pop(e)}),Em.add(35,(t,{op1:e})=>{t.load(um(e))}),Em.add(36,(t,{op1:e})=>{t.fetch(um(e))}),Em.add(58,(t,{op1:e})=>{let n=t.constants.getArray(e);t.bindDynamicScope(n)}),Em.add(69,(t,{op1:e})=>{t.enter(e)}),Em.add(70,t=>{t.exit()}),Em.add(63,(t,{op1:e})=>{t.stack.push(t.constants.getValue(e))}),Em.add(62,t=>{t.stack.push(t.scope())}),Em.add(61,t=>{let e=t.stack,n=e.pop();n?e.push(t.compile(n)):e.push(null)}),Em.add(64,t=>{let{stack:e}=t,n=um(e.pop()),r=um(e.pop()),i=um(e.pop()),s=um(e.pop());if(null===i||null===n)return t.lowlevel.pushFrame(),void t.pushScope(r??t.scope());let o=r;{let t=i.parameters,e=t.length;if(e>0){o=o.child();for(let n=0;n{let n=um(t.stack.pop()),r=Boolean(_e(n));be(n)?r&&t.lowlevel.goto(e):(r&&t.lowlevel.goto(e),t.updateWith(new Rm(n)))}),Em.add(66,(t,{op1:e})=>{let n=um(t.stack.pop()),r=Boolean(_e(n));be(n)?r||t.lowlevel.goto(e):(r||t.lowlevel.goto(e),t.updateWith(new Rm(n)))}),Em.add(67,(t,{op1:e,op2:n})=>{um(t.stack.peek())===n&&t.lowlevel.goto(e)}),Em.add(68,t=>{let e=um(t.stack.peek());be(e)||t.updateWith(new Rm(e))}),Em.add(71,t=>{let{stack:e}=t,n=um(e.pop());e.push(ge(()=>B(_e(n))))});var Rm=class{last;constructor(t){this.ref=t,this.last=_e(t)}evaluate(t){let{last:e,ref:n}=this;e!==_e(n)&&t.throw()}},Lm=class{last;constructor(t,e){this.ref=t,this.filter=e,this.last=e(_e(t))}evaluate(t){let{last:e,ref:n,filter:r}=this;e!==r(_e(n))&&t.throw()}},Tm=class{tag=yt;lastRevision=1;target;finalize(t,e){this.target=e,this.didModify(t)}evaluate(t){let{tag:e,target:n,lastRevision:r}=this;!t.alwaysRevalidate&&ut(e,r)&&(zt(e),t.goto(n))}didModify(t){this.tag=t,this.lastRevision=ct(this.tag),zt(t)}},Pm=class{constructor(t){this.debugLabel=t}evaluate(){Pt(this.debugLabel)}},Im=class{constructor(t){this.target=t}evaluate(){let t=It();this.target.didModify(t)}};Em.add(41,(t,{op1:e})=>{t.tree().appendText(t.constants.getValue(e))}),Em.add(42,(t,{op1:e})=>{t.tree().appendComment(t.constants.getValue(e))}),Em.add(48,(t,{op1:e})=>{t.tree().openElement(t.constants.getValue(e))}),Em.add(49,t=>{let e=um(_e(um(t.stack.pop())));t.tree().openElement(e)}),Em.add(50,t=>{let e=um(t.stack.pop()),n=um(t.stack.pop()),r=um(t.stack.pop()),i=um(_e(e)),s=um(_e(n)),o=_e(r);be(e)||t.updateWith(new Rm(e)),void 0===s||be(n)||t.updateWith(new Rm(n));let a=t.tree().pushRemoteElement(i,o,s);if(t.associateDestroyable(a),void 0!==t.env.debugRenderTree){let r=Xm(void 0===s?{}:{insertBefore:n},[e]);t.env.debugRenderTree.create(a,{type:"keyword",name:"in-element",args:r,instance:null}),et(a,()=>{t.env.debugRenderTree?.willDestroy(a)})}}),Em.add(56,t=>{let e=t.tree().popRemoteElement();void 0!==t.env.debugRenderTree&&t.env.debugRenderTree.didRender(e,e)}),Em.add(54,t=>{let e=um(t.fetchValue(6)),n=null;e&&(n=e.flush(t),t.loadValue(6,null)),t.tree().flushElement(n)}),Em.add(55,t=>{let e=t.tree().closeElement();null!==e&&e.forEach(e=>{t.env.scheduleInstallModifier(e);const n=e.manager.getDestroyable(e.state);null!==n&&t.associateDestroyable(n)})}),Em.add(57,(t,{op1:e})=>{let n=um(t.stack.pop());if(!t.env.isInteractive)return;let r=t.getOwner(),i=t.constants.getValue(e),{manager:s}=i,{constructing:o}=t.tree(),a=n.capture(),l=s.create(r,o,i.state,a),c={manager:s,state:l,definition:i};um(t.fetchValue(6)).addModifier(t,c,a);let u=s.getTag(l);return null!==u?(zt(u),t.updateWith(new Mm(u,c))):void 0}),Em.add(108,t=>{let{stack:e}=t,n=um(e.pop()),r=um(e.pop());if(!t.env.isInteractive)return;let i=r.capture(),{positional:s,named:o}=i,{constructing:a}=t.tree(),l=t.getOwner(),c=ge(()=>{let t,e,r=_e(n);if(!ie(r))return;if(bm(r,2)){let{definition:n,owner:a,positional:l,named:c}=_m(r);e=n,t=a,void 0!==l&&(i.positional=l.concat(s)),void 0!==c&&(i.named=Object.assign({},...c,o))}else e=r,t=l;let c=Mu(e);if(null===c)throw new Error("BUG: modifier manager expected");let u={resolvedName:null,manager:c,state:e};return{manager:c,state:c.create(t,a,u.state,i),definition:u}}),u=_e(c),h=null;return void 0!==u&&(um(t.fetchValue(6)).addModifier(t,u,i),h=u.manager.getTag(u.state),null!==h&&zt(h)),!be(n)||h?t.updateWith(new Am(h,u,c)):void 0});var Mm=class{lastUpdated;constructor(t,e){this.tag=t,this.modifier=e,this.lastUpdated=ct(t)}evaluate(t){let{modifier:e,tag:n,lastUpdated:r}=this;zt(n),ut(n,r)||(t.env.scheduleUpdateModifier(e),this.lastUpdated=ct(n))}},Am=class{lastUpdated;constructor(t,e,n){this.tag=t,this.instance=e,this.instanceRef=n,this.lastUpdated=ct(t??xt)}evaluate(t){let{tag:e,lastUpdated:n,instance:r,instanceRef:i}=this,s=_e(i);if(s!==r){if(void 0!==r){let t=r.manager.getDestroyable(r.state);null!==t&&nt(t)}if(void 0!==s){let{manager:n,state:r}=s,i=n.getDestroyable(r);null!==i&&tt(this,i),e=n.getTag(r),null!==e&&(this.lastUpdated=ct(e)),this.tag=e,t.env.scheduleInstallModifier(s)}this.instance=s}else null===e||ut(e,n)||(t.env.scheduleUpdateModifier(r),this.lastUpdated=ct(e));null!==e&&zt(e)}};Em.add(51,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=r?t.constants.getValue(r):null;t.tree().setStaticAttribute(i,s,o)}),Em.add(52,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=um(t.stack.pop()),a=_e(o),l=r?t.constants.getValue(r):null,c=t.tree().setDynamicAttribute(i,a,s,l);be(o)||t.updateWith(new Om(o,c,t.env))});var Om=class{updateRef;constructor(t,e,n){let r=!1;this.updateRef=ge(()=>{let i=_e(t);r?e.update(i,n):r=!0}),_e(this.updateRef)}evaluate(){_e(this.updateRef)}};Em.add(78,(t,{op1:e})=>{let n=t.constants.getValue(e),{manager:r,capabilities:i}=n,s={definition:n,manager:r,capabilities:i,state:null,handle:null,table:null,lookup:null};t.stack.push(s)}),Em.add(80,(t,{op1:e})=>{let n,r=t.stack,i=um(_e(um(r.pop()))),s=t.constants,o=t.getOwner();if(s.getValue(e),t.loadValue(7,null),"string"==typeof i){let e=function(t,e,n,r){let i=t?.lookupComponent?.(n,r)??null;return e.resolvedComponent(i,n)}(t.context.resolver,s,i,o);n=e}else n=vm(i)?i:s.component(i,o);r.push(n)}),Em.add(81,t=>{let e,n=t.stack,r=_e(um(n.pop())),i=t.constants;e=vm(r)?r:i.component(r,t.getOwner(),!0),n.push(e)}),Em.add(79,t=>{let e,n,{stack:r}=t,i=r.pop();vm(i)?n=e=null:(n=i.manager,e=i.capabilities),r.push({definition:i,capabilities:e,manager:n,state:null,handle:null,table:null})}),Em.add(82,(t,{op1:e,op2:n,op3:r})=>{let i=t.stack,s=t.constants.getArray(e),o=r>>4,a=8&r,l=7&r?t.constants.getArray(n):$p;t.args.setup(i,s,l,o,!!a),i.push(t.args)}),Em.add(83,t=>{let{stack:e}=t;e.push(t.args.empty(e))}),Em.add(86,t=>{let e=t.stack,n=um(e.pop()).capture();e.push(n)}),Em.add(85,(t,{op1:e})=>{let n=t.stack,r=t.fetchValue(um(e)),i=um(n.pop()),{definition:s}=r;if(bm(s,0)){s.manager;let e=t.constants,{definition:n,owner:o,resolved:a,positional:l,named:c}=_m(s);if(a)s=n;else if("string"==typeof n){let r=t.context.resolver?.lookupComponent?.(n,o)??null;s=e.resolvedComponent(r,n)}else s=e.component(n,o);void 0!==c&&i.named.merge(zp({},...c)),void 0!==l&&(i.realloc(l.length),i.positional.prepend(l));let{manager:u}=s;r.definition=s,r.manager=u,r.capabilities=s.capabilities,t.loadValue(7,o)}let{manager:o,state:a}=s;if(!vu(0,r.capabilities,fu.prepareArgs))return void n.push(i);let l=i.blocks.values,c=i.blocks.names,u=o.prepareArgs(a,i);if(u){i.clear();for(let i=0;i{let n=um(t.fetchValue(4)),{definition:r,manager:i,capabilities:s}=n;if(!vu(0,s,fu.createInstance))return;let o=null;vu(0,s,fu.dynamicScope)&&(o=t.dynamicScope());let a=1&e,l=null;vu(0,s,fu.createArgs)&&(l=um(t.stack.peek()));let c=null;vu(0,s,fu.createCaller)&&(c=t.getSelf());let u=i.create(t.getOwner(),r.state,l,t.env,o,c,!!a);n.state=u,vu(0,s,fu.updateHook)&&t.updateWith(new jm(u,i,o))}),Em.add(88,(t,{op1:e})=>{let{manager:n,state:r,capabilities:i}=um(t.fetchValue(um(e))),s=n.getDestroyable(r);s&&t.associateDestroyable(s)}),Em.add(97,(t,{op1:e})=>{t.beginCacheGroup(void 0),t.tree().pushAppendingBlock()}),Em.add(89,t=>{t.loadValue(6,new Nm)}),Em.add(53,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=um(t.stack.pop()),a=r?t.constants.getValue(r):null;um(t.fetchValue(6)).setAttribute(i,o,s,a)}),Em.add(105,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=r?t.constants.getValue(r):null;um(t.fetchValue(6)).setStaticAttribute(i,s,o)});var Nm=class{attributes=ne();classes=[];modifiers=[];setAttribute(t,e,n,r){let i={value:e,namespace:r,trusting:n};"class"===t&&this.classes.push(e),this.attributes[t]=i}setStaticAttribute(t,e,n){let r={value:e,namespace:n};"class"===t&&this.classes.push(e),this.attributes[t]=r}addModifier(t,e,n){if(this.modifiers.push(e),void 0!==t.env.debugRenderTree){const{manager:r,definition:i,state:s}=e;if(null===s||"object"!=typeof s&&"function"!=typeof s)return;let{element:o,constructing:a}=t.tree(),l=i.resolvedName??r.getDebugName(i.state),c=r.getDebugInstance(s),u=new mg(o,a,a);t.env.debugRenderTree.create(s,{type:"modifier",name:l,args:n,instance:c}),t.env.debugRenderTree.didRender(s,u),t.associateDestroyable(s),t.updateWith(new Bm(s)),t.updateWith(new $m(s,u)),et(s,()=>{t.env.debugRenderTree?.willDestroy(s)})}}flush(t){let e,n=this.attributes;for(let r in this.attributes){if("type"===r){e=n[r];continue}let i=Xt(this.attributes[r]);"class"===r?Fm(t,"class",zm(this.classes),i.namespace,i.trusting):Fm(t,r,i.value,i.namespace,i.trusting)}return void 0!==e&&Fm(t,"type",e.value,e.namespace,e.trusting),this.modifiers}};function zm(t){return 0===t.length?"":1===t.length?t[0]:function(t){return t.every(t=>"string"==typeof t)}(t)?t.join(" "):(e=t,ge(()=>{let t=[];for(const n of e){let e=bg("string"==typeof n?n:_e(n));e&&t.push(e)}return 0===t.length?null:t.join(" ")}));var e}function Fm(t,e,n,r,i=!1){if("string"==typeof n)t.tree().setStaticAttribute(e,n,r);else{let s=t.tree().setDynamicAttribute(e,_e(n),i,r);be(n)||t.updateWith(new Om(n,s,t.env))}}function Dm(t,e,n,r,i){let s=n.table.symbols.indexOf(t),o=r.get(e);-1!==s&&i.scope().bindBlock(s+1,o),n.lookup&&(n.lookup[t]=o)}Em.add(99,(t,{op1:e})=>{let{definition:n,state:r}=um(t.fetchValue(um(e))),{manager:i}=n,s=um(t.fetchValue(6));i.didCreateElement(r,t.tree().constructing,s)}),Em.add(90,(t,{op1:e,op2:n})=>{let{definition:r,state:i}=um(t.fetchValue(um(e))),{manager:s}=r,o=s.getSelf(i);if(void 0!==t.env.debugRenderTree){let r,s=um(t.fetchValue(um(e))),{definition:a,manager:l}=s;if(t.stack.peek()===t.args)r=t.args.capture();else{let e=t.constants.getArray(n);t.args.setup(t.stack,e,[],0,!0),r=t.args.capture()}let c=a.compilable;if(null===c){vu(0,s.capabilities,fu.dynamicLayout);let e=t.context.resolver;c=null===e?null:l.getDynamicLayout(i,e)}if(t.associateDestroyable(s),hm(l))l.getDebugCustomRenderTree(s.definition.state,s.state,r).forEach(e=>{let{bucket:n}=e;t.env.debugRenderTree.create(n,e),et(s,()=>{t.env.debugRenderTree?.willDestroy(n)}),t.updateWith(new Bm(n))});else{let e=function(t,e=t.manager){return t.resolvedName??t.debugName??e.getDebugName(t.state)}(a,l);t.env.debugRenderTree.create(s,{type:"component",name:e,args:r,instance:_e(o)}),et(s,()=>{t.env.debugRenderTree?.willDestroy(s)}),t.updateWith(new Bm(s))}}t.stack.push(o)}),Em.add(91,(t,{op1:e})=>{let{definition:n,state:r}=um(t.fetchValue(um(e))),{manager:i}=n,s=i.getTagName(r);t.stack.push(s)}),Em.add(92,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{manager:r,definition:i}=n,{stack:s}=t,{compilable:o}=i;if(null===o){let{capabilities:e}=n;vu(0,e,fu.dynamicLayout);let i=t.context.resolver;o=null===i?null:r.getDynamicLayout(n.state,i),null===o&&(o=vu(0,e,fu.wrapped)?Ip(t.constants.defaultTemplate).asWrappedLayout():Ip(t.constants.defaultTemplate).asLayout())}let a=o.compile(t.context);s.push(o.symbolTable),s.push(a)}),Em.add(75,(t,{op1:e})=>{let n=um(t.stack.pop()),r=um(t.stack.pop()),{manager:i,capabilities:s}=n,o={definition:n,manager:i,capabilities:s,state:null,handle:r.handle,table:r.symbolTable,lookup:null};t.loadValue(um(e),o)}),Em.add(95,(t,{op1:e})=>{let{stack:n}=t,r=um(n.pop()),i=um(n.pop()),s=um(t.fetchValue(um(e)));s.handle=r,s.table=i}),Em.add(38,(t,{op1:e})=>{let n,{table:r,manager:i,capabilities:s,state:o}=um(t.fetchValue(um(e)));vu(0,s,fu.hasSubOwner)?(n=i.getOwner(o),t.loadValue(7,null)):(n=t.fetchValue(7),null===n?n=t.getOwner():t.loadValue(7,null)),t.pushRootScope(r.symbols.length+1,n)}),Em.add(17,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),r=t.scope(),i=um(t.stack.peek()),s=i.named.atNames;for(let o=s.length-1;o>=0;o--){let t=Xt(s[o]),e=n.table.symbols.indexOf(t),a=i.named.get(t,!0);-1!==e&&r.bindSymbol(e+1,a),n.lookup&&(n.lookup[t]=a)}}),Em.add(18,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{blocks:r}=um(t.stack.peek());for(const[i]of Hp(r.names))Dm(Xt(r.symbolNames[i]),Xt(r.names[i]),n,r,t)}),Em.add(96,(t,{op1:e})=>{let n=um(t.fetchValue(um(e)));t.call(n.handle)}),Em.add(100,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{manager:r,state:i,capabilities:s}=n,o=t.tree().popBlock();void 0!==t.env.debugRenderTree&&(hm(r)?r.getDebugCustomRenderTree(n.definition.state,i,ly).reverse().forEach(e=>{let{bucket:n}=e;t.env.debugRenderTree.didRender(n,o),t.updateWith(new $m(n,o))}):(t.env.debugRenderTree.didRender(n,o),t.updateWith(new $m(n,o)))),vu(0,s,fu.createInstance)&&(um(r).didRenderLayout(i,o),t.env.didCreate(n),t.updateWith(new Um(n,o)))}),Em.add(98,t=>{t.commitCacheGroup()});var jm=class{constructor(t,e,n){this.component=t,this.manager=e,this.dynamicScope=n}evaluate(t){let{component:e,manager:n,dynamicScope:r}=this;n.update(e,r)}},Um=class{constructor(t,e){this.component=t,this.bounds=e}evaluate(t){let{component:e,bounds:n}=this,{manager:r,state:i}=e;r.didUpdateLayout(i,n),t.env.didUpdate(e)}},Bm=class{constructor(t){this.bucket=t}evaluate(t){t.env.debugRenderTree?.update(this.bucket)}},$m=class{constructor(t,e){this.bucket=t,this.bounds=e}evaluate(t){t.env.debugRenderTree?.didRender(this.bucket,this.bounds)}},qm=(new class{validate(t){return"object"==typeof t&&null!==t&&oe in t}expected(){return"Reference"}},class{stack=null;positional=new Wm;named=new Hm;blocks=new Km;constructor(){}empty(t){let e=t.registers[3]+1;return this.named.empty(t,e),this.positional.empty(t,e),this.blocks.empty(t,e),this}setup(t,e,n,r,i){this.stack=t;let s=this.named,o=e.length,a=t.registers[3]-o+1;s.setup(t,a,o,e,i);let l=a-r;this.positional.setup(t,l,r);let c=this.blocks,u=n.length,h=l-3*u;c.setup(t,h,u,n)}get base(){return this.blocks.base}get length(){return this.positional.length+this.named.length+3*this.blocks.length}at(t){return this.positional.at(t)}realloc(t){let{stack:e}=this;if(t>0&&null!==e){let{positional:n,named:r}=this,i=n.base+t;for(let t=n.length+r.length-1;t>=0;t--)e.copy(t+n.base,t+i);n.base+=t,r.base+=t,e.registers[3]+=t}}capture(){let t=0===this.positional.length?ay:this.positional.capture();return{named:0===this.named.length?oy:this.named.capture(),positional:t}}clear(){let{stack:t,length:e}=this;e>0&&null!==t&&t.pop(e)}}),Vm=Bp(),Wm=class{base=0;length=0;stack=null;_references=null;constructor(){}empty(t,e){this.stack=t,this.base=e,this.length=0,this._references=Vm}setup(t,e,n){this.stack=t,this.base=e,this.length=n,this._references=0===n?Vm:null}at(t){let{base:e,length:n,stack:r}=this;return t<0||t>=n?ce:um(r.get(t,e))}capture(){return this.references}prepend(t){let e=t.length;if(e>0){let{base:n,length:r,stack:i}=this;this.base=n-=e,this.length=r+e;for(let s=0;s0){let{names:n,length:r,stack:i}=this,s=n.slice();for(const o of e)-1===s.indexOf(o)&&(r=s.push(o),i.push(t[o]));this.length=r,this._references=null,this._names=s,this._atNames=null}}get references(){let t=this._references;if(!t){let{base:e,length:n,stack:r}=this;t=this._references=r.slice(e,e+n)}return t}toSyntheticName(t){return t.slice(1)}toAtName(t){return`@${t}`}};function Gm(t){return`&${t}`}var Zm=Bp(),Km=class{internalValues=null;_symbolNames=null;internalTag=null;names=$p;length=0;base=0;constructor(){}empty(t,e){this.stack=t,this.names=$p,this.base=e,this.length=0,this._symbolNames=null,this.internalTag=yt,this.internalValues=Zm}setup(t,e,n,r){this.stack=t,this.names=r,this.base=e,this.length=n,this._symbolNames=null,0===n?(this.internalTag=yt,this.internalValues=Zm):(this.internalTag=null,this.internalValues=null)}get values(){let t=this.internalValues;if(!t){let{base:e,length:n,stack:r}=this;t=this.internalValues=r.slice(e,e+3*n)}return t}has(t){return-1!==this.names.indexOf(t)}get(t){let e=this.names.indexOf(t);if(-1===e)return null;let{base:n,stack:r}=this,i=um(r.get(3*e,n)),s=um(r.get(3*e+1,n)),o=um(r.get(3*e+2,n));return null===o?null:[o,s,i]}capture(){return new Ym(this.names,this.values)}get symbolNames(){let t=this._symbolNames;return null===t&&(t=this._symbolNames=this.names.map(Gm)),t}},Ym=class{length;constructor(t,e){this.names=t,this.values=e,this.length=t.length}has(t){return-1!==this.names.indexOf(t)}get(t){let e=this.names.indexOf(t);return-1===e?null:[this.values[3*e+2],this.values[3*e+1],this.values[3*e]]}};function Xm(t,e){return{named:t,positional:e}}function Jm(t){let e=ne();for(const[n,r]of Object.entries(t))e[n]=_e(r);return e}function Qm(t){return t.map(_e)}function ty(t){return{named:Jm(t.named),positional:Qm(t.positional)}}var ey=Symbol("ARGUMENT_ERROR");function ny(t){return null!==t&&"object"==typeof t&&t[ey]}function ry(t){return{[ey]:!0,error:t}}function iy(t){let e=ne();for(const[r,i]of Object.entries(t))try{e[r]=_e(i)}catch(n){e[r]=ry(n)}return e}function sy(t){return{named:iy(t.named),positional:(e=t.positional,e.map(t=>{try{return _e(t)}catch(e){return ry(e)}}))};var e}var oy=Object.freeze(Object.create(null)),ay=Vm,ly=Xm(oy,ay),cy=a({FALSE_REFERENCE:()=>de,NULL_REFERENCE:()=>ue,REFERENCE:()=>oe,TRUE_REFERENCE:()=>he,UNDEFINED_REFERENCE:()=>ce,childRefFor:()=>Ce,childRefFromParts:()=>ke,createComputeRef:()=>ge,createConstRef:()=>pe,createDebugAliasRef:()=>{},createInvokableRef:()=>ve,createIteratorItemRef:()=>vy,createIteratorRef:()=>yy,createPrimitiveRef:()=>le,createReadOnlyRef:()=>me,createUnboundRef:()=>fe,isConstRef:()=>be,isInvokableRef:()=>ye,isUpdatableRef:()=>we,updateRef:()=>xe,valueForRef:()=>_e}),uy={},hy=(t,e)=>e,dy=(t,e)=>String(e),py=t=>null===t?uy:t,fy=class{_weakMap;_primitiveMap;get weakMap(){return void 0===this._weakMap&&(this._weakMap=new WeakMap),this._weakMap}get primitiveMap(){return void 0===this._primitiveMap&&(this._primitiveMap=new Map),this._primitiveMap}set(t,e){ie(t)?this.weakMap.set(t,e):this.primitiveMap.set(t,e)}get(t){return ie(t)?this.weakMap.get(t):this.primitiveMap.get(t)}},gy=new fy;function my(t){let e=new fy;return(n,r)=>{let i=t(n,r),s=e.get(i)||0;return e.set(i,s+1),0===s?i:function(t,e){let n=gy.get(t);void 0===n&&(n=[],gy.set(t,n));let r=n[e];return void 0===r&&(r={value:t,count:e},n[e]=r),r}(i,s)}}function yy(t,e){return ge(()=>{let n=_e(t),r=function(t){switch(t){case"@key":return my(hy);case"@index":return my(dy);case"@identity":return my(py);default:return e=t,my(t=>null==t?t:V(t,e))}var e}(e);if(Array.isArray(n))return new wy(n,r);let i=U(n);return null===i?new wy(Up,()=>null):new by(i,r)})}function vy(t){let e=t,n=gt();return ge(()=>(zt(n),e),t=>{e!==t&&(e=t,pt(n))})}var by=class{constructor(t,e){this.inner=t,this.keyFor=e}isEmpty(){return this.inner.isEmpty()}next(){let t=this.inner.next();return null!==t&&(t.key=this.keyFor(t.value,t.memo)),t}},wy=class{current;pos=0;constructor(t,e){this.iterator=t,this.keyFor=e,0===t.length?this.current={kind:"empty"}:this.current={kind:"first",value:t[this.pos]}}isEmpty(){return"empty"===this.current.kind}next(){let t,e=this.current;if("first"===e.kind)this.current={kind:"progress"},t=e.value;else{if(this.pos>=this.iterator.length-1)return null;t=this.iterator[++this.pos]}let{keyFor:n}=this;return{key:n(t,this.pos),value:t,memo:this.pos}}},_y=class t{bucket;constructor(t){this.bucket=t?zp({},t):{}}get(t){return this.bucket[t]}set(t,e){return this.bucket[t]=e}child(){return new t(this.bucket)}},xy=class t{static root(e,{self:n,size:r=0}){let i=new Array(r+1).fill(ce);return new t(e,i,null).init({self:n})}static sized(e,n=0){let r=new Array(n+1).fill(ce);return new t(e,r,null)}owner;slots;callerScope;constructor(t,e,n){this.owner=t,this.slots=e,this.callerScope=n}init({self:t}){return this.slots[0]=t,this}snapshot(){return this.slots.slice()}getSelf(){return this.get(0)}getSymbol(t){return this.get(t)}getBlock(t){let e=this.get(t);return e===ce?null:e}bind(t,e){this.set(t,e)}bindSelf(t){this.set(0,t)}bindSymbol(t,e){this.set(t,e)}bindBlock(t,e){this.set(t,e)}bindCallerScope(t){this.callerScope=t}getCallerScope(){return this.callerScope}child(){return new t(this.owner,this.slots.slice(),this.callerScope)}get(t){if(t>=this.slots.length)throw new RangeError(`BUG: cannot get $${t} from scope; length=${this.slots.length}`);return this.slots[t]}set(t,e){if(t>=this.slots.length)throw new RangeError(`BUG: cannot get $${t} from scope; length=${this.slots.length}`);this.slots[t]=e}};["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","main","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].forEach(t=>am[t]=1);var Cy=/[\t\n\v\f\r \xa0\u{1680}\u{180e}\u{2000}-\u{200a}\u{2028}\u{2029}\u{202f}\u{205f}\u{3000}\u{feff}]/u;function ky(t){return Cy.test(t)}var Sy=class extends lm{namespace;constructor(t){super(t),this.document=t,this.namespace=null}setAttribute(t,e,n){t.setAttribute(e,n)}removeAttribute(t,e){t.removeAttribute(e)}insertAfter(t,e,n){this.insertBefore(t,e,n.nextSibling)}},Ey=Sy,Ry=Symbol("TRANSACTION"),Ly=class{scheduledInstallModifiers=[];scheduledUpdateModifiers=[];createdComponents=[];updatedComponents=[];didCreate(t){this.createdComponents.push(t)}didUpdate(t){this.updatedComponents.push(t)}scheduleInstallModifier(t){this.scheduledInstallModifiers.push(t)}scheduleUpdateModifier(t){this.scheduledUpdateModifiers.push(t)}commit(){let{createdComponents:t,updatedComponents:e}=this;for(const{manager:i,state:s}of t)i.didCreate(s);for(const{manager:i,state:s}of e)i.didUpdate(s);let{scheduledInstallModifiers:n,scheduledUpdateModifiers:r}=this;for(const{manager:i,state:s,definition:o}of n){let t=i.getTag(s);if(null!==t){let e=Vt(()=>i.install(s));ft(t,e)}else i.install(s)}for(const{manager:i,state:s,definition:o}of r){let t=i.getTag(s);if(null!==t){let e=Vt(()=>i.update(s));ft(t,e)}else i.update(s)}}},Ty=class{[Ry]=null;updateOperations;isInteractive;isArgumentCaptureError;debugRenderTree;constructor(t,e){this.delegate=e,this.isInteractive=e.isInteractive,this.debugRenderTree=this.delegate.enableDebugTooling?new Sm:void 0,this.isArgumentCaptureError=this.delegate.enableDebugTooling?ny:void 0,t.appendOperations?(this.appendOperations=t.appendOperations,this.updateOperations=t.updateOperations):t.document&&(this.appendOperations=new cm(t.document),this.updateOperations=new Sy(t.document))}getAppendOperations(){return this.appendOperations}getDOM(){return this.updateOperations}begin(){this[Ry],this.debugRenderTree?.begin(),this[Ry]=new Ly}get transaction(){return this[Ry]}didCreate(t){this.transaction.didCreate(t)}didUpdate(t){this.transaction.didUpdate(t)}scheduleInstallModifier(t){this.isInteractive&&this.transaction.scheduleInstallModifier(t)}scheduleUpdateModifier(t){this.isInteractive&&this.transaction.scheduleUpdateModifier(t)}commit(){let t=this.transaction;this[Ry]=null,t.commit(),this.debugRenderTree?.commit(),this.delegate.onTransactionCommit()}};function Py(t,e,n,r){return{env:new Ty(t,e),program:new cg(n.constants,n.heap),resolver:r}}function Iy(t,e){if(t[Ry])e();else{t.begin();try{e()}finally{t.commit()}}}function My(t){return"string"==typeof t?t:"function"!=typeof t.toString?"":String(t)}function Ay(t){let e,n=Nu(t);return e=null===n?null:"function"==typeof n?n:n.getHelper(t),e}function Oy(t){return t===ce}Em.add(77,(t,{op1:e,op2:n})=>{let r=t.stack,i=r.pop(),s=r.pop(),o=t.getOwner();t.context.resolver,t.loadValue(8,function(t,e,n,r){let i,s;return ge(()=>{let o=_e(e);return o===i||(s=bm(o,t)?r?xm(t,o,n,r):r:0===t&&"string"==typeof o&&o||ie(o)?xm(t,o,n,r):null,i=o),s})}(e,i,o,s))}),Em.add(107,t=>{let e,n=t.stack,r=n.pop(),i=n.pop().capture(),s=t.getOwner(),o=ge(()=>{void 0!==e&&nt(e);let t=_e(r);if(bm(t,1)){let{definition:n,owner:r,positional:s,named:a}=_m(t),l=Ay(n);void 0!==a&&(i.named=zp({},...a,i.named)),void 0!==s&&(i.positional=s.concat(i.positional)),e=l(i,r),tt(o,e)}else ie(t)?(e=Ay(t)(i,s),rt(e)&&tt(o,e)):e=ce}),a=ge(()=>(_e(o),_e(e)));t.associateDestroyable(o),t.loadValue(8,a)}),Em.add(16,(t,{op1:e})=>{let n=t.stack,r=t.constants.getValue(e)(n.pop().capture(),t.getOwner(),t.dynamicScope());rt(r)&&t.associateDestroyable(r),t.loadValue(8,r)}),Em.add(21,(t,{op1:e})=>{let n=t.referenceForSymbol(e);t.stack.push(n)}),Em.add(19,(t,{op1:e})=>{let n=t.stack.pop();t.scope().bindSymbol(e,n)}),Em.add(20,(t,{op1:e})=>{let n=t.stack.pop(),r=t.stack.pop(),i=t.stack.pop();t.scope().bindBlock(e,[n,r,i])}),Em.add(37,(t,{op1:e})=>{t.pushRootScope(e,t.getOwner())}),Em.add(22,(t,{op1:e})=>{let n=t.constants.getValue(e),r=t.stack.pop();t.stack.push(Ce(r,n))}),Em.add(23,(t,{op1:e})=>{let{stack:n}=t,r=t.scope().getBlock(e);n.push(r)}),Em.add(24,t=>{let{stack:e}=t,n=e.pop();if(n&&!Oy(n)){let[t,r,i]=n;e.push(i),e.push(r),e.push(t)}else e.push(null),e.push(null),e.push(null)}),Em.add(25,t=>{let{stack:e}=t,n=e.pop();n&&!Oy(n)?e.push(he):e.push(de)}),Em.add(26,t=>{t.stack.pop(),t.stack.pop();let e=t.stack.pop(),n=e&&e.parameters.length;t.stack.push(n?he:de)}),Em.add(27,(t,{op1:e})=>{let n=new Array(e);for(let i=e;i>0;i--)n[i-1]=um(t.stack.pop());var r;t.stack.push((r=n,ge(()=>{const t=[];for(const e of r){const n=_e(e);null!=n&&t.push(My(n))}return t.length>0?t.join(""):null})))}),Em.add(109,t=>{let e=t.stack.pop(),n=t.stack.pop(),r=t.stack.pop();t.stack.push(ge(()=>B(_e(e))?_e(n):_e(r)))}),Em.add(110,t=>{let e=t.stack.pop();t.stack.push(ge(()=>!B(_e(e))))}),Em.add(111,t=>{let e=t.dynamicScope(),n=t.stack,r=n.pop();n.push(ge(()=>{let t=String(_e(r));return _e(e.get(t))}))}),Em.add(112,t=>{let{positional:e}=t.stack.pop().capture();t.loadValue(8,ge(()=>{console.log(...Qm(e))}))});var Ny=class{constructor(t,e,n){this.node=t,this.reference=e,this.lastValue=n}evaluate(){let t,e=_e(this.reference),{lastValue:n}=this;e!==n&&(t=wg(e)?"":Cg(e)?e:String(e),t!==n)&&(this.node.nodeValue=this.lastValue=t)}};function zy(t){return function(t){return Cg(t)||wg(t)||"boolean"==typeof t||"number"==typeof t}(t)?2:bm(t,0)||Du(t)?0:bm(t,1)||ju(t)?1:xg(t)?4:function(t){return _g(t)&&11===t.nodeType}(t)?5:function(t){return _g(t)&&"number"==typeof t.nodeType}(t)?6:2}function Fy(t){return ie(t)?bm(t,0)||Du(t)?0:1:2}function Dy(t,e){console.info("Use `context`, and `get()` to debug this template."),e("this")}Em.add(76,t=>{let e=t.stack.peek();t.stack.push(zy(_e(e))),be(e)||t.updateWith(new Lm(e,zy))}),Em.add(106,t=>{let e=t.stack.peek();t.stack.push(Fy(_e(e))),be(e)||t.updateWith(new Lm(e,Fy))}),Em.add(43,t=>{let e=_e(t.stack.pop()),n=wg(e)?"":String(e);t.tree().appendDynamicHTML(n)}),Em.add(44,t=>{let e=_e(t.stack.pop()).toHTML(),n=wg(e)?"":e;t.tree().appendDynamicHTML(n)}),Em.add(47,t=>{let e=t.stack.pop(),n=_e(e),r=wg(n)?"":String(n),i=t.tree().appendDynamicText(r);be(e)||t.updateWith(new Ny(i,e,r))}),Em.add(45,t=>{let e=_e(t.stack.pop());t.tree().appendDynamicFragment(e)}),Em.add(46,t=>{let e=_e(t.stack.pop());t.tree().appendDynamicNode(e)});var jy=Dy;function Uy(t){jy=t}function By(){jy=Dy}var $y=class{#h;constructor(t,e){this.scope=t,this.#h=e}get(t){let e,{scope:n}=this,r=this.#h,i=t.split("."),[s,...o]=t.split(".");return"this"===s?e=n.getSelf():r.locals[s]?e=n.getSymbol(r.locals[s]):(e=this.scope.getSelf(),o=i),o.reduce((t,e)=>Ce(t,e),e)}};Em.add(103,(t,{op1:e})=>{let n=t.constants.getValue(e),r=new $y(t.scope(),n);jy(_e(t.getSelf()),t=>_e(r.get(t)))}),Em.add(72,(t,{op1:e,op2:n})=>{let r=t.stack,i=r.pop(),s=_e(r.pop()),o=yy(i,null===s?"@identity":String(s)),a=_e(o);t.updateWith(new Lm(o,t=>t.isEmpty())),a.isEmpty()?t.lowlevel.goto(n+1):(t.enterList(o,e),t.stack.push(a))}),Em.add(73,t=>{t.exitList()}),Em.add(74,(t,{op1:e})=>{let n=t.stack.peek().next();null!==n?t.registerItem(t.enterItem(n)):t.lowlevel.goto(e)});var qy=class{currentOpSize=0;registers;context;constructor(t,e,n,r){this.stack=t,this.externs=n,this.context=e,this.registers=r}fetchRegister(t){return this.registers[t]}loadRegister(t,e){this.registers[t]=e}setPc(t){this.registers[0]=t}pushFrame(){this.stack.push(this.registers[1]),this.stack.push(this.registers[2]),this.registers[2]=this.registers[3]-1}popFrame(){this.registers[3]=this.registers[2]-1,this.registers[1]=this.stack.get(0),this.registers[2]=this.stack.get(1)}pushSmallFrame(){this.stack.push(this.registers[1])}popSmallFrame(){this.registers[1]=this.stack.pop()}goto(t){this.setPc(this.target(t))}target(t){return this.registers[0]+t-this.currentOpSize}call(t){this.registers[1]=this.registers[0],this.setPc(this.context.program.heap.getaddr(t))}returnTo(t){this.registers[1]=this.target(t)}return(){this.setPc(this.registers[1])}nextStatement(){let{registers:t,context:e}=this,n=t[0];if(-1===n)return null;let r=e.program.opcode(n),i=this.currentOpSize=r.size;return this.registers[0]+=i,r}evaluateOuter(t,e){this.evaluateInner(t,e)}evaluateInner(t,e){t.isMachine?this.evaluateMachine(t,e):this.evaluateSyscall(t,e)}evaluateMachine(t,e){switch(t.type){case 0:return void this.pushFrame();case 1:return void this.popFrame();case 3:return void this.call(t.op1);case 2:return void e.call(this.stack.pop());case 4:return void this.goto(t.op1);case 5:return void e.return();case 6:return void this.returnTo(t.op1)}}evaluateSyscall(t,e){Em.evaluate(e,t,t.type)}},Vy=class{env;dom;alwaysRevalidate;frameStack=new se;constructor(t,{alwaysRevalidate:e=!1}){this.env=t,this.dom=t.getDOM(),this.alwaysRevalidate=e}execute(t,e){this._execute(t,e)}_execute(t,e){let{frameStack:n}=this;for(this.try(t,e);!n.isEmpty();){let t=this.frame.nextStatement();void 0!==t?t.evaluate(this):n.pop()}}get frame(){return this.frameStack.current}goto(t){this.frame.goto(t)}try(t,e){this.frameStack.push(new Ky(t,e))}throw(){this.frame.handleException(),this.frameStack.pop()}},Wy=class{children;bounds;constructor(t,e,n,r){this.state=t,this.context=e,this.children=r,this.bounds=n}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}evaluate(t){t.try(this.children,null)}},Hy=class extends Wy{type="try";evaluate(t){t.try(this.children,this)}handleException(){let{state:t,bounds:e,context:{env:n}}=this;!function(t){let{children:e}=Q(t);X(e,nt)}(this);let r=tm.resume(n,e),i=t.evaluate(r),s=this.children=[],o=i.execute(t=>{t.updateWith(this),t.pushUpdating(s)});tt(this,o.drop)}},Gy=class extends Hy{retained=!1;index=-1;constructor(t,e,n,r,i,s){super(t,e,n,[]),this.key=r,this.memo=i,this.value=s}shouldRemove(){return!this.retained}reset(){this.retained=!1}},Zy=class extends Wy{type="list-block";opcodeMap=new Map;marker=null;lastIterator;constructor(t,e,n,r,i){super(t,e,n,r),this.iterableRef=i,this.lastIterator=_e(i)}initializeChild(t){t.index=this.children.length-1,this.opcodeMap.set(t.key,t)}evaluate(t){let e=_e(this.iterableRef);if(this.lastIterator!==e){let{bounds:n}=this,{dom:r}=t,i=this.marker=r.createComment("");r.insertAfter(n.parentElement(),i,n.lastNode()),this.sync(e),this.parentElement().removeChild(i),this.marker=null,this.lastIterator=e}super.evaluate(t)}sync(t){let{opcodeMap:e,children:n}=this,r=0,i=0;for(this.children=this.bounds.boundList=[];;){let s=t.next();if(null===s)break;let o=n[r],{key:a}=s;for(;void 0!==o&&o.retained;)o=n[++r];if(void 0!==o&&o.key===a)this.retainItem(o,s),r++;else if(e.has(a)){let t=e.get(a);if(t.index{let r=e.enterItem(t);r.index=s.length,s.push(r),n.set(a,r),tt(this,r)})}moveItem(t,e,n){let r,i,{children:s}=this;xe(t.memo,e.memo),xe(t.value,e.value),t.retained=!0,void 0===n?yg(t,this.marker):(r=t.lastNode().nextSibling,i=n.firstNode(),r!==i&&yg(t,i)),t.index=s.length,s.push(t)}deleteItem(t){nt(t),vg(t),this.opcodeMap.delete(t.key)}},Ky=class{current=0;constructor(t,e){this.ops=t,this.exceptionHandler=e}goto(t){this.current=t}nextStatement(){return this.ops[this.current++]}handleException(){this.exceptionHandler&&this.exceptionHandler.handleException()}},Yy=class{constructor(t,e,n,r){this.env=t,this.updating=e,this.bounds=n,this.drop=r,tt(this,r),et(this,()=>vg(this.bounds))}rerender({alwaysRevalidate:t=!1}={alwaysRevalidate:!1}){let{env:e,updating:n}=this;new Vy(e,{alwaysRevalidate:t}).execute(n,this)}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}handleException(){}},Xy=class{static restore(t,e){const n=new this(t.slice(),function(t){return[0,-1,t,0]}(t.length-1));return n.registers[0]=e,n.registers[3]=t.length-1,n.registers[2]=-1,n}registers;constructor(t=[],e){this.stack=t,this.registers=e}push(t){this.stack[++this.registers[3]]=t}dup(t=this.registers[3]){this.stack[++this.registers[3]]=this.stack[t]}copy(t,e){this.stack[e]=this.stack[t]}pop(t=1){let e=this.stack[this.registers[3]];return this.registers[3]-=t,e}peek(t=0){return this.stack[this.registers[3]-t]}get(t,e=this.registers[2]){return this.stack[e+t]}set(t,e,n=this.registers[2]){this.stack[n+e]=t}slice(t,e){return this.stack.slice(t,e)}capture(t){let e=this.registers[3]+1,n=e-t;return this.stack.slice(n,e)}reset(){this.stack.length=0}},Jy=class{drop={};scope=new se;dynamicScope=new se;updating=new se;cache=new se;list=new se;destroyable=new se;constructor(t,e){this.scope.push(t),this.dynamicScope.push(e),this.destroyable.push(this.drop)}},Qy=class t{#d;args;lowlevel;debug;trace;get stack(){return this.lowlevel.stack}get pc(){return this.lowlevel.fetchRegister(0)}#p=[null,null,null,null,null,null,null,null,null];fetch(t){let e=this.fetchValue(t);this.stack.push(e)}load(t){let e=this.stack.pop();this.loadValue(t,e)}loadValue(t,e){this.#p[t]=e}fetchValue(t){return function(t){return t<=3}(t)?this.lowlevel.fetchRegister(t):this.#p[t]}call(t){null!==t&&this.lowlevel.call(t)}return(){this.lowlevel.return()}#f;context;constructor({scope:t,dynamicScope:e,stack:n,pc:r},i,s){let o=Xy.restore(n,r);this.#f=s,this.context=i,this.#d=new Jy(t,e),this.args=new qm,this.lowlevel=new qy(o,i,void 0,o.registers),this.pushUpdating()}static initial(e,n){let r=xy.root(n.owner,n.scope??{self:ce,size:0});const i=function(t,e,n){return{pc:t,scope:e,dynamicScope:n,stack:[]}}(e.program.heap.getaddr(n.handle),r,n.dynamicScope);return new t(i,e,n.tree)}compile(t){return Pp(t.compile(this.context))}get constants(){return this.context.program.constants}get program(){return this.context.program}get env(){return this.context.env}captureClosure(t,e=this.lowlevel.fetchRegister(0)){return{pc:e,scope:this.scope(),dynamicScope:this.dynamicScope(),stack:this.stack.capture(t)}}capture(t,e=this.lowlevel.fetchRegister(0)){return new tv(this.captureClosure(t,e),this.context)}beginCacheGroup(t){let e=this.updating(),n=new Tm;e.push(n),e.push(new Pm(t)),this.#d.cache.push(n),Pt()}commitCacheGroup(){let t=this.updating(),e=this.#d.cache.pop(),n=It();t.push(new Im(e)),e.finalize(n,t.length)}enter(t){let e=this.capture(t),n=this.tree().pushResettableBlock(),r=new Hy(e,this.context,n,[]);this.didEnter(r)}enterItem({key:t,value:e,memo:n}){let{stack:r}=this,i=vy(e),s=vy(n);r.push(i),r.push(s);let o=this.capture(2),a=this.tree().pushResettableBlock(),l=new Gy(o,this.context,a,t,s,i);return this.didEnter(l),l}registerItem(t){this.listBlock().initializeChild(t)}enterList(t,e){let n=[],r=this.lowlevel.target(e),i=this.capture(0,r),s=this.tree().pushBlockList(n),o=new Zy(i,this.context,s,n,t);this.#d.list.push(o),this.didEnter(o)}didEnter(t){this.associateDestroyable(t),this.#d.destroyable.push(t),this.updateWith(t),this.pushUpdating(t.children)}exit(){this.#d.destroyable.pop(),this.#f.popBlock(),this.popUpdating()}exitList(){this.exit(),this.#d.list.pop()}pushRootScope(t,e){let n=xy.sized(e,t);return this.#d.scope.push(n),n}pushChildScope(){this.#d.scope.push(this.scope().child())}pushScope(t){this.#d.scope.push(t)}popScope(){this.#d.scope.pop()}pushDynamicScope(){let t=this.dynamicScope().child();return this.#d.dynamicScope.push(t),t}bindDynamicScope(t){let e=this.dynamicScope();for(const n of Wp(t))e.set(n,this.stack.pop())}pushUpdating(t=[]){this.#d.updating.push(t)}popUpdating(){return this.#d.updating.pop()}updateWith(t){this.updating().push(t)}listBlock(){return this.#d.list.current}associateDestroyable(t){tt(this.#d.destroyable.current,t)}updating(){return this.#d.updating.current}tree(){return this.#f}scope(){return this.#d.scope.current}dynamicScope(){return this.#d.dynamicScope.current}popDynamicScope(){this.#d.dynamicScope.pop()}getOwner(){return this.scope().owner}getSelf(){return this.scope().getSelf()}referenceForSymbol(t){return this.scope().getSymbol(t)}execute(t){return this._execute(t)}_execute(t){let e;t&&t(this);do{e=this.next()}while(!e.done);return e.value}next(){let t,{env:e}=this,n=this.lowlevel.nextStatement();return null!==n?(this.lowlevel.evaluateOuter(n,this),t={done:!1,value:null}):(this.stack.reset(),t={done:!0,value:new Yy(e,this.popUpdating(),this.#f.popBlock(),this.#d.drop)}),t}},tv=class{state;context;constructor(t,e){this.state=t,this.context=e}evaluate(t){return new Qy(this.state,this.context,t)}},ev=class{constructor(t){this.vm=t}next(){return this.vm.next()}sync(){return this.vm.execute()}};function nv(t,e){let n;return Iy(t,()=>n=e.sync()),n}function rv(t,e,n,r,i,s=new _y){let o=Pp(i.compile(t)),a=i.symbolTable.symbols.length,l=Qy.initial(t,{scope:{self:n,size:a},dynamicScope:s,tree:r,handle:o,owner:e});return new ev(l)}function iv(t,e,n,r,i={},s=new _y){return function(t,e,n,r,i){const s=Object.keys(i).map(t=>[t,i[t]]),o=["main","else","attrs"],a=s.map(([t])=>`@${t}`);let l=t.constants.component(r,n,void 0,"{ROOT}");t.lowlevel.pushFrame();for(let h=0;h<3*o.length;h++)t.stack.push(null);t.stack.push(null),s.forEach(([,e])=>{t.stack.push(e)}),t.args.setup(t.stack,a,o,0,!0);const c=l.compilable,u={handle:Pp(c.compile(e)),symbolTable:c.symbolTable};return t.stack.push(t.args),t.stack.push(u),t.stack.push(l),new ev(t)}(Qy.initial(t,{tree:e,handle:t.stdlib.main,dynamicScope:s,owner:n}),t,n,r,function(t){const e=pe(t);return Object.keys(t).reduce((t,n)=>(t[n]=Ce(e,n),t),{})}(i))}var sv=a({_instrumentStart:()=>dv,flaggedInstrument:()=>uv,instrument:()=>cv,reset:()=>gv,subscribe:()=>pv,subscribers:()=>ov,unsubscribe:()=>fv}),ov=[],av={},lv=()=>performance.now();function cv(t,e,n,r){let i,s,o;if(arguments.length<=3&&"function"==typeof e?(s=e,o=n):(i=e,s=n,o=r),0===ov.length)return s.call(o);let a=i||{},l=dv(t,()=>a);return l===hv?s.call(o):function(t,e,n,r){try{return t.call(r)}catch(i){throw n.exception=i,i}finally{e()}}(s,l,a,o)}function uv(t,e,n){return n()}function hv(){}function dv(t,e,n){if(0===ov.length)return hv;let r=av[t];if(r||(r=function(t){let e=[];for(let n of ov)n.regex.test(t)&&e.push(n.object);return av[t]=e,e}(t)),0===r.length)return hv;let i,s=e(n),o=N.STRUCTURED_PROFILE;o&&(i=`${t}: ${s.object}`,console.time(i));let a=[],l=lv();for(let u of r)a.push(u.before(t,l,s));const c=r;return function(){let e=lv();for(let n=0;n-1?vv(e,i.split(".")):Ce(e,i);r.setAttribute(s,a,!1,null)}function _v(t,e){let n;return ge(()=>{let r=_e(t);return!0===r?n||(n=sp(e)):r||0===r?String(r):null})}function xv(){}var Cv=class{classRef=null;rootRef;argsRevision;constructor(t,e,n,r,i,s){this.component=t,this.args=e,this.argsTag=n,this.finalizer=r,this.hasWrappedElement=i,this.isInteractive=s,this.classRef=null,this.argsRevision=null===e?0:ct(n),this.rootRef=pe(t),et(this,()=>this.willDestroy(),!0),et(this,()=>this.component.destroy())}willDestroy(){let{component:t,isInteractive:e}=this;if(e){Mt(),t.trigger("willDestroyElement"),t.trigger("willClearRender"),At();let e=Ql(t);e&&(nc(e),rc(t))}t.renderer.unregister(t)}finalize(){let{finalizer:t}=this;t(),this.finalizer=xv}};function kv(t){let e=Object.create(null),n=Object.create(null);for(let r in t){let i=t[r],s=_e(i);we(i)?e[r]=new Ev(i,s):e[r]=s,n[r]=s}return n.attrs=e,n}var Sv=Symbol("REF"),Ev=class{value;[mv];[Sv];constructor(t,e){this[mv]=!0,this[Sv]=t,this.value=e}update(t){xe(this[Sv],t)}},Rv=new WeakMap,Lv=Symbol("DIRTY_TAG"),Tv=Symbol("IS_DISPATCHING_ATTRS"),Pv=Symbol("BOUNDS"),Iv=le("ember-view"),Mv=class{templateFor(t){let e,{layout:n,layoutName:r}=t,i=Br(t);if(void 0===n){if(void 0===r)return null;e=i.lookup(`template:${r}`)}else{if("function"!=typeof n)return null;e=n}return yv(e(i)).asWrappedLayout()}getDynamicLayout(t){return this.templateFor(t.component)}getTagName(t){let{component:e,hasWrappedElement:n}=t;return n?e&&e.tagName||"div":null}getCapabilities(){return Nv}prepareArgs(t,e){if(e.named.has("__ARGS__")){let{__ARGS__:t,...n}=e.named.capture(),r=_e(t);return{positional:r.positional,named:{...n,...r.named}}}const{positionalParams:n}=t.class??t;if(null==n||0===e.positional.length)return null;let r;if("string"==typeof n){let t=e.positional.capture();r={[n]:ge(()=>Qm(t))},Object.assign(r,e.named.capture())}else{if(!(Array.isArray(n)&&n.length>0))return null;{const t=Math.min(n.length,e.positional.length);r={},Object.assign(r,e.named.capture());for(let i=0;i{s.setAttribute("class",le(t),!1,null)}),l&&l.length&&l.forEach(t=>{!function(t,e,n){let[r,i,s]=e.split(":");if(""===r)n.setAttribute("class",le(i),!0,null);else{let e,o=r.indexOf(".")>-1,a=o?r.split("."):[],l=o?vv(t,a):Ce(t,r);e=void 0===i?_v(l,o?a[a.length-1]:r):function(t,e,n){return ge(()=>_e(t)?e:n)}(l,i,s),n.setAttribute("class",e,!1,null)}}(r,t,s)}),s.setAttribute("class",Iv,!1,null),"ariaRole"in t&&s.setAttribute("role",Ce(r,"ariaRole"),!1,null),t._transitionTo("hasElement"),n&&(Mt(),t.trigger("willInsertElement"),At())}didRenderLayout(t,e){t.component[Pv]=e,t.finalize()}didCreate({component:t,isInteractive:e}){e&&(t._transitionTo("inDOM"),t.trigger("didInsertElement"),t.trigger("didRender"))}update(t){let{component:e,args:n,argsTag:r,argsRevision:i,isInteractive:s}=t;if(t.finalizer=dv("render.component",Ov,e),Mt(),null!==n&&!ut(r,i)){Pt();let i=kv(n);r=t.argsTag=It(),t.argsRevision=ct(r),e[Tv]=!0,e.setProperties(i),e[Tv]=!1,e.trigger("didUpdateAttrs"),e.trigger("didReceiveAttrs")}s&&(e.trigger("willUpdate"),e.trigger("willRender")),At(),zt(r),zt(e[Lv])}didUpdateLayout(t){t.finalize()}didUpdate({component:t,isInteractive:e}){e&&(t.trigger("didUpdate"),t.trigger("didRender"))}getDestroyable(t){return t}};function Av(t){return t.instrumentDetails({initialRender:!0})}function Ov(t){return t.instrumentDetails({initialRender:!1})}var Nv={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!0,hasSubOwner:!1},zv=new Mv;function Fv(t){return t===zv}function Dv(t){let e=hr(t,"content");return ft(Ne(t),Ne(e)),e}function jv(t,e,n){let r=Zt(t),i=Kt(t,e,r);if(e in t)return i;{let s=[i,Kt(t,"content",r)],o=Dv(t);return Yt(o)&&s.push(Oe(o,e,n)),Ct(s)}}var Uv=_l.create({content:null,init(){this._super(...arguments),rr(this),Ne(this),Re(this,jv)},willDestroy(){this.set("content",null),this._super(...arguments)},isTruthy:Xn("content",function(){return Boolean(hr(this,"content"))}),unknownProperty(t){let e=Dv(this);return e?hr(e,t):void 0},setUnknownProperty(t,e){let n=_(this);return n.isInitializing()||n.isPrototypeMeta(this)?(Dn(this,t,null,e),e):mr(Dv(this),t,e)}});function Bv(t){return Au(t,{})}var $v=class{__string;constructor(t){this.__string=t}toString(){return`${this.__string}`}toHTML(){return this.toString()}},qv=function(t){return null==t?t="":"string"!=typeof t&&(t=String(t)),new $v(t)};function Vv(t){return Au(t,{})}var Wv=Vv(({positional:t})=>ge(()=>Qm(t),null)),Hv=Vv(({positional:t})=>{let e=t[0];return ge(()=>(...n)=>{let[r,...i]=Qm(t);if(ye(e)){let t=i.length>0?i[0]:n[0];return void xe(e,t)}return r.call(null,...i,...n)},null)}),Gv=Vv(({named:t})=>{let e=ge(()=>Jm(t),null),n=new Map;for(let r in t)n.set(r,t[r]);return e.children=n,e}),Zv=t=>(t=>null==t||"function"!=typeof t.toString)(t)?"":String(t),Kv=Vv(({positional:t})=>ge(()=>Qm(t).map(Zv).join(""),null)),Yv=Vv(({positional:t})=>{let e=t[0]??ce,n=t[1]??ce;return ge(()=>{let t=_e(e);if(re(t))return V(t,String(_e(n)))},t=>{let r=_e(e);if(re(r))return W(r,String(_e(n)),t)})}),Xv=class{tag=mt();element;args;listener=null;constructor(t,e){this.element=t,this.args=e,et(this,()=>{let{element:t,listener:e}=this;if(e){let{eventName:n,callback:r,options:i}=e;tb(t,n,r,i)}})}updateListener(){let t,e,n,{element:r,args:i,listener:s}=this,o=i.positional[0],a=o?_e(o):void 0,l=i.positional[1],c=l?_e(l):void 0;{let{once:r,passive:s,capture:o}=i.named;r&&(t=_e(r)),s&&(e=_e(s)),o&&(n=_e(o))}let u,h=!1;if(h=null===s||a!==s.eventName||c!==s.userProvidedCallback||t!==s.once||e!==s.passive||n!==s.capture,h&&(void 0===t&&void 0===e&&void 0===n||(u={once:t,passive:e,capture:n})),h){let i=c;this.listener={eventName:a,callback:i,userProvidedCallback:c,once:t,passive:e,capture:n,options:u},s&&tb(r,s.eventName,s.callback,s.options),function(t,e,n,r){Jv++,t.addEventListener(e,n,r)}(r,a,i,u)}}},Jv=0,Qv=0;function tb(t,e,n,r){Qv++,t.removeEventListener(e,n,r)}var eb,nb=Iu(new class{getDebugName(){return"on"}getDebugInstance(){return null}get counters(){return{adds:Jv,removes:Qv}}create(t,e,n,r){return new Xv(e,r)}getTag({tag:t}){return t}install(t){t.updateListener()}update(t){t.updateListener()}getDestroyable(t){return t}},{}),rb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!1,wrapped:!1,willDestroy:!1,hasSubOwner:!1},ib=class{getCapabilities(){return rb}getDebugName({name:t}){return t}getSelf(){return ue}getDestroyable(){return null}},sb=new ib,ob=class{constructor(t="@glimmer/component/template-only",e="(unknown template-only component)"){this.moduleName=t,this.name=e}toString(){return this.moduleName}};function ab(t,e){return new ob(t,e)}zu(sb,ob.prototype);var lb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1};function cb(t,e={}){let n=Boolean(e.updateHook);return{asyncLifeCycleCallbacks:Boolean(e.asyncLifecycleCallbacks),destructor:Boolean(e.destructor),updateHook:n}}function ub(t){return t.capabilities.asyncLifeCycleCallbacks}function hb(t){return t.capabilities.updateHook}var db=class{componentManagerDelegates=new WeakMap;constructor(t){this.factory=t}getDelegateFor(t){let{componentManagerDelegates:e}=this,n=e.get(t);if(void 0===n){let{factory:r}=this;n=r(t),e.set(t,n)}return n}create(t,e,n){let r=this.getDelegateFor(t),i=Ie(n.capture()),s=r.createComponent(e,i);return new pb(s,r,i)}getDebugName(t){return"function"==typeof t?t.name:t.toString()}update(t){let{delegate:e}=t;if(hb(e)){let{component:n,args:r}=t;e.updateComponent(n,r)}}didCreate({component:t,delegate:e}){ub(e)&&e.didCreateComponent(t)}didUpdate({component:t,delegate:e}){(function(t){return ub(t)&&hb(t)})(e)&&e.didUpdateComponent(t)}didRenderLayout(){}didUpdateLayout(){}getSelf({component:t,delegate:e}){return pe(e.getContext(t))}getDestroyable(t){const{delegate:e}=t;if(function(t){return t.capabilities.destructor}(e)){const{component:n}=t;return et(t,()=>e.destroyComponent(n)),t}return null}getCapabilities(){return lb}},pb=class{constructor(t,e,n){this.component=t,this.delegate=e,this.args=n}};function fb(t,e={}){return{disableAutoTracking:Boolean(e.disableAutoTracking)}}var gb=class{componentManagerDelegates=new WeakMap;constructor(t){this.factory=t}getDelegateFor(t){let{componentManagerDelegates:e}=this,n=e.get(t);if(void 0===n){let{factory:r}=this;n=r(t),e.set(t,n)}return n}create(t,e,n,r){let i,s=this.getDelegateFor(t),o=Ie(r),a=s.createModifier(n,o);return i={tag:mt(),element:e,delegate:s,args:o,modifier:a},et(i,()=>s.destroyModifier(a,o)),i}getDebugName(t){return"function"==typeof t?t.name||t.toString():""}getDebugInstance({modifier:t}){return t}getTag({tag:t}){return t}install({element:t,args:e,modifier:n,delegate:r}){let{capabilities:i}=r;i.disableAutoTracking?Wt(()=>r.installModifier(n,t,e)):r.installModifier(n,t,e)}update({args:t,modifier:e,delegate:n}){let{capabilities:r}=n;r.disableAutoTracking?Wt(()=>n.updateModifier(e,t)):n.updateModifier(e,t)}getDestroyable(t){return t}};function mb(t,e){return zu(new db(t),e)}function yb(t,e){return Iu(new gb(t),e)}function vb(t,e){return Au(new Cu(t),e)}var bb=Symbol("RECOMPUTE_TAG"),wb=Symbol("IS_CLASSIC_HELPER"),_b=class extends Xc{static isHelperFactory=!0;static[wb]=!0;static helper=Eb;init(t){super.init(t),this[bb]=gt()}recompute(){xs(()=>pt(this[bb]))}},xb=class{capabilities=wu(0,{hasValue:!0,hasDestroyable:!0});ownerInjection;constructor(t){let e={};$r(e,t),this.ownerInjection=e}createHelper(t,e){return{instance:(n=t,null!=n&&"class"in n?t.create():t.create(this.ownerInjection)),args:e};var n}getDestroyable({instance:t}){return t}getValue({instance:t,args:e}){let{positional:n,named:r}=e,i=t.compute(n,r);return zt(t[bb]),i}getDebugName(t){return eb((t.class||t).prototype)}};vb(t=>new xb(t),_b);var Cb=Nu(_b),kb=class{isHelperFactory=!0;constructor(t){this.compute=t}create(){return{compute:this.compute}}},Sb=new class{capabilities=wu(0,{hasValue:!0});createHelper(t,e){return()=>t.compute.call(null,e.positional,e.named)}getValue(t){return t()}getDebugName(t){return eb(t.compute)}};function Eb(t){return new kb(t)}vb(()=>Sb,kb.prototype);var Rb=Bv(()=>pe("30000000-1000-4000-2000-100000000000".replace(/[0-3]/g,t=>(4*t^16*Math.random()>>(2&t)).toString(16)))),Lb=class{constructor(t,e,n,r,i){this.main=t,this.trustingGuardedAppend=e,this.cautiousGuardedAppend=n,this.trustingNonDynamicAppend=r,this.cautiousNonDynamicAppend=i}get"trusting-append"(){return this.trustingGuardedAppend}get"cautious-append"(){return this.cautiousGuardedAppend}get"trusting-non-dynamic-append"(){return this.trustingNonDynamicAppend}get"cautious-non-dynamic-append"(){return this.cautiousNonDynamicAppend}getAppend(t){return t?this.trustingGuardedAppend:this.cautiousGuardedAppend}};function Tb(t,e,n){Uf(t,()=>t(76),r=>{r(2,()=>{e?(t(68),t(43)):t(47)}),"number"==typeof n?(r(0,()=>{t(68),t(81),t(79),function(t){t(36,4),t(33,3,1),t(35,4),t(0),t(83),t(85,4),Gf(t,!1,!1,!0,()=>{t(92,4),t(95,4)}),t(35,4)}(t)}),r(1,()=>{Rf(t,null,null,()=>{t(3,n)})})):(r(0,()=>{t(47)}),r(1,()=>{t(47)})),r(4,()=>{t(68),t(44)}),r(5,()=>{t(68),t(45)}),r(6,()=>{t(68),t(46)})})}var Pb={symbols:{locals:null,upvars:null},moduleName:"stdlib",scopeValues:null,isStrictMode:!0,owner:null,size:0};function Ib(t,e){let n=new vf(t.program.heap,Pb);e(function(...e){yf(n,t,Pb,e)});let r=n.commit(0);if("number"!=typeof r)throw new Error("Unexpected errors compiling std");return r}var Mb=class{constants;heap;resolver;stdlib;createOp;env;program;constructor({constants:t,heap:e},n,r){this.constants=t,this.heap=e,this.resolver=r.resolver,this.createOp=n,this.env=r.env,this.program=r.program,this.stdlib=function(t){let e=Ib(t,t=>function(t){t(75,4),Gf(t,!1,!1,!0)}(t)),n=Ib(t,t=>Tb(t,!0,null)),r=Ib(t,t=>Tb(t,!1,null)),i=Ib(t,t=>Tb(t,!0,n)),s=Ib(t,t=>Tb(t,!1,r));return new Lb(e,i,s,n,r)}(this)}};function Ab(t){return{object:`${t.name}:main`}}var Ob,Nb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},zb=mu(Nb),Fb=new class{create(t,e,n,r,i){let s=i.get("outletState"),o=e.ref;i.set("outletState",o);let a={finalize:dv("render.outlet",Ab,e)};if(void 0!==r.debugRenderTree){let t=_e(s)?.render?.owner,e=_e(o)?.render?.owner;if(t&&t!==e){let t=e,{mountPoint:n}=t;n&&(a.engine={mountPoint:n,instance:t})}}return a}getDebugName({name:t}){return`{{outlet}} for ${t}`}getDebugCustomRenderTree(t,e){let n=[];return n.push({bucket:e,type:"outlet",name:"main",args:ly,instance:void 0}),e.engine&&n.push({bucket:e.engine,type:"engine",name:e.engine.mountPoint,args:ly,instance:e.engine.instance}),n}getCapabilities(){return Nb}getSelf(){return ce}didCreate(){}didUpdate(){}didRenderLayout(t){t.finalize()}didUpdateLayout(){}getDestroyable(){return null}},Db=ig({id:null,block:'[[[8,[30,1],null,[["@controller","@model"],[[30,2],[30,3]]],null]],["@Component","@controller","@model"],[]]',moduleName:"(unknown template module)",isStrictMode:!0}),jb=class{handle=-1;resolvedName=null;manager=Fb;capabilities=zb;compilable;constructor(t,e){this.state=e,this.compilable=yv(Db(t)).asLayout()}},Ub=class extends Mv{component;constructor(t){super(),this.component=t}create(t,e,n,{isInteractive:r},i){let s=this.component,o=dv("render.component",Av,s);i.view=s;let a=""!==s.tagName;a||(r&&s.trigger("willRender"),s._transitionTo("hasElement"),r&&s.trigger("willInsertElement"));let l=new Cv(s,null,yt,o,a,r);return zt(s[Lv]),l}},Bb={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!1,hasSubOwner:!1},$b=class{handle=-1;resolvedName="-top-level";state;manager;capabilities=mu(Bb);compilable=null;constructor(t){this.manager=new Ub(t);let e=Xa(t);this.state=e}},qb=class{constructor(t){this.inner=t}},Vb=Bv(({positional:t})=>{const e=t[0];return ge(()=>{let t=_e(e);return zt(Ne(t)),nr(t)&&(t=Dv(t)),new qb(t)})}),Wb=class{position=0;constructor(t){this.length=t}isEmpty(){return!1}memoFor(t){return t}next(){let{length:t,position:e}=this;if(e>=t)return null;let n=this.valueFor(e),r=this.memoFor(e);return this.position++,{value:n,memo:r}}},Hb=class extends Wb{static from(t){return t.length>0?new this(t):null}static fromForEachable(t){let e=[];return t.forEach(t=>e.push(t)),this.from(e)}constructor(t){super(t.length),this.array=t}valueFor(t){return this.array[t]}},Gb=class extends Wb{static from(t){return t.length>0?new this(t):null}constructor(t){super(t.length),this.array=t}valueFor(t){return Me(this.array,t)}},Zb=class extends Wb{static fromIndexable(t){let e=Object.keys(t);if(0===e.length)return null;{let n=[];for(let r of e){let e;e=t[r],Nt()&&(zt(Kt(t,r)),Array.isArray(e)&&zt(Kt(e,"[]"))),n.push(e)}return new this(e,n)}}static fromForEachable(t){let e=[],n=[],r=0,i=!1;return t.forEach(function(t,s){i=i||arguments.length>=2,i&&e.push(s),n.push(t),r++}),0===r?null:i?new this(e,n):new Hb(n)}constructor(t,e){super(e.length),this.keys=t,this.values=e}valueFor(t){return this.values[t]}memoFor(t){return this.keys[t]}},Kb=class{static from(t){let e=t[Symbol.iterator](),n=e.next(),{done:r}=n;return r?null:new this(e,n)}position=0;constructor(t,e){this.iterable=t,this.result=e}isEmpty(){return!1}next(){let{iterable:t,result:e,position:n}=this;if(e.done)return null;let r=this.valueFor(e,n),i=this.memoFor(e,n);return this.position++,this.result=t.next(),{value:r,memo:i}}},Yb=class extends Kb{valueFor(t){return t.value}memoFor(t,e){return e}},Xb=class extends Kb{valueFor(t){return t.value[1]}memoFor(t){return t.value[0]}};function Jb(t){return null!=t&&"function"==typeof t.forEach}function Qb(t){return null!=t&&"function"==typeof t[Symbol.iterator]}Ob={scheduleRevalidate(){ws.ensureInstance()},toBool:function(t){return nr(t)?(zt(Oe(t,"content")),Boolean(hr(t,"isTruthy"))):Ic(t)?(zt(Oe(t,"[]")),0!==t.length):function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.toHTML}(t)?Boolean(t.toString()):Boolean(t)},toIterator:function(t){return t instanceof qb?function(t){return null===(e=t)||"object"!=typeof e&&"function"!=typeof e?null:Array.isArray(t)||sr(t)?Zb.fromIndexable(t):Qb(t)?Xb.from(t):Jb(t)?Zb.fromForEachable(t):Zb.fromIndexable(t);var e}(t.inner):function(t){return Yt(t)?Array.isArray(t)?Hb.from(t):sr(t)?Gb.from(t):Qb(t)?Yb.from(t):Jb(t)?Hb.fromForEachable(t):null:null}(t)},getProp:dr,setProp:yr,getPath:hr,setPath:mr,scheduleDestroy(t,e){Es("actions",null,e,t)},scheduleDestroyed(t){Es("destroy",null,t)},warnIfStyleNotTrusted(t){},assert(t,e,n){},deprecate(t,e,n){}},H=Ob.scheduleRevalidate,D=Ob.scheduleDestroy,j=Ob.scheduleDestroyed,U=Ob.toIterator,B=Ob.toBool,$=Ob.getProp,q=Ob.setProp,V=Ob.getPath,W=Ob.setPath;var tw=class{enableDebugTooling=N._DEBUG_RENDER_TREE;constructor(t,e){this.owner=t,this.isInteractive=e}onTransactionCommit(){}},ew=Bv(({positional:t,named:e})=>{const n=t[0];let r=e.type,i=e.loc,s=e.original;return _e(r),_e(i),_e(s),ge(()=>_e(n))}),nw=Bv(t=>t.positional[0]),rw=Bv(({positional:t})=>ge(()=>{let e=t[0],n=t[1],r=_e(e).split("."),i=r[r.length-1],s=_e(n);return!0===s?sp(i):s||0===s?String(s):""})),iw=Bv(({positional:t},e)=>{let n=_e(t[0]);return pe(e.factoryFor(n)?.class)}),sw=Bv(({positional:t})=>{const e=t[0];return ge(()=>{let t=_e(e);return Yt(t)&&zt(Oe(t,"[]")),t})}),ow=Bv(({positional:t})=>ve(t[0])),aw=Bv(({positional:t})=>me(t[0])),lw=Bv(({positional:t,named:e})=>fe(_e(t[0]))),cw={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!0},uw=new class{getDynamicLayout(t){return yv(t.engine.lookup("template:application")(t.engine)).asLayout()}getCapabilities(){return cw}getOwner(t){return t.engine}create(t,{name:e},n,r){let i=t.buildChildEngineInstance(e);i.boot();let s,o,a,l,c=i.factoryFor("controller:application")||Fh(i,"application");if(n.named.has("model")&&(l=n.named.get("model")),void 0===l)s=c.create(),o=pe(s),a={engine:i,controller:s,self:o,modelRef:l};else{let t=_e(l);s=c.create({model:t}),o=pe(s),a={engine:i,controller:s,self:o,modelRef:l}}return r.debugRenderTree&&tt(i,s),a}getDebugName({name:t}){return t}getDebugCustomRenderTree(t,e,n){return[{bucket:e.engine,instance:e.engine,type:"engine",name:t.name,args:n},{bucket:e.controller,instance:e.controller,type:"route-template",name:"application",args:n}]}getSelf({self:t}){return t}getDestroyable(t){return t.engine}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}update(t){let{controller:e,modelRef:n}=t;void 0!==n&&e.set("model",_e(n))}},hw=class{handle=-1;state;manager=uw;compilable=null;capabilities=mu(cw);constructor(t){this.resolvedName=t,this.state={name:t}}},dw=Bv((t,e)=>{let n,r,i,s=t.positional[0];return n=Xm(t.named,ay),ge(()=>{let t=_e(s);return"string"==typeof t?(r===t||(r=t,i=xm(0,new hw(t),e,n,!0)),i):(i=null,r=null,null)})}),pw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},fw=mu(pw),gw=new class{create(t,e,n){let r=n.named.get("controller");return{self:r,controller:_e(r)}}getSelf({self:t}){return t}getDebugName({name:t}){return`route-template (${t})`}getDebugCustomRenderTree({name:t},e,n){return[{bucket:e,type:"route-template",name:t,args:n,instance:e.controller}]}getCapabilities(){return pw}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}getDestroyable(){return null}},mw=class{handle=-1;resolvedName;state;manager=gw;capabilities=fw;compilable;constructor(t,e){let n=yv(e);this.resolvedName=t,this.state={name:t},this.compilable=n.asLayout()}};function yw(t,e,n){return xm(0,new mw(e,n),t,null,!0)}var vw=Bv((t,e,n)=>{let r=ge(()=>_e(n.get("outletState"))?.outlets?.main),i=null,s=null;return ge(()=>{let t=_e(r),n=function(t,e){if(void 0===e)return null;let n=e.render;if(void 0===n)return null;let r=n.template;return null==r?null:{ref:t,name:n.name,template:r,controller:n.controller}}(r,t);if(!function(t,e){return null!==t&&null!==e&&t.template===e.template&&t.controller===e.controller}(n,i))if(i=n,null!==n){let o,a=t?.render?.owner??e,l=ne(),c=n.template;o=Du(c)?c:yw(a,n.name,c),l.Component=pe(o),l.controller=pe(n.controller);let u=ke(r,["render","model"]),h=_e(u);l.model=ge(()=>(i===n&&(h=_e(u)),h));let d=Xm(l,ay);s=xm(0,new jb(e,n),a,d,!0)}else s=null;return s})});function bw(t){return{object:`component:${t}`}}var ww={mut:ow,readonly:aw,unbound:lw,"-hash":Gv,"-each-in":Vb,"-normalize-class":rw,"-resolve":iw,"-track-array":sw,"-mount":dw,"-outlet":vw,"-in-el-null":nw},_w={...ww,array:Wv,concat:Kv,fn:Hv,get:Yv,hash:Gv,"unique-id":Rb};_w["-disallow-dynamic-resolution"]=ew;var xw={},Cw={...xw,on:nb},kw=class{componentDefinitionCache=new Map;lookupPartial(){return null}lookupHelper(t,e){let n=_w[t];if(void 0!==n)return n;let r=e.factoryFor(`helper:${t}`);if(void 0===r)return null;let i=r.class;return void 0===i?null:"function"==typeof i&&!0===i[wb]?(Au(Cb,r),r):i}lookupBuiltInHelper(t){return ww[t]??null}lookupModifier(t,e){let n=Cw[t];if(void 0!==n)return n;let r=e.factoryFor(`modifier:${t}`);return void 0===r?null:r.class||null}lookupBuiltInModifier(t){return xw[t]??null}lookupComponent(t,e){let n=function(t,e){let n=function(t,e){let n=`component:${t}`;return e.factoryFor(n)||null}(e,t);if(null!=(r=n)&&"function"==typeof r.create&&n.class){let t=Np(n.class);if(void 0!==t)return{component:n,layout:t}}var r;return null===n?null:{component:n,layout:null}}(e,t);if(null===n)return null;let r,i=null;r=null===n.component?i=n.layout(e):n.component;let s=this.componentDefinitionCache.get(r);if(void 0!==s)return s;null===i&&null!==n.layout&&(i=n.layout(e));let o=dv("render.getComponentDefinition",bw,t),a=null;if(null===n.component)a={state:ab(void 0,t),manager:sb,template:i};else{let t=n.component,e=t.class,r=Fu(e);a={state:Fv(r)?t:e,manager:r,template:i}}return o(),this.componentDefinitionCache.set(r,a),a}},Sw="-top-level",Ew=class t{static extend(e){return class extends t{static create(t){return t?super.create(Object.assign({},e,t)):super.create(e)}}}static reopenClass(t){Object.assign(this,t)}static create(e){let{environment:n,application:r,template:i}=e,s=Br(e),o=i(s);return new t(n,s,o,r)}ref;state;constructor(t,e,n,r){this._environment=t,this.owner=e,this.template=n,this.namespace=r;let i=gt(),s={outlets:{main:void 0},render:{owner:e,name:Sw,controller:void 0,model:void 0,template:n}},o=this.ref=ge(()=>(zt(i),s),t=>{pt(i),s.outlets.main=t});this.state={ref:o,name:Sw,template:n,controller:void 0}}appendTo(t){let e;e=this._environment.hasDOM&&"string"==typeof t?document.querySelector(t):t,Es("render",this.owner.lookup("renderer:-dom"),"appendOutletView",this,e)}rerender(){}setOutletState(t){xe(this.ref,t)}destroy(){}},Rw=class t{constructor(t,e){this.view=t,this.outletState=e}child(){return new t(this.view,this.outletState)}get(t){return this.outletState}set(t,e){return this.outletState=e,e}},Lw=()=>{},Tw=class{type="component";#g;#m;constructor(t,e,n){this.#m=()=>{let r=iv(t.context,t.builder(t.env,n.into),t.owner,e,n?.args),i=this.#g=r.sync();tt(this,this.#g),this.#m=()=>{if(!it(i)&&!st(i))return i.rerender({alwaysRevalidate:!1})}}}isFor(t){return!1}render(){this.#m()}destroy(){nt(this)}get destroyed(){return st(this)}get result(){return this.#g}},Pw=class{type="classic";id;result;destroyed;render;env;constructor(t,e,n,r,i,s,o,a){this.root=t,this.id=t instanceof Ew?ll(t):Kl(t),this.result=void 0,this.destroyed=!1,this.env=e.env,this.render=()=>{let t=yv(r).asLayout(),l=rv(e,n,i,a(e.env,{element:s,nextSibling:null}),t,o),c=this.result=l.sync();tt(this,c),this.render=()=>{if(!it(c)&&!st(c))return c.rerender({alwaysRevalidate:!1})}}}isFor(t){return this.root===t}destroy(){let{result:t,env:e}=this;this.destroyed=!0,this.root=null,this.result=void 0,this.render=void 0,void 0!==t&&Iy(e,()=>nt(t))}},Iw=[];function Mw(t){let e=Iw.indexOf(t);Iw.splice(e,1)}var Aw=null,Ow=0;ws.on("begin",function(){for(let t of Iw)t.rerender()}),ws.on("end",function(){for(let t of Iw)if(!t.isValid()){if(Ow>N._RERENDER_LOOP_LIMIT)throw Ow=0,t.destroy(),new Error("infinite rendering invalidation detected");return Ow++,ws.join(null,Lw)}Ow=0,function(){if(null!==Aw){let t=Aw.resolve;Aw=null,ws.join(null,t)}}()});var Nw=class t{static create(e,n){const r=new t(e,n);return tt(n,r),r}#y;#v=-1;#b=!1;#w=!1;#_=[];#x=[];constructor(t,e){this.#y=t,et(this,()=>{this.clearAllRoots(e)})}get debug(){return{roots:this.#_,inRenderTransaction:this.#b,isInteractive:this.isInteractive}}get roots(){return this.#_}get owner(){return this.#y.owner}get builder(){return this.#y.builder}get context(){return this.#y.context}get env(){return this.context.env}get isInteractive(){return this.#y.context.env.isInteractive}renderRoot(t,e){let n=this.#_;return n.push(t),tt(this,t),1===n.length&&function(t){Iw.push(t)}(e),this.#C(e),t}#C(t){if(this.#b)return;this.#b=!0;let e=!1;try{this.renderRoots(t),e=!0}finally{e||(this.#v=ct(xt)),this.#b=!1}}renderRoots(t){let e,n=this.#_,r=this.#x;do{e=n.length,Iy(this.context.env,()=>{for(let t=0;t=e||i.render()}this.#v=ct(xt)})}while(n.length>e);for(;r.length;){let t=r.pop(),e=n.indexOf(t);n.splice(e,1)}0===this.#_.length&&Mw(t)}scheduleRevalidate(t){ws.scheduleOnce("render",this,this.revalidate,t)}isValid(){return this.#w||0===this.#_.length||ut(xt,this.#v)}revalidate(t){this.isValid()||this.#C(t)}clearAllRoots(t){let e=this.#_;for(let n of e)nt(n);this.#x.length=0,this.#_=[],e.length&&Mw(t)}},zw=class t{static strict(e,n,r){return new t(e,{hasDOM:Ao,...r},n,new kw,sm)}state;constructor(t,e,n,r,i){let s={constants:new fg,heap:new lg},o=Py({document:n},new tw(t,e.isInteractive),s,r),a=new Mb(s,t=>new og(t),o);this.state=Nw.create({owner:t,context:a,builder:i},this)}get debugRenderTree(){let{debugRenderTree:t}=this.state.env;return t}isValid(){return this.state.isValid()}destroy(){nt(this)}render(t,e){const n=new Tw(this.state,t,{args:e.args,into:(r=e.into,"element"in r?r:{element:r,nextSibling:null})});var r;return this.state.renderRoot(n,this)}rerender(){this.state.scheduleRevalidate(this)}},Fw=class extends zw{static strict(t,e,n){return new zw(t,{hasDOM:Ao,...n},e,new kw,sm)}_rootTemplate;_viewRegistry;static create(t){let{_viewRegistry:e}=t,n=Br(t),r=n.lookup("service:-document"),i=n.lookup("-environment:main"),s=n.lookup(yc`template:-root`),o=n.lookup("service:-dom-builder");return new this(n,r,i,s,e,o)}constructor(t,e,n,r,i,s=sm,o=new kw){super(t,n,e,o,s),this._rootTemplate=r(t),this._viewRegistry=i||t.lookup("-view-registry:main")}appendOutletView(t,e){let n=new jb((r=t).owner,r.state);var r;let{name:i,template:s}=t.state,o=ne();o.Component=pe(yw(t.owner,i,s)),o.controller=ce,o.model=ce;let a=Xm(o,ay);this._appendDefinition(t,xm(0,n,t.owner,a,!0),e)}appendTo(t,e){let n=new $b(t);this._appendDefinition(t,xm(0,n,this.state.owner,null,!0),e)}_appendDefinition(t,e,n){let r=pe(e),i=new Rw(null,ce),s=new Pw(t,this.state.context,this.state.owner,this._rootTemplate,r,n,i,this.state.builder);this.state.renderRoot(s,this)}cleanupRootFor(t){if(st(this))return;let e=this.state.roots,n=e.length;for(;n--;){let r=e[n];"classic"===r.type&&r.isFor(t)&&(r.destroy(),e.splice(n,1))}}remove(t){t._transitionTo("destroying"),this.cleanupRootFor(t),this.state.isInteractive&&t.trigger("didDestroyElement")}get _roots(){return this.state.debug.roots}get _inRenderTransaction(){return this.state.debug.inRenderTransaction}get _isInteractive(){return this.state.debug.isInteractive}get _context(){return this.state.context}register(t){let e=Kl(t);this._viewRegistry[e]=t}unregister(t){delete this._viewRegistry[Kl(t)]}getElement(t){if(this._isInteractive)return Ql(t);throw new Error("Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).")}getBounds(t){let e=t[Pv];return{parentElement:e.parentElement(),firstNode:e.firstNode(),lastNode:e.lastNode()}}},Dw=class extends hu{rootElement=null;init(t){super.init(t),this.application._watchInstance(this),this.register("-application-instance:main",this,{instantiate:!1})}_bootSync(t){return this._booted||(t=new jw(t),this.setupRegistry(t),t.rootElement?this.rootElement=t.rootElement:this.rootElement=this.application.rootElement,t.location&&mr(this.router,"location",t.location),this.application.runInstanceInitializers(this),t.isInteractive&&this.setupEventDispatcher(),this._booted=!0),this}setupRegistry(t){this.constructor.setupRegistry(this.__registry__,t)}_router;get router(){if(!this._router){let t=this.lookup("router:main");this._router=t}return this._router}didCreateRootView(t){t.appendTo(this.rootElement)}startRouting(){this.router.startRouting()}setupRouter(){this.router.setupRouter()}handleURL(t){return this.setupRouter(),this.router.handleURL(t)}setupEventDispatcher(){let t=this.lookup("event_dispatcher:main"),e=hr(this.application,"customEvents"),n=hr(this,"customEvents"),r=Object.assign({},e,n);return t.setup(r,this.rootElement),t}getURL(){return this.router.url}visit(t){this.setupRouter();let e=this.__container__.lookup("-environment:main"),n=this.router,r=hr(n,"location");return r.setURL(t),n.handleURL(r.getURL()).followRedirects().then(()=>e.options.shouldRender?function(){if(null===Aw){let t;Aw={promise:new Promise(e=>t=e),resolve:t},ys()||ws.schedule("actions",null,Lw)}return Aw.promise}().then(()=>this):this,t=>{throw t.error&&t.error instanceof Error?t.error:"TransitionAborted"===t.name?new Error(t.message):t})}willDestroy(){super.willDestroy(),this.application._unwatchInstance(this)}static setupRegistry(t,e={}){let n=e instanceof jw?e:new jw(e);t.register("-environment:main",n.toEnvironment(),{instantiate:!1}),t.register("service:-document",n.document,{instantiate:!1}),super.setupRegistry(t,n)}},jw=class{isInteractive;_renderMode;isBrowser;location=null;shouldRender;document;rootElement;constructor(t={}){this.isInteractive=Boolean(Ao),this._renderMode=t._renderMode,void 0!==t.isBrowser?this.isBrowser=Boolean(t.isBrowser):this.isBrowser=Boolean(Ao),this.isBrowser||(this.isInteractive=!1,this.location="none"),void 0!==t.shouldRender?this.shouldRender=Boolean(t.shouldRender):this.shouldRender=!0,this.shouldRender||(this.isInteractive=!1),t.document?this.document=t.document:this.document="undefined"!=typeof document?document:null,t.rootElement&&(this.rootElement=t.rootElement),void 0!==t.location&&(this.location=t.location),void 0!==t.isInteractive&&(this.isInteractive=Boolean(t.isInteractive))}toEnvironment(){return{...Ep,hasDOM:this.isBrowser,isInteractive:this.isInteractive,_renderMode:this._renderMode,options:this}}},Uw=a({default:()=>Bw}),Bw=class extends Bl{static NAMESPACES=li;static NAMESPACES_BY_ID=ci;static processAll=gi;static byName=pi;init(t){super.init(t),ui(this)}toString(){let t=hr(this,"name")||hr(this,"modulePrefix");if(t)return t;di();let e=ri(this);return void 0===e&&(e=ll(this),ni(this,e)),e}nameClasses(){fi(this)}destroy(){return hi(this),super.destroy()}};Bw.prototype.isNamespace=!0;var $w=function(){function t(){this._vertices=new qw}return t.prototype.add=function(t,e,n,r){if(!t)throw new Error("argument `key` is required");var i=this._vertices,s=i.add(t);if(s.val=e,n)if("string"==typeof n)i.addEdge(s,i.add(n));else for(var o=0;o0){var r="cycle detected: "+e;throw this.each(this.path,function(t){r+=" <- "+t}),new Error(r)}}},t.prototype.reset=function(){this.stack.length=0,this.path.length=0,this.result.length=0;for(var t=0,e=this.length;t=0){var a=this[o];if(a.flag)continue;if(a.flag=!0,i.push(o),e===a.key)break;r.push(~o),this.pushIncoming(a)}else i.pop(),s.push(~o)}},t.prototype.pushIncoming=function(t){for(var e=this.stack,n=t.length-1;n>=0;n--){var r=t[n];this[r].flag||e.push(r)}},t.prototype.each=function(t,e){for(var n=0,r=t.length;n{for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&r.test(e)&&"class"===Sc(t[e])&&n.push(sp(e.replace(r,"")))}),n}},Hw=nb;function Gw(){}var Zw=class{static toString(){return"internal component"}constructor(t,e,n){this.owner=t,this.args=e,this.caller=n,$r(this,t)}get id(){return ll(this)}get class(){return"ember-view"}validateArguments(){for(let t of Object.keys(this.args.named))this.isSupportedArgument(t)||this.onUnsupportedArgument(t)}named(t){let e=this.args.named[t];return e?_e(e):void 0}positional(t){let e=this.args.positional[t];return e?_e(e):void 0}listenerFor(t){return this.named(t)||Gw}isSupportedArgument(t){return!1}onUnsupportedArgument(t){}toString(){return`<${this.constructor}:${ll(this)}>`}},Kw=new WeakMap;function Yw(t,e){let n={create(){throw void 0},toString:()=>t.toString()};return Kw.set(n,t),zu(Jw,n),Op(e,n),n}var Xw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},Jw=new class{getCapabilities(){return Xw}create(t,e,n,r,i,s){let o=new(a=e,Kw.get(a))(t,n.capture(),_e(s));var a;return Wt(o.validateArguments.bind(o)),o}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}getDebugName(t){return t.toString()}getSelf(t){return pe(t)}getDestroyable(t){return t}},Qw=ig({id:null,block:'[[[11,"input"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,4,[30,0,["type"]]],[16,"checked",[30,0,["checked"]]],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/input.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),t_=Object.freeze({});function e_(t){return function(t){return t.target}(t).value}function n_(t){return void 0===t?new i_(void 0):be(t)?new i_(_e(t)):we(t)?new s_(t):new o_(t)}var r_,i_=class{static{Zh(this.prototype,"value",[Wr])}#k=void Yh(this,"value");constructor(t){this.value=t}get(){return this.value}set(t){this.value=t}},s_=class{constructor(t){this.reference=t}get(){return _e(this.reference)}set(t){xe(this.reference,t)}},o_=class{local;upstream;lastUpstreamValue=t_;constructor(t){this.upstream=new s_(t)}get(){let t=this.upstream.get();return t!==this.lastUpstreamValue&&(this.lastUpstreamValue=t,this.local=new i_(t)),this.local.get()}set(t){this.local.set(t)}},a_=class extends Zw{validateArguments(){super.validateArguments()}_value=n_(this.args.named.value);get value(){return this._value.get()}set value(t){this._value.set(t)}valueDidChange(t){this.value=e_(t)}static{Kh(this.prototype,"valueDidChange",[Vl])}change(t){this.valueDidChange(t)}input(t){this.valueDidChange(t)}keyUp(t){switch(t.key){case"Enter":this.listenerFor("enter")(t),this.listenerFor("insert-newline")(t);break;case"Escape":this.listenerFor("escape-press")(t)}}static{Kh(this.prototype,"keyUp",[Vl])}listenerFor(t){let e=super.listenerFor(t);return this.isVirtualEventListener(t,e)?function(t){return e=>t(e_(e),e)}(e):e}isVirtualEventListener(t,e){return-1!==["enter","insert-newline","escape-press"].indexOf(t)}};if(Ao){const t=Object.create(null),e=document.createElement("input");t[""]=!1,t.text=!0,t.checkbox=!0,r_=n=>{let r=t[n];if(void 0===r){try{e.type=n,r=e.type===n}catch(i){r=!1}finally{e.type="text"}t[n]=r}return r}}else r_=t=>""!==t;var l_=class extends a_{static toString(){return"Input"}get class(){return this.isCheckbox?"ember-checkbox ember-view":"ember-text-field ember-view"}get type(){let t=this.named("type");return null==t?"text":r_(t)?t:"text"}get isCheckbox(){return"checkbox"===this.named("type")}_checked=n_(this.args.named.checked);get checked(){return this.isCheckbox?this._checked.get():void 0}set checked(t){this._checked.set(t)}change(t){this.isCheckbox?this.checkedDidChange(t):super.change(t)}static{Kh(this.prototype,"change",[Vl])}input(t){this.isCheckbox||super.input(t)}static{Kh(this.prototype,"input",[Vl])}checkedDidChange(t){let e=t.target;this.checked=e.checked}static{Kh(this.prototype,"checkedDidChange",[Vl])}isSupportedArgument(t){return-1!==["type","value","checked","enter","insert-newline","escape-press"].indexOf(t)||super.isSupportedArgument(t)}},c_=Yw(l_,Qw),u_=ig({id:null,block:'[[[11,"textarea"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/textarea.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),h_=class extends a_{static toString(){return"Textarea"}get class(){return"ember-text-area ember-view"}change(t){super.change(t)}static{Kh(this.prototype,"change",[Vl])}input(t){super.input(t)}static{Kh(this.prototype,"input",[Vl])}isSupportedArgument(t){return-1!==["type","value","enter","insert-newline","escape-press"].indexOf(t)||super.isSupportedArgument(t)}},d_=Yw(h_,u_),p_=ig({id:null,block:'[[[11,3],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[16,"role",[30,0,["role"]]],[16,"title",[30,0,["title"]]],[16,"rel",[30,0,["rel"]]],[16,"tabindex",[30,0,["tabindex"]]],[16,"target",[30,0,["target"]]],[17,1],[16,6,[30,0,["href"]]],[4,[32,0],["click",[30,0,["click"]]],null],[12],[18,2,null],[13]],["&attrs","&default"],["yield"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/link-to.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),f_=[],g_={};function m_(t){return null==t}function y_(t){return"object"==typeof t&&null!==t&&!0===t.isQueryParams}var v_=class extends Zw{static toString(){return"LinkTo"}static{Zh(this.prototype,"routing",[pp("-routing")])}#S=void Yh(this,"routing");validateArguments(){super.validateArguments()}get class(){let t="ember-view";return this.isActive?(t+=this.classFor("active"),!1===this.willBeActive&&(t+=" ember-transitioning-out")):this.willBeActive&&(t+=" ember-transitioning-in"),this.isLoading&&(t+=this.classFor("loading")),this.isDisabled&&(t+=this.classFor("disabled")),t}get href(){if(this.isLoading)return"#";let{routing:t,route:e,models:n,query:r}=this;return zt(Kt(t,"currentState")),t.generateURL(e,n,r)}click(t){if(!Hl(t))return;let e=t.currentTarget,n=e instanceof SVGAElement?e.target.baseVal:e.target;if(""!==n&&"_self"!==n)return;if(this.preventDefault(t),this.isDisabled)return;if(this.isLoading)return;let{routing:r,route:i,models:s,query:o,replace:a}=this,l={transition:void 0};uv(0,0,()=>{l.transition=r.transitionTo(i,s,o,a)})}static{Kh(this.prototype,"click",[Vl])}get route(){if("route"in this.args.named){let t=this.named("route");return t&&this.namespaceRoute(t)}return this.currentRoute}currentRouteCache=Bt(()=>(zt(Kt(this.routing,"currentState")),Wt(()=>this.routing.currentRouteName)));get currentRoute(){return $t(this.currentRouteCache)}get models(){return"models"in this.args.named?this.named("models"):"model"in this.args.named?[this.named("model")]:f_}get query(){return"query"in this.args.named?{...this.named("query")}:g_}get replace(){return!0===this.named("replace")}get isActive(){return this.isActiveForState(this.routing.currentState)}get willBeActive(){let t=this.routing.currentState,e=this.routing.targetState;return t===e?null:this.isActiveForState(e)}get isLoading(){return m_(this.route)||this.models.some(t=>m_(t))}get isDisabled(){return Boolean(this.named("disabled"))}get isEngine(){return void 0!==au(this.owner)}get engineMountPoint(){return this.owner.mountPoint}classFor(t){let e=this.named(`${t}Class`);return!0===e||m_(e)?` ${t}`:e?` ${e}`:""}namespaceRoute(t){let{engineMountPoint:e}=this;return void 0===e?t:"application"===t?e:`${e}.${t}`}isActiveForState(t){if(m_(t))return!1;if(this.isLoading)return!1;let e=this.named("current-when");if("boolean"==typeof e)return e;if("string"==typeof e){let{routing:n}=this;return e.split(" ").some(e=>n.isActiveForRoute([],void 0,this.namespaceRoute(e),t))}{let{route:e,models:n,query:r,routing:i}=this;return i.isActiveForRoute(n,r,e,t)}}preventDefault(t){t.preventDefault()}isSupportedArgument(t){return-1!==["route","model","models","query","replace","disabled","current-when","activeClass","loadingClass","disabledClass"].indexOf(t)||super.isSupportedArgument(t)}},{prototype:b_}=v_,w_=(t,e)=>t?Object.getOwnPropertyDescriptor(t,e)||w_(Object.getPrototypeOf(t),e):null;{let t=b_.onUnsupportedArgument;Object.defineProperty(b_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(e){"href"===e||t.call(this,e)}})}{let t=w_(b_,"models").get;Object.defineProperty(b_,"models",{configurable:!0,enumerable:!1,get:function(){let e=t.call(this);return e.length>0&&!("query"in this.args.named)&&y_(e[e.length-1])&&(e=e.slice(0,-1)),e}});let e=w_(b_,"query").get;Object.defineProperty(b_,"query",{configurable:!0,enumerable:!1,get:function(){if("query"in this.args.named){let t=e.call(this);return y_(t)?t.values??g_:t}{let e=t.call(this);if(e.length>0){let t=e[e.length-1];if(y_(t)&&null!==t.values)return t.values}return g_}}})}{let t=b_.onUnsupportedArgument;Object.defineProperty(b_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(e){"params"!==e&&t.call(this,e)}})}var __=Yw(v_,p_),x_="%+b:0%";function C_(t){return t.nodeValue===x_}var k_=class extends gg{candidate=null;openBlockDepth;injectedOmittedNode=!1;constructor(t,e,n){super(t,e),this.startingBlockDepth=n,this.openBlockDepth=n-1}},S_=class extends tm{unmatchedAttributes=null;blockDepth=0;startingBlockOffset;constructor(t,e,n){if(super(t,e,n),n)throw new Error("Rehydration with nextSibling not supported");let r=this.currentCursor.element.firstChild;for(;null!==r&&!E_(r);)r=r.nextSibling;this.candidate=r;const i=L_(r);if(0!==i){const t=i-1,e=this.dom.createComment(`%+b:${t}%`);r.parentNode.insertBefore(e,this.candidate);let n=r.nextSibling;for(;null!==n&&(!R_(n)||L_(n)!==i);)n=n.nextSibling;const s=this.dom.createComment(`%-b:${t}%`);r.parentNode.insertBefore(s,n.nextSibling),this.candidate=e,this.startingBlockOffset=t}else this.startingBlockOffset=0}get currentCursor(){return this.cursors.current}get candidate(){return this.currentCursor?this.currentCursor.candidate:null}set candidate(t){this.currentCursor.candidate=t}disableRehydration(t){const e=this.currentCursor;e.candidate=null,e.nextSibling=t}enableRehydration(t){const e=this.currentCursor;e.candidate=t,e.nextSibling=null}pushElement(t,e=null){const n=new k_(t,e,this.blockDepth||0);null!==this.candidate&&(n.candidate=t.firstChild,this.candidate=t.nextSibling),this.cursors.push(n)}clearMismatch(t){let e=t;const n=this.currentCursor;if(null!==n){const t=n.openBlockDepth;if(t>=n.startingBlockDepth)for(;e&&!(R_(e)&&t>=T_(e,this.startingBlockOffset));)e=this.remove(e);else for(;null!==e;)e=this.remove(e);this.disableRehydration(e)}}__openBlock(){const{currentCursor:t}=this;if(null===t)return;const e=this.blockDepth;this.blockDepth++;const{candidate:n}=t;if(null===n)return;const{tagName:r}=t.element;E_(n)&&T_(n,this.startingBlockOffset)===e?(this.candidate=this.remove(n),t.openBlockDepth=e):"TITLE"!==r&&"SCRIPT"!==r&&"STYLE"!==r&&this.clearMismatch(n)}__closeBlock(){const{currentCursor:t}=this;if(null===t)return;const e=t.openBlockDepth;this.blockDepth--;const{candidate:n}=t;let r=!1;if(null!==n)if(r=!0,R_(n)&&T_(n,this.startingBlockOffset)===e){const e=this.remove(n);this.candidate=e,t.openBlockDepth--}else this.clearMismatch(n),r=!1;if(!r){const e=t.nextSibling;if(null!==e&&R_(e)&&T_(e,this.startingBlockOffset)===this.blockDepth){const n=this.remove(e);this.enableRehydration(n),t.openBlockDepth--}}}__appendNode(t){const{candidate:e}=this;return e||super.__appendNode(t)}__appendHTML(t){const e=this.markerBounds();if(e){const t=e.firstNode(),n=e.lastNode(),r=new mg(this.element,t.nextSibling,n.previousSibling),i=this.remove(t);return this.remove(n),null!==i&&M_(i)&&(this.candidate=this.remove(i),null!==this.candidate&&this.clearMismatch(this.candidate)),r}return super.__appendHTML(t)}remove(t){const e=t.parentNode,n=t.nextSibling;return e.removeChild(t),n}markerBounds(){const t=this.candidate;if(t&&I_(t)){const e=t;let n=e.nextSibling;for(;!I_(n);)n=Jt(n.nextSibling);return new mg(this.element,e,n)}return null}__appendText(t){const{candidate:e}=this;return e?3===e.nodeType?(e.nodeValue!==t&&(e.nodeValue=t),this.candidate=e.nextSibling,e):8===(n=e).nodeType&&"%|%"===n.nodeValue||M_(e)&&""===t?(this.candidate=this.remove(e),this.__appendText(t)):(this.clearMismatch(e),super.__appendText(t)):super.__appendText(t);var n}__appendComment(t){const e=this.candidate;return e&&8===e.nodeType?(e.nodeValue!==t&&(e.nodeValue=t),this.candidate=e.nextSibling,e):(e&&this.clearMismatch(e),super.__appendComment(t))}__openElement(t){const e=this.candidate;if(e&&P_(e)&&function(t,e){return"http://www.w3.org/2000/svg"===t.namespaceURI?t.tagName===e:t.tagName===e.toUpperCase()}(e,t))return this.unmatchedAttributes=[].slice.call(e.attributes),e;if(e){if(P_(e)&&"TBODY"===e.tagName)return this.pushElement(e,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(t);this.clearMismatch(e)}return super.__openElement(t)}__setAttribute(t,e,n){const r=this.unmatchedAttributes;if(r){const n=A_(r,t);if(n)return n.value!==e&&(n.value=e),void r.splice(r.indexOf(n),1)}return super.__setAttribute(t,e,n)}__setProperty(t,e){const n=this.unmatchedAttributes;if(n){const r=A_(n,t);if(r)return r.value!==e&&(r.value=e),void n.splice(n.indexOf(r),1)}return super.__setProperty(t,e)}__flushElement(t,e){const{unmatchedAttributes:n}=this;if(n){for(const t of n)this.constructing.removeAttribute(t.name);this.unmatchedAttributes=null}else super.__flushElement(t,e)}willCloseElement(){const{candidate:t,currentCursor:e}=this;null!==t&&this.clearMismatch(t),e&&e.injectedOmittedNode&&this.popElement(),super.willCloseElement()}getMarker(t,e){const n=t.querySelector(`script[glmr="${e}"]`);return n?(function(t){t.nodeType}(r=n),r):null;var r}__pushRemoteElement(t,e,n){const r=this.getMarker(t,e);if(!r||r.parentNode,void 0===n){for(;null!==t.firstChild&&t.firstChild!==r;)this.remove(t.firstChild);n=null}const i=new k_(t,null,this.blockDepth);this.cursors.push(i),null===r?this.disableRehydration(n):this.candidate=this.remove(r);const s=new nm(t);return this.pushBlock(s,!0)}didAppendBounds(t){if(super.didAppendBounds(t),this.candidate){const e=t.lastNode();this.candidate=e.nextSibling}return t}};function E_(t){return 8===t.nodeType&&0===t.nodeValue.lastIndexOf("%+b:",0)}function R_(t){return 8===t.nodeType&&0===t.nodeValue.lastIndexOf("%-b:",0)}function L_(t){return parseInt(t.nodeValue.slice(4),10)}function T_(t,e){return L_(t)-e}function P_(t){return 1===t.nodeType}function I_(t){return 8===t.nodeType&&"%glmr%"===t.nodeValue}function M_(t){return 8===t.nodeType&&"% %"===t.nodeValue}function A_(t,e){for(const n of t)if(n.name===e)return n}function O_(t,e){return S_.forInitialRender(t,e)}var N_=new WeakMap,z_=class extends tm{serializeBlockDepth=0;__openBlock(){let{tagName:t}=this.element;if("TITLE"!==t&&"SCRIPT"!==t&&"STYLE"!==t){let t=this.serializeBlockDepth++;this.__appendComment(`%+b:${t}%`)}super.__openBlock()}__closeBlock(){let{tagName:t}=this.element;if(super.__closeBlock(),"TITLE"!==t&&"SCRIPT"!==t&&"STYLE"!==t){let t=--this.serializeBlockDepth;this.__appendComment(`%-b:${t}%`)}}__appendHTML(t){let{tagName:e}=this.element;if("TITLE"===e||"SCRIPT"===e||"STYLE"===e)return super.__appendHTML(t);let n=this.__appendComment("%glmr%");if("TABLE"===e){let e=t.indexOf("<");e>-1&&"tr"===t.slice(e+1,e+3)&&(t=`${t}`)}""===t?this.__appendComment("% %"):super.__appendHTML(t);let r=this.__appendComment("%glmr%");return new mg(this.element,n,r)}__appendText(t){let{tagName:e}=this.element,n=function(t){let{element:e,nextSibling:n}=t;return null===n?e.lastChild:n.previousSibling}(this);return"TITLE"===e||"SCRIPT"===e||"STYLE"===e?super.__appendText(t):""===t?this.__appendComment("% %"):(n&&3===n.nodeType&&this.__appendComment("%|%"),super.__appendText(t))}closeElement(){return N_.has(this.element)&&(N_.delete(this.element),super.closeElement()),super.closeElement()}openElement(t){return"tr"===t&&"TBODY"!==this.element.tagName&&"THEAD"!==this.element.tagName&&"TFOOT"!==this.element.tagName&&(this.openElement("tbody"),N_.set(this.constructing,!0),this.flushElement(null)),super.openElement(t)}pushRemoteElement(t,e,n=null){let{dom:r}=this,i=r.createElement("script");return i.setAttribute("glmr",e),r.insertBefore(t,i,n),super.pushRemoteElement(t,e,n)}};function F_(t,e){return z_.forInitialRender(t,e)}var D_=ig({id:null,block:'[[[46,[30,0],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/root.hbs",isStrictMode:!0}),j_=ig({id:null,block:'[[[46,[28,[32,0],null,null],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/outlet.hbs",scope:()=>({outletHelper:vw}),isStrictMode:!0});function U_(t){t.register("service:-dom-builder",{create(t){switch(Br(t).lookup("-environment:main")._renderMode){case"serialize":return F_.bind(null);case"rehydrate":return O_.bind(null);default:return sm.bind(null)}}}),t.register(yc`template:-root`,D_),t.register("renderer:-dom",Fw)}var B_=class t{moduleBasedResolver=!0;#E=new Map;original;static create({namespace:e}){return new t(e.modules)}constructor(t){this.addModules(t)}addModules(t){for(let[e,n]of Object.entries(t))this.#E.set(this.#R(e),n)}#R(t){return t.replace($_,"").replace(q_,"")}#L(t){return"config"===t?t:t+"s"}resolve(t){let[e,n]=t.split(":");n=this.#T(e,n);for(let r of[this.#P,this.#I,this.#M,this.#A]){let t=r.call(this,e,n);if(t)return this.#O(t.hit)}}#O(t){return t&&t.default&&(t=t.default),t}normalize(t){let[e,n]=t.split(":");return n=this.#T(e,n),`${e}:${n}`}#T(t,e){return"component"===t||"helper"===t||"modifier"===t||"template"===t&&0===e.indexOf("components/")?e.replace(/_/g,"-"):function(t){return t.replace(V_,"$1_$2").toLowerCase().replace(W_,"-")}(e.replace(/\./g,"/"))}#P(t,e){if("resolver"===t&&"current"===e)return{hit:{create:()=>this}}}#I(t,e){if("main"===e){let e=this.#E.get(t);if(e)return{hit:e}}}#M(t,e){let n=`${this.#L(t)}/${e}`,r=this.#E.get(n);if(r)return{hit:r}}#A(t,e){if("component"!==t)return;let n=`${this.#L(t)}/${e}/index`,r=this.#E.get(n);return r?{hit:r}:void 0}},$_=/\.\w{1,4}$/,q_=/^\.\//,V_=/([a-z\d])([A-Z])/g,W_=/[ _]/g,H_=class extends(Bw.extend(cu)){static initializers=Object.create(null);static instanceInitializers=Object.create(null);static initializer=Z_("initializers");static instanceInitializer=Z_("instanceInitializers");static buildRegistry(t){let e=new fc({resolver:G_(t)});return e.set=mr,e.register("application:main",t,{instantiate:!1}),function(t){t.optionsForType("component",{singleton:!1}),t.optionsForType("view",{singleton:!1}),t.register("controller:basic",eu,{instantiate:!1}),t.register("service:-routing",vp),t.register("resolver-for-debugging:main",t.resolver,{instantiate:!1}),t.register("container-debug-adapter:main",Ww)}(e),function(t){t.optionsForType("template",{instantiate:!1}),t.register("view:-outlet",Ew),t.register("template:-outlet",j_),t.optionsForType("helper",{instantiate:!1}),t.register("component:input",c_),t.register("component:link-to",__),t.register("component:textarea",d_)}(e),e}Resolver=B_;init(t){super.init(t),this.buildRegistry()}_initializersRan=!1;ensureInitializers(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)}buildInstance(t={}){return this.ensureInitializers(),hu.create({...t,base:this})}buildRegistry(){return this.__registry__=this.constructor.buildRegistry(this)}initializer(t){this.constructor.initializer(t)}instanceInitializer(t){this.constructor.instanceInitializer(t)}runInitializers(){this._runInitializer("initializers",(t,e)=>{e.initialize(this)})}runInstanceInitializers(t){this._runInitializer("instanceInitializers",(e,n)=>{n.initialize(t)})}_runInitializer(t,e){let n,r=hr(this.constructor,t),i=function(t){let e=[];for(let n in t)e.push(n);return e}(r),s=new $w;for(let o of i)n=r[o],s.add(n.name,n,n.before,n.after);s.topsort(e)}};function G_(t){let e={namespace:t};return t.Resolver.create(e)}function Z_(t){return function(e){let n=this.superclass;if(void 0!==n[t]&&n[t]===this[t]){let e={[t]:Object.create(this[t])};this.reopenClass(e)}this[t][e.name]=e}}var K_=a({default:()=>J_,getOwner:()=>Y_,setOwner:()=>X_}),Y_=Io,X_=$r,J_=class extends H_{static buildRegistry(t){let e=super.buildRegistry(t);return function(t){t.register("router:main",Ad),t.register("-view-registry:main",{create:()=>Mo(null)}),t.register("route:basic",Qh),t.register("event_dispatcher:main",dc),t.register("location:hash",Wd),t.register("location:history",Gd),t.register("location:none",Zd),t.register(yc`-bucket-cache:main`,{create:()=>new bp}),t.register("service:router",yp)}(e),U_(e),e}static initializer=Z_("initializers");static instanceInitializer=Z_("instanceInitializers");init(t){super.init(t),this.rootElement??="body",this._document??=null,this.eventDispatcher??=null,this.customEvents??=null,this.autoboot??=!0,this._document??=Ao?window.document:null,this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=new Set,this.autoboot=Boolean(this.autoboot),this.autoboot&&(this.Router=(this.Router||Ad).extend(),this._buildDeprecatedInstance(),this.waitForDOMReady())}buildInstance(t={}){return Dw.create({...t,base:this,application:this})}_watchInstance(t){this._applicationInstances.add(t)}_unwatchInstance(t){return this._applicationInstances.delete(t)}Router;__deprecatedInstance__;__container__;_buildDeprecatedInstance(){let t=this.buildInstance();this.__deprecatedInstance__=t,this.__container__=t.__container__}waitForDOMReady(){const t=this._document;if(null===t||"loading"!==t.readyState)Es("actions",this,this.domReady);else{let e=()=>{t.removeEventListener("DOMContentLoaded",e),_s(this,this.domReady)};t.addEventListener("DOMContentLoaded",e)}}domReady(){this.isDestroying||this.isDestroyed||this._bootSync()}deferReadiness(){this._readinessDeferrals++}advanceReadiness(){this._readinessDeferrals--,0===this._readinessDeferrals&&Ps(this,this.didBecomeReady)}_bootPromise=null;boot(){if(this._bootPromise)return this._bootPromise;try{this._bootSync()}catch(t){}return this._bootPromise}_bootResolver=null;_bootSync(){if(this._booted||this.isDestroying||this.isDestroyed)return;let t=this._bootResolver=$a.defer();this._bootPromise=t.promise;try{this.runInitializers(),this.advanceReadiness()}catch(X8){throw t.reject(X8),X8}}reset(){let t=this.__deprecatedInstance__;this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,this._booted=!1,xs(this,function(){_s(t,"destroy"),this._buildDeprecatedInstance(),Es("actions",this,"_bootSync")})}didBecomeReady(){if(!this.isDestroying&&!this.isDestroyed)try{if(this.autoboot){let t=this.__deprecatedInstance__;t._bootSync(),this.ready(),t.startRouting()}this._bootResolver.resolve(this),this._booted=!0}catch(X8){throw this._bootResolver.reject(X8),X8}}ready(){return this}willDestroy(){super.willDestroy(),this._applicationInstances.size&&(this._applicationInstances.forEach(t=>t.destroy()),this._applicationInstances.clear())}visit(t,e){return this.boot().then(()=>{let n=this.buildInstance();return n.boot(e).then(()=>n.visit(t)).catch(t=>{throw _s(n,"destroy"),t})})}},Q_=Object.assign({},{});function tx(){return ex.global}var ex=globalThis.__embroider_macros__runtime_config__||={};ex.packages||={},ex.global||={};Object.assign(ex.packages,{}),Object.assign(ex.global,{});var nx="undefined"!=typeof window?window._embroider_macros_runtime_config:void 0;if(nx){let t={config:function(t){return ex.packages[t]},getGlobalConfig:tx,setConfig(t,e){ex.packages[t]=e},setGlobalConfig(t,e){ex.global[t]=e}};for(let e of nx)e(t)}var rx=a({default:()=>ix,enterTestMode:()=>sx}),ix={modulePrefix:"marco",environment:"production",rootURL:"/",locationType:"history",EmberENV:{},APP:{}};function sx(){ix.locationType="none",ix.APP.rootElement="#ember-testing",ix.APP.autoboot=!1;const t=tx()["@embroider/macros"];t&&(t.isTesting=!0)}var ox=()=>{},ax=()=>{};function lx(t){let e=t.lookup("renderer:-dom");if(!e)throw new Error("BUG: owner is missing renderer");return e.debugRenderTree.capture()}var cx=a({_warnIfUsingStrippedFeatureFlags:()=>{},assert:()=>kn,captureRenderTree:()=>lx,debug:()=>px,debugFreeze:()=>gx,debugSeal:()=>fx,deprecate:()=>wx,deprecateFunc:()=>bx,getDebugFunction:()=>vx,info:()=>hx,inspect:()=>Mn,isTesting:()=>iu,registerDeprecationHandler:()=>ox,registerWarnHandler:()=>ax,runInDebug:()=>mx,setDebugFunction:()=>yx,setTesting:()=>su,warn:()=>dx}),ux=()=>{},hx=ux,dx=ux,px=ux,fx=ux,gx=ux,mx=ux,yx=ux,vx=ux,bx=function(){return arguments[arguments.length-1]};function wx(){}var _x,xx=a({});_x={throwOnUnhandled:!1,workflow:[]},self.deprecationWorkflow=self.deprecationWorkflow||{},self.deprecationWorkflow.deprecationLog={messages:new Set},self.deprecationWorkflow.flushDeprecations=t=>function({handler:t="silence",config:e={}}={}){let n=self.deprecationWorkflow.deprecationLog.messages,r=e.workflow??[],i=n.values().filter(t=>!r.some(e=>e.matchId===t)).map(e=>({handler:t,matchId:e})),s={...e,workflow:[...r,...i]};return`import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow';\n\nsetupDeprecationWorkflow(${JSON.stringify(s,void 0,2)});`}({config:_x,...t}),function(){const t="TEST_WAITERS",e="undefined"!=typeof Symbol?Symbol.for(t):t,n=function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;throw new Error("unable to locate global object")}();let r=n[e];void 0===r&&(r=n[e]=new Map)}();var Cx=class{name;constructor(t){this.name=t}beginAsync(){return this}endAsync(){}waitUntil(){return!0}debugInfo(){return[]}reset(){}};function kx(t){return new Cx(t)}kx("@ember/test-waiters:promise-waiter"),kx("@ember/test-waiters:generator-waiter");var Sx,Ex=a({assertDestroyablesDestroyed:()=>{},associateDestroyableChild:()=>tt,destroy:()=>nt,enableDestroyableTracking:()=>{},isDestroyed:()=>st,isDestroying:()=>it,registerDestructor:()=>Rx,unregisterDestructor:()=>Lx});function Rx(t,e){return et(t,e)}function Lx(t,e){return function(t,e,n=!1){let r=Q(t),i=n?"eagerDestructors":"destructors";r[i]=J(r[i],e)}(t,e)}(Sx=Po,Sx?.__esModule?Sx:{default:Sx,...Sx}).getOwner;var Tx=Ad,Px=a({default:()=>Ix}),Ix=class extends Tx{location=ix.locationType;rootURL=ix.rootURL};function Mx(t){return"function"==typeof t}function Ax(t){return function(e){if(function(t){return Mx(null==t?void 0:t.lift)}(e))return e.lift(function(e){try{return t(e,this)}catch(PD){this.error(PD)}});throw new TypeError("Unable to lift unknown Observable type")}}Ix.map(function(){this.route("place",{path:"/place/:place_id"}),this.route("place.new",{path:"/place/new"}),this.route("search"),this.route("menu"),this.route("lists",function(){this.route("list",{path:"/:list_id"})}),this.route("contributions"),this.route("activity"),this.route("oauth",function(){this.route("osm-callback",{path:"/osm/callback"})})});var Ox=function(t,e){return Ox=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Ox(t,e)};function Nx(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Ox(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var zx=function(){return zx=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function jx(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,s=n.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(X8){i={error:X8}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function Ux(t,e,n){if(n||2===arguments.length)for(var r,i=0,s=e.length;i1||a(t,e)})},e&&(r[t]=e(r[t])))}function a(t,e){try{(n=i[t](e)).value instanceof Bx?Promise.resolve(n.value.v).then(l,c):u(s[0][2],n)}catch(r){u(s[0][3],r)}var n}function l(t){a("next",t)}function c(t){a("throw",t)}function u(t,e){t(e),s.shift(),s.length&&a(s[0][0],s[0][1])}}(this,arguments)}function bC(t){return Mx(null==t?void 0:t.getReader)}function wC(t){if(t instanceof hC)return t;if(null!=t){if(pC(t))return r=t,new hC(function(t){var e=r[cC]();if(Mx(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if($x(t))return function(t){return new hC(function(e){for(var n=0;n=0?DC(n,s,c,o,!0):i=!0,c();var u=xC(n,function(t){var e,n,i=r.slice();try{for(var s=Dx(i),o=s.next();!o.done;o=s.next()){var c=o.value,u=c.buffer;u.push(t),a<=u.length&&l(c)}}catch(h){e={error:h}}finally{try{o&&!o.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}},function(){for(;null==r?void 0:r.length;)n.next(r.shift().buffer);null==u||u.unsubscribe(),n.complete(),n.unsubscribe()},void 0,function(){return r=null});e.subscribe(u)})}function UC(t){return Ax(function(e,n){var r,i=null,s=!1;i=e.subscribe(xC(n,void 0,void 0,function(o){r=wC(t(o,UC(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):s=!0})),s&&(i.unsubscribe(),i=null,r.subscribe(n))})}var BC=Array.isArray,$C=Object.getPrototypeOf,qC=Object.prototype,VC=Object.keys;function WC(t,e){return void 0===e&&(e=0),Ax(function(n,r){n.subscribe(xC(r,function(n){return DC(r,t,function(){return r.next(n)},e)},function(){return DC(r,t,function(){return r.complete()},e)},function(n){return DC(r,t,function(){return r.error(n)},e)}))})}function HC(t,e){return void 0===e&&(e=0),Ax(function(n,r){r.add(t.schedule(function(){return n.subscribe(r)},e))})}function GC(t,e){if(!t)throw new Error("Iterable cannot be null");return new hC(function(n){DC(n,e,function(){var r=t[Symbol.asyncIterator]();DC(n,e,function(){r.next().then(function(t){t.done?n.complete():n.next(t.value)})},0,!0)})})}function ZC(t,e){return e?function(t,e){if(null!=t){if(pC(t))return function(t,e){return wC(t).pipe(HC(e),WC(e))}(t,e);if($x(t))return function(t,e){return new hC(function(n){var r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}(t,e);if(qx(t))return function(t,e){return wC(t).pipe(HC(e),WC(e))}(t,e);if(fC(t))return GC(t,e);if(yC(t))return function(t,e){return new hC(function(n){var r;return DC(n,e,function(){r=t[mC](),DC(n,e,function(){var t,e,i;try{e=(t=r.next()).value,i=t.done}catch(PD){return void n.error(PD)}i?n.complete():n.next(e)},0,!0)}),function(){return Mx(null==r?void 0:r.return)&&r.return()}})}(t,e);if(bC(t))return function(t,e){return GC(vC(t),e)}(t,e)}throw gC(t)}(t,e):wC(t)}function KC(t,e){return Ax(function(n,r){var i=0;n.subscribe(xC(r,function(n){r.next(t.call(e,n,i++))}))})}var YC=Array.isArray;function XC(){for(var t=[],e=0;e0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=this,r=n.hasError,i=n.isStopped,s=n.observers;return r||i?Zx:(this.currentObservers=null,s.push(t),new Gx(function(){e.currentObservers=null,Hx(s,t)}))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new hC;return t.source=this,t},e.create=function(t,e){return new ak(t,e)},e}(hC),ak=function(t){function e(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return Nx(e,t),e.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},e.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:Zx},e}(ok),lk={connector:function(){return new ok}};function ck(t,e){void 0===e&&(e=lk);var n=e.connector;return Ax(function(e,r){var i,s=n();wC(t((i=s,new hC(function(t){return i.subscribe(t)})))).subscribe(r),r.add(e.subscribe(s))})}function uk(){for(var t=[],e=0;e=2,!0))}function Tk(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new ok}:e,r=t.resetOnError,i=void 0===r||r,s=t.resetOnComplete,o=void 0===s||s,a=t.resetOnRefCountZero,l=void 0===a||a;return function(t){var e,r,s,a=0,c=!1,u=!1,h=function(){null==r||r.unsubscribe(),r=void 0},d=function(){h(),e=s=void 0,c=u=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return Ax(function(t,f){a++,u||c||h();var g=s=null!=s?s:n();f.add(function(){0!==--a||u||c||(r=Pk(p,l))}),g.subscribe(f),!e&&a>0&&(e=new sC({next:function(t){return g.next(t)},error:function(t){u=!0,h(),r=Pk(d,i,t),g.error(t)},complete:function(){c=!0,h(),r=Pk(d,o),g.complete()}}),wC(t).subscribe(e))})(t)}}function Pk(t,e){for(var n=[],r=2;r0&&h(i)},void 0,void 0,function(){(null==s?void 0:s.closed)||null==s||s.unsubscribe(),a=null})),!c&&h(null!=r?"number"==typeof r?r:+r-l.now():i)})}function jk(t){throw new Fk(t)}function Uk(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function Bk(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function $k(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}var qk="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Vk=t=>t instanceof Uint8Array,Wk=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Hk=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");function Gk(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!Vk(t))throw new Error("expected Uint8Array, got "+typeof t);return t}var Zk=class{clone(){return this._cloneInto()}};function Kk(t){const e=e=>t().update(Gk(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Yk(t=32){if(qk&&"function"==typeof qk.getRandomValues)return qk.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}var Xk=class extends Zk{constructor(t,e,n,r){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Wk(this.buffer)}update(t){$k(this);const{view:e,buffer:n,blockLen:r}=this,i=(t=Gk(t)).length;for(let s=0;sr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=Wk(t),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 u=0;ut&e^~t&n,Qk=(t,e,n)=>t&e^t&n^e&n,tS=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]),eS=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),nS=new Uint32Array(64),rS=class extends Xk{constructor(){super(64,32,8,!1),this.A=0|eS[0],this.B=0|eS[1],this.C=0|eS[2],this.D=0|eS[3],this.E=0|eS[4],this.F=0|eS[5],this.G=0|eS[6],this.H=0|eS[7]}get(){const{A:t,B:e,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[t,e,n,r,i,s,o,a]}set(t,e,n,r,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let u=0;u<16;u++,e+=4)nS[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const t=nS[u-15],e=nS[u-2],n=Hk(t,7)^Hk(t,18)^t>>>3,r=Hk(e,17)^Hk(e,19)^e>>>10;nS[u]=r+nS[u-7]+n+nS[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(Hk(o,6)^Hk(o,11)^Hk(o,25))+Jk(o,a,l)+tS[u]+nS[u]|0,e=(Hk(n,2)^Hk(n,13)^Hk(n,22))+Qk(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){nS.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},iS=Kk(()=>new rS),sS=a({bitGet:()=>SS,bitLen:()=>kS,bitMask:()=>RS,bitSet:()=>ES,bytesToHex:()=>hS,bytesToNumberBE:()=>gS,bytesToNumberLE:()=>mS,concatBytes:()=>_S,createHmacDrbg:()=>PS,ensureBytes:()=>wS,equalBytes:()=>xS,hexToBytes:()=>fS,hexToNumber:()=>pS,numberToBytesBE:()=>yS,numberToBytesLE:()=>vS,numberToHexUnpadded:()=>dS,numberToVarBytesBE:()=>bS,utf8ToBytes:()=>CS,validateObject:()=>MS}),oS=BigInt(0),aS=BigInt(1),lS=BigInt(2),cS=t=>t instanceof Uint8Array,uS=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function hS(t){if(!cS(t))throw new Error("Uint8Array expected");let e="";for(let n=0;nt+e.length,0));let n=0;return t.forEach(t=>{if(!cS(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}function xS(t,e){if(t.length!==e.length)return!1;for(let n=0;noS;t>>=aS,e+=1);return e}function SS(t,e){return t>>BigInt(e)&aS}var ES=(t,e,n)=>t|(n?aS:oS)<(lS<new Uint8Array(t),TS=t=>Uint8Array.from(t);function PS(t,e,n){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=LS(t),i=LS(t),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},a=(...t)=>n(i,r,...t),l=(t=LS())=>{i=a(TS([0]),t),r=a(),0!==t.length&&(i=a(TS([1]),t),r=a())},c=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const n=[];for(;t{let n;for(o(),l(t);!(n=e(c()));)l();return o(),n}}var IS={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function MS(t,e,n={}){const r=(e,n,r)=>{const i=IS[n];if("function"!=typeof i)throw new Error(`Invalid validator "${n}", expected function`);const s=t[e];if(!(r&&void 0===s||i(s,t)))throw new Error(`Invalid param ${String(e)}=${s} (${typeof s}), expected ${n}`)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}var AS=BigInt(0),OS=BigInt(1),NS=BigInt(2),zS=BigInt(3),FS=BigInt(4),DS=BigInt(5),jS=BigInt(8);function US(t,e){const n=t%e;return n>=AS?n:e+n}function BS(t,e,n){if(n<=AS||e 0");if(n===OS)return AS;let r=OS;for(;e>AS;)e&OS&&(r=r*t%n),t=t*t%n,e>>=OS;return r}function $S(t,e,n){let r=t;for(;e-- >AS;)r*=r,r%=n;return r}function qS(t,e){if(t===AS||e<=AS)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=US(t,e),r=e,i=AS,s=OS,o=OS,a=AS;for(;n!==AS;){const t=r/n,e=r%n,l=i-o*t,c=s-a*t;r=n,n=e,i=o,s=a,o=l,a=c}if(r!==OS)throw new Error("invert: does not exist");return US(i,e)}BigInt(9),BigInt(16);var VS=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function WS(t,e){const n=void 0!==e?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function HS(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function GS(t){const e=HS(t);return e+Math.ceil(e/2)}var ZS=BigInt(0),KS=BigInt(1);function YS(t){return function(t){const e=VS.reduce((t,e)=>(t[e]="function",t),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});MS(t,e)}(t.Fp),MS(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...WS(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var{bytesToNumberBE:XS,hexToBytes:JS}=sS,QS={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=QS;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const n=t[1],r=t.subarray(2,n+2);if(!n||r.length!==n)throw new e("Invalid signature integer: wrong length");if(128&r[0])throw new e("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:XS(r),l:t.subarray(n+2)}},toSig(t){const{Err:e}=QS,n="string"==typeof t?JS(t):t;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new e("Invalid signature tag");if(n[1]!==r-2)throw new e("Invalid signature: incorrect length");const{d:i,l:s}=QS._parseInt(n.subarray(2)),{d:o,l:a}=QS._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,n=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},r=e(n(t.s)),i=e(n(t.r)),s=r.length/2,o=i.length/2,a=n(s),l=n(o);return`30${n(o+s+4)}02${l}${i}02${a}${r}`}},tE=BigInt(0),eE=BigInt(1),nE=BigInt(3);var rE=class extends Zk{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Uk(t.outputLen),Uk(t.blockLen)}(t);const n=Gk(e);if(this.iHash=t.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,i=new Uint8Array(r);i.set(n.length>r?t.create().update(n).digest():n);for(let s=0;snew rE(t,e).update(n).digest();function sE(t){return{hash:t,hmac:(e,...n)=>iE(t,e,function(...t){const e=new Uint8Array(t.reduce((t,e)=>t+e.length,0));let n=0;return t.forEach(t=>{if(!Vk(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}(...n)),randomBytes:Yk}}iE.create=(t,e)=>new rE(t,e);var oE=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),aE=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),lE=BigInt(1),cE=BigInt(2),uE=(t,e)=>(t+e/cE)/e;function hE(t){const e=oE,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),l=BigInt(88),c=t*t*t%e,u=c*c*t%e,h=$S(u,n,e)*u%e,d=$S(h,n,e)*u%e,p=$S(d,cE,e)*c%e,f=$S(p,i,e)*p%e,g=$S(f,s,e)*f%e,m=$S(g,a,e)*g%e,y=$S(m,l,e)*m%e,v=$S(y,a,e)*g%e,b=$S(v,n,e)*u%e,w=$S(b,o,e)*f%e,_=$S(w,r,e)*c%e,x=$S(_,cE,e);if(!dE.eql(dE.sqr(x),t))throw new Error("Cannot find square root");return x}var dE=function(t,e,n=!1,r={}){if(t<=AS)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:i,nByteLength:s}=WS(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=function(t){if(t%FS===zS){const e=(t+OS)/FS;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}if(t%jS===DS){const e=(t-DS)/jS;return function(t,n){const r=t.mul(n,NS),i=t.pow(r,e),s=t.mul(n,i),o=t.mul(t.mul(s,NS),i),a=t.mul(s,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(t){const e=(t-OS)/NS;let n,r,i;for(n=t-OS,r=0;n%NS===AS;n/=NS,r++);for(i=NS;iUS(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return AS<=e&&et===AS,isOdd:t=>(t&OS)===OS,neg:e=>US(-e,t),eql:(t,e)=>t===e,sqr:e=>US(e*e,t),add:(e,n)=>US(e+n,t),sub:(e,n)=>US(e-n,t),mul:(e,n)=>US(e*n,t),pow:(t,e)=>function(t,e,n){if(n 0");if(n===AS)return t.ONE;if(n===OS)return e;let r=t.ONE,i=e;for(;n>AS;)n&OS&&(r=t.mul(r,i)),i=t.sqr(i),n>>=OS;return r}(a,t,e),div:(e,n)=>US(e*qS(n,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>qS(e,t),sqrt:r.sqrt||(t=>o(a,t)),invertBatch:t=>function(t,e){const n=new Array(e.length),r=e.reduce((e,r,i)=>t.is0(r)?e:(n[i]=e,t.mul(e,r)),t.ONE),i=t.inv(r);return e.reduceRight((e,r,i)=>t.is0(r)?e:(n[i]=t.mul(e,n[i]),t.mul(e,r)),i),n}(a,t),cmov:(t,e,n)=>n?e:t,toBytes:t=>n?vS(t,s):yS(t,s),fromBytes:t=>{if(t.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${t.length}`);return n?mS(t):gS(t)}});return Object.freeze(a)}(oE,void 0,void 0,{sqrt:hE}),pE=function(t,e){const n=e=>function(t){const e=function(t){const e=YS(t);return MS(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:n,n:r}=e,i=n.BYTES+1,s=2*n.BYTES+1;function o(t){return US(t,r)}function a(t){return qS(t,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:h}=function(t){const e=function(t){const e=YS(t);MS(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:i}=e;if(n){if(!r.eql(i,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({...e})}(t),{Fp:n}=e,r=e.toBytes||((t,e)=>{const r=e.toAffine();return _S(Uint8Array.from([4]),n.toBytes(r.x),n.toBytes(r.y))}),i=e.fromBytes||(t=>{const e=t.subarray(1);return{x:n.fromBytes(e.subarray(0,n.BYTES)),y:n.fromBytes(e.subarray(n.BYTES,2*n.BYTES))}});function s(t){const{a:r,b:i}=e,s=n.sqr(t),o=n.mul(s,t);return n.add(n.add(o,n.mul(t,r)),i)}if(!n.eql(n.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(t){return"bigint"==typeof t&&tEn.eql(t,n.ZERO);return i(e)&&i(r)?h.ZERO:new h(e,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=n.invertBatch(t.map(t=>t.pz));return t.map((t,n)=>t.toAffine(e[n])).map(h.fromAffine)}static fromHex(t){const e=h.fromAffine(i(wS("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return h.BASE.multiply(l(t))}_setWindowSize(t){this._WINDOW_SIZE=t,c.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:r}=this.toAffine();if(!n.isValid(t)||!n.isValid(r))throw new Error("bad point: x or y not FE");const i=n.sqr(r),o=s(t);if(!n.eql(i,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(n.isOdd)return!n.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){u(t);const{px:e,py:r,pz:i}=this,{px:s,py:o,pz:a}=t,l=n.eql(n.mul(e,a),n.mul(s,i)),c=n.eql(n.mul(r,a),n.mul(o,i));return l&&c}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,i=n.mul(r,nE),{px:s,py:o,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,d=n.mul(s,s),p=n.mul(o,o),f=n.mul(a,a),g=n.mul(s,o);return g=n.add(g,g),u=n.mul(s,a),u=n.add(u,u),l=n.mul(t,u),c=n.mul(i,f),c=n.add(l,c),l=n.sub(p,c),c=n.add(p,c),c=n.mul(l,c),l=n.mul(g,l),u=n.mul(i,u),f=n.mul(t,f),g=n.sub(d,f),g=n.mul(t,g),g=n.add(g,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,f),d=n.mul(d,g),c=n.add(c,d),f=n.mul(o,a),f=n.add(f,f),d=n.mul(f,g),l=n.sub(l,d),u=n.mul(f,p),u=n.add(u,u),u=n.add(u,u),new h(l,c,u)}add(t){u(t);const{px:r,py:i,pz:s}=this,{px:o,py:a,pz:l}=t;let c=n.ZERO,d=n.ZERO,p=n.ZERO;const f=e.a,g=n.mul(e.b,nE);let m=n.mul(r,o),y=n.mul(i,a),v=n.mul(s,l),b=n.add(r,i),w=n.add(o,a);b=n.mul(b,w),w=n.add(m,y),b=n.sub(b,w),w=n.add(r,s);let _=n.add(o,l);return w=n.mul(w,_),_=n.add(m,v),w=n.sub(w,_),_=n.add(i,s),c=n.add(a,l),_=n.mul(_,c),c=n.add(y,v),_=n.sub(_,c),p=n.mul(f,w),c=n.mul(g,v),p=n.add(c,p),c=n.sub(y,p),p=n.add(y,p),d=n.mul(c,p),y=n.add(m,m),y=n.add(y,m),v=n.mul(f,v),w=n.mul(g,w),y=n.add(y,v),v=n.sub(m,v),v=n.mul(f,v),w=n.add(w,v),m=n.mul(y,w),d=n.add(d,m),m=n.mul(_,w),c=n.mul(b,c),c=n.sub(c,m),m=n.mul(b,y),p=n.mul(_,p),p=n.add(p,m),new h(c,d,p)}subtract(t){return this.add(t.negate())}is0(){return this.equals(h.ZERO)}wNAF(t){return p.wNAFCached(this,c,t,t=>{const e=n.invertBatch(t.map(t=>t.pz));return t.map((t,n)=>t.toAffine(e[n])).map(h.fromAffine)})}multiplyUnsafe(t){const r=h.ZERO;if(t===tE)return r;if(a(t),t===eE)return this;const{endo:i}=e;if(!i)return p.unsafeLadder(this,t);let{k1neg:s,k1:o,k2neg:l,k2:c}=i.splitScalar(t),u=r,d=r,f=this;for(;o>tE||c>tE;)o&eE&&(u=u.add(f)),c&eE&&(d=d.add(f)),f=f.double(),o>>=eE,c>>=eE;return s&&(u=u.negate()),l&&(d=d.negate()),d=new h(n.mul(d.px,i.beta),d.py,d.pz),u.add(d)}multiply(t){a(t);let r,i,s=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:a,k2:l}=o.splitScalar(s);let{p:c,f:u}=this.wNAF(e),{p:d,f:f}=this.wNAF(l);c=p.constTimeNegate(t,c),d=p.constTimeNegate(a,d),d=new h(n.mul(d.px,o.beta),d.py,d.pz),r=c.add(d),i=u.add(f)}else{const{p:t,f:e}=this.wNAF(s);r=t,i=e}return h.normalizeZ([r,i])[0]}multiplyAndAddUnsafe(t,e,n){const r=h.BASE,i=(t,e)=>e!==tE&&e!==eE&&t.equals(r)?t.multiply(e):t.multiplyUnsafe(e),s=i(this,e).add(i(t,n));return s.is0()?void 0:s}toAffine(t){const{px:e,py:r,pz:i}=this,s=this.is0();null==t&&(t=s?n.ONE:n.inv(i));const o=n.mul(e,t),a=n.mul(r,t),l=n.mul(i,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:t,isTorsionFree:n}=e;if(t===eE)return!0;if(n)return n(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:n}=e;return t===eE?this:n?n(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),r(h,this,t)}toHex(t=!0){return hS(this.toRawBytes(t))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const d=e.nBitLength,p=function(t,e){const n=(t,e)=>{const n=e.negate();return t?n:e},r=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:n,unsafeLadder(e,n){let r=t.ZERO,i=e;for(;n>ZS;)n&KS&&(r=r.add(i)),i=i.double(),n>>=KS;return r},precomputeWindow(t,e){const{windows:n,windowSize:i}=r(e),s=[];let o=t,a=o;for(let r=0;r>=d,r>a&&(r-=h,s+=KS);const o=e,p=e+Math.abs(r)-1,f=t%2!=0,g=r<0;0===r?c=c.add(n(f,i[o])):l=l.add(n(g,i[p]))}return{p:l,f:c}},wNAFCached(t,e,n,r){const i=t._WINDOW_SIZE||1;let s=e.get(t);return s||(s=this.precomputeWindow(t,i),1!==i&&e.set(t,r(s))),this.wNAF(i,s,n)}}}(h,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:l,weierstrassEquation:s,isWithinCurveOrder:o}}({...e,toBytes(t,e,r){const i=e.toAffine(),s=n.toBytes(i.x),o=_S;return r?o(Uint8Array.from([e.hasEvenY()?2:3]),s):o(Uint8Array.from([4]),s,n.toBytes(i.y))},fromBytes(t){const e=t.length,r=t[0],o=t.subarray(1);if(e!==i||2!==r&&3!==r){if(e===s&&4===r)return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))};throw new Error(`Point of length ${e} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}{const t=gS(o);if(!(tE<(a=t)&&ahS(yS(t,e.nByteLength));function p(t){return t>r>>eE}const f=(t,e,n)=>gS(t.slice(e,n));class g{constructor(t,e,n){this.r=t,this.s=e,this.recovery=n,this.assertValidity()}static fromCompact(t){const n=e.nByteLength;return t=wS("compactSignature",t,2*n),new g(f(t,0,n),f(t,n,2*n))}static fromDER(t){const{r:e,s:n}=QS.toSig(wS("DER",t));return new g(e,n)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(t){return new g(this.r,this.s,t)}recoverPublicKey(t){const{r:r,s:i,recovery:s}=this,c=b(wS("msgHash",t));if(null==s||![0,1,2,3].includes(s))throw new Error("recovery id invalid");const u=2===s||3===s?r+e.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&s?"03":"02",p=l.fromHex(h+d(u)),f=a(u),g=o(-c*f),m=o(i*f),y=l.BASE.multiplyAndAddUnsafe(p,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return fS(this.toDERHex())}toDERHex(){return QS.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return fS(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const m={isValidPrivateKey(t){try{return c(t),!0}catch(X8){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const t=GS(e.n);return function(t,e,n=!1){const r=t.length,i=HS(e),s=GS(e);if(r<16||r1024)throw new Error(`expected ${s}-1024 bytes of input, got ${r}`);const o=US(n?gS(t):mS(t),e-OS)+OS;return n?vS(o,i):yS(o,i)}(e.randomBytes(t),e.n)},precompute:(t=8,e=l.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function y(t){const e=t instanceof Uint8Array,n="string"==typeof t,r=(e||n)&&t.length;return e?r===i||r===s:n?r===2*i||r===2*s:t instanceof l}const v=e.bits2int||function(t){const n=gS(t),r=8*t.length-e.nBitLength;return r>0?n>>BigInt(r):n},b=e.bits2int_modN||function(t){return o(v(t))},w=RS(e.nBitLength);function _(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(tE<=t&&tt in i))throw new Error("sign() legacy options not supported");const{hash:s,randomBytes:u}=e;let{lowS:d,prehash:f,extraEntropy:m}=i;null==d&&(d=!0),t=wS("msgHash",t),f&&(t=wS("prehashed msgHash",s(t)));const y=b(t),w=c(r),C=[_(w),_(y)];if(null!=m){const t=!0===m?u(n.BYTES):m;C.push(wS("extraEntropy",t))}const k=_S(...C),S=y;return{seed:k,k2sig:function(t){const e=v(t);if(!h(e))return;const n=a(e),r=l.BASE.multiply(e).toAffine(),i=o(r.x);if(i===tE)return;const s=o(n*o(S+i*w));if(s===tE)return;let c=(r.x===i?0:2)|Number(r.y&eE),u=s;return d&&p(s)&&(u=function(t){return p(t)?o(-t):t}(s),c^=1),new g(i,u,c)}}}(t,r,i),d=e;return PS(d.hash.outputLen,d.nByteLength,d.hmac)(s,u)},verify:function(t,n,r,i=C){const s=t;if(n=wS("msgHash",n),r=wS("publicKey",r),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=i;let h,d;try{if("string"==typeof s||s instanceof Uint8Array)try{h=g.fromDER(s)}catch(x){if(!(x instanceof QS.Err))throw x;h=g.fromCompact(s)}else{if("object"!=typeof s||"bigint"!=typeof s.r||"bigint"!=typeof s.s)throw new Error("PARSE");{const{r:t,s:e}=s;h=new g(t,e)}}d=l.fromHex(r)}catch(X8){if("PARSE"===X8.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&h.hasHighS())return!1;u&&(n=e.hash(n));const{r:p,s:f}=h,m=b(n),y=a(f),v=o(m*y),w=o(p*y),_=l.BASE.multiplyAndAddUnsafe(d,v,w)?.toAffine();return!!_&&o(_.x)===p},ProjectivePoint:l,Signature:g,utils:m}}({...t,...sE(e)});return Object.freeze({...n(e),create:n})}({a:BigInt(0),b:BigInt(7),Fp:dE,n:aE,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=aE,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-lE*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=uE(s*t,e),l=uE(-r*t,e);let c=US(t-a*n-l*i,e),u=US(-a*r-l*s,e);const h=c>o,d=u>o;if(h&&(c=e-c),d&&(u=e-u),c>o||u>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:c,k2neg:d,k2:u}}}},iS),fE=BigInt(0),gE=t=>"bigint"==typeof t&&fEt.charCodeAt(0)));n=_S(e,e),mE[t]=n}return iS(_S(n,...e))}var vE=t=>t.toRawBytes(!0).slice(1),bE=t=>yS(t,32),wE=t=>US(t,oE),_E=t=>US(t,aE),xE=pE.ProjectivePoint;function CE(t){let e=pE.utils.normPrivateKeyToScalar(t),n=xE.fromPrivateKey(e);return{scalar:n.hasEvenY()?e:_E(-e),bytes:vE(n)}}function kE(t){if(!gE(t))throw new Error("bad x: need 0 < x < p");const e=wE(t*t);let n=hE(wE(e*t+BigInt(7)));n%cE!==fE&&(n=wE(-n));const r=new xE(t,n,lE);return r.assertValidity(),r}function SE(...t){return _E(gS(yE("BIP0340/challenge",...t)))}function EE(t){return CE(t).bytes}function RE(t,e,n=Yk(32)){const r=wS("message",t),{bytes:i,scalar:s}=CE(e),o=wS("auxRand",n,32),a=yE("BIP0340/nonce",bE(s^gS(yE("BIP0340/aux",o))),i,r),l=_E(gS(a));if(l===fE)throw new Error("sign failed: k is zero");const{bytes:c,scalar:u}=CE(l),h=SE(c,i,r),d=new Uint8Array(64);if(d.set(c,0),d.set(bE(_E(u+h*s)),32),!LE(d,r,i))throw new Error("sign: Invalid signature produced");return d}function LE(t,e,n){const r=wS("signature",t,64),i=wS("message",e),s=wS("publicKey",n,32);try{const t=kE(gS(s)),e=gS(r.subarray(0,32));if(!gE(e))return!1;const n=gS(r.subarray(32,64));if(!(t=>"bigint"==typeof t&&fE({getPublicKey:EE,sign:RE,verify:LE,utils:{randomPrivateKey:pE.utils.randomPrivateKey,lift_x:kE,pointToBytes:vE,numberToBytesBE:yS,bytesToNumberBE:gS,taggedHash:yE,mod:US}}))(),PE="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,IE=t=>t instanceof Uint8Array,ME=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),AE=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var OE=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function NE(t){if(!IE(t))throw new Error("Uint8Array expected");let e="";for(let n=0;nt+e.length,0));let n=0;return t.forEach(t=>{if(!IE(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}var jE=class{clone(){return this._cloneInto()}};function UE(t){const e=e=>t().update(FE(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function BE(t=32){if(PE&&"function"==typeof PE.getRandomValues)return PE.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function $E(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function qE(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}var VE,WE,HE,GE,ZE,KE,YE,XE,JE,QE,tR,eR,nR,rR,iR,sR,oR,aR,lR,cR,uR,hR,dR,pR,fR,gR,mR,yR,vR={number:$E,bool:function(t){if("boolean"!=typeof t)throw new Error(`Expected boolean, not ${t}`)},bytes:qE,hash:function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");$E(t.outputLen),$E(t.blockLen)},exists:function(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")},output:function(t,e){qE(t);const n=e.outputLen;if(t.lengthr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=ME(t),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 u=0;ut&e^~t&n,_R=(t,e,n)=>t&e^t&n^e&n,xR=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]),CR=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kR=new Uint32Array(64),SR=class extends bR{constructor(){super(64,32,8,!1),this.A=0|CR[0],this.B=0|CR[1],this.C=0|CR[2],this.D=0|CR[3],this.E=0|CR[4],this.F=0|CR[5],this.G=0|CR[6],this.H=0|CR[7]}get(){const{A:t,B:e,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[t,e,n,r,i,s,o,a]}set(t,e,n,r,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let u=0;u<16;u++,e+=4)kR[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const t=kR[u-15],e=kR[u-2],n=AE(t,7)^AE(t,18)^t>>>3,r=AE(e,17)^AE(e,19)^e>>>10;kR[u]=r+kR[u-7]+n+kR[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(AE(o,6)^AE(o,11)^AE(o,25))+wR(o,a,l)+xR[u]+kR[u]|0,e=(AE(n,2)^AE(n,13)^AE(n,22))+_R(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){kR.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},ER=class extends SR{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}},RR=UE(()=>new SR),LR=(UE(()=>new ER),a({assertNumber:()=>TR,base16:()=>GE,base32:()=>ZE,base32crockford:()=>YE,base32hex:()=>KE,base58:()=>tR,base58check:()=>sR,base58flickr:()=>eR,base58xmr:()=>iR,base58xrp:()=>nR,base64:()=>XE,base64url:()=>JE,bech32:()=>lR,bech32m:()=>cR,bytes:()=>yR,bytesToString:()=>fR,hex:()=>hR,str:()=>gR,stringToBytes:()=>mR,utf8:()=>uR,utils:()=>HE}));function TR(t){if(!Number.isSafeInteger(t))throw new Error(`Wrong integer: ${t}`)}function PR(...t){const e=(t,e)=>n=>t(e(n));return{encode:Array.from(t).reverse().reduce((t,n)=>t?e(t,n.encode):n.encode,void 0),decode:t.reduce((t,n)=>t?e(t,n.decode):n.decode,void 0)}}function IR(t){return{encode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("alphabet.encode input should be an array of numbers");return e.map(e=>{if(TR(e),e<0||e>=t.length)throw new Error(`Digit index outside alphabet: ${e} (alphabet: ${t.length})`);return t[e]})},decode:e=>{if(!Array.isArray(e)||e.length&&"string"!=typeof e[0])throw new Error("alphabet.decode input should be array of strings");return e.map(e=>{if("string"!=typeof e)throw new Error(`alphabet.decode: not string element=${e}`);const n=t.indexOf(e);if(-1===n)throw new Error(`Unknown letter: "${e}". Allowed: ${t}`);return n})}}}function MR(t=""){if("string"!=typeof t)throw new Error("join separator should be string");return{encode:e=>{if(!Array.isArray(e)||e.length&&"string"!=typeof e[0])throw new Error("join.encode input should be array of strings");for(let t of e)if("string"!=typeof t)throw new Error(`join.encode: non-string input=${t}`);return e.join(t)},decode:e=>{if("string"!=typeof e)throw new Error("join.decode input should be string");return e.split(t)}}}function AR(t,e="="){if(TR(t),"string"!=typeof e)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 t of n)if("string"!=typeof t)throw new Error(`padding.encode: non-string input=${t}`);for(;n.length*t%8;)n.push(e);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 t of n)if("string"!=typeof t)throw new Error(`padding.decode: non-string input=${t}`);let r=n.length;if(r*t%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if(!((r-1)*t%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function OR(t){if("function"!=typeof t)throw new Error("normalize fn should be function");return{encode:t=>t,decode:e=>t(e)}}function NR(t,e,n){if(e<2)throw new Error(`convertRadix: wrong from=${e}, 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(t))throw new Error("convertRadix: data should be array");if(!t.length)return[];let r=0;const i=[],s=Array.from(t);for(s.forEach(t=>{if(TR(t),t<0||t>=e)throw new Error(`Wrong integer: ${t}`)});;){let t=0,o=!0;for(let i=r;i32)throw new Error(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(WE(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${WE(e,n)}`);let i=0,s=0;const o=2**n-1,a=[];for(const l of t){if(TR(l),l>=2**e)throw new Error(`convertRadix2: invalid data word=${l} from=${e}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)a.push((i>>s-n&o)>>>0);i&=2**s-1}if(i=i<=e)throw new Error("Excess padding");if(!r&&i)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&a.push(i>>>0),a}function FR(t){return TR(t),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return NR(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(NR(e,t,256))}}}function DR(t,e=!1){if(TR(t),t<=0||t>32)throw new Error("radix2: bits should be in (0..32]");if(WE(8,t)>32||WE(t,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 zR(Array.from(n),8,t,!e)},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(zR(n,t,8,e))}}}function jR(t){if("function"!=typeof t)throw new Error("unsafeWrapper fn should be function");return function(...e){try{return t.apply(null,e)}catch(n){}}}function UR(t,e){if(TR(t),"function"!=typeof e)throw new Error("checksum fn should be function");return{encode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=e(n).slice(0,t),i=new Uint8Array(n.length+t);return i.set(n),i.set(r,n.length),i},decode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-t),i=e(r).slice(0,t),s=n.slice(-t);for(let e=0;e>25;let n=(33554431&t)<<5;for(let r=0;r>r&1)&&(n^=aR[r]);return n}function $R(t,e,n=1){const r=t.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${t})`);i=BR(i)^e>>5}i=BR(i);for(let s=0;sn)throw new TypeError(`Wrong string length: ${t.length} (${t}). Expected (8..${n})`);const r=t.toLowerCase();if(t!==r&&t!==t.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=(t=r).lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const s=t.slice(0,i),o=t.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const a=oR.decode(o).slice(0,-6),l=$R(s,a,e);if(!o.endsWith(l))throw new Error(`Invalid checksum in ${t}: expected "${l}"`);return{prefix:s,words:a}}return{encode:function(t,n,r=90){if("string"!=typeof t)throw new Error("bech32.encode prefix should be string, not "+typeof t);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 i=t.length+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);return`${t=t.toLowerCase()}1${oR.encode(n)}${$R(t,n,e)}`},decode:o,decodeToBytes:function(t){const{prefix:e,words:n}=o(t,!1);return{prefix:e,words:n,bytes:r(n)}},decodeUnsafe:jR(o),fromWords:r,fromWordsUnsafe:s,toWords:i}}var VR=((t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(r){throw n=[r],r}})(()=>{VE=(t,e)=>e?VE(e,t%e):t,WE=(t,e)=>t+(e-VE(t,e)),HE={alphabet:IR,chain:PR,checksum:UR,radix:FR,radix2:DR,join:MR,padding:AR},GE=PR(DR(4),IR("0123456789ABCDEF"),MR("")),ZE=PR(DR(5),IR("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),AR(5),MR("")),KE=PR(DR(5),IR("0123456789ABCDEFGHIJKLMNOPQRSTUV"),AR(5),MR("")),YE=PR(DR(5),IR("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),MR(""),OR(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),XE=PR(DR(6),IR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),AR(6),MR("")),JE=PR(DR(6),IR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),AR(6),MR("")),tR=(QE=t=>PR(FR(58),IR(t),MR("")))("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),eR=QE("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),nR=QE("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"),rR=[0,2,3,5,6,7,9,10,11],iR={encode(t){let e="";for(let n=0;nPR(UR(4,e=>t(t(e))),tR),oR=PR(IR("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),MR("")),aR=[996825010,642813549,513874426,1027748829,705979059],lR=qR("bech32"),cR=qR("bech32m"),uR={encode:t=>(new TextDecoder).decode(t),decode:t=>(new TextEncoder).encode(t)},hR=PR(DR(4),IR("0123456789abcdef"),MR(""),OR(t=>{if("string"!=typeof t||t.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()})),dR={utf8:uR,hex:hR,base16:GE,base32:ZE,base64:XE,base64url:JE,base58:tR,base58xmr:iR},pR=`Invalid encoding type. Available types: ${Object.keys(dR).join(", ")}`,fR=(t,e)=>{if("string"!=typeof t||!dR.hasOwnProperty(t))throw new TypeError(pR);if(!(e instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return dR[t].encode(e)},gR=fR,mR=(t,e)=>{if(!dR.hasOwnProperty(t))throw new TypeError(pR);if("string"!=typeof e)throw new TypeError("stringToBytes() expects string");return dR[t].decode(e)},yR=mR});function WR(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`positive integer expected, not ${t}`)}function HR(t){if("boolean"!=typeof t)throw new Error(`boolean expected, not ${t}`)}function GR(t){return t instanceof Uint8Array||null!=t&&"object"==typeof t&&"Uint8Array"===t.constructor.name}function ZR(t,...e){if(!GR(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function KR(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function YR(t,e){ZR(t);const n=e.outputLen;if(t.lengthnew Uint8Array(t.buffer,t.byteOffset,t.byteLength),JR=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),QR=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var tL=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function eL(t){ZR(t);let e="";for(let n=0;n=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0}function rL(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i(Object.assign(e,t),e);function aL(t,e,n,r){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}var lL=16,cL=new Uint8Array(16),uL=JR(cL),hL=(t,e,n,r)=>({s3:n<<31|r>>>1,s2:e<<31|n>>>1,s1:t<<31|e>>>1,s0:t>>>1^225<<24&-(1&r)}),dL=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255,pL=class{constructor(t,e){this.blockLen=lL,this.outputLen=lL,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,ZR(t=iL(t),16);const n=QR(t);let r=n.getUint32(0,!1),i=n.getUint32(4,!1),s=n.getUint32(8,!1),o=n.getUint32(12,!1);const a=[];for(let d=0;d<128;d++)a.push({s0:dL(r),s1:dL(i),s2:dL(s),s3:dL(o)}),({s0:r,s1:i,s2:s,s3:o}=hL(r,i,s,o));const l=(t=>t>65536?8:t>1024?4:2)(e||1024);if(![1,2,4,8].includes(l))throw new Error(`ghash: wrong window size=${l}, should be 2, 4 or 8`);this.W=l;const c=128/l,u=this.windowSize=2**l,h=[];for(let d=0;d>>l-s-1&1))continue;const{s0:o,s1:c,s2:u,s3:h}=a[l*d+s];e^=o,n^=c,r^=u,i^=h}h.push({s0:e,s1:n,s2:r,s3:i})}this.t=h}_updateBlock(t,e,n,r){t^=this.s0,e^=this.s1,n^=this.s2,r^=this.s3;const{W:i,t:s,windowSize:o}=this;let a=0,l=0,c=0,u=0;const h=(1<>>8*t&255;for(let t=8/i-1;t>=0;t--){const n=e>>>i*t&h,{s0:r,s1:p,s2:f,s3:g}=s[d*o+n];a^=r,l^=p,c^=f,u^=g,d+=1}}this.s0=a,this.s1=l,this.s2=c,this.s3=u}update(t){t=iL(t),KR(this);const e=JR(t),n=Math.floor(t.length/lL),r=t.length%lL;for(let i=0;i>>1|n,n=(1&e)<<7}return t[0]^=225&-e,t}((t=iL(t)).slice());super(n,e),n.fill(0)}update(t){t=iL(t),KR(this);const e=JR(t),n=t.length%lL,r=Math.floor(t.length/lL);for(let i=0;it(n,e.length).update(iL(e)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(e,n)=>t(e,n),e}var mL=gL((t,e)=>new pL(t,e)),yL=gL((t,e)=>new fL(t,e)),vL=16,bL=new Uint8Array(vL);function wL(t){return t<<1^283&-(t>>7)}function _L(t,e){let n=0;for(;e>0;e>>=1)n^=t&-(1&e),t=wL(t);return n}var xL=(()=>{let t=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=wL(r))t[n]=r;const e=new Uint8Array(256);e[0]=99;for(let n=0;n<255;n++){let r=t[255-n];r|=r<<8,e[t[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return e})(),CL=xL.map((t,e)=>xL.indexOf(e)),kL=t=>t<<24|t>>>8,SL=t=>t<<8|t>>>24;function EL(t,e){if(256!==t.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>e(t[r])),r=n.map(SL),i=r.map(SL),s=i.map(SL),o=new Uint32Array(65536),a=new Uint32Array(65536),l=new Uint16Array(65536);for(let c=0;c<256;c++)for(let e=0;e<256;e++){const u=256*c+e;o[u]=n[c]^r[e],a[u]=i[c]^s[e],l[u]=t[c]<<8|t[e]}return{sbox:t,sbox2:l,T0:n,T1:r,T2:i,T3:s,T01:o,T23:a}}var RL=EL(xL,t=>_L(t,3)<<24|t<<16|t<<8|_L(t,2)),LL=EL(CL,t=>_L(t,11)<<24|_L(t,13)<<16|_L(t,9)<<8|_L(t,14)),TL=(()=>{const t=new Uint8Array(16);for(let e=0,n=1;e<16;e++,n=wL(n))t[e]=n;return t})();function PL(t){ZR(t);const e=t.length;if(![16,24,32].includes(e))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${e}`);const{sbox2:n}=RL,r=JR(t),i=r.length,s=t=>AL(n,t,t,t,t),o=new Uint32Array(e+28);o.set(r);for(let a=i;a6&&a%i===4&&(t=s(t)),o[a]=o[a-i]^t}return o}function IL(t){const e=PL(t),n=e.slice(),r=e.length,{sbox2:i}=RL,{T0:s,T1:o,T2:a,T3:l}=LL;for(let c=0;c>>8&255]^a[e>>>16&255]^l[e>>>24]}return n}function ML(t,e,n,r,i,s){return t[n<<8&65280|r>>>8&255]^e[i>>>8&65280|s>>>24&255]}function AL(t,e,n,r,i){return t[255&e|65280&n]|t[r>>>16&255|i>>>16&65280]<<16}function OL(t,e,n,r,i){const{sbox2:s,T01:o,T23:a}=RL;let l=0;e^=t[l++],n^=t[l++],r^=t[l++],i^=t[l++];const c=t.length/4-2;for(let u=0;u>>0,a.setUint32(u,d,e),({s0:p,s1:f,s2:g,s3:m}=OL(t,o[0],o[1],o[2],o[3]));const y=vL*Math.floor(l.length/4);if(y16)throw new Error(`aes/pcks5: wrong padding byte: ${r}`);const i=t.subarray(0,-r);for(let s=0;s=0;t--)e=e+(255&s[t])|0,s[t]=255&e,e>>>=8;({s0:a,s1:l,s2:c,s3:u}=OL(t,o[0],o[1],o[2],o[3]))}const p=vL*Math.floor(h.length/4);if(pn(t,e),decrypt:(t,e)=>n(t,e)}}),oL({blockSize:16},function(t,e={}){ZR(t);const n=!e.disablePadding;return{encrypt:(e,r)=>{ZR(e);const{b:i,o:s,out:o}=jL(e,n,r),a=PL(t);let l=0;for(;l+4<=i.length;){const{s0:t,s1:e,s2:n,s3:r}=OL(a,i[l+0],i[l+1],i[l+2],i[l+3]);s[l++]=t,s[l++]=e,s[l++]=n,s[l++]=r}if(n){const t=BL(e.subarray(4*l)),{s0:n,s1:r,s2:i,s3:o}=OL(a,t[0],t[1],t[2],t[3]);s[l++]=n,s[l++]=r,s[l++]=i,s[l++]=o}return a.fill(0),o},decrypt:(e,r)=>{DL(e);const i=IL(t),s=zL(e.length,r),o=JR(e),a=JR(s);for(let t=0;t+4<=o.length;){const{s0:e,s1:n,s2:r,s3:s}=NL(i,o[t+0],o[t+1],o[t+2],o[t+3]);a[t++]=e,a[t++]=n,a[t++]=r,a[t++]=s}return i.fill(0),UL(s,n)}}});var $L=oL({blockSize:16,nonceLength:16},function(t,e,n={}){ZR(t),ZR(e,16);const r=!n.disablePadding;return{encrypt:(n,i)=>{const s=PL(t),{b:o,o:a,out:l}=jL(n,r,i),c=JR(e);let u=c[0],h=c[1],d=c[2],p=c[3],f=0;for(;f+4<=o.length;)u^=o[f+0],h^=o[f+1],d^=o[f+2],p^=o[f+3],({s0:u,s1:h,s2:d,s3:p}=OL(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p;if(r){const t=BL(n.subarray(4*f));u^=t[0],h^=t[1],d^=t[2],p^=t[3],({s0:u,s1:h,s2:d,s3:p}=OL(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p}return s.fill(0),l},decrypt:(n,i)=>{DL(n);const s=IL(t),o=JR(e),a=zL(n.length,i),l=JR(n),c=JR(a);let u=o[0],h=o[1],d=o[2],p=o[3];for(let t=0;t+4<=l.length;){const e=u,n=h,r=d,i=p;u=l[t+0],h=l[t+1],d=l[t+2],p=l[t+3];const{s0:o,s1:a,s2:f,s3:g}=NL(s,u,h,d,p);c[t++]=o^e,c[t++]=a^n,c[t++]=f^r,c[t++]=g^i}return s.fill(0),UL(a,r)}}});function qL(t,e,n,r,i){const s=t.create(n,r.length+(i?.length||0));i&&s.update(i),s.update(r);const o=new Uint8Array(16),a=QR(o);return i&&aL(a,0,BigInt(8*i.length),e),aL(a,8,BigInt(8*r.length),e),s.update(o),s.digest()}oL({blockSize:16,nonceLength:16},function(t,e){function n(n,r,i){const s=PL(t),o=n.length;i=zL(o,i);const a=JR(n),l=JR(i),c=r?l:a,u=JR(e);let h=u[0],d=u[1],p=u[2],f=u[3];for(let t=0;t+4<=a.length;){const{s0:e,s1:n,s2:r,s3:i}=OL(s,h,d,p,f);l[t+0]=a[t+0]^e,l[t+1]=a[t+1]^n,l[t+2]=a[t+2]^r,l[t+3]=a[t+3]^i,h=c[t++],d=c[t++],p=c[t++],f=c[t++]}const g=vL*Math.floor(a.length/4);if(gn(t,!0,e),decrypt:(t,e)=>n(t,!1,e)}}),oL({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){if(ZR(e),0===e.length)throw new Error("aes/gcm: empty nonce");function r(t,e,r){const i=qL(mL,!1,t,r,n);for(let n=0;n{ZR(t);const{xk:e,authKey:n,counter:s,tagMask:o}=i(),a=new Uint8Array(t.length+16);FL(e,!1,s,t,a);const l=r(n,o,a.subarray(0,a.length-16));return a.set(l,t.length),e.fill(0),a},decrypt:t=>{if(ZR(t),t.length<16)throw new Error("aes/gcm: ciphertext less than tagLen (16)");const{xk:e,authKey:n,counter:s,tagMask:o}=i(),a=t.subarray(0,-16),l=t.subarray(-16);if(!sL(r(n,o,a),l))throw new Error("aes/gcm: invalid ghash tag");const c=FL(e,!1,s,a);return n.fill(0),o.fill(0),e.fill(0),c}}});var VL=(t,e,n)=>r=>{if(!Number.isSafeInteger(r)||e>r||r>n)throw new Error(`${t}: invalid value=${r}, must be [${e}..${n}]`)},WL=(oL({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){const r=VL("AAD",0,2**36),i=VL("plaintext",0,2**36),s=VL("nonce",12,12),o=VL("ciphertext",16,2**36+16);function a(){const n=t.length;if(16!==n&&24!==n&&32!==n)throw new Error(`key length must be 16, 24 or 32 bytes, got: ${n} bytes`);const r=PL(t),i=new Uint8Array(n),s=new Uint8Array(16),o=JR(e);let a=0,l=o[0],c=o[1],u=o[2],h=0;for(const t of[s,i].map(JR)){const e=JR(t);for(let t=0;t{ZR(t),i(t.length);const{encKey:e,authKey:n}=a(),r=l(e,n,t),s=new Uint8Array(t.length+16);return s.set(r,t.length),s.set(c(e,r,t)),e.fill(0),n.fill(0),s},decrypt:t=>{ZR(t),o(t.length);const e=t.subarray(-16),{encKey:n,authKey:r}=a(),i=c(n,e,t.subarray(0,-16)),s=l(n,r,i);if(n.fill(0),r.fill(0),!sL(e,s))throw new Error("invalid polyval tag");return i}}}),(t,e)=>255&t[e++]|(255&t[e++])<<8),HL=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,ZR(t=iL(t),32);const e=WL(t,0),n=WL(t,2),r=WL(t,4),i=WL(t,6),s=WL(t,8),o=WL(t,10),a=WL(t,12),l=WL(t,14);this.r[0]=8191&e,this.r[1]=8191&(e>>>13|n<<3),this.r[2]=7939&(n>>>10|r<<6),this.r[3]=8191&(r>>>7|i<<9),this.r[4]=255&(i>>>4|s<<12),this.r[5]=s>>>1&8190,this.r[6]=8191&(s>>>14|o<<2),this.r[7]=8065&(o>>>11|a<<5),this.r[8]=8191&(a>>>8|l<<8),this.r[9]=l>>>5&127;for(let c=0;c<8;c++)this.pad[c]=WL(t,16+2*c)}process(t,e,n=!1){const r=n?0:2048,{h:i,r:s}=this,o=s[0],a=s[1],l=s[2],c=s[3],u=s[4],h=s[5],d=s[6],p=s[7],f=s[8],g=s[9],m=WL(t,e+0),y=WL(t,e+2),v=WL(t,e+4),b=WL(t,e+6),w=WL(t,e+8),_=WL(t,e+10),x=WL(t,e+12),C=WL(t,e+14);let k=i[0]+(8191&m),S=i[1]+(8191&(m>>>13|y<<3)),E=i[2]+(8191&(y>>>10|v<<6)),R=i[3]+(8191&(v>>>7|b<<9)),L=i[4]+(8191&(b>>>4|w<<12)),T=i[5]+(w>>>1&8191),P=i[6]+(8191&(w>>>14|_<<2)),I=i[7]+(8191&(_>>>11|x<<5)),M=i[8]+(8191&(x>>>8|C<<8)),A=i[9]+(C>>>5|r),O=0,N=O+k*o+S*(5*g)+E*(5*f)+R*(5*p)+L*(5*d);O=N>>>13,N&=8191,N+=T*(5*h)+P*(5*u)+I*(5*c)+M*(5*l)+A*(5*a),O+=N>>>13,N&=8191;let z=O+k*a+S*o+E*(5*g)+R*(5*f)+L*(5*p);O=z>>>13,z&=8191,z+=T*(5*d)+P*(5*h)+I*(5*u)+M*(5*c)+A*(5*l),O+=z>>>13,z&=8191;let F=O+k*l+S*a+E*o+R*(5*g)+L*(5*f);O=F>>>13,F&=8191,F+=T*(5*p)+P*(5*d)+I*(5*h)+M*(5*u)+A*(5*c),O+=F>>>13,F&=8191;let D=O+k*c+S*l+E*a+R*o+L*(5*g);O=D>>>13,D&=8191,D+=T*(5*f)+P*(5*p)+I*(5*d)+M*(5*h)+A*(5*u),O+=D>>>13,D&=8191;let j=O+k*u+S*c+E*l+R*a+L*o;O=j>>>13,j&=8191,j+=T*(5*g)+P*(5*f)+I*(5*p)+M*(5*d)+A*(5*h),O+=j>>>13,j&=8191;let U=O+k*h+S*u+E*c+R*l+L*a;O=U>>>13,U&=8191,U+=T*o+P*(5*g)+I*(5*f)+M*(5*p)+A*(5*d),O+=U>>>13,U&=8191;let B=O+k*d+S*h+E*u+R*c+L*l;O=B>>>13,B&=8191,B+=T*a+P*o+I*(5*g)+M*(5*f)+A*(5*p),O+=B>>>13,B&=8191;let $=O+k*p+S*d+E*h+R*u+L*c;O=$>>>13,$&=8191,$+=T*l+P*a+I*o+M*(5*g)+A*(5*f),O+=$>>>13,$&=8191;let q=O+k*f+S*p+E*d+R*h+L*u;O=q>>>13,q&=8191,q+=T*c+P*l+I*a+M*o+A*(5*g),O+=q>>>13,q&=8191;let V=O+k*g+S*f+E*p+R*d+L*h;O=V>>>13,V&=8191,V+=T*u+P*c+I*l+M*a+A*o,O+=V>>>13,V&=8191,O=(O<<2)+O|0,O=O+N|0,N=8191&O,O>>>=13,z+=O,i[0]=N,i[1]=z,i[2]=F,i[3]=D,i[4]=j,i[5]=U,i[6]=B,i[7]=$,i[8]=q,i[9]=V}finalize(){const{h:t,pad:e}=this,n=new Uint16Array(10);let r=t[1]>>>13;t[1]&=8191;for(let o=2;o<10;o++)t[o]+=r,r=t[o]>>>13,t[o]&=8191;t[0]+=5*r,r=t[0]>>>13,t[0]&=8191,t[1]+=r,r=t[1]>>>13,t[1]&=8191,t[2]+=r,n[0]=t[0]+5,r=n[0]>>>13,n[0]&=8191;for(let o=1;o<10;o++)n[o]=t[o]+r,r=n[o]>>>13,n[o]&=8191;n[9]-=8192;let i=(1^r)-1;for(let o=0;o<10;o++)n[o]&=i;i=~i;for(let o=0;o<10;o++)t[o]=t[o]&i|n[o];t[0]=65535&(t[0]|t[1]<<13),t[1]=65535&(t[1]>>>3|t[2]<<10),t[2]=65535&(t[2]>>>6|t[3]<<7),t[3]=65535&(t[3]>>>9|t[4]<<4),t[4]=65535&(t[4]>>>12|t[5]<<1|t[6]<<14),t[5]=65535&(t[6]>>>2|t[7]<<11),t[6]=65535&(t[7]>>>5|t[8]<<8),t[7]=65535&(t[8]>>>8|t[9]<<5);let s=t[0]+e[0];t[0]=65535&s;for(let o=1;o<8;o++)s=(t[o]+e[o]|0)+(s>>>16)|0,t[o]=65535&s}update(t){KR(this);const{buffer:e,blockLen:n}=this,r=(t=iL(t)).length;for(let i=0;i>>0,t[i++]=n[s]>>>8;return t}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}},GL=function(t){const e=(e,n)=>t(n).update(iL(e)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=e=>t(e),e}(t=>new HL(t)),ZL=t=>Uint8Array.from(t.split("").map(t=>t.charCodeAt(0))),KL=ZL("expand 16-byte k"),YL=ZL("expand 32-byte k"),XL=JR(KL),JL=JR(YL);function QL(t,e){return t<>>32-e}function tT(t){return t.byteOffset%4==0}JL.slice();var eT=2**32-1,nT=new Uint32Array;function rT(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:s,rounds:o}=function(t,e){if(null==e||"object"!=typeof e)throw new Error("options must be defined");return Object.assign({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e)}(0,e);if("function"!=typeof t)throw new Error("core must be a function");return WR(i),WR(o),HR(s),HR(n),(e,a,l,c,u=0)=>{ZR(e),ZR(a),ZR(l);const h=l.length;if(c||(c=new Uint8Array(h)),ZR(c),WR(u),u<0||u>=eT)throw new Error("arx: counter overflow");if(c.length=eT)throw new Error("arx: counter overflow");const g=Math.min(64,l-f);if(h&&64===g){const t=f/4;if(f%4!=0)throw new Error("arx: invalid block position");for(let e,n=0;n<16;n++)e=t+n,p[e]=d[e]^u[n];f+=64;continue}for(let t,e=0;e0;)d.pop().fill(0);return c}}function iT(t,e,n,r,i,s=20){let o=t[0],a=t[1],l=t[2],c=t[3],u=e[0],h=e[1],d=e[2],p=e[3],f=e[4],g=e[5],m=e[6],y=e[7],v=i,b=n[0],w=n[1],_=n[2],x=o,C=a,k=l,S=c,E=u,R=h,L=d,T=p,P=f,I=g,M=m,A=y,O=v,N=b,z=w,F=_;for(let j=0;j{t.update(e);const n=e.length%16;n&&t.update(aT.subarray(n))},cT=new Uint8Array(32);function uT(t,e,n,r,i){const s=t(e,n,cT),o=GL.create(s);i&&lT(o,i),lT(o,r);const a=new Uint8Array(16),l=QR(a);aL(l,0,BigInt(i?i.length:0),!0),aL(l,8,BigInt(r.length),!0),o.update(a);const c=o.digest();return s.fill(0),c}var hT=t=>(e,n,r)=>(ZR(e,32),ZR(n),{encrypt:(i,s)=>{const o=i.length,a=o+16;s?ZR(s,a):s=new Uint8Array(a),t(e,n,i,s,1);const l=uT(t,e,n,s.subarray(0,-16),r);return s.set(l,o),s},decrypt:(i,s)=>{const o=i.length,a=o-16;if(o<16)throw new Error("encrypted data must be at least 16 bytes");s?ZR(s,a):s=new Uint8Array(a);const l=i.subarray(0,-16);if(!sL(i.subarray(-16),uT(t,e,n,l,r)))throw new Error("invalid tag");return t(e,n,l,s,1),s}}),dT=(hT(sT),hT(oT),class extends jE{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,vR.hash(t);const n=FE(e);if(this.iHash=t.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,i=new Uint8Array(r);i.set(n.length>r?t.create().update(n).digest():n);for(let s=0;snew dT(t,e).update(n).digest();pT.create=(t,e)=>new dT(t,e);var fT=new Uint8Array([0]),gT=new Uint8Array,mT=Object.defineProperty,yT=(t,e)=>{for(var n in e)mT(t,n,{get:e[n],enumerable:!0})},vT=Symbol("verified");function bT(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;eRT,QueueNode:()=>ET,binarySearch:()=>ST,bytesToHex:()=>NE,hexToBytes:()=>zE,insertEventIntoAscendingList:()=>kT,insertEventIntoDescendingList:()=>CT,normalizeURL:()=>xT,utf8Decoder:()=>wT,utf8Encoder:()=>_T});var wT=new TextDecoder("utf-8"),_T=new TextEncoder;function xT(t){try{-1===t.indexOf("://")&&(t="wss://"+t);let e=new URL(t);return"http:"===e.protocol?e.protocol="ws:":"https:"===e.protocol&&(e.protocol="wss:"),e.pathname=e.pathname.replace(/\/+/g,"/"),e.pathname.endsWith("/")&&(e.pathname=e.pathname.slice(0,-1)),("80"===e.port&&"ws:"===e.protocol||"443"===e.port&&"wss:"===e.protocol)&&(e.port=""),e.searchParams.sort(),e.hash="",e.toString()}catch(e){throw new Error(`Invalid URL: ${t}`)}}function CT(t,e){const[n,r]=ST(t,t=>e.id===t.id?0:e.created_at===t.created_at?-1:t.created_at-e.created_at);return r||t.splice(n,0,e),t}function kT(t,e){const[n,r]=ST(t,t=>e.id===t.id?0:e.created_at===t.created_at?-1:e.created_at-t.created_at);return r||t.splice(n,0,e),t}function ST(t,e){let n=0,r=t.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=e(t[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}var ET=class{value;next=null;prev=null;constructor(t){this.value=t}},RT=class{first;last;constructor(){this.first=null,this.last=null}enqueue(t){const e=new ET(t);return this.last?this.last===this.first?(this.last=e,this.last.prev=this.first,this.first.next=e):(e.prev=this.last,this.last.next=e,this.last=e):(this.first=e,this.last=e),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const t=this.first;return this.first=null,this.last=null,t.value}const t=this.first;return this.first=t.next,this.first&&(this.first.prev=null),t.value}};function LT(t){return NE(RR(_T.encode(function(t){if(!bT(t))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,t.pubkey,t.created_at,t.kind,t.tags,t.content])}(t))))}var TT=new class{generateSecretKey(){return TE.utils.randomPrivateKey()}getPublicKey(t){return NE(TE.getPublicKey(t))}finalizeEvent(t,e){const n=t;return n.pubkey=NE(TE.getPublicKey(e)),n.id=LT(n),n.sig=NE(TE.sign(LT(n),e)),n[vT]=!0,n}verifyEvent(t){if("boolean"==typeof t[vT])return t[vT];const e=LT(t);if(e!==t.id)return t[vT]=!1,!1;try{const n=TE.verify(t.sig,e,t.pubkey);return t[vT]=n,n}catch(PD){return t[vT]=!1,!1}}},PT=TT.generateSecretKey,IT=TT.getPublicKey,MT=TT.finalizeEvent,AT=TT.verifyEvent,OT={};function NT(t){return t<1e4&&0!==t&&3!==t}function zT(t){return 0===t||3===t||1e4<=t&&t<2e4}function FT(t){return 2e4<=t&&t<3e4}function DT(t){return 3e4<=t&&t<4e4}function jT(t){return NT(t)?"regular":zT(t)?"replaceable":FT(t)?"ephemeral":DT(t)?"parameterized":"unknown"}function UT(t,e){const n=e instanceof Array?e:[e];return bT(t)&&n.includes(t.kind)||!1}yT(OT,{Application:()=>hI,BadgeAward:()=>KT,BadgeDefinition:()=>iI,BlockedRelaysList:()=>FP,BlossomServerList:()=>VP,BookmarkList:()=>OP,Bookmarksets:()=>eI,Calendar:()=>vI,CalendarEventRSVP:()=>bI,ChannelCreation:()=>sP,ChannelHideMessage:()=>lP,ChannelMessage:()=>aP,ChannelMetadata:()=>oP,ChannelMuteUser:()=>cP,ChatMessage:()=>YT,ClassifiedListing:()=>fI,ClientAuth:()=>GP,Comment:()=>fP,CommunitiesList:()=>NP,CommunityDefinition:()=>CI,CommunityPostApproval:()=>xP,Contacts:()=>VT,CreateOrUpdateProduct:()=>aI,CreateOrUpdateStall:()=>oI,Curationsets:()=>nI,Date:()=>mI,DirectMessageRelaysList:()=>$P,DraftClassifiedListing:()=>gI,DraftLong:()=>cI,Emojisets:()=>uI,EncryptedDirectMessage:()=>WT,EventDeletion:()=>HT,FavoriteRelays:()=>jP,FileMessage:()=>tP,FileMetadata:()=>pP,FileServerPreference:()=>qP,Followsets:()=>JP,ForumThread:()=>XT,GenericRepost:()=>eP,Genericlists:()=>QP,GiftWrap:()=>hP,GroupMetadata:()=>kI,HTTPAuth:()=>XP,Handlerinformation:()=>xI,Handlerrecommendation:()=>_I,Highlights:()=>TP,InterestsList:()=>UP,Interestsets:()=>sI,JobFeedback:()=>SP,JobRequest:()=>CP,JobResult:()=>kP,Label:()=>_P,LightningPubRPC:()=>HP,LiveChatMessage:()=>gP,LiveEvent:()=>dI,LongFormArticle:()=>lI,Metadata:()=>BT,Mutelist:()=>IP,NWCWalletInfo:()=>WP,NWCWalletRequest:()=>ZP,NWCWalletResponse:()=>KP,NormalVideo:()=>rP,NostrConnect:()=>YP,OpenTimestamps:()=>uP,Photo:()=>nP,Pinlist:()=>MP,Poll:()=>dP,PollResponse:()=>PP,PrivateDirectMessage:()=>QT,ProblemTracker:()=>vP,ProfileBadges:()=>rI,PublicChatsList:()=>zP,Reaction:()=>ZT,RecommendRelay:()=>qT,RelayList:()=>AP,RelayReview:()=>wI,Relaysets:()=>tI,Report:()=>bP,Reporting:()=>wP,Repost:()=>GT,Seal:()=>JT,SearchRelaysList:()=>DP,ShortTextNote:()=>$T,ShortVideo:()=>iP,Time:()=>yI,UserEmojiList:()=>BP,UserStatuses:()=>pI,Voice:()=>mP,VoiceComment:()=>yP,Zap:()=>LP,ZapGoal:()=>EP,ZapRequest:()=>RP,classifyKind:()=>jT,isAddressableKind:()=>DT,isEphemeralKind:()=>FT,isKind:()=>UT,isRegularKind:()=>NT,isReplaceableKind:()=>zT});var BT=0,$T=1,qT=2,VT=3,WT=4,HT=5,GT=6,ZT=7,KT=8,YT=9,XT=11,JT=13,QT=14,tP=15,eP=16,nP=20,rP=21,iP=22,sP=40,oP=41,aP=42,lP=43,cP=44,uP=1040,hP=1059,dP=1068,pP=1063,fP=1111,gP=1311,mP=1222,yP=1244,vP=1971,bP=1984,wP=1984,_P=1985,xP=4550,CP=5999,kP=6999,SP=7e3,EP=9041,RP=9734,LP=9735,TP=9802,PP=1018,IP=1e4,MP=10001,AP=10002,OP=10003,NP=10004,zP=10005,FP=10006,DP=10007,jP=10012,UP=10015,BP=10030,$P=10050,qP=10096,VP=10063,WP=13194,HP=21e3,GP=22242,ZP=23194,KP=23195,YP=24133,XP=27235,JP=3e4,QP=30001,tI=30002,eI=30003,nI=30004,rI=30008,iI=30009,sI=30015,oI=30017,aI=30018,lI=30023,cI=30024,uI=30030,hI=30078,dI=30311,pI=30315,fI=30402,gI=30403,mI=31922,yI=31923,vI=31924,bI=31925,wI=31987,_I=31989,xI=31990,CI=34550,kI=39e3;function SI(t,e){let n=e.length+3,r=t.indexOf(`"${e}":`)+n,i=t.slice(r).indexOf('"')+r+1;return t.slice(i,i+64)}function EI(t,e){let n=e.length,r=t.indexOf(`"${e}":`)+n+3,i=t.slice(r),s=Math.min(i.indexOf(","),i.indexOf("}"));return parseInt(i.slice(0,s),10)}function RI(t){let e=t.slice(0,22).indexOf('"EVENT"');if(-1===e)return null;let n=t.slice(e+7+1).indexOf('"');if(-1===n)return null;let r=e+7+1+n,i=t.slice(r+1,80).indexOf('"');if(-1===i)return null;let s=r+1+i;return t.slice(r+1,s)}function LI(t,e){return e===SI(t,"id")}function TI(t,e){return e===SI(t,"pubkey")}function PI(t,e){return e===EI(t,"kind")}function II(t,e){return{kind:GP,created_at:Math.floor(Date.now()/1e3),tags:[["relay",t],["challenge",e]],content:""}}yT({},{getHex64:()=>SI,getInt:()=>EI,getSubscriptionId:()=>RI,matchEventId:()=>LI,matchEventKind:()=>PI,matchEventPubkey:()=>TI}),yT({},{makeAuthEvent:()=>II});try{WebSocket}catch{}try{WebSocket}catch{}yT({},{BECH32_REGEX:()=>OI,Bech32MaxSize:()=>AI,NostrTypeGuard:()=>MI,decode:()=>zI,decodeNostrURI:()=>NI,encodeBytes:()=>$I,naddrEncode:()=>WI,neventEncode:()=>VI,noteEncode:()=>UI,nprofileEncode:()=>qI,npubEncode:()=>jI,nsecEncode:()=>DI});var MI={isNProfile:t=>/^nprofile1[a-z\d]+$/.test(t||""),isNEvent:t=>/^nevent1[a-z\d]+$/.test(t||""),isNAddr:t=>/^naddr1[a-z\d]+$/.test(t||""),isNSec:t=>/^nsec1[a-z\d]{58}$/.test(t||""),isNPub:t=>/^npub1[a-z\d]{58}$/.test(t||""),isNote:t=>/^note1[a-z\d]+$/.test(t||""),isNcryptsec:t=>/^ncryptsec1[a-z\d]+$/.test(t||"")},AI=5e3,OI=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function NI(t){try{return t.startsWith("nostr:")&&(t=t.substring(6)),zI(t)}catch(e){return{type:"invalid",data:null}}}function zI(t){let{prefix:e,words:n}=lR.decode(t,AI),r=new Uint8Array(lR.fromWords(n));switch(e){case"nprofile":{let t=FI(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:NE(t[0][0]),relays:t[1]?t[1].map(t=>wT.decode(t)):[]}}}case"nevent":{let t=FI(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(t[2]&&32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(t[3]&&4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:NE(t[0][0]),relays:t[1]?t[1].map(t=>wT.decode(t)):[],author:t[2]?.[0]?NE(t[2][0]):void 0,kind:t[3]?.[0]?parseInt(NE(t[3][0]),16):void 0}}}case"naddr":{let t=FI(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!t[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!t[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:wT.decode(t[0][0]),pubkey:NE(t[2][0]),kind:parseInt(NE(t[3][0]),16),relays:t[1]?t[1].map(t=>wT.decode(t)):[]}}}case"nsec":return{type:e,data:r};case"npub":case"note":return{type:e,data:NE(r)};default:throw new Error(`unknown prefix ${e}`)}}function FI(t){let e={},n=t;for(;n.length>0;){let t=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length_T.encode(t))}))}function VI(t){let e;return void 0!==t.kind&&(e=function(t){const e=new Uint8Array(4);return e[0]=t>>24&255,e[1]=t>>16&255,e[2]=t>>8&255,e[3]=255&t,e}(t.kind)),BI("nevent",HI({0:[zE(t.id)],1:(t.relays||[]).map(t=>_T.encode(t)),2:t.author?[zE(t.author)]:[],3:e?[new Uint8Array(e)]:[]}))}function WI(t){let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,t.kind,!1),BI("naddr",HI({0:[_T.encode(t.identifier)],1:(t.relays||[]).map(t=>_T.encode(t)),2:[zE(t.pubkey)],3:[new Uint8Array(e)]}))}function HI(t){let e=[];return Object.entries(t).reverse().forEach(([t,n])=>{n.forEach(n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(t)],0),r.set([n.length],1),r.set(n,2),e.push(r)})}),DE(...e)}var GI={};function ZI(t,e,n){const r=t instanceof Uint8Array?NE(t):t,i=YI(pE.getSharedSecret(r,"02"+e));let s=Uint8Array.from(BE(16)),o=_T.encode(n),a=$L(i,s).encrypt(o);return`${XE.encode(new Uint8Array(a))}?iv=${XE.encode(new Uint8Array(s.buffer))}`}function KI(t,e,n){const r=t instanceof Uint8Array?NE(t):t;let[i,s]=n.split("?iv="),o=YI(pE.getSharedSecret(r,"02"+e)),a=XE.decode(s),l=XE.decode(i),c=$L(o,a).decrypt(l);return wT.decode(c)}function YI(t){return t.slice(1,33)}yT(GI,{decrypt:()=>KI,encrypt:()=>ZI}),yT({},{NIP05_REGEX:()=>JI,isNip05:()=>QI,isValid:()=>rM,queryProfile:()=>nM,searchDomain:()=>eM,useFetchImplementation:()=>tM});var XI,JI=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,QI=t=>JI.test(t||"");try{XI=fetch}catch(urt){}function tM(t){XI=t}async function eM(t,e=""){try{const n=`https://${t}/.well-known/nostr.json?name=${e}`,r=await XI(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(urt){return{}}}async function nM(t){const e=t.match(JI);if(!e)return null;const[,n="_",r]=e;try{const t=`https://${r}/.well-known/nostr.json?name=${n}`,e=await XI(t,{redirect:"manual"});if(200!==e.status)throw Error("Wrong response code");const i=await e.json(),s=i.names[n];return s?{pubkey:s,relays:i.relays?.[s]}:null}catch(i){return null}}async function rM(t,e){const n=await nM(e);return!!n&&n.pubkey===t}function iM(t){const e={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let i=t.tags.length-1;i>=0;i--){const s=t.tags[i];if("e"===s[0]&&s[1]){const[t,i,o,a,l]=s,c={id:i,relays:o?[o]:[],author:l};if("root"===a){e.root=c;continue}if("reply"===a){e.reply=c;continue}if("mention"===a){e.mentions.push(c);continue}n?r=c:n=c,e.mentions.push(c);continue}if("q"===s[0]&&s[1]){const[t,n,r]=s;e.quotes.push({id:n,relays:r?[r]:[]})}"p"===s[0]&&s[1]&&e.profiles.push({pubkey:s[1],relays:s[2]?[s[2]]:[]})}return e.root||(e.root=r||n||e.reply),e.reply||(e.reply=n||e.root),[e.reply,e.root].forEach(t=>{if(!t)return;let n=e.mentions.indexOf(t);if(-1!==n&&e.mentions.splice(n,1),t.author){let n=e.profiles.find(e=>e.pubkey===t.author);n&&n.relays&&(t.relays||(t.relays=[]),n.relays.forEach(e=>{-1===t.relays?.indexOf(e)&&t.relays.push(e)}),n.relays=t.relays)}}),e.mentions.forEach(t=>{if(t.author){let n=e.profiles.find(e=>e.pubkey===t.author);n&&n.relays&&(t.relays||(t.relays=[]),n.relays.forEach(e=>{-1===t.relays.indexOf(e)&&t.relays.push(e)}),n.relays=t.relays)}}),e}function sM(){}async function oM(t){return await(await fetch(t.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function aM(t){let e=0;for(let n=0;n<64;n+=8){const r=parseInt(t.substring(n,n+8),16);if(0!==r){e+=Math.clz32(r);break}e+=32}return e}function lM(t,e){let n=0;const r=t,i=["nonce",n.toString(),e.toString()];for(r.tags.push(i);;){const t=Math.floor((new Date).getTime()/1e3);if(t!==r.created_at&&(n=0,r.created_at=t),i[1]=(++n).toString(),r.id=cM(r),aM(r.id)>=e)break}return r}function cM(t){return NE(RR(_T.encode(JSON.stringify([0,t.pubkey,t.created_at,t.kind,t.tags,t.content]))))}yT({},{parse:()=>iM}),yT({},{fetchRelayInformation:()=>oM,useFetchImplementation:()=>sM}),yT({},{fastEventHash:()=>cM,getPow:()=>aM,minePow:()=>lM}),yT({},{unwrapEvent:()=>OM,unwrapManyEvents:()=>NM,wrapEvent:()=>MM,wrapManyEvents:()=>AM}),yT({},{createRumor:()=>SM,createSeal:()=>EM,createWrap:()=>RM,unwrapEvent:()=>PM,unwrapManyEvents:()=>IM,wrapEvent:()=>LM,wrapManyEvents:()=>TM});var uM={};yT(uM,{decrypt:()=>vM,encrypt:()=>yM,getConversationKey:()=>pM,v2:()=>bM});var hM=1,dM=65535;function pM(t,e){const n=pE.getSharedSecret(t,"02"+e).subarray(1,33);return r=RR,i=n,s="nip44-v2",vR.hash(r),void 0===s&&(s=new Uint8Array(r.outputLen)),pT(r,FE(s),FE(i));var r,i,s}function fM(t,e){const n=function(t,e,n,r=32){if(vR.hash(t),vR.number(r),r>255*t.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(r/t.outputLen);void 0===n&&(n=gT);const s=new Uint8Array(i*t.outputLen),o=pT.create(t,e),a=o._cloneInto(),l=new Uint8Array(o.outputLen);for(let c=0;cdM)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const e=new Uint8Array(2);return new DataView(e.buffer).setUint16(0,t,!1),e}(n),e,new Uint8Array(gM(n)-n))}(t),a=sT(r,i,o),l=mM(s,a,n);return XE.encode(DE(new Uint8Array([2]),n,a,l))}function vM(t,e){const{nonce:n,ciphertext:r,mac:i}=function(t){if("string"!=typeof t)throw new Error("payload must be a valid string");const e=t.length;if(e<132||e>87472)throw new Error("invalid payload length: "+e);if("#"===t[0])throw new Error("unknown encryption version");let n;try{n=XE.decode(t)}catch(X8){throw new Error("invalid base64: "+X8.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const i=n[0];if(2!==i)throw new Error("unknown encryption version "+i);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(t),{chacha_key:s,chacha_nonce:o,hmac_key:a}=fM(e,n);if(!sL(mM(a,r,n),i))throw new Error("invalid MAC");return function(t){const e=new DataView(t.buffer).getUint16(0),n=t.subarray(2,2+e);if(edM||n.length!==e||t.length!==2+gM(e))throw new Error("invalid padding");return wT.decode(n)}(sT(s,o,r))}var bM={utils:{getConversationKey:pM,calcPaddedLen:gM},encrypt:yM,decrypt:vM},wM=()=>Math.round(Date.now()/1e3),_M=()=>Math.round(wM()-172800*Math.random()),xM=(t,e)=>pM(t,e),CM=(t,e,n)=>yM(JSON.stringify(t),xM(e,n)),kM=(t,e)=>JSON.parse(vM(t.content,xM(e,t.pubkey)));function SM(t,e){const n={created_at:wM(),content:"",tags:[],...t,pubkey:IT(e)};return n.id=LT(n),n}function EM(t,e,n){return MT({kind:JT,content:CM(t,e,n),created_at:_M(),tags:[]},e)}function RM(t,e){const n=PT();return MT({kind:hP,content:CM(t,n,e),created_at:_M(),tags:[["p",e]]},n)}function LM(t,e,n){return RM(EM(SM(t,e),e,n),n)}function TM(t,e,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=[LM(t,e,IT(e))];return n.forEach(n=>{r.push(LM(t,e,n))}),r}function PM(t,e){return kM(kM(t,e),e)}function IM(t,e){let n=[];return t.forEach(t=>{n.push(PM(t,e))}),n.sort((t,e)=>t.created_at-e.created_at),n}function MM(t,e,n,r,i){return LM(function(t,e,n,r){const i={created_at:Math.ceil(Date.now()/1e3),kind:QT,tags:[],content:e};return(Array.isArray(t)?t:[t]).forEach(({publicKey:t,relayUrl:e})=>{i.tags.push(e?["p",t,e]:["p",t])}),r&&i.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&i.tags.push(["subject",n]),i}(e,n,r,i),t,e.publicKey)}function AM(t,e,n,r,i){if(!e||0===e.length)throw new Error("At least one recipient is required.");return[{publicKey:IT(t)},...e].map(e=>MM(t,e,n,r,i))}var OM=PM,NM=IM;function zM(t,e,n,r){let i;const s=[...t.tags??[],["e",e.id,n],["p",e.pubkey]];return e.kind===$T?i=GT:(i=eP,s.push(["k",String(e.kind)])),MT({kind:i,tags:s,content:""===t.content||e.tags?.find(t=>"-"===t[0])?"":JSON.stringify(e),created_at:t.created_at},r)}function FM(t){if(![GT,eP].includes(t.kind))return;let e,n;for(let r=t.tags.length-1;r>=0&&(void 0===e||void 0===n);r--){const i=t.tags[r];i.length>=2&&("e"===i[0]&&void 0===e?e=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==e?{id:e[1],relays:[e[2],n?.[2]].filter(t=>"string"==typeof t),author:n?.[1]}:void 0}function DM(t,{skipVerification:e}={}){const n=FM(t);if(void 0===n||""===t.content)return;let r;try{r=JSON.parse(t.content)}catch(X8){return}return r.id===n.id&&(e||AT(r))?r:void 0}yT({},{finishRepostEvent:()=>zM,getRepostedEvent:()=>DM,getRepostedEventPointer:()=>FM}),yT({},{NOSTR_URI_REGEX:()=>jM,parse:()=>BM,test:()=>UM});var jM=new RegExp(`nostr:(${OI.source})`);function UM(t){return"string"==typeof t&&new RegExp(`^${jM.source}$`).test(t)}function BM(t){const e=t.match(new RegExp(`^${jM.source}$`));if(!e)throw new Error(`Invalid Nostr URI: ${t}`);return{uri:e[0],value:e[1],decoded:zI(e[1])}}function $M(t,e,n){const r=e.tags.filter(t=>t.length>=2&&("e"===t[0]||"p"===t[0]));return MT({...t,kind:ZT,tags:[...t.tags??[],...r,["e",e.id],["p",e.pubkey]],content:t.content??"+"},n)}function qM(t){if(t.kind!==ZT)return;let e,n;for(let r=t.tags.length-1;r>=0&&(void 0===e||void 0===n);r--){const i=t.tags[r];i.length>=2&&("e"===i[0]&&void 0===e?e=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==e&&void 0!==n?{id:e[1],relays:[e[2],n[2]].filter(t=>void 0!==t),author:n[1]}:void 0}yT({},{finishReactionEvent:()=>$M,getReactedEventPointer:()=>qM}),yT({},{parse:()=>GM});var VM=/\W/m,WM=/[^\w\/] |[^\w\/]$|$|,| /m,HM=42;function*GM(t){let e=[];if("string"!=typeof t){for(let n=0;n=3&&e.push({type:"emoji",shortcode:r[1],url:r[2]})}t=t.content}const n=t.length;let r=0,i=0;t:for(;i=0&&aZM,channelHideMessageEvent:()=>XM,channelMessageEvent:()=>YM,channelMetadataEvent:()=>KM,channelMuteUserEvent:()=>JM});var ZM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:sP,tags:[...t.tags??[]],content:n,created_at:t.created_at},e)},KM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:oP,tags:[["e",t.channel_create_event_id],...t.tags??[]],content:n,created_at:t.created_at},e)},YM=(t,e)=>{const n=[["e",t.channel_create_event_id,t.relay_url,"root"]];return t.reply_to_channel_message_event_id&&n.push(["e",t.reply_to_channel_message_event_id,t.relay_url,"reply"]),MT({kind:aP,tags:[...n,...t.tags??[]],content:t.content,created_at:t.created_at},e)},XM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:lP,tags:[["e",t.channel_message_event_id],...t.tags??[]],content:n,created_at:t.created_at},e)},JM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:cP,tags:[["p",t.pubkey_to_mute],...t.tags??[]],content:n,created_at:t.created_at},e)};yT({},{EMOJI_SHORTCODE_REGEX:()=>eA,matchAll:()=>rA,regex:()=>nA,replaceAll:()=>iA});var QM,tA,eA=/:(\w+):/,nA=()=>new RegExp(`\\B${eA.source}\\B`,"g");function*rA(t){const e=t.matchAll(nA());for(const r of e)try{const[t,e]=r;yield{shortcode:t,name:e,start:r.index,end:r.index+t.length}}catch(n){}}function iA(t,e){return t.replaceAll(nA(),(t,n)=>e({shortcode:t,name:n}))}yT({},{useFetchImplementation:()=>sA,validateGithub:()=>oA});try{QM=fetch}catch{}function sA(t){QM=t}async function oA(t,e,n){try{return await(await QM(`https://gist.github.com/${e}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${t}`}catch(urt){return!1}}function aA(t){const{host:e,pathname:n,searchParams:r}=new URL(t),i=n||e,s=r.get("relay"),o=r.get("secret");if(!i||!s||!o)throw new Error("invalid connection string");return{pubkey:i,relay:s,secret:o}}async function lA(t,e,n){const r=ZI(e,t,JSON.stringify({method:"pay_invoice",params:{invoice:n}}));return MT({kind:ZP,created_at:Math.round(Date.now()/1e3),content:r,tags:[["p",t]]},e)}function cA(t){return t=(t=t.trim().toLowerCase()).normalize("NFKC"),Array.from(t).map(t=>/\p{Letter}/u.test(t)||/\p{Number}/u.test(t)?t:"-").join("")}yT({},{makeNwcRequestEvent:()=>lA,parseConnectionString:()=>aA}),yT({},{normalizeIdentifier:()=>cA}),yT({},{getSatoshisAmountFromBolt11:()=>gA,getZapEndpoint:()=>hA,makeZapReceipt:()=>fA,makeZapRequest:()=>dA,useFetchImplementation:()=>uA,validateZapRequest:()=>pA});try{tA=fetch}catch{}function uA(t){tA=t}async function hA(t){try{let e="",{lud06:n,lud16:r}=JSON.parse(t.content);if(r){let[t,n]=r.split("@");e=new URL(`/.well-known/lnurlp/${t}`,`https://${n}`).toString()}else{if(!n)return null;{let{words:t}=lR.decode(n,1e3),r=lR.fromWords(t);e=wT.decode(r)}}let i=await(await tA(e)).json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(PD){}return null}function dA(t){let e={kind:9734,created_at:Math.round(Date.now()/1e3),content:t.comment||"",tags:[["p","pubkey"in t?t.pubkey:t.event.pubkey],["amount",t.amount.toString()],["relays",...t.relays]]};if("event"in t){if(e.tags.push(["e",t.event.id]),zT(t.event.kind)){const n=["a",`${t.event.kind}:${t.event.pubkey}:`];e.tags.push(n)}else if(DT(t.event.kind)){let n=t.event.tags.find(([t,e])=>"d"===t&&e);if(!n)throw new Error("d tag not found or is empty");const r=["a",`${t.event.kind}:${t.event.pubkey}:${n[1]}`];e.tags.push(r)}e.tags.push(["k",t.event.kind.toString()])}return e}function pA(t){let e;try{e=JSON.parse(t)}catch(PD){return"Invalid zap request JSON."}if(!bT(e))return"Zap request is not a valid Nostr event.";if(!AT(e))return"Invalid signature on zap request.";let n=e.tags.find(([t,e])=>"p"===t&&e);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=e.tags.find(([t,e])=>"e"===t&&e);return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":e.tags.find(([t,e])=>"relays"===t&&e)?null:"Zap request doesn't have a 'relays' tag."}function fA({zapRequest:t,preimage:e,bolt11:n,paidAt:r}){let i=JSON.parse(t),s=i.tags.filter(([t])=>"e"===t||"p"===t||"a"===t),o={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...s,["P",i.pubkey],["bolt11",n],["description",t]]};return e&&o.tags.push(["preimage",e]),o}function gA(t){if(t.length<50)return 0;const e=(t=t.substring(0,50)).lastIndexOf("1");if(-1===e)return 0;const n=t.substring(0,e);if(!n.startsWith("lnbc"))return 0;const r=n.substring(4);if(r.length<1)return 0;const i=r[r.length-1],s=i.charCodeAt(0)-"0".charCodeAt(0),o=s>=0&&s<=9;let a=r.length-1;if(o&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(i){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}yT({},{Negentropy:()=>CA,NegentropyStorageVector:()=>xA,NegentropySync:()=>EA});var mA=32,yA=class{_raw;length;constructor(t){"number"==typeof t?(this._raw=new Uint8Array(t),this.length=0):t instanceof Uint8Array?(this._raw=new Uint8Array(t),this.length=t.length):(this._raw=new Uint8Array(512),this.length=0)}unwrap(){return this._raw.subarray(0,this.length)}get capacity(){return this._raw.byteLength}extend(t){if(t instanceof yA&&(t=t.unwrap()),"number"!=typeof t.length)throw Error("bad length");const e=t.length+this.length;if(this.capacity>>=7;e.reverse();for(let n=0;n4294967295&&(n=1),r.setUint32(t,4294967295&o,!0),e=n,n=0}}negate(){let t=new DataView(this.buf.buffer);for(let n=0;n<8;n++){let e=4*n;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(mA);e[0]=1,this.add(e)}getFingerprint(t){let e=new yA;return e.extend(this.buf),e.extend(bA(t)),RR(e.unwrap()).subarray(0,16)}},xA=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");const n=rL(e);if(n.byteLength!==mA)throw Error("bad id size for added item");this.items.push({timestamp:t,id:n})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(SA);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,n){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rSA(t,n)<0)}fingerprint(t,e){let n=new _A;return n.setToZero(),this.iterate(t,e,t=>(n.add(t.id),!0)),n.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,n,r){let i=n-e;for(;i>0;){let n=e,s=Math.floor(i/2);n+=s,r(t[n])?(e=++n,i-=s+1):i=s}return e}},CA=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;constructor(t,e=6e4){if(e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}initiate(){let t=new yA;return t.extend(new Uint8Array([97])),this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),eL(t.unwrap())}reconcile(t,e,n){const r=new yA(rL(t));this.lastTimestampIn=this.lastTimestampOut=0;let i=new yA;i.extend(new Uint8Array([97]));let s=wA(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s)throw Error("unsupported negentropy protocol version requested: "+(s-96));let o=this.storage.size(),a=this._bound(0),l=0,c=!1;for(;0!==r.length;){let t=new yA,s=()=>{c&&(c=!1,t.extend(this.encodeBound(a)),t.extend(bA(0)))},u=this.decodeBound(r),h=vA(r),d=l,p=this.storage.findLowerBound(l,o,u);if(0===h)c=!0;else if(1===h)0!==kA(wA(r,16),this.storage.fingerprint(d,p))?(s(),this.splitRange(d,p,u,t)):c=!0;else{if(2!==h)throw Error("unexpected mode");{let t=vA(r),i={};for(let e=0;e{let n=t.id;const r=eL(n);return i[r]?delete i[eL(n)]:e?.(r),!0}),n)for(let e of Object.values(i))n(eL(e))}}if(this.exceededFrameSizeLimit(i.length+t.length)){let t=this.storage.fingerprint(p,o);i.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),i.extend(bA(1)),i.extend(t);break}i.extend(t),l=p,a=u}return 1===i.length?null:eL(i.unwrap())}splitRange(t,e,n,r){let i=e-t;if(i<32)r.extend(this.encodeBound(n)),r.extend(bA(2)),r.extend(bA(i)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(i/16),o=i%16,a=t;for(let t=0;t<16;t++){let i,l=s+(t(r===a-1?t=n:e=n,!0)),i=this.getMinimalBound(t,e)}r.extend(this.encodeBound(i)),r.extend(bA(1)),r.extend(c)}}}exceededFrameSizeLimit(t){return t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=vA(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),n=vA(t);if(n>mA)throw Error("bound key too long");return{timestamp:e,id:wA(t,n)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,bA(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,bA(t+1)}encodeBound(t){let e=new yA;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(bA(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let n=0,r=e.id,i=t.id;for(let t=0;te[n])return 1}return t.byteLength>e.byteLength?1:t.byteLength{switch(t[0]){case"NEG-MSG":t.length<3&&console.warn(`got invalid NEG-MSG from ${this.relay.url}: ${t}`);try{const e=this.neg.reconcile(t[2],this.onhave,this.onneed);e?this.relay.send(`["NEG-MSG", "${this.subscription.id}", "${e}"]`):(this.close(),r.onclose?.())}catch(X8){console.error("negentropy reconcile error:",X8),r?.onclose?.(`reconcile error: ${X8}`)}break;case"NEG-CLOSE":{const e=t[2];console.warn("negentropy error:",e),r.onclose?.(e);break}case"NEG-ERR":r.onclose?.()}}}async start(){const t=this.neg.initiate();this.relay.send(`["NEG-OPEN","${this.subscription.id}",${JSON.stringify(this.filter)},"${t}"]`)}close(){this.relay.send(`["NEG-CLOSE","${this.subscription.id}"]`),this.subscription.close()}};yT({},{getToken:()=>LA,hashPayload:()=>NA,unpackEventFromToken:()=>PA,validateEvent:()=>FA,validateEventKind:()=>MA,validateEventMethodTag:()=>OA,validateEventPayloadTag:()=>zA,validateEventTimestamp:()=>IA,validateEventUrlTag:()=>AA,validateToken:()=>TA});var RA="Nostr ";async function LA(t,e,n,r=!1,i){const s={kind:XP,tags:[["u",t],["method",e]],created_at:Math.round((new Date).getTime()/1e3),content:""};i&&s.tags.push(["payload",NA(i)]);const o=await n(s);return(r?RA:"")+XE.encode(_T.encode(JSON.stringify(o)))}async function TA(t,e,n){return await FA(await PA(t).catch(t=>{throw t}),e,n).catch(t=>{throw t})}async function PA(t){if(!t)throw new Error("Missing token");t=t.replace(RA,"");const e=wT.decode(XE.decode(t));if(!e||0===e.length||!e.startsWith("{"))throw new Error("Invalid token");return JSON.parse(e)}function IA(t){return!!t.created_at&&Math.round((new Date).getTime()/1e3)-t.created_at<60}function MA(t){return t.kind===XP}function AA(t,e){const n=t.tags.find(t=>"u"===t[0]);return!!n&&n.length>0&&n[1]===e}function OA(t,e){const n=t.tags.find(t=>"method"===t[0]);return!!n&&n.length>0&&n[1].toLowerCase()===e.toLowerCase()}function NA(t){return NE(RR(_T.encode(JSON.stringify(t))))}function zA(t,e){const n=t.tags.find(t=>"payload"===t[0]);if(!n)return!1;const r=NA(e);return n.length>0&&n[1]===r}async function FA(t,e,n,r){if(!AT(t))throw new Error("Invalid nostr event, signature invalid");if(!MA(t))throw new Error("Invalid nostr event, kind invalid");if(!IA(t))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!AA(t,e))throw new Error("Invalid nostr event, url tag invalid");if(!OA(t,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!zA(t,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}function DA(t){return 0===t||3===t||1e4<=t&&t<2e4}function jA(t){return 3e4<=t&&t<4e4}function UA(t,e){const n=e instanceof Array?e:[e];return function(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;ee.id===t.id?0:e.created_at===t.created_at?-1:t.created_at-e.created_at);return r||t.splice(n,0,e),t}function XA(t,e){let n=0,r=t.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=e(t[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}new TextDecoder("utf-8"),new TextEncoder;var JA=Symbol.for("event-store"),QA=Symbol.for("event-uid"),tO=Symbol.for("replaceable-address"),eO=Symbol.for("from-cache"),nO=Symbol.for("replaceable-identifier");function rO(t){return null!=t&&64===t.id?.length&&"string"==typeof t.sig&&"string"==typeof t.pubkey&&64===t.pubkey.length&&"string"==typeof t.content&&Array.isArray(t.tags)&&"number"==typeof t.created_at&&t.created_at>0}function iO(t){return DA(t)||jA(t)}function sO(t){return iO(t.kind)?KA(t,tO,()=>oO(t.kind,t.pubkey,cO(t))):null}function oO(t,e,n){return t+":"+e+":"+(n??"")}var aO=ZA;function lO(t){Reflect.set(t,eO,!0)}function cO(t){return KA(t,nO,()=>t.tags.find(t=>"d"===t[0])?.[1]??"")}function uO(t,e){return t.tags.find(t=>t[0]===e)?.[1]}VR();var hO=new TextDecoder("utf-8"),dO=(new TextEncoder,5e3);function pO(t){let e={},n=t;for(;n.length>0;){let t=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length=8&&_O.test(t)}function CO(...t){const e=new Set;for(const n of t)if(n)if("string"==typeof n)try{e.add(bO(n))}catch(X8){}else if(Reflect.has(n,Symbol.iterator))for(const t of n)try{e.add(bO(t))}catch(X8){}return Array.from(e)}function kO(t){return!!t&&64===t.length&&!!t.toLowerCase().match(/^[0-9a-f]{64}$/)}function SO(t,e=!1){const n=t.split(":"),r=n[0]?parseInt(n[0]):void 0,i=n[1];if(void 0===r)return null;if(void 0===i||""===i||!kO(i))return null;const s=n.slice(2).join(":");return e&&""===s?null:{kind:r,pubkey:i,identifier:s}}function EO(t){const e=t[1];if(!e||!kO(e))return null;const n={id:e};return t[2]&&xO(t[2])&&(n.relays=[yO(t[2])]),n}function RO(t){if(!t[1])return null;const e=SO(t[1]);return e?(t[2]&&xO(t[2])&&(e.relays=[yO(t[2])]),e):null}function LO(t){const e=t[1];if(!e||!kO(e))return null;const n={pubkey:e};return t[2]&&xO(t[2])&&(n.relays=[yO(t[2])]),n}function TO(t){return"object"==typeof t&&null!==t&&"id"in t&&"string"==typeof t.id}function PO(t){return t.kind+":"+t.pubkey+":"+t.identifier}function IO(t,e){return TO(e)?t.id===e.id&&(!e.author||t.pubkey===e.author):t.kind===e.kind&&t.pubkey===e.pubkey&&cO(t)===(e.identifier??"")}var MO=Symbol.for("profile-content");function AO(t){return KA(t,MO,()=>{const e=function(t){try{return JSON.parse(t)}catch(X8){return}}(t.content);if(e)return e.nip05&&"string"!=typeof e.nip05&&(e.nip05=String(e.nip05)),e.website&&e.website?.length>0&&!1===e.website?.startsWith("http")&&(e.website="https://"+e.website),e})}function OO(t){return!(!t||t.kind!==OT.Metadata&&t.kind!==OT.Handlerinformation||!AO(t))}function NO(t){return"string"==typeof t&&(t={pubkey:t}),e=>e.replaceable({kind:OT.Metadata,pubkey:t.pubkey,relays:t.relays}).pipe(vk(OO),KC(t=>t&&AO(t)))}function zO(t,e){return void 0!==t[0]&&void 0!==t[1]&&(!e||t[0]===e)}function FO(t){return zO(t,"e")}function DO(t){return zO(t,"p")}function jO(t){return zO(t,"r")}function UO(t){return zO(t,"a")}var BO=(t,...e)=>e.reduce((t,e)=>{const n=[];for(const r of t)try{const t=e(r);if(void 0===t)continue;n.push(t)}catch(X8){}return n},t);function $O(t,e=2){for(let n=(t=t.slice()).length-1;n>=0;n--)void 0!==t[n]&&null!==t[n]&&""!==t[n]||(n+1===t.length&&n>=e?t.pop():t[n]="");return t}var qO=o((t,n)=>{var{bech32:r,hex:i,utf8:o}=(VR(),(t=>s.call(t,"module.exports")?t["module.exports"]:l(e({},"__esModule",{value:!0}),t))(LR)),a={bech32:"bc",pubKeyHash:0,scriptHash:5,validWitnessVersions:[0]},c={bech32:"tb",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},u={bech32:"tbs",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},h={bech32:"bcrt",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},d={bech32:"sb",pubKeyHash:63,scriptHash:123,validWitnessVersions:[0]},p=["option_data_loss_protect","initial_routing_sync","option_upfront_shutdown_script","gossip_queries","var_onion_optin","gossip_queries_ex","option_static_remotekey","payment_secret","basic_mpp","option_support_large_channel"],f={m:BigInt(1e3),u:BigInt(1e6),n:BigInt(1e9),p:BigInt(1e12)},g=BigInt("2100000000000000000"),m=BigInt(1e11),y={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},v={};for(let e=0,s=Object.keys(y);ei.encode(r.fromWordsUnsafe(t)),16:t=>i.encode(r.fromWordsUnsafe(t)),13:t=>o.encode(r.fromWordsUnsafe(t)),19:t=>i.encode(r.fromWordsUnsafe(t)),23:t=>i.encode(r.fromWordsUnsafe(t)),27:t=>i.encode(r.fromWordsUnsafe(t)),6:_,24:_,3:function(t){const e=[];let n,s,o,a,l,c=r.fromWordsUnsafe(t);for(;c.length>0;)n=i.encode(c.slice(0,33)),s=i.encode(c.slice(33,41)),o=parseInt(i.encode(c.slice(41,45)),16),a=parseInt(i.encode(c.slice(45,49)),16),l=parseInt(i.encode(c.slice(49,51)),16),c=c.slice(51),e.push({pubkey:n,short_channel_id:s,fee_base_msat:o,fee_proportional_millionths:a,cltv_expiry_delta:l});return e},5:function(t){const e=t.slice().reverse().map(t=>[!!(1&t),!!(2&t),!!(4&t),!!(8&t),!!(16&t)]).reduce((t,e)=>t.concat(e),[]);for(;e.length<2*p.length;)e.push(!1);const n={};p.forEach((t,r)=>{let i;i=e[2*r]?"required":e[2*r+1]?"supported":"unsupported",n[t]=i});const r=e.slice(2*p.length);return n.extra_bits={start_bit:2*p.length,bits:r,has_required:r.reduce((t,e,n)=>n%2!=0?t||!1:t||e,!1)},n}};function w(t){return e=>({tagCode:parseInt(t),words:r.encode("unknown",e,Number.MAX_SAFE_INTEGER)})}function _(t){return t.reverse().reduce((t,e,n)=>t+e*Math.pow(32,n),0)}function x(t,e){let n,r;if(t.slice(-1).match(/^[munp]$/))n=t.slice(-1),r=t.slice(0,-1);else{if(t.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");r=t}if(!r.match(/^\d+$/))throw new Error("Not a valid human readable amount");const i=BigInt(r),s=n?i*m/f[n]:i*m;if("p"===n&&i%BigInt(10)!==BigInt(0)||s>g)throw new Error("Amount is outside of valid range");return e?s.toString():s}n.exports={decode:function(t,e){if("string"!=typeof t)throw new Error("Lightning Payment Request must be string");if("ln"!==t.slice(0,2).toLowerCase())throw new Error("Not a proper lightning payment request");const n=[],s=r.decode(t,Number.MAX_SAFE_INTEGER);t=t.toLowerCase();const o=s.prefix;let l=s.words,p=t.slice(o.length+1),f=l.slice(-104);l=l.slice(0,-104);let g=o.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(g&&!g[2]&&(g=o.match(/^ln(\S+)$/)),!g)throw new Error("Not a proper lightning payment request");n.push({name:"lightning_network",letters:"ln"});const m=g[1];let C;if(e){if(void 0===e.bech32||void 0===e.pubKeyHash||void 0===e.scriptHash||!Array.isArray(e.validWitnessVersions))throw new Error("Invalid network");C=e}else switch(m){case a.bech32:C=a;break;case c.bech32:C=c;break;case u.bech32:C=u;break;case h.bech32:C=h;break;case d.bech32:C=d}if(!C||C.bech32!==m)throw new Error("Unknown coin bech32 prefix");n.push({name:"coin_network",letters:m,value:C});const k=g[2];let S;k?(S=x(k+g[3],!0),n.push({name:"amount",letters:g[2]+g[3],value:S})):S=null,n.push({name:"separator",letters:"1"});const E=_(l.slice(0,7));let R,L,T,P;for(l=l.slice(7),n.push({name:"timestamp",letters:p.slice(0,7),value:E}),p=p.slice(7);l.length>0;){const t=l[0].toString();R=v[t]||"unknown_tag",L=b[t]||w(t),l=l.slice(1),T=_(l.slice(0,2)),l=l.slice(2),P=l.slice(0,T),l=l.slice(T),n.push({name:R,tag:p[0],letters:p.slice(0,3+T),value:L(P)}),p=p.slice(3+T)}n.push({name:"signature",letters:p.slice(0,104),value:i.encode(r.fromWordsUnsafe(f))}),p=p.slice(104),n.push({name:"checksum",letters:p});let I={paymentRequest:t,sections:n,get expiry(){let t=n.find(t=>"expiry"===t.name);if(t)return M("timestamp")+t.value},get route_hints(){return n.filter(t=>"route_hint"===t.name).map(t=>t.value)}};for(let r in y)"route_hint"!==r&&Object.defineProperty(I,r,{get:()=>M(r)});return I;function M(t){let e=n.find(e=>e.name===t);return e?e.value:void 0}},hrpToMillisat:x}}),VO=qO();function WO(t){const e=(0,VO.decode)(t),n=e.sections.find(t=>"timestamp"===t.name)?.value??0,r=e.sections.find(t=>"description"===t.name)?.value??"",i=parseInt(e.sections.find(t=>"amount"===t.name)?.value??"0"),s=e.sections.find(t=>"payment_hash"===t.name);return{paymentRequest:e.paymentRequest,description:r,amount:i,timestamp:n,expiry:n+e.expiry,paymentHash:s?.value}}var HO=Symbol.for("encrypted-content"),GO={[OT.EncryptedDirectMessage]:"nip04",[OT.Seal]:"nip44",[OT.GiftWrap]:"nip44"};function ZO(t,e){return GO[t]=e,t}function KO(t,e,n){const r=n??GO[t];if(!r)throw new Error(`Event kind ${t} does not support encrypted content`);const i=e[r];if(!i)throw new Error(`Signer does not support ${r} encryption`);return i}var YO=HO,XO=KO,JO=new Set([ZO(OT.DraftLong,"nip04")]);function QO(t,e){return JO.add(ZO(t,e)),t}function tN(t){return function(t){return void 0!==GO[t]}(t)&&JO.has(t)}function eN(t){if(tN(t.kind))return YO in t?Reflect.get(t,YO):function(t){return Reflect.get(t,HO)}(t)}function nN(t,e){if(!tN(t.kind))throw new Error("Event kind does not support hidden content");!function(t,e){Reflect.set(t,HO,e),function(t){if(!rO(t))return;const e=function(t){return Reflect.get(t,JA)}(t);e&&e.update(t)}(t)}(t,e)}var rN=Symbol.for("hidden-tags"),iN=new Set([QO(OT.BookmarkList,"nip04"),QO(OT.InterestsList,"nip04"),QO(OT.Mutelist,"nip04"),QO(OT.CommunitiesList,"nip04"),QO(OT.PublicChatsList,"nip04"),QO(OT.SearchRelaysList,"nip04"),QO(10009,"nip04"),QO(OT.Bookmarksets,"nip04"),QO(OT.Relaysets,"nip04"),QO(OT.Followsets,"nip04"),QO(OT.Curationsets,"nip04"),QO(OT.Interestsets,"nip04")]);function sN(t){return tN(t)&&iN.has(t)}function oN(t,e){return iN.add(QO(t,e)),t}function aN(t){return sN(t.kind)&&function(t){return tN(t.kind)&&function(t){return t.content.length>0}(t)}(t)}function lN(t){if(!sN(t.kind))return;if(rN in t)return t[rN];const e=eN(t);if(void 0===e)return;const n=JSON.parse(e);if(!Array.isArray(n))throw new Error("Content is not an array of tags");const r=n.filter(t=>Array.isArray(t)).map(t=>t.map(t=>String(t)));return Reflect.set(t,rN,r),r}var cN=Symbol.for("public-contacts"),uN=Symbol.for("hidden-contacts");function hN(t){return!!t&&(t instanceof hC||Mx(t.lift)&&Mx(t.subscribe))}function dN(t,e){var n="object"==typeof e;return new Promise(function(r,i){var s,o=!1;t.subscribe({next:function(t){s=t,o=!0},error:i,complete:function(){o?r(s):n?r(e.defaultValue):i(new bk)}})})}function pN(t,e){var n="object"==typeof e;return new Promise(function(r,i){var s=new sC({next:function(t){r(t),s.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new bk)}});t.subscribe(s)})}function fN(t){return new hC(function(e){wC(t()).subscribe(e)})}function gN(){for(var t=[],e=0;e{var n=1e3,r=60*n,i=60*r,s=24*i,o=7*s;function a(t,e,n,r){var i=e>=1.5*n;return Math.round(t/n)+" "+r+(i?"s":"")}e.exports=function(t,e){e=e||{};var l,c,u=typeof t;if("string"===u&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var a=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*o;case"days":case"day":case"d":return a*s;case"hours":case"hour":case"hrs":case"hr":case"h":return a*i;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(t);if("number"===u&&isFinite(t))return e.long?(l=t,(c=Math.abs(l))>=s?a(l,c,s,"day"):c>=i?a(l,c,i,"hour"):c>=r?a(l,c,r,"minute"):c>=n?a(l,c,n,"second"):l+" ms"):function(t){var e=Math.abs(t);return e>=s?Math.round(t/s)+"d":e>=i?Math.round(t/i)+"h":e>=r?Math.round(t/r)+"m":e>=n?Math.round(t/n)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}}),vN=o((t,e)=>{e.exports=function(t){function e(t){let r,i,s,o=null;function a(...t){if(!a.enabled)return;const n=a,i=Number(new Date);n.diff=i-(r||i),n.prev=r,n.curr=i,r=i,t[0]=e.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");let s=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(r,i)=>{if("%%"===r)return"%";s++;const o=e.formatters[i];if("function"==typeof o){const e=t[s];r=o.call(n,e),t.splice(s,1),s--}return r}),e.formatArgs.call(n,t),(n.log||e.log).apply(n,t)}return a.namespace=t,a.useColors=e.useColors(),a.color=e.selectColor(t),a.extend=n,a.destroy=e.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==e.namespaces&&(i=e.namespaces,s=e.enabled(t)),s),set:t=>{o=t}}),"function"==typeof e.init&&e.init(a),a}function n(t,n){const r=e(this.namespace+(void 0===n?":":n)+t);return r.log=this.log,r}function r(t,e){let n=0,r=0,i=-1,s=0;for(;n"-"+t)].join(",");return e.enable(""),t},e.enable=function(t){e.save(t),e.namespaces=t,e.names=[],e.skips=[];const n=("string"==typeof t?t:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const r of n)"-"===r[0]?e.skips.push(r.slice(1)):e.names.push(r)},e.enabled=function(t){for(const n of e.skips)if(r(t,n))return!1;for(const n of e.names)if(r(t,n))return!0;return!1},e.humanize=yN(),e.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(t).forEach(n=>{e[n]=t[n]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let n=0;for(let e=0;e{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,i=0;t[0].replace(/%[a-zA-Z%]/g,t=>{"%%"!==t&&(r++,"%c"===t&&(i=r))}),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(X8){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(X8){}return!e&&"undefined"!=typeof process&&"env"in process&&(e={}.DEBUG),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 t;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&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(X8){}}(),t.destroy=(()=>{let t=!1;return()=>{t||(t=!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=vN()(t);var{formatters:n}=e.exports;n.j=function(t){try{return JSON.stringify(t)}catch(X8){return"[UnexpectedJSONParseError]: "+X8.message}}}),wN=c(bN(),1),_N=(0,wN.default)("applesauce"),xN=_N.extend("event-cache");function CN(){return Math.round(Date.now()/1e3)}var kN=Symbol("expiration-timestamp");function SN(t){return KA(t,kN,()=>{const e=t.tags.find(t=>"expiration"===t[0])?.[1];return e?parseInt(e):void 0})}function EN(t){return $O(["a",PO(t),t.relays?.[0]])}function RN(t){return $O(["e",t.id,t.relays?.[0]])}function LN(t){return $O(["p",t.pubkey,t.relays?.[0]])}var TN=o((t,e)=>{e.exports=function t(e,n){if(e===n)return!0;if(e&&n&&"object"==typeof e&&"object"==typeof n){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if((r=e.length)!=n.length)return!1;for(i=r;0!==i--;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if((r=(s=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(i=r;0!==i--;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;0!==i--;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!=e&&n!=n}}),PN=c(TN(),1),IN="abcdefghijklmnopqrstuvwxyz",MN=new Set((IN+IN.toUpperCase()).split("")),AN=Symbol.for("indexable-tags");function ON(t){let e=Reflect.get(t,AN);if(!e){const n=new Set;for(const e of t.tags)e.length>=2&&1===e[0].length&&MN.has(e[0])&&n.add(e[0]+":"+e[1]);e=n,Reflect.set(t,AN,n)}return e}function NN(t,e){if(t.ids&&-1===t.ids.indexOf(e.id))return!1;if(t.kinds&&-1===t.kinds.indexOf(e.kind))return!1;if(t.authors&&-1===t.authors.indexOf(e.pubkey))return!1;if(t.since&&e.created_att.until)return!1;for(let n in t)if("&"===n[0]){let r=n.slice(1),i=t[n];if(i&&i.length>0){const t=ON(e);for(const e of i)if(!t.has(r+":"+e))return!1}}for(let n in t)if("#"===n[0]){let r=n.slice(1),i=t[n];if(i){const n=t[`&${r}`],s=n?i.filter(t=>!n.includes(t)):i;if(0===s.length)continue;const o=ON(e);if(!1===s.some(t=>o.has(r+":"+t)))return!1}}return!0}function zN(t,e){for(let n=0;n[t,this.get(t)])}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],0===--this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e;if(this.has(t)){const n=this.items[t];this.ttl>0&&n.expiry<=Date.now()?this.delete(t):(e=n.value,this.set(t,e,!0))}return e}has(t){return t in this.items}keys(){const t=[];let e=this.first;for(;null!==e;)t.push(e.key),e=e.next;return t}set(t,e,n=!1,r=this.resetTtl){let i;if(n||this.has(t)){if(i=this.items[t],i.value=e,!1===n&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){const t=this.last,e=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,t.next=i,null!==n&&(n.next=e),null!==e&&(e.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},1===++this.size?this.first=i:this.last.next=i;return this.last=i,this}values(t=this.keys()){return t.map(t=>this.get(t))}},jN=Symbol.for("mailboxes-inboxes"),UN=Symbol.for("mailboxes-outboxes");function BN(t){return KA(t,jN,()=>{const e=[];for(const n of t.tags)if(jO(n))try{const[,t,r]=n;!t||!xO(t)||e.includes(t)||"read"!==r&&void 0!==r||e.push(yO(t))}catch{}return e})}function $N(t){return KA(t,UN,()=>{const e=[];for(const n of t.tags)if(jO(n))try{const[t,r,i]=n;"r"!==t||!xO(r)||e.includes(r)||"write"!==i&&void 0!==i||e.push(yO(r))}catch{}return e})}var qN=new Set([HO]);function VN(t){return t}function WN(...t){return GN(t.filter(t=>!!t),qN)}function HN(...t){return GN(t.filter(t=>!!t))}function GN(t,e){return 0===t.length?VN:async function(n){return t.reduce(async(t,n)=>{const r=await n(await t);if(e&&"object"==typeof r&&null!==r&&"object"==typeof t&&null!==t){const t=Reflect.ownKeys(r).filter(t=>"symbol"==typeof t);for(const n of t)e.has(n)||Reflect.deleteProperty(r,n)}return r},n)}}function ZN(t,e){return Object.fromEntries(Array.from(Object.entries(t)).map(([t,n])=>[t,{authors:n.map(t=>t.pubkey),...e}]))}oN(OT.UserEmojiList,"nip44");var KN=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&n[t]];return e};function YN(t,e,n=!0){return async r=>{const i="string"==typeof t?{pubkey:t}:{...t};if(!i.relays?.[0]&&e){const t="string"==typeof e?e:await e(i.pubkey);t&&(i.relays=[t])}return n&&(r=r.filter(t=>!("p"===t[0]&&t[1]===i.pubkey))),[...r,LN(i)]}}function XN(t,e=!0){return n=>function(t,e,n=!0){const r=t.find(t=>t[0]===e[0]);return r?n?t.map(t=>t===r?e:t):t:[...t,e]}(n,t,e)}function JN(t,e=!0){return QN(XN(t,e))}function QN(...t){return async e=>({...e,tags:await HN(...t)(Array.from(e.tags))})}function tz(t,...e){return 0===(e=e.filter(t=>!!t)).length?t=>t:async n=>{if(!t)throw new Error("Missing signer for hidden tags");if(!sN(n.kind))throw new Error("Event kind does not support hidden tags");let r,i;if(aN(n)?(i=lN(n),void 0===i&&(aN(n)?(r=await t.getPublicKey(),i=await async function(t,e,n){if(!sN(t.kind))throw new Error("Event kind does not support hidden tags");if(function(t){if(!sN(t.kind))return!1;try{return rN in t||function(t){return!!tN(t.kind)&&function(t){return!0===Reflect.has(t,HO)}(t)&&!0===Reflect.has(t,YO)}(t)&&void 0!==lN(t)}catch{}return!1}(t))return t[rN];await async function(t,e,n){if(!tN(t.kind))throw new Error("Event kind does not support hidden content");if(YO in t)return Reflect.get(t,YO);const r=await KO(t.kind,e,n).decrypt(t.pubkey,t.content);return nN(t,r),r}(t,e,n);const r=lN(t);if(void 0===r)throw new Error("Failed to unlock hidden tags");return function(t,e){if(!sN(t.kind))throw new Error("Event kind does not support hidden tags");Reflect.set(t,rN,e),nN(t,JSON.stringify(e))}(t,r),r}({...n,pubkey:r},t)):i=[])):i=[],void 0===i)throw new Error("Failed to find hidden tags");const s=await HN(...e)(i),o=function(t,e){return XO(t,e)}(n.kind,t);r||(r=await t.getPublicKey());const a=JSON.stringify(s),l=await o.encrypt(r,a);return{...n,content:l,[HO]:a}}}function ez(t){return JN(["alt",t])}function nz(t){return JN(["expiration",t.toString()],!0)}function rz(t=!0){return QN(t?XN(["-"]):t=>t.filter(t=>!("-"===t[0])))}function iz(t){return async e=>{if(!t)throw new Error("Missing signer");Reflect.deleteProperty(e,"id"),Reflect.deleteProperty(e,"sig");const n=await t.getPublicKey(),r={...e,pubkey:n};return Reflect.has(e,HO)&&Reflect.set(r,HO,Reflect.get(e,HO)),r}}function sz(t){const e=jA(t)?[["d",KN()]]:[];return{kind:t,created_at:CN(),tags:e,content:""}}var oz=class t extends Promise{static fromKind(e){return new t(t=>t({kind:e,created_at:CN(),tags:[],content:""}))}static fromEvent(e){return new t(t=>t(function(t){return{kind:t.kind,created_at:CN(),tags:Array.from(t.tags),content:t.content}}(e)))}_signerRef={};get signer(){return this._signerRef.signer}set signer(t){this._signerRef.signer=t}chain(t){const e=new(0,this.constructor)(e=>e(this.then(async e=>{const n=await t(e);for(const t of Reflect.ownKeys(n))"symbol"!=typeof t||qN.has(t)||Reflect.deleteProperty(n,t);return n})));return e._signerRef=this._signerRef,e}as(t){return this._signerRef.signer=t,this}strip(){return new t(t=>t(this.then(t=>({content:t.content,tags:t.tags,created_at:t.created_at,kind:t.kind}))))}stamp(e=this.signer){return new t((t,n)=>{if(!e)return n(new Error("Signer required for stamping"));t(this.then(t=>iz(e)(t)))})}async sign(t=this.signer){if(!t)throw new Error("Missing signer");this.signer||(this.signer=t);const e=await(this),n=await function(t){return async e=>{if(!t)throw new Error("Missing signer");const n=await iz(t)(e),r=await t.signEvent(n);if(Reflect.has(e,"pubkey")&&Reflect.get(e,"pubkey")!==r.pubkey)throw new Error("Signer modified pubkey");if(!UA(r,e.kind))throw new Error("Signer modified event kind");return Reflect.has(e,HO)&&Reflect.set(r,HO,Reflect.get(e,HO)),r}}(t)(e);if(Reflect.has(e,"pubkey")&&Reflect.get(e,"pubkey")!==n.pubkey)throw new Error("Signer modified pubkey");if(UA(n,e.kind))return n;throw new Error("Signer modified event kind")}kind(e){return new t(t=>({...t,kind:e}))}content(t){return this.chain(e=>({...e,content:t}))}created(t=CN()){return t instanceof Date&&(t=Math.floor(t.getTime()/1e3)),this.chain(e=>({...e,created_at:t}))}meta(t){return this.chain(function(t){return WN(t?.protected?rz(!0):t=>t,t?.expiration?nz(t.expiration):t=>t,t?.alt?ez(t.alt):t=>t)}(t))}alt(t){return this.chain(ez(t))}expiration(t){return this.chain(nz(t))}contentWarning(t){return this.chain(function(t){return e=>{let n=Array.from(e.tags);return n=n.filter(t=>"content-warning"!==t[0]),"string"==typeof t?n.push(["content-warning",t]):!0===t&&n.push(["content-warning"]),{...e,tags:n}}}(t))}protected(t){return this.chain(rz(t))}modifyTags(...t){let e;return e=this.chain(n=>function(t,e){let n=[],r=[];return void 0===t?n=r=[]:Array.isArray(t)?n=t:"function"==typeof t?n=[t]:("function"==typeof t.public?n=[t.public]:t.public&&(n=t.public),"function"==typeof t.hidden?r=[t.hidden]:t.hidden&&(r=t.hidden)),WN(n.length>0?QN(...n):void 0,r.length>0?tz(e,...r):void 0)}(t[0],e.signer)(n)),e}modifyPublicTags(...t){return this.chain(QN(...t))}modifyHiddenTags(...t){let e;return e=this.chain(n=>tz(e.signer,...t)(n)),e}encryptedContent(t,e,n){let r;return r=this.chain(i=>{const s=r.signer;if(!s)throw new Error("Signer required for encrypted content");return function(t,e,n,r){return async i=>{if(!n)throw new Error("Signer required for encrypted content");const s=await KO(i.kind,n,r).encrypt(t,e);return{...i,content:s,[HO]:e}}}(t,e,s,n)(i)}),r}},az=o((t,e)=>{function n(t,e){var n,r;if(0===e.length)return t;for(n=0,r=e.length;nnull!==t).map(e=>(e.author=t.pubkey,e))}(t);if(r.length>0){let i=this.deletedIds.get(e);i||(i=new Set,this.deletedIds.set(e,i));for(const e of r){i.add(e.id);const r={pointer:e,until:t.created_at};n.push(r),this.deletedSubject.next(r)}}const i=function(t){return t.tags.filter(UO).map(RO).filter(t=>null!==t).filter(e=>e.pubkey===t.pubkey)}(t);if(i.length>0){let r=this.deletedIdentifiers.get(e);r||(r=new Map,this.deletedIdentifiers.set(e,r));for(const e of i){const i=e.kind+"|"+e.identifier;r.set(i,t.created_at);const s={pointer:e,until:t.created_at};n.push(s),this.deletedSubject.next(s)}}return n}check(t){const e=t.pubkey;if(DA(t.kind)||jA(t.kind)){const n=this.deletedIdentifiers.get(e);if(!n)return!1;const r=cO(t),i=t.kind+"|"+r,s=n.get(i);return void 0!==s&&s>=t.created_at}{const n=this.deletedIds.get(e);return!!n&&n.has(t.id)}}filter(t){return t.filter(t=>!1===this.check(t))}},uz=class{log=_N.extend("EventMemory");kinds=new Map;authors=new Map;tags=new DN;created_at=[];kindAuthor=new Map;events=new DN;replaceable=new Map;get size(){return this.events.size}hasEvent(t){return this.events.has(t)}getEvent(t){return this.events.get(t)}hasReplaceable(t,e,n){const r=this.replaceable.get(oO(t,e,n));return!!r&&r.length>0}getReplaceable(t,e,n){const r=oO(t,e,n);return this.replaceable.get(r)?.[0]}getReplaceableHistory(t,e,n){const r=oO(t,e,n);return this.replaceable.get(r)}getByFilters(t){return Array.from(this.getEventsForFilters(Array.isArray(t)?t:[t]))}getTimeline(t){const e=[],n=this.getByFilters(t);for(const r of n)YA(e,r);return e}add(t){const e=t.id,n=this.events.get(e);if(n)return n;this.events.set(e,t),this.getKindIndex(t.kind).add(t),this.getAuthorsIndex(t.pubkey).add(t),this.getKindAuthorIndex(t.kind,t.pubkey).add(t);for(const r of ON(t))this.tags.has(r)&&this.getTagIndex(r).add(t);if(YA(this.created_at,t),iO(t.kind)){const e=t.tags.find(t=>"d"===t[0])?.[1],n=oO(t.kind,t.pubkey,e);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),YA(r,t)}return t}remove(t){let e="string"==typeof t?this.events.get(t):t;if(!e)return!1;const n=e.id;if(!this.events.has(n))return!1;const r=this.authors.get(e.pubkey);r&&(r.delete(e),0===r.size&&this.authors.delete(e.pubkey));const i=this.kinds.get(e.kind);i&&(i.delete(e),0===i.size&&this.kinds.delete(e.kind));const s=`${e.kind}:${e.pubkey}`,o=this.kindAuthor.get(s);o&&(o.delete(e),0===o.size&&this.kindAuthor.delete(s));for(const a of ON(e))if(this.tags.has(a)){const t=this.getTagIndex(a);t.delete(e),0===t.size&&this.tags.delete(a)}if(this.removeFromSortedArray(this.created_at,e),this.events.delete(n),iO(e.kind)){const t=e.tags.find(t=>"d"===t[0])?.[1],n=oO(e.kind,e.pubkey,t),r=this.replaceable.get(n);r&&(this.removeFromSortedArray(r,e),0===r.length&&this.replaceable.delete(n))}return this.claims.delete(e),!0}removeByFilters(t){const e=this.getByFilters(t);let n=0;for(const r of e)this.remove(r)&&n++;return n}update(t){}claims=new WeakMap;touch(t){this.events.has(t.id)&&this.events.set(t.id,t)}claim(t){const e=this.claims.get(t)||0;this.claims.set(t,e+1),this.touch(t)}isClaimed(t){const e=this.claims.get(t);return void 0!==e&&e>0}removeClaim(t){const e=this.claims.get(t);if(void 0!==e&&e>0){const n=e-1;0===n?this.claims.delete(t):this.claims.set(t,n)}}clearClaim(t){this.claims.delete(t)}*unclaimed(){let t=this.events.first;for(;t;){const e=t.value;this.isClaimed(e)||(yield e),t=t.next}return 0}prune(t){let e=0;const n=this.unclaimed();for(const r of n)if(this.remove(r),e++,t&&e>=t)break;return e}getKindIndex(t){return this.kinds.has(t)||this.kinds.set(t,new Set),this.kinds.get(t)}getAuthorsIndex(t){return this.authors.has(t)||this.authors.set(t,new Set),this.authors.get(t)}getKindAuthorIndex(t,e){const n=`${t}:${e}`;return this.kindAuthor.has(n)||this.kindAuthor.set(n,new Set),this.kindAuthor.get(n)}getTagIndex(t){if(!this.tags.has(t)){const e=new Set,n=Date.now();for(const i of this.events.values())ON(i).has(t)&&e.add(i);const r=Date.now()-n;r>100&&this.log(`Built index ${t} took ${r}ms`),this.tags.set(t,e)}return this.tags.get(t)}removeFromSortedArray(t,e){if(0===t.length)return;const n=XA(t,t=>t.created_at-e.created_at);if(n){let r=n[0],i=!1;if(t[r]===e)return void t.splice(r,1);for(let n=r-1;n>=0&&t[n].created_at===e.created_at;n--)if(t[n]===e){t.splice(n,1),i=!0;break}if(i)return;for(let n=r+1;nt.created_at-e):void 0;i&&(n=Math.max(0,Math.min(i[0],this.created_at.length-1)));const s=t?XA(this.created_at,e=>e.created_at-t):void 0;if(s&&(r=Math.max(0,Math.min(s[0],this.created_at.length-1))),!(n>r))for(let o=n;o<=r;o++){const n=this.created_at[o];if(!(void 0!==e&&n.created_at>e)){if(void 0!==t&&n.created_at{const r=t instanceof Set?t:new Set(t);if(e)n=r,e=!1;else for(const e of n)r.has(e)||n.delete(e);return n};t.ids&&r(this.iterateIds(t.ids));let i=null;void 0!==t.since&&(i=Array.from(this.iterateTime(t.since,t.until)),r(i));for(const s of MN){const e=t[`&${s}`];if(e?.length)for(const t of e)r(this.iterateTag(s,[t]))}for(const s of MN){const e=t[`#${s}`];if(e?.length){const n=t[`&${s}`],i=n?e.filter(t=>!n.includes(t)):e;i.length>0&&r(this.iterateTag(s,i))}}if(t.authors&&t.kinds&&t.authors.length*t.kinds.length<=20){const e=new Set;for(const n of t.kinds)for(const r of t.authors){const t=`${n}:${r}`,i=this.kindAuthor.get(t);if(i)for(const n of i)e.add(n)}r(e)}else t.authors&&r(this.iterateAuthors(t.authors)),t.kinds&&r(this.iterateKinds(t.kinds));if(void 0===t.since&&void 0!==t.until&&(i=Array.from(this.iterateTime(t.since,t.until)),r(i)),e)return new Set(this.events.values());if(t.limit&&i){const e=new Set;for(const r of i){if(e.size>=t.limit)break;n.has(r)&&e.add(r)}return e}return n}getEventsForFilters(t){if(0===t.length)return new Set;let e=new Set;for(const n of t){const t=this.getEventsForFilter(n);for(const n of t)e.add(n)}return e}reset(){this.events.clear(),this.kinds.clear(),this.authors.clear(),this.kindAuthor.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}};function hz(t){return e=>{const n=new Set;return e.pipe(zk(e=>{if(void 0!==e)if(Array.isArray(e))for(const r of e)n.has(r)||(n.add(r),t.claim(r));else n.has(e)||(n.add(e),t.claim(e))}),_k(()=>{for(const e of n)t.removeClaim(e)}))}}function dz(t){return e=>{let n;return e.pipe(zk(e=>{n!==e&&(n&&t.removeClaim(n),e&&t.claim(e),n=e)}),_k(()=>{n&&t.removeClaim(n)}))}}function pz(t,e){return Ak(n=>n?fk(n):t.eventLoader?ZC(t.eventLoader(e)).pipe(Mk(void 0)):fk(n))}function fz(t){return"string"==typeof t&&(t={id:t}),e=>gN(fN(()=>function(t,e){const n=t.getEvent(e.id);return n instanceof Promise?ZC(n):fk(n)}(e,t)).pipe(e.eventLoader?pz(e,t):uC),e.insert$.pipe(vk(e=>e.id===t.id)),e.remove$.pipe(vk(e=>e.id===t.id),dk(1),KC(()=>{}))).pipe(mk((t,e)=>t?.id===e?.id),dz(e))}function gz(t){return e=>{let n;return gN(fN(()=>function(t,e){const n=t.getReplaceable(e.kind,e.pubkey,e.identifier);return n instanceof Promise?ZC(n):fk(n)}(e,t)).pipe(e.eventLoader?pz(e,t):uC),e.insert$.pipe(vk(e=>e.pubkey==t.pubkey&&e.kind===t.kind&&(void 0===t.identifier||cO(e)===t.identifier)))).pipe(zk(t=>n=t),Ck(e.remove$.pipe(vk(t=>t.id===n?.id),KC(()=>{}))),mk((t,e)=>void 0===t||void 0===e?t===e:e.created_at{const r=new Map,i=t=>e?t.id:function(t){let e=Reflect.get(t,QA);return e||(e=iO(t.kind)?sO(t)??t.id:t.id,Reflect.set(t,QA,e)),e}(t);return fN(()=>{const e=n.getTimeline(t);return e instanceof Promise?ZC(e):fk(e)}).pipe(hz(n),Ck(n.insert$.pipe(vk(e=>zN(t,e)),hz(n))),Ck(n.remove$.pipe(vk(e=>zN(t,e)),KC(t=>t.id))),Lk((t,n)=>{if("string"==typeof n){const e=t.find(t=>t.id===n);if(e){const t=i(e);r.get(t)?.id===n&&r.delete(t)}return t.filter(t=>t.id!==n)}if(Array.isArray(n)){r.clear();for(const t of n)r.set(i(t),t);return[...n]}let s=[...t];const o=i(n),a=r.get(o);if(a&&(!iO(n.kind)||!e&&n.created_atr.clear()))}}function yz(t,e=!1){return t=Array.isArray(t)?t:[t],n=>{const r=e?hk:fN(()=>function(t,e){const n=t.getByFilters(e);return n instanceof Promise?ZC(n).pipe(QC(t=>ZC(t))):ZC(n)}(n,t));return gN(r,n.insert$.pipe(vk(e=>zN(t,e))))}}function vz(t){return"string"==typeof t&&(t={pubkey:t}),e=>{return e.replaceable({kind:OT.Contacts,pubkey:t.pubkey,relays:t.relays}).pipe((n=e,t=>{let e;return gN(t.pipe(zk(t=>e=t)),n.update$.pipe(vk(t=>t.id===e?.id)))}),KC(t=>{return t?function(...t){const e=new Map;for(const n of t)if(Array.isArray(n))for(const t of n)t&&e.set(t.pubkey,t);else n&&e.set(n.pubkey,n);return Array.from(e.values())}(function(t){return KA(t,cN,()=>BO(t.tags,t=>DO(t)?t:void 0,t=>LO(t)??void 0))}(e=t),function(t){if(uN in t)return t[uN];const e=lN(t);if(!e)return;const n=BO(e,t=>DO(t)?t:void 0,t=>LO(t)??void 0);return Reflect.set(t,uN,n),n}(e)):[];var e}));var n}}function bz(t){return"string"==typeof t&&(t={pubkey:t}),e=>e.replaceable({kind:OT.RelayList,pubkey:t.pubkey,relays:t.relays}).pipe(KC(t=>t&&{inboxes:BN(t),outboxes:$N(t)}))}var wz=class{models=new Map;modelKeepWarm=6e4;destroy$=new Sk(1);model(t,...e){let n=this.models.get(t);n||(n=new Map,this.models.set(t,n));const r=t.getKey?t.getKey(...e):(0,lz.default)(e);let i=n.get(r);if(!i){const s=()=>{n.get(r)===i&&n.delete(r)};i=t(...e)(this).pipe(_k(s),Tk({connector:()=>new Sk(1),resetOnComplete:()=>gN(OC(this.modelKeepWarm),this.destroy$),resetOnRefCountZero:()=>gN(OC(this.modelKeepWarm),this.destroy$)}),Ok(this.destroy$)),n.set(r,i)}return i}filters(t,e=!1){return Array.isArray(t)||(t=[t]),this.model(yz,t,e)}event(t){return"string"==typeof t||TO(t)?this.model(fz,t):this.replaceable(t)}replaceable(...t){let e;if(1===t.length)e=t[0];else if(3===t.length||2===t.length){let[n,r,i]=t;e={kind:n,pubkey:r,identifier:i}}if(!e)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(gz,e)}addressable(t){return this.replaceable(t)}timeline(t,e=!1){return this.model(mz,t,e)}profile(t){return this.model(NO,t)}contacts(t){return"string"==typeof t&&(t={pubkey:t}),this.model(vz,t)}mailboxes(t){return"string"==typeof t&&(t={pubkey:t}),this.model(bz,t)}dispose(){this.destroy$.next(),this.destroy$.complete()}},_z=class{expired$;expiredSubject;expirations=new Map;timer=null;nextCheck=null;constructor(){this.expiredSubject=new ok,this.expired$=this.expiredSubject.asObservable()}track(t){const e=SN(t);if(!e||!Number.isFinite(e))return;const n=CN();if(e<=n)return;if(this.expirations.set(t.id,e),this.timer&&this.nextCheck&&this.nextCheck<=e)return;this.timer&&clearTimeout(this.timer);const r=e-n;r>0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*r+10),this.nextCheck=e)}forget(t){this.expirations.delete(t)}check(t){const e=SN(t);return!!e&&e<=CN()}dispose(){this.timer&&clearTimeout(this.timer),this.timer=null,this.nextCheck=null,this.expirations.clear(),this.expiredSubject.complete()}[Symbol.dispose](){this.dispose()}emitNotifications(){const t=CN();let e=1/0;for(const[n,r]of this.expirations)r<=t?(this.expirations.delete(n),this.expiredSubject.next(n)):r0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*n+10),this.nextCheck=e)}}},xz=class t extends wz{database;memory;deletes;expiration;keepOldVersions=!1;keepExpired=!1;keepDeleted=!1;_verifyEventMethod=ZA;get verifyEvent(){return this._verifyEventMethod}set verifyEvent(t){this._verifyEventMethod=t,void 0===t&&console.warn("[applesauce-core] EventStore.verifyEvent is undefined; signature checks are disabled.")}insert$=new ok;update$=new ok;remove$=new ok;eventLoader;internalSubscriptions=new Gx;constructor(t){super(),t?.database?(this.database=t.database,this.memory=new uz):this.database=this.memory=new uz,void 0!==t?.keepDeleted&&(this.keepDeleted=t.keepDeleted),void 0!==t?.keepExpired&&(this.keepExpired=t.keepExpired),void 0!==t?.keepOldVersions&&(this.keepOldVersions=t.keepOldVersions),t?.verifyEvent&&(this.verifyEvent=t.verifyEvent),this.deletes=t?.deleteManager??new cz,this.internalSubscriptions.add(this.deletes.deleted$.subscribe(this.handleDeleteNotification.bind(this))),this.expiration=t?.expirationManager??new _z,this.internalSubscriptions.add(this.expiration.expired$.subscribe(this.handleExpiredNotification.bind(this)))}mapToMemory(t){if(void 0!==t)return this.memory?this.memory.add(t):t}handleDeleteNotification({pointer:t,until:e}){if(!this.keepDeleted)if(TO(t)){const n=this.getEvent(t.id);n&&e>=n.created_at&&IO(n,t)&&this.remove(n)}else if(function(t){return"object"==typeof t&&null!==t&&"identifier"in t&&"pubkey"in t&&"kind"in t&&"string"==typeof t.identifier&&"string"==typeof t.pubkey&&"number"==typeof t.kind}(t)){const n=this.getReplaceableHistory(t.kind,t.pubkey,t.identifier);if(n)for(const r of n)e>=r.created_at&&IO(r,t)&&this.remove(r)}}handleExpiredNotification(t){this.keepExpired||this.remove(t)}static copySymbolsToDuplicateEvent(t,e){if(t.kind!==e.kind)throw new Error("Source and destination events must have the same kind");if((n=t.kind)<1e4&&0!==n&&3!==n&&t.id!==e.id)throw new Error("Source and destination events must have the same ID");var n;if(iO(t.kind)&&t.pubkey!==e.pubkey&&cO(t)!==cO(e))throw new Error("Source and destination events must have the same pubkey and replaceable identifier");let r=!1;const i=(s=t,Reflect.get(s,vO));var s;if(i){for(const t of i)wO(e,t);r=!0}const o=[eO,BA,HO];for(const a of o)a in t&&!(a in e)&&(Reflect.set(e,a,Reflect.get(t,a)),r=!0);return r}add(e,n){if(e.kind===OT.EventDeletion)return this.deletes.add(e),e;if(this.deletes.check(e))return e;const r=SN(e);if(!1===this.keepExpired&&r&&r<=CN())return null;n&&wO(e,n);const i=iO(e.kind)?cO(e):void 0;if(!1===this.keepOldVersions&&iO(e.kind)){const n=this.database.getReplaceableHistory(e.kind,e.pubkey,i);if(n&&n.length>0){let r=n[0];for(const t of n)(t.created_at>r.created_at||t.created_at===r.created_at&&t.idr.created_at||e.created_at===r.created_at&&e.id0){let e=t[0];for(const r of t)(r.created_at>e.created_at||r.created_at===e.created_at&&r.idt!==e);for(const t of n)this.remove(t);if(n.length>0)return e}}return!1===this.keepExpired&&void 0!==r&&this.expiration.track(o),o}remove(t){const e="string"==typeof t?t:t.id;let n=this.memory.getEvent(e);this.expiration.forget(e),n&&Reflect.deleteProperty(n,JA),this.memory!==this.database&&this.memory.remove(t);const r=this.database.remove(t);return r&&n&&this.remove$.next(n),r}removeByFilters(t){const e=this.getByFilters(t);for(const r of e)this.expiration.forget(r.id);this.memory!==this.database&&this.memory.removeByFilters(t);const n=this.database.removeByFilters(t);for(const r of e)this.remove$.next(r);return n}update(t){return!!this.database.add(t)&&(this.database.update?.(t),this.update$.next(t),!0)}hasEvent(t){return"string"==typeof t?this.memory.hasEvent(t)||this.database.hasEvent(t):TO(t)?this.memory.hasEvent(t.id)||this.database.hasEvent(t.id):this.hasReplaceable(t.kind,t.pubkey,t.identifier)}getEvent(t){return"string"==typeof t?this.memory.getEvent(t)??this.mapToMemory(this.database.getEvent(t)):TO(t)?this.memory.getEvent(t.id)??this.mapToMemory(this.database.getEvent(t.id)):this.getReplaceable(t.kind,t.pubkey,t.identifier)}hasReplaceable(t,e,n){return this.memory.hasReplaceable(t,e,n)||this.database.hasReplaceable(t,e,n)}getReplaceable(t,e,n){return this.memory.getReplaceable(t,e,n)??this.mapToMemory(this.database.getReplaceable(t,e,n))}getReplaceableHistory(t,e,n){return this.memory.getReplaceableHistory(t,e,n)??this.database.getReplaceableHistory(t,e,n)?.map(t=>this.mapToMemory(t)??t)}getByFilters(t){const e=this.database.getByFilters(t);return this.memory?e.map(t=>this.mapToMemory(t)):e}getTimeline(t){const e=this.database.getTimeline(t);return this.memory?e.map(t=>this.mapToMemory(t)):e}touch(t){return this.memory.touch(t)}claim(t){return this.memory.claim(t)}isClaimed(t){return this.memory.isClaimed(t)??!1}removeClaim(t){return this.memory.removeClaim(t)}clearClaim(t){return this.memory.clearClaim(t)}unclaimed(){return this.memory.unclaimed()||function*(){}()}prune(t){return this.memory.prune(t)??0}dispose(){const t=this.eventLoader;t&&"function"==typeof t[Symbol.dispose]&&t[Symbol.dispose](),this.eventLoader=void 0,super.dispose(),this.internalSubscriptions.unsubscribe(),this.expiration.dispose?.(),this.insert$.complete(),this.update$.complete(),this.remove$.complete()}[Symbol.dispose](){this.dispose()}};function Cz(t,e=!0){return n=>{const r=n.pipe(Tk());return r.pipe(QC(e=>{if("string"==typeof e)return hk;const n=t.add(e);return n instanceof Promise?ZC(n):fk(n)}),UC(()=>fk(null)),vk(t=>null!==t),e?Ax(function(t,e){var n=new Set;t.subscribe(xC(e,function(t){var r=t;n.has(r)||(n.add(r),e.next(t))}))}):uC,Ck(r.pipe(vk(t=>"string"==typeof t))))}}function kz(t){return Cz(t,!0)}var Sz=class extends Error{};function Ez(t,e){return Dk({first:t,with:()=>gk(()=>new Sz(e??"Timeout"))})}new uz;var Rz=Symbol.for("seal"),Lz=Symbol.for("rumor"),Tz=Symbol.for("gift-wrap");function Pz(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name&&"BYTES_PER_ELEMENT"in t&&1===t.BYTES_PER_ELEMENT}function Iz(t,e){return!!Array.isArray(e)&&(0===e.length||(t?e.every(t=>"string"==typeof t):e.every(t=>Number.isSafeInteger(t))))}function Mz(t){if("function"!=typeof t)throw new TypeError("function expected");return!0}function Az(t,e){if("string"!=typeof e)throw new TypeError(`${t}: string expected`);return!0}function Oz(t){if("number"!=typeof t)throw new TypeError("number expected, got "+typeof t);if(!Number.isSafeInteger(t))throw new RangeError(`invalid integer: ${t}`)}function Nz(t){if(!Array.isArray(t))throw new TypeError("array expected")}function zz(t,e){if(!Iz(!0,e))throw new TypeError(`${t}: array of strings expected`)}function Fz(t,e){if(!Iz(!1,e))throw new TypeError(`${t}: array of numbers expected`)}function Dz(...t){const e=t=>t,n=(t,e)=>n=>t(e(n));return{encode:t.map(t=>t.encode).reduceRight(n,e),decode:t.map(t=>t.decode).reduce(n,e)}}function jz(t){const e="string"==typeof t?t.split(""):t,n=e.length;zz("alphabet",e);const r=new Map(e.map((t,e)=>[t,e]));return{encode:r=>(Nz(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${t}`);return e[r]})),decode:e=>(Nz(e),e.map(e=>{Az("alphabet.decode",e);const n=r.get(e);if(void 0===n)throw new Error(`Unknown letter: "${e}". Allowed: ${t}`);return n}))}}function Uz(t=""){return Az("join",t),{encode:e=>(zz("join.decode",e),e.join(t)),decode:e=>(Az("join.decode",e),e.split(t))}}function Bz(t,e="="){return Oz(t),Az("padding",e),{encode(n){for(zz("padding.encode",n);n.length*t%8;)n.push(e);return n},decode(n){zz("padding.decode",n);let r=n.length;if(r*t%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if((r-1)*t%8==0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function $z(t){return Mz(t),{encode:t=>t,decode:e=>t(e)}}_N.extend("EncryptedContentCache"),oN(10017,"nip44"),oN(10018,"nip44");var qz=(t,e)=>0===e?t:qz(e,t%e),Vz=(t,e)=>t+(e-qz(t,e)),Wz=(()=>{let t=[];for(let e=0;e<40;e++)t.push(2**e);return t})();function Hz(t,e,n,r){if(Nz(t),e<=0||e>32)throw new RangeError(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new RangeError(`convertRadix2: wrong to=${n}`);if(Vz(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${Vz(e,n)}`);let i=0,s=0;const o=Wz[e],a=Wz[n]-1,l=[];for(const c of t){if(Oz(c),c>=o)throw new Error(`convertRadix2: invalid data word=${c} from=${e}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)l.push((i>>s-n&a)>>>0);const t=Wz[s];if(void 0===t)throw new Error("invalid carry");i&=t-1}if(i=i<=e)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&l.push(i>>>0),l}function Gz(t,e=!1){if(Oz(t),t<=0||t>32)throw new RangeError("radix2: bits should be in (0..32]");if(Vz(8,t)>32||Vz(t,8)>32)throw new RangeError("radix2: carry overflow");return{encode:n=>{if(!Pz(n))throw new TypeError("radix2.encode input should be Uint8Array");return Hz(Array.from(n),8,t,!e)},decode:n=>(Fz("radix2.decode",n),Uint8Array.from(Hz(n,t,8,e)))}}function Zz(t){return Mz(t),function(...e){try{return t.apply(null,e)}catch(n){}}}Dz(Gz(4),jz("0123456789ABCDEF"),Uz("")),Dz(Gz(5),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Bz(5),Uz("")),Dz(Gz(5),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Uz("")),Dz(Gz(5),jz("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Bz(5),Uz("")),Dz(Gz(5),jz("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Uz("")),Dz(Gz(5),jz("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Uz(""),$z(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));var Kz=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)(),Yz=(Kz||Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Bz(6),Uz("")),Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Uz("")),Kz||Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Bz(6),Uz("")),Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Uz("")),Dz(jz("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Uz(""))),Xz=[996825010,642813549,513874426,1027748829,705979059];function Jz(t){const e=t>>25;let n=(33554431&t)<<5;for(let r=0;r>r&1)&&(n^=Xz[r]);return n}function Qz(t,e,n=1){const r=t.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${t})`);i=Jz(i)^e>>5}i=Jz(i);for(let s=0;sr)throw new TypeError(`Length ${s} exceeds limit ${r}`);const o=t.toLowerCase(),a=Qz(o,n,e);return`${o}1${Yz.encode(n)}${a}`}function a(t,n=90){Az("bech32.decode input",t);const r=t.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${t}). Expected (8..${n})`);const i=t.toLowerCase();if(t!==i&&t!==t.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=i.lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=i.slice(0,s),a=i.slice(s+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const l=Yz.decode(a).slice(0,-6),c=Qz(o,l,e);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${t}: expected "${c}"`);return{prefix:o,words:l}}return{encode:o,decode:a,encodeFromBytes:function(t,e){return o(t,i(e))},decodeToBytes:function(t){const{prefix:e,words:n}=a(t,!1);return{prefix:e,words:n,bytes:r(n)}},decodeUnsafe:Zz(a),fromWords:r,fromWordsUnsafe:s,toWords:i}}var eF,nF=Object.freeze(tF("bech32")),rF=(tF("bech32m"),(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Dz(Gz(4),jz("0123456789abcdef"),Uz(""),$z(t=>{if("string"!=typeof t||t.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()})),new TextDecoder);oN(10086,"nip04"),function(t){t.nudity="nudity",t.malware="malware",t.profanity="profanity",t.illegal="illegal",t.spam="spam",t.impersonation="impersonation",t.other="other"}(eF||(eF={})),oN(10040,"nip44");var iF=Symbol.for("zap-request"),sF=Symbol.for("zap-sender"),oF=Symbol.for("zap-receiver"),aF=Symbol.for("zap-bolt11"),lF=Symbol.for("zap-event-pointer");function cF(t){return KA(t,iF,()=>{const e=uO(t,"description");if(e)try{const t=JSON.parse(e);return function(t){if(!t)return!1;if(t.kind!==OT.ZapRequest)return!1;if(!rO(t))return!1;if(!function(t){return aO(t)}(t))return!1;const e=t.tags.find(([t,e])=>"p"===t&&e);if(!e)return!1;if(!e[1].match(/^[a-f0-9]{64}$/))return!1;const n=t.tags.find(([t,e])=>"e"===t&&e);return!(n&&!n[1].match(/^[a-f0-9]{64}$/)||!t.tags.find(([t,e])=>"relays"===t&&e))}(t)?t:void 0}catch{return}})}var uF=new WeakMap;function hF(t,e,n,r){let i={configurable:!0,enumerable:!0,writable:!0,initializer:null};r&&(i.initializer=r);for(let s of n)i=s(t,e,i)||i;void 0===i.initializer?Object.defineProperty(t,e,i):function(t,e,n){let r=uF.get(t);r||(r=new Map,uF.set(t,r)),r.set(e,n)}(t,e,i)}function dF(t,e,n){let r={...Object.getOwnPropertyDescriptor(t,e)};for(let i of n)r=i(t,e,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(t):void 0,r.initializer=void 0),Object.defineProperty(t,e,r)}function pF(t,e){let n=function(t,e){var n;let r=t.prototype;for(;r;){let t=null==(n=uF.get(r))?void 0:n.get(e);if(t)return t;r=Object.getPrototypeOf(r)}}(t.constructor,e);n&&Object.defineProperty(t,e,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(t):void 0})}var fF=a({ContributionEntry:()=>mF,applyDeletions:()=>vF,groupPhotoContributions:()=>bF,parsePhotoFromEvent:()=>yF}),gF=3600,mF=class{type="photo";placeIdentifier;osmType;osmId;photos;createdAt;eventCount;static{hF(this.prototype,"placeName",[Wr],function(){return null})}#N=void pF(this,"placeName");static{hF(this.prototype,"placeNameLoading",[Wr],function(){return!0})}#z=void pF(this,"placeNameLoading");constructor({placeIdentifier:t,osmType:e,osmId:n,photos:r,createdAt:i,eventCount:s}){this.placeIdentifier=t,this.osmType=e,this.osmId=n,this.photos=r,this.createdAt=i,this.eventCount=s}};function yF(t){const e=t.tags||[],n=e.filter(t=>"t"===t[0]).map(t=>t[1]).filter(Boolean),r=e.find(t=>"imeta"===t[0]);if(!r)return null;let i=null,s=null,o=null,a=!1,l=16/9,c=null;for(const p of r.slice(1))if(p.startsWith("url "))i=p.substring(4);else if(p.startsWith("thumb "))s=p.substring(6);else if(p.startsWith("blurhash "))o=p.substring(9);else if(p.startsWith("dim ")){const[t,e]=p.substring(4).split("x").map(Number);t&&e&&(l=t/e,t>e&&(a=!0))}else if(p.startsWith("alt ")){const t=p.substring(4).trim();c="A photo of a place"===t?null:t||null}if(!i)return null;const u=e.find(t=>"i"===t[0])?.[1],h=e.find(t=>"published_at"===t[0])?.[1],d=h?Number(h):null;return{eventId:t.id,pubkey:t.pubkey,createdAt:t.created_at,publishedAt:d&&d>0?d:null,url:i,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:n,alt:c}}function vF(t){const e=new Set;for(const n of t)if(5===n.kind)for(const t of n.tags||[])"e"===t[0]&&t[1]&&e.add(t[1]);return t.filter(t=>360===t.kind&&!e.has(t.id))}function bF(t,e=3){if(!t||0===t.length)return[];const n=vF(t);if(0===n.length)return[];const r=new Map;for(const o of n){const t=(o.tags||[]).find(t=>"i"===t[0])?.[1];t&&(r.has(t)||r.set(t,[]),r.get(t).push(o))}const i=e*gF,s=[];for(const[o,a]of r){const t=[...a].sort((t,e)=>e.created_at-t.created_at);let e=[],n=null;for(const r of t)null!==n&&n-r.created_at>i&&(s.push(wF(o,e)),e=[]),e.push(r),n=r.created_at;e.length>0&&s.push(wF(o,e))}return s.filter(t=>t.photos.length>0).sort((t,e)=>e.createdAt-t.createdAt)}function wF(t,e){const n=e.map(yF).filter(Boolean).sort((t,e)=>t.createdAt-e.createdAt),r=e.reduce((t,e)=>e.created_at>t?e.created_at:t,0),[,i,s]=t.split(":");return new mF({placeIdentifier:t,osmType:i,osmId:s,photos:n,createdAt:r,eventCount:e.length})}var _F=a({ActivityEntry:()=>xF,enrichWithPhoto:()=>kF,groupSocialPhotos:()=>RF,parseZapReceipt:()=>CF}),xF=class{type="zap";photoEventId;photo;photos=[];placeIdentifier;osmType;osmId;senderPubkey;amountSats;message;createdAt;static{hF(this.prototype,"senderName",[Wr],function(){return null})}#F=void pF(this,"senderName");static{hF(this.prototype,"senderAvatar",[Wr],function(){return null})}#D=void pF(this,"senderAvatar");static{hF(this.prototype,"senderProfileLoading",[Wr],function(){return!0})}#j=void pF(this,"senderProfileLoading");static{hF(this.prototype,"placeName",[Wr],function(){return null})}#N=void pF(this,"placeName");static{hF(this.prototype,"placeNameLoading",[Wr],function(){return!0})}#z=void pF(this,"placeNameLoading");constructor({photoEventId:t,photo:e,photos:n,placeIdentifier:r,osmType:i,osmId:s,senderPubkey:o,amountSats:a,message:l,createdAt:c}){this.photoEventId=t,this.photo=e,this.photos=n??[],this.placeIdentifier=r,this.osmType=i,this.osmId=s,this.senderPubkey=o,this.amountSats=a,this.message=l,this.createdAt=c}};function CF(t,e){if(!t||9735!==t.kind)return null;const n=KA(r=t,oF,()=>uO(r,"p"));var r;if(!n||n!==e)return null;const i=function(t){return KA(t,sF,()=>uO(t,"P")||cF(t)?.pubkey)}(t);if(!i)return null;const s=function(t){return KA(t,aF,()=>{const e=uO(t,"bolt11");try{return e?WO(e):void 0}catch(X8){return}})}(t);if(!s||!s.amount)return null;const o=Math.round(s.amount/1e3),a=function(t){return KA(t,lF,()=>{const e=t.tags.find(FO);return e?EO(e):null})}(t);if(!a||!a.id)return null;const l=cF(t)?.content||null;return new xF({photoEventId:a.id,photo:null,placeIdentifier:null,senderPubkey:i,amountSats:o,message:l,createdAt:t.created_at})}function kF(t,e,n){const r=e.getEvent?.(t.photoEventId);if(!r||360!==r.kind||r.pubkey!==n)return!1;const i=yF(r);if(!i)return!1;if(t.photo=i,t.placeIdentifier=i.placeIdentifier||null,t.placeIdentifier){const[,e,n]=t.placeIdentifier.split(":");t.osmType=e,t.osmId=n}return!0}var SF=3600;function EF(t){const e=t.map(yF).filter(Boolean).sort((t,e)=>t.createdAt-e.createdAt),n=t.reduce((t,e)=>e.created_at>t?e.created_at:t,0),r=t[0].tags?.find(t=>"i"===t[0])?.[1]||null;let i,s;if(r){const t=r.split(":");i=t[1],s=t[2]}const o=new xF({photo:e[0]||null,photos:e,placeIdentifier:r,osmType:i,osmId:s,senderPubkey:t[0].pubkey,createdAt:n});return o.type="photo",o}function RF(t,e=3){if(!t||0===t.length)return[];const n=vF(t);if(0===n.length)return[];const r=new Map;for(const o of n){const t=(o.tags||[]).find(t=>"i"===t[0])?.[1];if(!t)continue;const e=`${o.pubkey}:${t}`;r.has(e)||r.set(e,[]),r.get(e).push(o)}const i=e*SF,s=[];for(const[,o]of r){const t=[...o].sort((t,e)=>e.created_at-t.created_at);let e=[],n=null;for(const r of t)null!==n&&n-r.created_at>i&&(s.push(EF(e)),e=[]),e.push(r),n=r.created_at;e.length>0&&s.push(EF(e))}return s.filter(t=>t.photos.length>0).sort((t,e)=>e.createdAt-t.createdAt)}var LF=a({default:()=>IF}),TF=2592e3,PF=Math.floor(new Date("2026-04-20").getTime()/1e3),IF=class extends fp{static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"placeNameResolver",[pp])}#$=void pF(this,"placeNameResolver");static{hF(this.prototype,"items",[Wr],function(){return[]})}#q=void pF(this,"items");static{hF(this.prototype,"sourceMode",[Wr],function(){return"home"})}#V=void pF(this,"sourceMode");static{hF(this.prototype,"isLoading",[Wr],function(){return!1})}#W=void pF(this,"isLoading");static{hF(this.prototype,"isLoadingMore",[Wr],function(){return!1})}#H=void pF(this,"isLoadingMore");_profileSubs=new Map;_userPubkey=null;_zapItems=[];_socialItems=[];_lastSocialEvents=[];_since=null;_sourceMode="home";_isLoadingMore=!1;_cacheReadyCallback=null;async load(t){if(!(this.items.length>0)){this._userPubkey=t||null,this._since=Math.floor(Date.now()/1e3)-TF,this.isLoading=!0,this._cacheReadyCallback=()=>{this.isLoading=!1};try{t&&(await this.nostrData.loadMyContributions(t),await this.nostrData.loadProfile(t),await this.nostrData.whenContactsLoaded()),this._socialItems=[],this._zapItems=[],this._lastSocialEvents=[],this._mergeItems();const e=Math.floor(Date.now()/1e3);await this._fetchWithBackoff(this._since,e)}finally{this.isLoading=!1,this._cacheReadyCallback=null}}}async setSourceMode(t){if(t!==this._sourceMode){this._sourceMode=t,this.sourceMode=t,this._since=Math.floor(Date.now()/1e3)-TF,this._socialItems=[],this._zapItems=[],this._lastSocialEvents=[],this._mergeItems(),this.isLoading=!0,this._cacheReadyCallback=()=>{this.isLoading=!1};try{const t=Math.floor(Date.now()/1e3);await this._fetchWithBackoff(this._since,t)}finally{this.isLoading=!1,this._cacheReadyCallback=null}}}async loadMore(){if(!this._isLoadingMore&&this._since&&this.items.length){this._isLoadingMore=!0,this.isLoadingMore=!0;try{const t=this._since-TF;await this._fetchWithBackoff(t,this._since)}finally{this._isLoadingMore=!1,this.isLoadingMore=!1}}}stop(){this._cleanupProfileSubs(),this._zapItems=[],this._socialItems=[],this._lastSocialEvents=[],this.items=[],this._userPubkey=null,this._since=null,this._isLoadingMore=!1,this.isLoadingMore=!1,this.isLoading=!1,this.placeNameResolver.reset()}willDestroy(){this.stop(),super.willDestroy(...arguments)}_processPhotoEvents(t){if(0===t.length)return!1;this._lastSocialEvents=[...this._lastSocialEvents,...t];const e=t.filter(t=>this._matchesSourceMode(t));if(0===e.length)return!1;const n=RF(e),r=new Set;for(const s of this._socialItems)for(const t of s.photos)r.add(t.eventId);const i=n.filter(t=>!t.photos.every(t=>r.has(t.eventId)));if(0===i.length)return!1;for(const s of i)this._resolveSender(s);for(const s of i)if(s.osmId){const t=this.placeNameResolver.resolveBookmark(s.osmId);t&&(s.placeName=t,s.placeNameLoading=!1)}return this._socialItems=[...this._socialItems,...i],this._mergeItems(),this.placeNameResolver.resolveInBackground(i).then(()=>this._mergeItems()),!0}_processZapEventsIntoTimeline(t){if(0===t.length)return!1;const e=this._processZapEvents(t,this._userPubkey);return 0!==e.length&&(this._zapItems=[...this._zapItems,...e],this._mergeItems(),this.placeNameResolver.resolveInBackground(e).then(()=>this._mergeItems()),!0)}async _fetchAndProcessWindow(t,e){const n=await this.nostrData.fetchActivityPhotos(t,e,this._sourceMode);let r={cacheEvents:[],networkEvents:Promise.resolve([])};"home"===this._sourceMode&&this._userPubkey&&(r=await this.nostrData.fetchIncomingZaps(this._userPubkey,t,e));let i=!1;n.cacheEvents.length>0&&(i=this._processPhotoEvents(n.cacheEvents)||i),r.cacheEvents.length>0&&(i=this._processZapEventsIntoTimeline(r.cacheEvents)||i),i&&this._cacheReadyCallback?.();const[s,o]=await Promise.all([n.networkEvents,r.networkEvents]);return s.length>0&&(i=this._processPhotoEvents(s)||i),o.length>0&&(i=this._processZapEventsIntoTimeline(o)||i),i}async _fetchWithBackoff(t,e){let n=TF,r=t,i=e;for(;;){if(null===this._since)return;const t=re.createdAt-t.createdAt);for(const r of n)if(r.osmId){const t=this.placeNameResolver.resolveBookmark(r.osmId);t&&(r.placeName=t,r.placeNameLoading=!1)}return n}_updateZapItems(t,e){const n=this._processZapEvents(t,e);this._zapItems=n,this._mergeItems(),this.placeNameResolver.resolveInBackground(n).then(()=>{this._mergeItems()})}_updateSocialItems(t){const e=RF(t.filter(t=>this._matchesSourceMode(t)));for(const n of e)this._resolveSender(n);for(const n of e)if(n.osmId){const t=this.placeNameResolver.resolveBookmark(n.osmId);t&&(n.placeName=t,n.placeNameLoading=!1)}this._socialItems=e,this._mergeItems(),this.placeNameResolver.resolveInBackground(e).then(()=>{this._mergeItems()})}_mergeItems(){const t="explore"===this._sourceMode?[...this._socialItems]:[...this._zapItems,...this._socialItems];t.sort((t,e)=>e.createdAt-t.createdAt),this.items=t}_matchesSourceMode(t){return"home"===this._sourceMode?this._userPubkey&&t.pubkey!==this._userPubkey&&this.nostrData._contactPubkeys?.has(t.pubkey):"explore"===this._sourceMode&&(this._userPubkey?t.pubkey!==this._userPubkey&&!this.nostrData._contactPubkeys?.has(t.pubkey)&&this.nostrData.isTrustedEvent(t):this.nostrData.isTrustedEvent(t))}_resolveSender(t){const e=t.senderPubkey;if(e){if(!this._profileSubs.has(e)){const t=this.nostrData.store.model(NO,e).subscribe(t=>{this._applyProfileToPubkey(e,t)});this._profileSubs.set(e,t)}this._applySenderProfile(t,e)}}_applySenderProfile(t,e){let n=this.nostrData.getProfile(e);if(!n){const t=this.nostrData.store.getReplaceable(0,e);t&&(n=AO(t))}n&&(t.senderName=n.name||n.display_name||null,t.senderAvatar=n.picture||null,t.senderProfileLoading=!1)}_applyProfileToPubkey(t,e){let n=!1;for(const r of this.items)r.senderPubkey===t&&(r.senderName=e.name||e.display_name||null,r.senderAvatar=e.picture||null,r.senderProfileLoading=!1,n=!0);n&&(this.items=[...this.items])}_cleanupProfileSubs(){for(const t of this._profileSubs.values())t.unsubscribe();this._profileSubs.clear()}};function MF(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name&&"BYTES_PER_ELEMENT"in t&&1===t.BYTES_PER_ELEMENT}var AF=t=>t?`"${t}" `:"";function OF(t,e,n=""){if(MF(t)&&(void 0===e||t.length===e))return t;void 0!==e&&function(t,e=""){if("number"!=typeof t)throw new TypeError(AF(e)+"expected number, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError(AF(e)+"expected integer >= 0, got "+t)}(e,"length");const r=MF(t),i=void 0!==e?` of length ${e}`:"",s=r?`length=${t.length}`:"type="+typeof t,o=AF(n)+"expected Uint8Array"+i+", got "+s;if(!r)throw new TypeError(o);throw new RangeError(o)}var NF=(t,e)=>{if(null===t||"object"!=typeof t||Array.isArray(t))throw new TypeError(("object"===e?"":`"${e}" `)+"expected object, got type="+typeof t)};function zF(t,e=!0){if(t.destroyed)throw new Error("hash was destroyed");if(e&&t.finished)throw new Error("digest() was already called")}function FF(...t){for(let e=0;e>>e}function UF(t,e={}){if("function"!=typeof t)throw new TypeError('"hashCons" expected function, got type='+typeof t);e=function(t,e,n="opts"){return NF(t,"defaults"),void 0!==e&&NF(e,n),Object.assign(t,e)}({},e,"info");const n=(e,n)=>t(n).update(e).digest(),r=t(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=e=>t(e),Object.assign(n,e),Object.freeze(n)}var BF=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});function $F(t,e,n){return t&e^~t&n}function qF(t,e,n){return t&e^t&n^e&n}var VF=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,r){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(t),this.view=DF(this.buffer)}update(t){zF(this),OF(t);const{view:e,buffer:n,blockLen:r}=this,i=t.length;let s=!1;for(let o=0;o=n))throw new RangeError('"output" expected length >= '+n)}(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:r,isLE:i}=this;let{pos:s}=this;e[s++]=128,e.fill(0,s),this.padOffset>r-s&&(this.process(n,0),e.fill(0)),function(t,e,n,r){const i=(t=>t/2**32|0)(n),s=(t=>t>>>0)(n);t.setUint32(e,r?s:i,r),t.setUint32(e+4,r?i:s,r)}(n,r-8,8*this.length,i),this.process(n,0),this.roundClean();const o=t===e?n:DF(t),a=this.outputLen,l=a/4,c=this.get();if(a%4||l>c.length)throw new Error("invalid outputLen");for(let u=0;u>>3,r=jF(e,17)^jF(e,19)^e>>>10;GF[u]=r+GF[u-7]+n+GF[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(jF(o,6)^jF(o,11)^jF(o,25))+$F(o,a,l)+HF[u]+GF[u]|0,e=(jF(n,2)^jF(n,13)^jF(n,22))+qF(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){FF(GF)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),FF(this.buffer)}},KF=class extends ZF{constructor(){super(32,WF)}},YF=UF(()=>new KF,BF(1)),XF=a({DEFAULT_BLOSSOM_SERVER:()=>JF,default:()=>tD}),JF="https://blossom.nostr.build";function QF(t,e){let n=t||"https://blossom.nostr.build";return n.endsWith("/")&&(n=n.slice(0,-1)),e.startsWith("/")?`${n}${e}`:`${n}/${e}`}var tD=class extends fp{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");get servers(){const t=this.nostrData.blossomServers,e=this.settings.nostrMediaServer||"https://blossom.nostr.build",n=t.filter(t=>t!==e);return this.settings.nostrPhotoFallbackUploads?[e,...n]:[e]}async _getAuthHeader(t,e,n){const r=Math.floor(Date.now()/1e3),i=new URL(n).hostname,s=await oz.fromKind(24242).content("upload"===t?"Upload photo for place":"Delete photo").modifyPublicTags(()=>[["t",t],["x",e],["expiration",String(r+3600)],["server",i]]).created(r).as(this.nostrAuth.signer).sign();return`Nostr ${btoa(JSON.stringify(s)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}async _uploadToServer(t,e,n,r){const i=QF(n,"upload");r&&r("signing");const s=await this._getAuthHeader("upload",e,n);r&&r("uploading");const o=await fetch(i,{method:"PUT",headers:{Authorization:s,"X-SHA-256":e},body:t});if(!o.ok){const t=await o.text();throw new Error(`Upload failed (${o.status}): ${t}`)}return o.json()}async upload(t,e={sequential:!1}){if(!this.nostrAuth.isConnected)throw new Error("Not connected");const n=await t.arrayBuffer();let r;r="undefined"!=typeof crypto&&crypto.subtle&&crypto.subtle.digest?await crypto.subtle.digest("SHA-256",n):YF(new Uint8Array(n));const i=function(t){return Array.from(new Uint8Array(t)).map(t=>t.toString(16).padStart(2,"0")).join("")}(r),s=this.servers,o=s[0],a=s.slice(1),l=[];let c;if(e.sequential){c=await this._uploadToServer(t,i,o,e.onProgress);for(const n of a)try{const r=await this._uploadToServer(t,i,n,e.onProgress);l.push(r.url)}catch(X8){console.warn(`Fallback upload to ${n} failed:`,X8)}}else{const n=this._uploadToServer(t,i,o,e.onProgress),r=a.map(n=>this._uploadToServer(t,i,n,e.onProgress));c=await n;const s=await Promise.allSettled(r);for(let t=0;tthis._deleteFromServer(t,e));await i;const o=await Promise.allSettled(s);for(let a=0;anD}),nD=class extends fp{static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"placeNameResolver",[pp])}#$=void pF(this,"placeNameResolver");static{hF(this.prototype,"items",[Wr],function(){return[]})}#q=void pF(this,"items");_sub=null;async load(t){t?(this._sub=this.nostrData.store.timeline([{kinds:[360,5],authors:[t]}]).subscribe(t=>{this._updateItems(t)}),await this.nostrData.loadMyContributions(t)):this.items=[]}stop(){this._sub&&(this._sub.unsubscribe(),this._sub=null),this.items=[],this.placeNameResolver.reset()}willDestroy(){this.stop(),super.willDestroy(...arguments)}_updateItems(t){const e=bF(t);for(const n of e){const t=this.placeNameResolver.resolveBookmark(n.osmId);t&&(n.placeName=t,n.placeNameLoading=!1)}this.items=e,this.placeNameResolver.resolveInBackground(e).then(()=>{this.items=[...this.items]})}};function rD(t){return new Worker("/assets/image-processor-TE4QOxly.js",{name:t?.name})}var iD=a({default:()=>sD}),sD=class extends fp{_worker=null;_callbacks=new Map;_msgId=0;constructor(){super(...arguments),this._initWorker()}_initWorker(){if(!this._worker&&void 0!==rD)try{this._worker=new rD,this._worker.onmessage=this._handleMessage.bind(this),this._worker.onerror=this._handleError.bind(this)}catch(t){console.warn("Failed to initialize image-processor worker:",t)}}_handleMessage(t){const{id:e,success:n,blob:r,dim:i,blurhash:s,error:o}=t.data,a=this._callbacks.get(e);a&&(this._callbacks.delete(e),n?a.resolve({blob:r,dim:i,blurhash:s}):a.reject(new Error(o)))}_handleError(t){console.error("Image Processor Worker Error:",t);for(const[,e]of this._callbacks.entries())e.reject(new Error("Worker crashed"));this._callbacks.clear(),this._worker.terminate(),this._worker=null,this._initWorker()}_getImageDimensions(t){return new Promise((e,n)=>{const r=new Image,i=URL.createObjectURL(t);r.onload=()=>{const t={width:r.width,height:r.height};URL.revokeObjectURL(i),e(t)},r.onerror=()=>{URL.revokeObjectURL(i),n(new Error("Could not read image dimensions"))},r.src=i})}async process(t,e,n,r=!1){if(!this._worker)throw new Error("Image processor worker is not available.");try{const{width:i,height:s}=await this._getImageDimensions(t);let o=i,a=s;return i>s?i>e&&(a=Math.round(s*(e/i)),o=e):s>e&&(o=Math.round(i*(e/s)),a=e),new Promise((e,i)=>{const s=++this._msgId;this._callbacks.set(s,{resolve:e,reject:i}),this._worker.postMessage({type:"PROCESS_IMAGE",id:s,file:t,targetWidth:o,targetHeight:a,quality:n,computeBlurhash:r})})}catch(i){throw new Error(`Failed to process image: ${i.message}`,{cause:i})}}willDestroy(){super.willDestroy(...arguments),this._worker&&(this._worker.terminate(),this._worker=null),this._callbacks.clear()}},oD=o((t,e)=>{!function(n){"object"==typeof t&&void 0!==e?e.exports=n():"function"==typeof define&&define.amd?define([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=n()}(function(){return function t(e,n,r){function i(o,a){if(!n[o]){if(!e[o]){var l="function"==typeof u&&u;if(!a&&l)return l(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};e[o][0].call(h.exports,function(t){return i(e[o][1][t]||t)},h,h.exports,t,e,n,r)}return n[o].exports}for(var s="function"==typeof u&&u,o=0;ot.db.version;if(r&&(t.version!==e&&console.warn('The database "'+t.name+"\" can't be downgraded from version "+t.db.version+" to version "+t.version+"."),t.version=t.db.version),i||n){if(n){var s=t.db.version+1;s>t.version&&(t.version=s)}return!0}return!1}function k(t){return i([m(atob(t.data))],{type:t.type})}function S(t){return t&&t.__local_forage_encoded_blob}function E(t){var e=this,n=e._initReady().then(function(){var t=d[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady});return a(n,t,t),n}function R(t,e,n,r){void 0===r&&(r=1);try{n(null,t.db.transaction(t.storeName,e))}catch(PD){if(r>0&&(!t.db||"InvalidStateError"===PD.name||"NotFoundError"===PD.name))return s.resolve().then(function(){if(!t.db||"NotFoundError"===PD.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),x(t)}).then(function(){return function(t){y(t);for(var e=d[t.name],n=e.forages,r=0;r=43)}}).catch(function(){return!1})}(t).then(function(t){return h=t})}(a.db).then(function(t){return t?e:(n=e,new s(function(t,e){var r=new FileReader;r.onerror=e,r.onloadend=function(e){t({__local_forage_encoded_blob:!0,data:btoa(e.target.result||""),type:n.type})},r.readAsBinaryString(n)}));var n}):e}).then(function(e){R(r._dbInfo,g,function(i,s){if(i)return o(i);try{var a=s.objectStore(r._dbInfo.storeName);null===e&&(e=void 0);var l=a.put(e,t);s.oncomplete=function(){void 0===e&&(e=null),n(e)},s.onabort=s.onerror=function(){o(l.error?l.error:l.transaction.error)}}catch(c){o(c)}})}).catch(o)});return o(a,n),a},removeItem:function(t,e){var n=this;t=l(t);var r=new s(function(e,r){n.ready().then(function(){R(n._dbInfo,g,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName).delete(t);s.oncomplete=function(){e()},s.onerror=function(){r(o.error)},s.onabort=function(){r(o.error?o.error:o.transaction.error)}}catch(a){r(a)}})}).catch(r)});return o(r,e),r},clear:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,g,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).clear();i.oncomplete=function(){t()},i.onabort=i.onerror=function(){n(s.error?s.error:s.transaction.error)}}catch(o){n(o)}})}).catch(n)});return o(n,t),n},length:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).count();s.onsuccess=function(){t(s.result)},s.onerror=function(){n(s.error)}}catch(o){n(o)}})}).catch(n)});return o(n,t),n},key:function(t,e){var n=this,r=new s(function(e,r){t<0?e(null):n.ready().then(function(){R(n._dbInfo,f,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName),a=!1,l=o.openKeyCursor();l.onsuccess=function(){var n=l.result;n?0===t||a?e(n.key):(a=!0,n.advance(t)):e(null)},l.onerror=function(){r(l.error)}}catch(c){r(c)}})}).catch(r)});return o(r,e),r},keys:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).openKeyCursor(),o=[];s.onsuccess=function(){var e=s.result;e?(o.push(e.key),e.continue()):t(o)},s.onerror=function(){n(s.error)}}catch(a){n(a)}})}).catch(n)});return o(n,t),n},dropInstance:function(t,e){e=c.apply(this,arguments);var n,i=this.config();if((t="function"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName),t.name){var a=t.name===i.name&&this._dbInfo.db?s.resolve(this._dbInfo.db):_(t).then(function(e){var n=d[t.name],r=n.forages;n.db=e;for(var i=0;i>4,u[l++]=(15&r)<<4|i>>2,u[l++]=(3&i)<<6|63&s;return c}function W(t){var e,n=new Uint8Array(t),r="";for(e=0;e>2],r+=T[(3&n[e])<<4|n[e+1]>>4],r+=T[(15&n[e+1])<<2|n[e+2]>>6],r+=T[63&n[e+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var H={serialize:function(t,e){var n="";if(t&&(n=q.call(t)),t&&("[object ArrayBuffer]"===n||t.buffer&&"[object ArrayBuffer]"===q.call(t.buffer))){var r,i=I;t instanceof ArrayBuffer?(r=t,i+=M):(r=t.buffer,"[object Int8Array]"===n?i+=O:"[object Uint8Array]"===n?i+=N:"[object Uint8ClampedArray]"===n?i+=z:"[object Int16Array]"===n?i+=F:"[object Uint16Array]"===n?i+=j:"[object Int32Array]"===n?i+=D:"[object Uint32Array]"===n?i+=U:"[object Float32Array]"===n?i+=B:"[object Float64Array]"===n?i+=$:e(new Error("Failed to get type for BinaryArray"))),e(i+W(r))}else if("[object Blob]"===n){var s=new FileReader;s.onload=function(){var n="~~local_forage_type~"+t.type+"~"+W(this.result);e(I+A+n)},s.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(o){console.error("Couldn't convert value into a JSON string: ",t),e(null,o)}},deserialize:function(t){if(t.substring(0,9)!==I)return JSON.parse(t);var e,n=t.substring(13),r=t.substring(9,13);if(r===A&&P.test(n)){var s=n.match(P);e=s[1],n=n.substring(s[0].length)}var o=V(n);switch(r){case M:return o;case A:return i([o],{type:e});case O:return new Int8Array(o);case N:return new Uint8Array(o);case z:return new Uint8ClampedArray(o);case F:return new Int16Array(o);case j:return new Uint16Array(o);case D:return new Int32Array(o);case U:return new Uint32Array(o);case B:return new Float32Array(o);case $:return new Float64Array(o);default:throw new Error("Unkown type: "+r)}},stringToBuffer:V,bufferToString:W};function G(t,e,n,r){t.executeSql("CREATE TABLE IF NOT EXISTS "+e.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function Z(t,e,n,r,i,s){t.executeSql(n,r,i,function(t,o){o.code===o.SYNTAX_ERR?t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[e.storeName],function(t,a){a.rows.length?s(t,o):G(t,e,function(){t.executeSql(n,r,i,s)},s)},s):s(t,o)},s)}function K(t,e,n,r){var i=this;t=l(t);var a=new s(function(s,o){i.ready().then(function(){void 0===e&&(e=null);var a=e,l=i._dbInfo;l.serializer.serialize(e,function(e,c){c?o(c):l.db.transaction(function(n){Z(n,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[t,e],function(){s(a)},function(t,e){o(e)})},function(e){if(e.code===e.QUOTA_ERR){if(r>0)return void s(K.apply(i,[t,a,n,r-1]));o(e)}})})}).catch(o)});return o(a,n),a}var Y={_driver:"webSQLStorage",_initStorage:function(t){var e=this,n={db:null};if(t)for(var r in t)n[r]="string"!=typeof t[r]?t[r].toString():t[r];var i=new s(function(t,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(i){return r(i)}n.db.transaction(function(i){G(i,n,function(){e._dbInfo=n,t()},function(t,e){r(e)})},r)});return n.serializer=H,i},_support:"function"==typeof openDatabase,iterate:function(t,e){var n=this,r=new s(function(e,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Z(n,i,"SELECT * FROM "+i.storeName,[],function(n,r){for(var s=r.rows,o=s.length,a=0;a '__WebKitDatabaseInfoTable__'",[],function(n,r){for(var i=[],s=0;s0?(this._dbInfo=e,e.serializer=H,s.resolve()):s.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(t){return!1}}(),iterate:function(t,e){var n=this,r=n.ready().then(function(){for(var e=n._dbInfo,r=e.keyPrefix,i=r.length,s=localStorage.length,o=1,a=0;a=0;n--){var r=localStorage.key(n);0===r.indexOf(t)&&localStorage.removeItem(r)}});return o(n,t),n},length:function(t){var e=this.keys().then(function(t){return t.length});return o(e,t),e},key:function(t,e){var n=this,r=n.ready().then(function(){var e,r=n._dbInfo;try{e=localStorage.key(t)}catch(X8){e=null}return e&&(e=e.substring(r.keyPrefix.length)),e});return o(r,e),r},keys:function(t){var e=this,n=e.ready().then(function(){for(var t=e._dbInfo,n=localStorage.length,r=[],i=0;i=0;e--){var n=localStorage.key(e);0===n.indexOf(t)&&localStorage.removeItem(n)}}):s.reject("Invalid arguments"),o(r,e),r}},Q=function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)},tt=function(t,e){for(var n=t.length,r=0;rcD}),lD=c(oD(),1),cD=class extends fp{_instances=new Map;_instance(t){let e=this._instances.get(t);return e||(e=lD.default.createInstance({name:"marco",storeName:t}),this._instances.set(t,e)),e}async get(t,e){return this._instance(t).getItem(e)}async set(t,e,n){return this._instance(t).setItem(e,n)}async remove(t,e){return this._instance(t).removeItem(e)}async keys(t){return this._instance(t).keys()}async clear(t){return this._instance(t).clear()}async iterate(t,e){return this._instance(t).iterate(e)}},uD=a({default:()=>hD}),hD=class extends fp{static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"selectedPlace",[Wr],function(){return null})}#Z=void pF(this,"selectedPlace");static{hF(this.prototype,"isSearching",[Wr],function(){return!1})}#K=void pF(this,"isSearching");static{hF(this.prototype,"isCreating",[Wr],function(){return!1})}#Y=void pF(this,"isCreating");static{hF(this.prototype,"creationCoordinates",[Wr],function(){return null})}#X=void pF(this,"creationCoordinates");static{hF(this.prototype,"returnToSearch",[Wr],function(){return!1})}#J=void pF(this,"returnToSearch");static{hF(this.prototype,"returnToRoute",[Wr],function(){return null})}#Q=void pF(this,"returnToRoute");static{hF(this.prototype,"currentCenter",[Wr],function(){return null})}#tt=void pF(this,"currentCenter");static{hF(this.prototype,"currentBounds",[Wr],function(){return null})}#et=void pF(this,"currentBounds");static{hF(this.prototype,"currentZoom",[Wr],function(){return null})}#nt=void pF(this,"currentZoom");static{hF(this.prototype,"searchBoxHasFocus",[Wr],function(){return!1})}#rt=void pF(this,"searchBoxHasFocus");static{hF(this.prototype,"selectionOptions",[Wr],function(){return{}})}#it=void pF(this,"selectionOptions");static{hF(this.prototype,"preventNextZoom",[Wr],function(){return!1})}#st=void pF(this,"preventNextZoom");static{hF(this.prototype,"searchResults",[Wr],function(){return[]})}#ot=void pF(this,"searchResults");static{hF(this.prototype,"currentSearch",[Wr],function(){return null})}#at=void pF(this,"currentSearch");static{hF(this.prototype,"loadingState",[Wr],function(){return null})}#lt=void pF(this,"loadingState");static{hF(this.prototype,"isSidebarVisible",[Wr],function(){return!1})}#ct=void pF(this,"isSidebarVisible");static{hF(this.prototype,"isSidebarOpening",[Wr],function(){return!1})}#ut=void pF(this,"isSidebarOpening");scrollPositions={};saveScrollPosition(t,e){this.scrollPositions[t]=e}static{dF(this.prototype,"saveScrollPosition",[Vl])}getScrollPosition(t){return this.scrollPositions[t]||0}static{dF(this.prototype,"getScrollPosition",[Vl])}showSidebar(){this.isSidebarVisible||(this.isSidebarVisible=!0,this.isSidebarOpening=!0,setTimeout(()=>{this.isSidebarOpening=!1},250))}hideSidebar(){this.isSidebarVisible=!1,this.isSidebarOpening=!1}selectPlace(t,e={}){this.selectedPlace=t,this.selectionOptions=e,this.nostrData.loadPhotosForPlace(t)}clearSelection(){this.selectedPlace=null,this.selectionOptions={},this.preventNextZoom=!1,this.nostrData.loadPhotosForPlace(null)}setSearchResults(t){this.searchResults=t||[]}clearSearchResults(){this.searchResults=[],this.currentSearch=null}startSearch(){this.isSearching=!0,this.isCreating=!1,this.preventNextZoom=!1}stopSearch(){this.isSearching=!1}startCreating(){this.isCreating=!0,this.isSearching=!1}stopCreating(){this.isCreating=!1,this.creationCoordinates=null}updateCreationCoordinates(t,e){this.creationCoordinates={lat:t,lon:e}}setSearchBoxFocus(t){this.searchBoxHasFocus=t}updateCenter(t,e){this.currentCenter={lat:t,lon:e}}updateZoom(t){this.currentZoom=t}updateBounds(t){this.currentBounds=t}startLoading(t,e){this.loadingState={type:t,value:e}}stopLoading(t=null,e=null){t||e?this.loadingState&&this.loadingState.type===t&&this.loadingState.value===e&&(this.loadingState=null):this.loadingState=null}};function dD(){let t,e;const n=new Promise((n,r)=>{t=n,e=r});return n.resolve=t,n.reject=e,n}"navigator"in globalThis&&navigator.userAgent.includes("Android")&&navigator.clipboard&&navigator.clipboard.readText;var pD,fD,gD=class extends Error{},mD=class{get nip04(){return window.nostr?.nip04}get nip44(){return window.nostr?.nip44}pubkey=void 0;async getPublicKey(){if(!window.nostr)throw new gD("Signer extension missing");if(this.pubkey)return this.pubkey;const t=await window.nostr.getPublicKey();if(!kO(t))throw new Error("Extension returned an invalid public key");return this.pubkey=t,this.pubkey}async signEvent(t){if(!window.nostr)throw new gD("Signer extension missing");const e=await window.nostr.signEvent(t);if(!ZA(e))throw new Error("Extension returned an invalid event");return e}},yD=new TextEncoder,vD=new TextDecoder;function bD(t){if(!kO(t.remote))throw new Error("Invalid nbunksec: remote is not a valid hex key");if(!kO(t.clientKey))throw new Error("Invalid nbunksec: clientKey is not a valid hex key");if(0===t.relays.length)throw new Error("Invalid nbunksec: missing relays");return function(t){try{const e=[],n=zE(t.pubkey);e.push(new Uint8Array([0,n.length]),n);const r=zE(t.local_key);e.push(new Uint8Array([1,r.length]),r);for(const a of t.relays){const t=yD.encode(a);e.push(new Uint8Array([2,t.length]),t)}if(t.secret){const n=yD.encode(t.secret);e.push(new Uint8Array([3,n.length]),n)}const i=e.reduce((t,e)=>t+e.length,0),s=new Uint8Array(i);let o=0;for(const t of e)s.set(t,o),o+=t.length;return nF.encode("nbunksec",nF.toWords(s),!1)}catch(X8){throw new Error(`Failed to encode bunker info: ${X8}`)}}({pubkey:t.remote,local_key:t.clientKey,relays:t.relays,secret:t.bunkerSecret??t.secret})}QO(OT.NostrConnect,"nip44"),function(t){t.GetPublicKey="get_public_key",t.SignEvent="sign_event",t.Ping="ping",t.Nip04Encrypt="nip04_encrypt",t.Nip04Decrypt="nip04_decrypt",t.Nip44Encrypt="nip44_encrypt",t.Nip44Decrypt="nip44_decrypt",t.SwitchRelays="switch_relays"}(pD||(pD={})),function(t){t.Connect="connect",t.CreateAccount="create_account",t.GetPublicKey="get_public_key",t.SignEvent="sign_event",t.Ping="ping",t.Nip04Encrypt="nip04_encrypt",t.Nip04Decrypt="nip04_decrypt",t.Nip44Encrypt="nip44_encrypt",t.Nip44Decrypt="nip44_decrypt",t.SwitchRelays="switch_relays",t.Logout="logout"}(fD||(fD={}));var wD=class t{key;constructor(t){this.key=t||WA()}async getPublicKey(){return HA(this.key)}async signEvent(t){return GA(t,this.key)}nip04={encrypt:async(t,e)=>GI.encrypt(this.key,t,e),decrypt:async(t,e)=>GI.decrypt(this.key,t,e)};nip44={encrypt:async(t,e)=>uM.v2.encrypt(e,uM.v2.utils.getConversationKey(this.key,t)),decrypt:async(t,e)=>uM.v2.decrypt(e,uM.v2.utils.getConversationKey(this.key,t))};static fromKey(e){const n=function(t){if(t instanceof Uint8Array)return 32!==t.length?null:t;if(kO(t))return zE(t);try{const e=function(t){let{prefix:e,words:n}=lR.decode(t,5e3),r=new Uint8Array(lR.fromWords(n));switch(e){case"nprofile":{let t=pO(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:NE(t[0][0]),relays:t[1]?t[1].map(t=>hO.decode(t)):[]}}}case"nevent":{let t=pO(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(t[2]&&32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(t[3]&&4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:NE(t[0][0]),relays:t[1]?t[1].map(t=>hO.decode(t)):[],author:t[2]?.[0]?NE(t[2][0]):void 0,kind:t[3]?.[0]?parseInt(NE(t[3][0]),16):void 0}}}case"naddr":{let t=pO(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!t[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!t[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:hO.decode(t[0][0]),pubkey:NE(t[2][0]),kind:parseInt(NE(t[3][0]),16),relays:t[1]?t[1].map(t=>hO.decode(t)):[]}}}case"nsec":return{type:e,data:r};case"npub":case"note":return{type:e,data:NE(r)};default:throw new Error(`unknown prefix ${e}`)}}(t);return"nsec"!==e.type?null:e.data}catch{return null}}(e);if(!n)throw new Error("Invalid private key");return new t(n)}};async function _D(t){window.open(t,"auth","width=400,height=600,resizable=no,status=no,location=no,toolbar=no,menubar=no")}var xD=class t{static subscriptionMethod=void 0;static publishMethod=void 0;static pool=void 0;publishMethod;subscriptionMethod;log=_N.extend("NostrConnectSigner");signer;listening=!1;isConnected=!1;pubkey;relays;remote;get clientPubkey(){return HA(this.signer.key)}onAuth=_D;verifyEvent=ZA;connectSecret;bunkerSecret;get secret(){return this.connectSecret}set secret(t){this.connectSecret=t}nip04;nip44;constructor(e){this.relays=e.relays,this.pubkey=e.pubkey,this.remote=e.remote,this.connectSecret=e.connectSecret||e.secret||KN(12),this.bunkerSecret=e.bunkerSecret;const{subscriptionMethod:n,publishMethod:r}=function(t,e){const n=t.subscriptionMethod||t.pool?.subscription.bind(t.pool)||e?.subscriptionMethod||e?.pool?.subscription.bind(e.pool);if(!n)throw new Error("Missing subscriptionMethod, either pass a method or set subscriptionMethod globally on the class");const r=t.publishMethod||t.pool?.publish.bind(t.pool)||e?.publishMethod||e?.pool?.publish.bind(e.pool);if(!r)throw new Error("Missing publishMethod, either pass a method or set publishMethod globally on the class");return{subscriptionMethod:n,publishMethod:r}}(e,t);this.subscriptionMethod=(t,e)=>n(t,e),this.publishMethod=(t,e)=>r(t,e),e.onAuth&&(this.onAuth=e.onAuth),this.signer=e?.signer||new wD,this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)},this.nip44={encrypt:this.nip44Encrypt.bind(this),decrypt:this.nip44Decrypt.bind(this)}}req;async open(){if(this.listening)return;this.listening=!0;const t=await this.signer.getPublicKey();this.req=ZC(this.subscriptionMethod(this.relays,[{kinds:[OT.NostrConnect],"#p":[t]}])).pipe(Ek(),Rk(),vk(t=>"string"!=typeof t)).subscribe(this.handleEvent.bind(this)),this.log("Opened",this.relays)}async close(){this.listening=!1,this.isConnected=!1,this.req&&(this.req.unsubscribe(),this.req=void 0),this.waitingPromise&&(this.waitingPromise.reject(new Error("Closed")),this.waitingPromise=null),this.log("Closed")}requests=new Map;auths=new Set;async handleEvent(t){if(this.verifyEvent(t)&&(!this.remote||t.pubkey===this.remote))try{const n=eN(t)??(function(t){const e=t.length;return!(e<28)&&"?"==t[e-28]&&"i"==t[e-27]&&"v"==t[e-26]&&"="==t[e-25]}(t.content)?await this.signer.nip04.decrypt(t.pubkey,t.content):await this.signer.nip44.decrypt(t.pubkey,t.content));if(!n)return;const r=JSON.parse(n);if(!this.remote&&("ack"===r.result||this.connectSecret&&r.result===this.connectSecret))return this.log("Got ack response from",t.pubkey,r.result),this.isConnected=!0,this.remote=t.pubkey,this.waitingPromise?.resolve(),void(this.waitingPromise=null);if(r.id){const t=this.requests.get(r.id);if(!t)return;if(r.error)if(this.log("Got Error",r.id,r.result,r.error),"auth_url"===r.result){if(!this.auths.has(r.id)&&(this.auths.add(r.id),this.onAuth))try{await this.onAuth(r.error)}catch(e){t.reject(e)}}else t.reject(new Error(r.error));else r.result&&(this.log("Got Response",r.id,r.result),t.resolve(r.result))}}catch(e){}}async createRequestEvent(t,e=this.remote,n=OT.NostrConnect){if(!e)throw new Error("Missing target pubkey");return await this.signer.signEvent({kind:n,created_at:CN(),tags:[["p",e]],content:t})}async makeRequest(t,e,n=OT.NostrConnect){if(!this.remote)throw new Error("Missing remote signer pubkey");const r=KN(8),i={id:r,method:t,params:e},s=await this.signer.nip44.encrypt(this.remote,JSON.stringify(i)),o=await this.createRequestEvent(s,this.remote,n);this.log(`Sending ${r} (${t}) ${JSON.stringify(e)}`);const a=dD();this.requests.set(r,a);const l=this.publishMethod?.(this.relays,o);return l instanceof Promise?await l:"subscribe"in l&&await new Promise(t=>l.subscribe({complete:t})),this.log(`Sent ${r} (${t})`),a}async connect(t,e){if(!this.remote&&this.pubkey&&(this.remote=this.pubkey),!this.remote)throw new Error("Missing remote signer pubkey");await this.open();try{void 0!==t&&(this.bunkerSecret=t);const n=await this.makeRequest(fD.Connect,[this.remote,this.bunkerSecret||"",e?.join(",")??""]);return this.isConnected=!0,n}catch(n){throw this.isConnected=!1,this.close(),n}}waitingPromise=null;waitForSigner(t){return this.isConnected?Promise.resolve():(this.open(),this.waitingPromise=dD(),t?.addEventListener("abort",()=>{this.waitingPromise?.reject(new Error("Aborted")),this.waitingPromise=null,this.close()},!0),this.waitingPromise)}async createAccount(t,e,n,r){if(!this.remote)throw new Error("Remote pubkey must be set");await this.open();try{const i=await this.makeRequest(fD.CreateAccount,[t,e,n??"",r?.join(",")??""]);return this.pubkey=i,this.isConnected=!0,i}catch(i){throw this.isConnected=!1,this.close(),i}}async requireConnection(){this.isConnected||await this.connect()}async getPublicKey(){if(this.pubkey)return this.pubkey;await this.requireConnection();const t=await this.makeRequest(fD.GetPublicKey,[]);if(!kO(t))throw new Error("Remote signer returned an invalid public key");return t}async signEvent(t){await this.requireConnection();const e=await this.makeRequest(fD.SignEvent,[JSON.stringify(t)]),n=JSON.parse(e);if(!this.verifyEvent(n))throw new Error("Invalid event");return n}async nip04Encrypt(t,e){return await this.requireConnection(),this.makeRequest(fD.Nip04Encrypt,[t,e])}async nip04Decrypt(t,e){await this.requireConnection();const n=await this.makeRequest(fD.Nip04Decrypt,[t,e]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async nip44Encrypt(t,e){return await this.requireConnection(),this.makeRequest(fD.Nip44Encrypt,[t,e])}async nip44Decrypt(t,e){await this.requireConnection();const n=await this.makeRequest(fD.Nip44Decrypt,[t,e]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async ping(){return await this.requireConnection(),this.makeRequest(fD.Ping,[])}async switchRelays(){await this.requireConnection();const t=await this.makeRequest(fD.SwitchRelays,[]);return null!==t&&Array.isArray(t)&&t.length>0&&(this.log("Switching relays from",this.relays,"to",t),this.relays=t,this.listening&&(await this.close(),await this.open())),t}async logout(){try{this.isConnected&&this.remote&&await this.makeRequest(fD.Logout,[])}catch(X8){this.log("Failed to send logout request",X8)}finally{this.isConnected=!1,await this.close()}}getNostrConnectURI(t){return function(t){const e=new URLSearchParams,n=t.connectSecret??t.secret;if(!n)throw new Error("Invalid nostrconnect URI: missing secret");e.set("secret",n),t.metadata?.name&&e.set("name",t.metadata.name),t.metadata?.url&&e.set("url",String(t.metadata.url)),t.metadata?.image&&e.set("image",t.metadata.image),t.metadata?.permissions&&e.set("perms",t.metadata.permissions.join(","));for(const r of t.relays)e.append("relay",r);return`nostrconnect://${t.client}?`+e.toString()}({client:HA(this.signer.key),connectSecret:this.connectSecret,relays:this.relays,metadata:t})}getNbunksec(){if(!this.remote)throw new Error("Cant create nbunksec when remote signer is not set");return bD({remote:this.remote,clientKey:NE(this.signer.key),relays:this.relays,bunkerSecret:this.bunkerSecret})}static parseBunkerURI(t){return function(t){const e=new URL(t),n=e.host||e.pathname.replace("//","");if(!kO(n))throw new Error("Invalid bunker URI: remote is not a valid hex key");const r=e.searchParams.getAll("relay");if(0===r.length)throw new Error("Invalid bunker URI: missing relays");const i=e.searchParams.get("secret")??void 0;return{remote:n,relays:r,secret:i,bunkerSecret:i}}(t)}static parseNbunksec(t){return function(t){const e=function(t){try{const{prefix:e,words:n}=nF.decode(t,!1);if("nbunksec"!==e)throw new Error(`Invalid prefix: ${e}`);const r=nF.fromWords(n);let i=0;const s={pubkey:"",local_key:"",relays:[]};for(;i`${pD.SignEvent}:${t}`)]}(t)}static async fromBunkerURI(e,n){const{remote:r,relays:i,bunkerSecret:s}=t.parseBunkerURI(e),o=new t({relays:i,remote:r,bunkerSecret:s,...n});return await o.connect(s,n?.permissions),o}static async fromNbunksec(e,n){const{remote:r,clientKey:i,relays:s,bunkerSecret:o}=t.parseNbunksec(e),a=new t({relays:s,remote:r,signer:new wD(zE(i)),bunkerSecret:o,...n});return await a.connect(o,n?.permissions),a}},CD=Object.freeze({p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,h:1n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n}),{p:kD,n:SD,Gx:ED,Gy:RD,b:LD}=CD,TD={publicKey:33,publicKeyUncompressed:65,signature:64,seed:48},PD=(t="",e=Error)=>{const n=new e(t),{captureStackTrace:r}=Error;throw"function"==typeof r&&r(n,PD),n},ID=(t,e,n="")=>{const r=(i=t)instanceof Uint8Array||ArrayBuffer.isView(i)&&"Uint8Array"===i.constructor.name&&1===i.BYTES_PER_ELEMENT;var i;const s=t?.length,o=void 0!==e;return!r||o&&s!==e?PD((n&&`"${n}" `)+"expected Uint8Array"+(o?` of length ${e}`:"")+", got "+(r?`length=${s}`:"type="+typeof t),r?RangeError:TypeError):t},MD=t=>new Uint8Array(t),AD=(t,e)=>t.toString(16).padStart(e,"0"),OD=t=>{let e="";for(const n of ID(t))e+=AD(n,2);return e},ND=t=>t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0,zD=t=>{const e="hex invalid";if("string"!=typeof t)return PD(e);const n=t.length,r=n/2;if(n%2)return PD(e);const i=MD(r);for(let s=0,o=0;s{let e=0;for(const i of t)e+=ID(i).length;const n=MD(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return n},DD=BigInt,jD=(t,e,n,r="bad number: out of range")=>"bigint"!=typeof t?PD(r,TypeError):e<=t&&t{const n=t%e;return n>=0n?n:e+n},BD=t=>t instanceof GD?t:PD("Point expected"),$D=t=>UD(UD(t*t)*t+LD),qD=t=>jD(t,0n,kD),VD=t=>jD(t,1n,kD),WD=t=>!(1n&t),HD=t=>Uint8Array.of(t),GD=class t{static BASE;static ZERO;X;Y;Z;constructor(t,e,n){this.X=qD(t),this.Y=VD(e),this.Z=qD(n),Object.freeze(this)}static CURVE(){return CD}static fromAffine(e){const{x:n,y:r}=e;return 0n===n&&0n===r?KD:new t(n,r,1n)}static fromBytes(e){ID(e);const{publicKey:n,publicKeyUncompressed:r}=TD;let i;const s=e.length,o=e[0],a=e.subarray(1),l=YD(a,0,32);if(s===n&&(2===o||3===o)){let e=(t=>{const e=$D(VD(t));let n=1n;for(let r=e,i=(kD+1n)/4n;i>0n;i>>=1n)1n&i&&(n=n*r%kD),r=r*r%kD;return UD(n*n)!==e&&PD("sqrt invalid"),WD(n)?n:UD(-n)})(l);3===o&&(e=UD(-e)),i=new t(l,e,1n)}return s===r&&4===o&&(i=new t(l,YD(a,32,64),1n)),i?i.assertValidity():PD("bad point: not on curve")}static fromHex(e){return t.fromBytes(zD(e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}equals(t){const{X:e,Y:n,Z:r}=this,{X:i,Y:s,Z:o}=BD(t),a=UD(e*o),l=UD(i*r),c=UD(n*o),u=UD(s*r);return a===l&&c===u}is0(){return this.equals(KD)}negate(){return new t(this.X,UD(-this.Y),this.Z)}double(){return this.add(this)}add(e){const{X:n,Y:r,Z:i}=this,{X:s,Y:o,Z:a}=BD(e);let l=0n,c=0n,u=0n;const h=UD(3n*LD);let d=UD(n*s),p=UD(r*o),f=UD(i*a),g=UD(n+r),m=UD(s+o);g=UD(g*m),m=UD(d+p),g=UD(g-m),m=UD(n+i);let y=UD(s+a);return m=UD(m*y),y=UD(d+f),m=UD(m-y),y=UD(r+i),l=UD(o+a),y=UD(y*l),l=UD(p+f),y=UD(y-l),u=UD(0n*m),l=UD(h*f),u=UD(l+u),l=UD(p-u),u=UD(p+u),c=UD(l*u),p=UD(d+d),p=UD(p+d),f=UD(0n*f),m=UD(h*m),p=UD(p+f),f=UD(d-f),f=UD(0n*f),m=UD(m+f),d=UD(p*m),c=UD(c+d),d=UD(y*m),l=UD(g*l),l=UD(l-d),d=UD(g*p),u=UD(y*u),u=UD(u+d),new t(l,c,u)}subtract(t){return this.add(BD(t).negate())}multiply(t,e=!0){if(!e&&0n===t)return KD;if((t=>{jD(t,1n,SD)})(t),1n===t)return this;if(this.equals(ZD))return nj(t).p;let n=KD,r=ZD;for(let i=this;t>0n;i=i.double(),t>>=1n)1n&t?n=n.add(i):e&&(r=r.add(i));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){const{X:t,Y:e,Z:n}=this;if(this.equals(KD))return{x:0n,y:0n};if(1n===n)return{x:t,y:e};const r=((t,e)=>{(0n===t||e<=0n)&&PD("no inverse n="+t+" mod="+e);let n=UD(t,e),r=e,i=0n,s=1n,o=1n,a=0n;for(;0n!==n;){const t=r/n,e=r%n,l=i-o*t,c=s-a*t;r=n,n=e,i=o,s=a,o=l,a=c}return 1n===r?UD(i,e):PD("no inverse")})(n,kD);return 1n!==UD(n*r)&&PD("inverse invalid"),{x:UD(t*r),y:UD(e*r)}}assertValidity(){const{x:t,y:e}=this.toAffine();return VD(t),VD(e),UD(e*e)===$D(t)?this:PD("bad point: not on curve")}toBytes(t=!0){const{x:e,y:n}=this.assertValidity().toAffine(),r=JD(e);return t?FD((t=>HD(WD(t)?2:3))(n),r):FD(HD(4),r,JD(n))}toHex(t){return OD(this.toBytes(t))}},ZD=new GD(ED,RD,1n),KD=new GD(0n,1n,0n);GD.BASE=ZD,GD.ZERO=KD;var YD=(t,e,n)=>(t=>DD("0x"+(OD(t)||"0")))(t.subarray(e,n)),XD=2n**256n,JD=t=>zD(AD(jD(t,0n,XD),64)),QD=Math.ceil(32)+1,tj=void 0,ej=(t,e)=>{const n=e.negate();return t?n:e},nj=t=>{const e=tj||(tj=(()=>{const t=[];let e=ZD,n=e;for(let r=0;r>=s,a>128&&(a-=256,t+=1n);const l=128*o,c=l,u=l+Math.abs(a)-1,h=o%2!=0,d=a<0;0===a?r=r.add(ej(h,e[c])):n=n.add(ej(d,e[u]))}return 0n!==t&&PD("invalid wnaf"),{p:n,f:r}};function rj(t){return GD.fromHex(t).toHex().substring(2)}var ij=new TextDecoder("utf-8"),sj=new TextEncoder;function oj(t){return btoa(String.fromCharCode(...t))}function aj(t){return new Uint8Array(atob(t).split("").map(t=>t.charCodeAt(0)))}(class t{log=_N.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=ZA;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(e,n,r={}){if(!t.SUPPORTED)throw new Error("Serial devices are not supported");if(this.writer||await this.connectToDevice(r),this.lastCommand)throw new Error("Previous command to device still pending!");const i=dD();return this.lastCommand=i,this.sendCommand(e,n),setTimeout(()=>{i.reject(new Error("Device timeout")),this.lastCommand===i&&(this.lastCommand=null)},6e3),this.lastCommand}async connectToDevice({onConnect:e,onDisconnect:n,onError:r,onDone:i}){let s,o=await window.navigator.serial.requestPort();await o.open({baudRate:9600}),await new Promise(t=>setTimeout(t,1e3)),(async()=>{for(;o&&o.readable;){const e=new window.TextDecoderStream;o.readable.pipeTo(e.writable),s=e.readable.getReader();const n=this.readFromSerialPort(s);try{for(;;){const{value:e,done:r}=await n("\n");if(e){const{method:n,data:r}=this.parseResponse(e);if("/ping"===n&&this.log("Pong"),-1===t.PUBLIC_METHODS.indexOf(n))continue;this.log("Received: ",n,r),this.lastCommand&&(this.lastCommand.resolve(r),this.lastCommand=null)}if(r)return this.lastCommand=null,this.writer=null,void(i&&i())}}catch(X8){if(X8 instanceof Error)throw this.writer=null,r&&r(X8),this.lastCommand&&(this.lastCommand.reject(X8),this.lastCommand=null),X8}}})();const a=new window.TextEncoderStream;a.readable.pipeTo(o.writable),this.writer=a.writable.getWriter(),await this.sendCommand(t.METHOD_PING),await this.sendCommand(t.METHOD_PING,[window.location.host]),e&&e(),o.addEventListener("disconnect",()=>{this.log("Disconnected"),this.lastCommand=null,this.writer=null,n&&n()})}async sendCommand(t,e=[]){if(!this.writer)return;this.log("Send command",t,e);const n=[t].concat(e).join(" ");await this.writer.write(n+"\n")}readFromSerialPort(t){let e,n=[];return async(r="\n")=>{if(n.length)return{value:n.shift().trim(),done:!1};const i=[];for(e&&(i.push(e),e=void 0);;){const{value:s,done:o}=await t.read();if(s){const t=s.split(r);if(t.length>1)return i.push(t.shift()),e=t.pop(),n=t,{value:i.join("").trim(),done:!1};i.push(s)}if(o)return{value:i.join("").trim(),done:!0}}}}parseResponse(t){const e=t.split(" ")[0];return{method:e,data:t.substring(e.length).trim()}}async nip04Encrypt(e,n){const r=zE(await this.callMethodOnDevice(t.METHOD_SHARED_SECRET,[rj(e)]));let i=Uint8Array.from(window.crypto.getRandomValues(new Uint8Array(16))),s=sj.encode(n),o=await crypto.subtle.importKey("raw",r,{name:"AES-CBC"},!1,["encrypt"]),a=await crypto.subtle.encrypt({name:"AES-CBC",iv:i},o,s);return`${oj(new Uint8Array(a))}?iv=${oj(new Uint8Array(i.buffer))}`}async nip04Decrypt(e,n){let[r,i]=n.split("?iv=");const s=zE(await this.callMethodOnDevice(t.METHOD_SHARED_SECRET,[rj(e)]));let o=await crypto.subtle.importKey("raw",s,{name:"AES-CBC"},!1,["decrypt"]),a=aj(r),l=aj(i),c=await crypto.subtle.decrypt({name:"AES-CBC",iv:l},o,a);return ij.decode(c)}async getPublicKey(){const e=await this.callMethodOnDevice(t.METHOD_PUBLIC_KEY,[]);return this.pubkey=e,e}async restore(e){await this.callMethodOnDevice(t.METHOD_RESTORE,[NE(e)])}async signEvent(e){const n=e.pubkey||this.pubkey;if(!n)throw new Error("Unknown signer pubkey");const r={...e,id:qA({...e,pubkey:n})},i=await this.callMethodOnDevice(t.METHOD_SIGN_MESSAGE,[r.id]),s={...r,sig:i,pubkey:n};if(!this.verifyEvent(s))throw new Error("Invalid signature");return s}ping(){this.sendCommand(t.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=[t.METHOD_PUBLIC_KEY,t.METHOD_SIGN_MESSAGE,t.METHOD_SHARED_SECRET,t.METHOD_RESTORE]});var lj=a({isMobile:()=>cj});function cj(){return"undefined"!=typeof navigator&&/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent)}var uj,hj=a({default:()=>vj}),dj="marco:nostr_pubkey",pj="marco:nostr_signer_type",fj="marco:nostr_connect_local_key",gj="marco:nostr_connect_remote_pubkey",mj="marco:nostr_connect_relay",yj="wss://nostr.kosmos.org",vj=class extends fp{static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"pubkey",[Wr],function(){return null})}#dt=void pF(this,"pubkey");static{hF(this.prototype,"signerType",[Wr],function(){return null})}#pt=void pF(this,"signerType");static{hF(this.prototype,"connectStatus",[Wr],function(){return null})}#ft=void pF(this,"connectStatus");static{hF(this.prototype,"connectUri",[Wr],function(){return null})}#gt=void pF(this,"connectUri");_signerInstance=null;constructor(){super(...arguments),"undefined"!=typeof localStorage&&(localStorage.debug="applesauce:*");const t=localStorage.getItem(dj),e=localStorage.getItem(pj);t&&(this.pubkey=t,this.signerType=e||"extension",this._verifyPubkey())}async _verifyPubkey(){if("extension"===this.signerType){if(void 0===window.nostr)return void this.disconnect();try{const t=await(new mD).getPublicKey();t!==this.pubkey&&(this.pubkey=t,localStorage.setItem(dj,this.pubkey)),this.nostrData.loadProfile(this.pubkey)}catch(t){console.warn("Failed to verify extension nostr pubkey, logging out",t),this.disconnect()}}else if("connect"===this.signerType)try{await this._initConnectSigner()}catch(t){console.warn("Failed to verify connect nostr pubkey, logging out",t),this.disconnect()}}get isMobile(){return cj()}get isConnected(){return!!this.pubkey&&("extension"!==this.signerType||void 0!==window.nostr)}get signer(){return this._signerInstance?this._signerInstance:"extension"===this.signerType&&void 0!==window.nostr?new mD:(this.signerType,null)}async connectWithExtension(){if(void 0===window.nostr)throw new Error("No NIP-07 Nostr extension found (e.g., Alby, nos2x).");try{return this._signerInstance=new mD,this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="extension",localStorage.setItem(dj,this.pubkey),localStorage.setItem(pj,"extension"),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(X8){throw console.error("Failed to get public key from extension:",X8),X8}}_getLocalSigner(){let t,e=localStorage.getItem(fj);return e?t=wD.fromKey(e):(t=new wD,e=Array.from(t.key).map(t=>t.toString(16).padStart(2,"0")).join(""),localStorage.setItem(fj,e)),t}async connectWithApp(){this.connectStatus="waiting";try{const e=this._getLocalSigner(),n=yj;localStorage.setItem(mj,n),this._signerInstance=new xD({pool:this.nostrRelay.pool,relays:[n],signer:e,onAuth:async t=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${t}`)&&window.open(t,"_blank")}}),this.connectUri=this._signerInstance.getNostrConnectURI({name:"Marco",url:window.location.origin,description:"An unhosted maps application.",icons:[]}),this.isMobile&&(console.debug("Mobile detected, triggering deep link intent."),window.location.href=this.connectUri),console.debug("Opening signer connection to relay..."),await this._signerInstance.open(),console.debug("Signer connection opened successfully."),console.debug("Waiting for remote signer to ack via relay...");try{await this._signerInstance.waitForSigner(),console.debug("Remote signer ack received!")}catch(t){throw console.error("Error while waiting for remote signer ack:",t),t}return this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="connect",this.connectStatus="connected",localStorage.setItem(dj,this.pubkey),localStorage.setItem(pj,"connect"),localStorage.setItem(gj,this._signerInstance.remote),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(X8){throw this.connectStatus=null,console.error("Failed to connect via Nostr Connect:",X8),X8}}async _initConnectSigner(){const t=localStorage.getItem(gj),e=localStorage.getItem(mj)||yj;if(!t)throw new Error("Missing Nostr Connect remote pubkey.");const n=this._getLocalSigner();if(this._signerInstance=new xD({pool:this.nostrRelay.pool,relays:[e],signer:n,remote:t,onAuth:async t=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${t}`)&&window.open(t,"_blank")}}),await this._signerInstance.open(),await this._signerInstance.getPublicKey()!==this.pubkey)throw new Error("Remote signer pubkey mismatch");this.nostrData.loadProfile(this.pubkey)}async signEvent(t){if(!this.signer)throw new Error("Not connected or extension missing. Please connect Nostr again.");return await this.signer.signEvent(t)}async disconnect(){this.pubkey=null,this.nostrData?.loadProfile(null),this.signerType=null,this.connectStatus=null,this.connectUri=null,this._signerInstance&&"function"==typeof this._signerInstance.close&&await this._signerInstance.close(),this._signerInstance=null,localStorage.removeItem(dj),localStorage.removeItem(pj),localStorage.removeItem(fj),localStorage.removeItem(gj),localStorage.removeItem(mj)}};function bj(t){return Array.from(new Set(t))}function wj(t){const e={};e.kinds=bj(t.map(t=>t.kind)),e.authors=bj(t.map(t=>t.pubkey));const n=bj(t.map(t=>t.identifier).filter(t=>void 0!==t));return n.length>0&&(e["#d"]=n),e}function _j(t){const e=t.filter(t=>DA(t.kind)),n=t.filter(t=>jA(t.kind)),r=[],i=t=>{if(0===t.length)return;const e=function(t){const e=new Set(t.map(t=>t.kind));return new Set(t.map(t=>t.pubkey)).sizeArray.isArray(t)?ZC(t):fk(t)),zk(t=>lO(t)));if(Array.isArray(n)){for(const t of n)lO(t);return ZC(n)}return lO(n),fk(n)}(t,e)}function kj(t,e){return hN(t)?t.pipe(dk(1),Ak(e)):e(t)}function Sj(t,e,n,r,i){const s=new ok,o=new ok,a=s.pipe(t,vk(t=>t.length>0),KC(t=>e(t).pipe(Ok(o),Tk({resetOnRefCountZero:!1,resetOnComplete:!1,resetOnError:!1}))),Ok(o),Tk()),l=()=>{o.next(),o.complete(),s.complete()};return i?.signal&&(i.signal.aborted?l():i.signal.addEventListener("abort",l,{once:!0})),Object.assign(t=>new hC(e=>{const i=a.pipe(dk(1),ik(),vk(e=>n(t,e)),r??uC).subscribe(e);return s.next(t),i}),{stop:l,[Symbol.dispose]:l})}function Ej(t){return(e,n)=>function(t,e,n){if("function"==typeof t)return t(e,n);if("object"==typeof t&&"request"in t)return t.request(e,n);throw new Error("Invalid upstream pool")}(t,e,n)}function Rj(t){return(...e)=>{return n=t(...e),new hC(t=>{let e;const r=i=>{const s=i?n.next(i):n.next(),o=n=>{if(n.done)return t.complete();const i=[];hN(n.value)?e=n.value.subscribe({next:e=>{i.push(e),t.next(e)},error:e=>{t.error(e)},complete:()=>{r(i)}}):(i.push(n.value),t.next(n.value),r(i))};s instanceof Promise?s.then(o,e=>t.error(e)):o(s)};return r(),()=>e?.unsubscribe()}).pipe(Tk());var n}}function Lj(t,e){return n=>kj(e,e=>0===e.length?hk:t(e,_j(n)))}function Tj(t){const e={...t};return t.relays&&(e.relays=[...t.relays]),e}function Pj(t,e){return n=>kj(e,e=>t(e,[{ids:n.map(t=>t.id)}]))}function Ij(t,e){return Pj(t,[e])}function Mj(t,e=Ij){const n=new Map;return r=>{const i=function(t){let e=new Map;for(const n of t){let t=CO(n.relays,void 0);for(const r of t)e.has(r)?e.get(r)?.push(n):e.set(r,[n])}return e}(r);return gN(...Array.from(i).map(([r,i])=>(r=>{let i=n.get(r);return i||(i=e(t,r),n.set(r,i)),i})(r)(i)))}}function Aj(t,e=t=>!!t){return ck(n=>{const r=e?n.pipe(t,vk(e),dk(1)):n.pipe(t,dk(1));return n.pipe(Ok(r))})}function Oj(t){return UC(e=>fk({ok:!1,from:t.url,message:e?.message||"Unknown error"}))}!function(t){t.Error="error",t.Missing="missing",t.Found="found"}(uj||(uj={}));var Nj,zj=class t{relays$=new kk([]);status$;get relays(){if(this.relays$ instanceof kk)return this.relays$.value;throw new Error("This group was created with an observable, relays are not available")}constructor(t){this.relays$=Array.isArray(t)?new kk(t):t,this.status$=this.relays$.pipe(Ak(t=>0===t.length?fk({}):gN(...t.map(t=>t.status$)).pipe(Lk((t,e)=>({...t,[e.url]:e}),{}),Mk({}))),Ik(1))}get controlled(){return this.relays$ instanceof kk==0}has(t){if(this.controlled)throw new Error("This group was created with an observable, relays are not available");return"string"==typeof t?this.relays.some(e=>e.url===t):this.relays.includes(t)}add(t){this.has(t)||this.relays$.next([...this.relays,t])}remove(t){this.has(t)&&this.relays$.next(this.relays.filter(e=>e!==t))}internalSubscription(t){const e=new WeakMap;return this.relays$.pipe(function(t){return Ax((e,n)=>{let r=null,i=!1;const s=()=>{i&&!r&&n.complete()};e.subscribe(xC(n,e=>{const i=r,o=r=xC(n,t=>n.next(t),()=>{r!==o&&null!==r||(r=null,s())});ZC(t(e)).subscribe(r),i?.unsubscribe()},()=>{i=!0,s()}))})}(n=>{const r=[];for(const i of n){if(e.has(i)){r.push(e.get(i));continue}const n=t(i).pipe(UC(t=>fk({type:"ERROR",from:i.url,error:t})));r.push(n),e.set(i,n)}return gN(...r)}),Tk())}internalPublish(t){const e=new WeakMap;return this.relays$.pipe(dk(1),Ak(n=>{const r=[];for(const i of n){if(e.has(i)){r.push(e.get(i));continue}const n=t(i).pipe(Oj(i));r.push(n),e.set(i,n)}return gN(...r)}),Tk())}req(t,e){return this.internalSubscription(n=>n.req(t,e))}event(t){return this.internalPublish(e=>e.event(t))}async negentropy(t,e,n,r){const i=(await Promise.all(this.relays.map(async t=>[t,await t.getSupported()]))).filter(([t,e])=>e?.includes(77)).map(([t])=>t);if(0===i.length)throw new Error("No relays support NIP-77 negentropy sync");if(!r?.parallel)throw new Error("Negentropy sync must be parallel (for now)");return await Promise.allSettled(i.map(i=>i.negentropy(t,e,n,r))),!0}publish(t,e){return dN(this.internalPublish(n=>ZC(n.publish(t,e))).pipe(Ax(function(t,e){(function(t,e){return Ax(tk(t,e,arguments.length>=2,!1,!0))})(ek,[])(t).subscribe(e)}),(n=[],Ax(function(t,e){var r=!1;t.subscribe(xC(e,function(t){r=!0,e.next(t)},function(){r||e.next(n),e.complete()}))}))));var n}request(e,n){const r=n?.complete??t.completeOnAny(t.completeAfterFirstRelay(5e3),t.completeOnAllEose());return this.internalSubscription(t=>t.req(e,{...n,reconnect:n?.reconnect??t.requestReconnect})).pipe(r?Aj(r):uC,Dk({first:n?.timeout??3e4}),vk(t=>"EVENT"===t.type),KC(t=>t.event),null===n?.eventStore?uC:kz(n?.eventStore??new uz),Tk())}subscription(t,e){return this.internalSubscription(n=>n.req(t,{...e,reconnect:e?.reconnect??n.subscriptionReconnect})).pipe(vk(t=>"EVENT"===t.type),KC(t=>t.event),null===e?.eventStore?uC:kz(e?.eventStore??new uz),Tk())}count(t,e=KN()){return this.relays$.pipe(Ak(n=>XC(Object.fromEntries(n.map(n=>[n.url,n.count(t,e)])))),Tk())}sync(t,e,n){return fN(async()=>{const t=(await Promise.all(this.relays.map(async t=>[t,await t.getSupported()]))).filter(([t,e])=>e?.includes(77)).map(([t])=>t);if(0===t.length)throw new Error("No relays support NIP-77 negentropy sync");return t}).pipe(Ak(r=>gN(...r.map(r=>r.sync(t,e,n)))),Tk())}static completeAfterFirstRelay(t=5e3){return e=>e.pipe(vk(t=>"EOSE"===t.type)).pipe(dk(1),Ak(()=>OC(t)),KC(()=>!0))}static completeOnAllEose(){return t=>t.pipe(vk(t=>"OPEN"===t.type||"EOSE"===t.type||"ERROR"===t.type),Lk((t,e)=>t.set(e.from,e.type),new Map),KC(t=>Array.from(t.values()).every(t=>"OPEN"!==t)))}static completeOnAny(...t){return ck(e=>gN(...t.map(t=>e.pipe(t))))}static completeOnAll(...t){return ck(e=>XC(t.map(t=>e.pipe(t))).pipe(KC(t=>t.every(t=>!!t))))}},Fj={url:"",deserializer:function(t){return JSON.parse(t.data)},serializer:function(t){return JSON.stringify(t)}},Dj=function(t){function e(e,n){var r=t.call(this)||this;if(r._socket=null,e instanceof hC)r.destination=n,r.source=e;else{var i=r._config=zx({},Fj);if(r._output=new ok,"string"==typeof e)i.url=e;else for(var s in e)e.hasOwnProperty(s)&&(i[s]=e[s]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");r.destination=new Sk}return r}return Nx(e,t),e.prototype.lift=function(t){var n=new e(this._config,this.destination);return n.operator=t,n.source=this,n},e.prototype._resetState=function(){this._socket=null,this.source||(this.destination=new Sk),this._output=new ok},e.prototype.multiplex=function(t,e,n){var r=this;return new hC(function(i){try{r.next(t())}catch(PD){i.error(PD)}var s=r.subscribe({next:function(t){try{n(t)&&i.next(t)}catch(PD){i.error(PD)}},error:function(t){return i.error(t)},complete:function(){return i.complete()}});return function(){try{r.next(e())}catch(PD){i.error(PD)}s.unsubscribe()}})},e.prototype._connectSocket=function(){var t=this,e=this._config,n=e.WebSocketCtor,r=e.protocol,i=e.url,s=e.binaryType,o=this._output,a=null;try{a=r?new n(i,r):new n(i),this._socket=a,s&&(this._socket.binaryType=s)}catch(c){return void o.error(c)}var l=new Gx(function(){t._socket=null,a&&1===a.readyState&&a.close()});a.onopen=function(e){if(!t._socket)return a.close(),void t._resetState();var n=t._config.openObserver;n&&n.next(e);var r=t.destination;t.destination=rC.create(function(e){if(1===a.readyState)try{var n=t._config.serializer;a.send(n(e))}catch(c){t.destination.error(c)}},function(e){var n=t._config.closingObserver;n&&n.next(void 0),e&&e.code?a.close(e.code,e.reason):o.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),t._resetState()},function(){var e=t._config.closingObserver;e&&e.next(void 0),a.close(),t._resetState()}),r&&r instanceof Sk&&l.add(r.subscribe(t.destination))},a.onerror=function(e){t._resetState(),o.error(e)},a.onclose=function(e){a===t._socket&&t._resetState();var n=t._config.closeObserver;n&&n.next(e),e.wasClean?o.complete():o.error(e)},a.onmessage=function(e){try{var n=t._config.deserializer;o.next(n(e))}catch(PD){o.error(PD)}}},e.prototype._subscribe=function(t){var e=this,n=this.source;return n?n.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(function(){var t=e._socket;0===e._output.observers.length&&(!t||1!==t.readyState&&0!==t.readyState||t.close(),e._resetState())}),t)},e.prototype.unsubscribe=function(){var e=this._socket;!e||1!==e.readyState&&0!==e.readyState||e.close(),this._resetState(),t.prototype.unsubscribe.call(this)},e}(ak),jj={},Uj=function(t,e){let n=Promise.resolve();if(e&&e.length>0){const t=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");r=e.map(e=>{var n;if(n=e=function(t){return"/"+t}(e),(e=import.meta.resolve?import.meta.resolve(n):new URL(n,import.meta.url).href)in jj)return;jj[e]=!0;const r=e.endsWith(".css");for(let s=t.length-1;s>=0;s--){const n=t[s];if(n.href===e&&(!r||"stylesheet"===n.rel))return}const i=document.createElement("link");return i.rel=r?"stylesheet":"modulepreload",r||(i.as="script"),i.crossOrigin="",i.href=e,s&&i.setAttribute("nonce",s),document.head.appendChild(i),r?new Promise((t,n)=>{i.addEventListener("load",t),i.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)))}):void 0}),n=Promise.all(r.map(t=>Promise.resolve(t).then(t=>({status:"fulfilled",value:t}),t=>({status:"rejected",reason:t}))))}var r;function i(t){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=t,window.dispatchEvent(e),!e.defaultPrevented)throw t}return n.then(e=>{for(const t of e||[])"rejected"===t.status&&i(t.reason);return t().catch(i)})},Bj="auth-required:",$j={count:3,delay:(t,e)=>OC(1e3*e),resetOnSuccess:!0};function qj(t){return"number"==typeof t?{...$j,count:t}:{...$j,...t??{}}}!function(t){t[t.RECEIVE=1]="RECEIVE",t[t.SEND=2]="SEND",t[t.BOTH=3]="BOTH"}(Nj||(Nj={}));var Vj=class extends Error{reason;constructor(t){super(t),this.reason=t,this.name="RelayClosedError"}},Wj=class extends Vj{constructor(t){super(t),this.name="AuthRequiredError"}},Hj={"auth-required":Wj,unsupported:Vj,error:Vj,blocked:Vj,restricted:Vj,"rate-limited":Vj,pow:Vj,invalid:Vj,duplicate:Vj,mute:Vj};function Gj(t){const e=Hj[t.split(":")[0]];return e?new e(t):null}var Zj,Kj,Yj={ids:["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],limit:0},Xj=class t{url;log=_N.extend("Relay");socket;_ready$=new kk(!0);ready$=this._ready$.asObservable();reconnectTimer;attempts$=new kk(0);connected$=new kk(!1);challenge$=new kk(null);authenticated$;authenticatedAs$;authentication$=new kk(null);authenticationResponse$=new kk(null);notices$=new kk([]);error$=new kk(null);message$;notice$;lastMessageReceivedAt=0;_lastMessageAt$=new kk(0);lastMessageAt$=this._lastMessageAt$.asObservable();status$;information$;_nip11=null;icon$;limitations$;supported$;open$=new ok;close$=new ok;closing$=new ok;reqs$=new kk({});get ready(){return this._ready$.value}get connected(){return this.connected$.value}get challenge(){return this.challenge$.value}get notices(){return this.notices$.value}get authenticated(){return!0===this.authenticationResponse?.ok}get authentication(){return this.authentication$.value}get authenticatedAs(){return this.authenticated?this.authentication?.pubkey??null:null}get authenticationResponse(){return this.authenticationResponse$.value}get information(){return this._nip11}get lastMessageAt(){return this._lastMessageAt$.value}get reqs(){return this.reqs$.value}eventTimeout=1e4;publishTimeout=3e4;keepAlive=3e4;enablePing=!1;pingFrequency=29e3;pingTimeout=2e4;subscriptionReconnect;requestReconnect;publishRetry;onUnresponsive;receivedAuthRequiredForReq=new kk(!1);receivedAuthRequiredForEvent=new kk(!1);authRequiredForRead$;authRequiredForPublish$;resetState(){null!==this.challenge$.value&&this.challenge$.next(null),this.authenticationResponse$.value&&this.authenticationResponse$.next(null),null!==this.authentication$.value&&this.authentication$.next(null),this.notices$.value.length>0&&this.notices$.next([]),this.receivedAuthRequiredForReq.value&&this.receivedAuthRequiredForReq.next(!1),this.receivedAuthRequiredForEvent.value&&this.receivedAuthRequiredForEvent.next(!1)}watchTower;internalSubscriptions=new Gx;reconnectSubscription=null;destroy$=new Sk(1);constructor(e,n){var r;this.url=e,this.log=this.log.extend(e),void 0!==n?.eventTimeout&&(this.eventTimeout=n.eventTimeout),void 0!==n?.publishTimeout&&(this.publishTimeout=n.publishTimeout),void 0!==n?.keepAlive&&(this.keepAlive=n.keepAlive),void 0!==n?.enablePing&&(this.enablePing=n.enablePing),void 0!==n?.pingFrequency&&(this.pingFrequency=n.pingFrequency),void 0!==n?.pingTimeout&&(this.pingTimeout=n.pingTimeout),void 0!==n?.onUnresponsive&&(this.onUnresponsive=n.onUnresponsive),this.subscriptionReconnect=qj(n?.subscriptionReconnect),this.requestReconnect=qj(n?.requestReconnect),this.publishRetry={...$j,...n?.publishRetry??{}},this.authenticated$=this.authenticationResponse$.pipe(KC(t=>!0===t?.ok)),this.authenticatedAs$=XC([this.authenticated$,this.authentication$]).pipe(KC(([t,e])=>t&&e?e.pubkey:null)),this.reconnectTimer=t.createReconnectTimer(e),this.internalSubscriptions.add(this.open$.subscribe(()=>{this.log("Connected"),this.connected$.next(!0),this.attempts$.next(0),this.error$.next(null),this.resetState()})),this.internalSubscriptions.add(this.close$.subscribe(t=>{this.connected$.value?this.log("Disconnected"):this.log("Failed to connect"),this.connected$.value&&this.connected$.next(!1),this.attempts$.next(this.attempts$.value+1),this.resetState(),t.wasClean||this.startReconnectTimer(t)})),this.socket=(r={url:e,openObserver:this.open$,closeObserver:this.close$,closingObserver:this.closing$,WebSocketCtor:n?.WebSocket},new Dj(r)),this.information$=fN(()=>(this.log("Fetching NIP-11 information document"),t.fetchInformationDocument(this.url))).pipe(UC(()=>fk(null)),zk(t=>this._nip11=t),Ik(1)),this.limitations$=this.information$.pipe(KC(t=>t?t.limitation:null)),this.supported$=this.information$.pipe(KC(t=>t&&Array.isArray(t.supported_nips)?t.supported_nips.filter(t=>"number"==typeof t):null)),this.icon$=this.information$.pipe(KC(t=>t?.icon||new URL("/favicon.ico",mO(this.url)).toString())),this.authRequiredForRead$=this.receivedAuthRequiredForReq,this.authRequiredForPublish$=this.receivedAuthRequiredForEvent,this.internalSubscriptions.add(this.authRequiredForRead$.pipe(vk(t=>!0===t),dk(1)).subscribe(()=>this.log("Auth required for REQ"))),this.internalSubscriptions.add(this.authRequiredForPublish$.pipe(vk(t=>!0===t),dk(1)).subscribe(()=>this.log("Auth required for EVENT"))),this.status$=XC({url:fk(this.url),connected:this.connected$,authenticated:this.authenticated$,authenticatedAs:this.authenticatedAs$,ready:this._ready$,authRequiredForRead:this.authRequiredForRead$,authRequiredForPublish:this.authRequiredForPublish$,challenge:this.challenge$.asObservable()}).pipe(Ik(1));const i=this.socket.pipe(vk(t=>Array.isArray(t)&&"NOTICE"===t[0]),KC(t=>t[1]),Lk((t,e)=>[...t,e],[]),zk(t=>this.notices$.next(t))),s=this.socket.pipe(vk(t=>"AUTH"===t[0]),KC(t=>t[1]),zk(t=>{this.log("Received AUTH challenge",t),this.challenge$.next(t)})),o=new ok,a=this.socket.pipe(zk(t=>{const e=Date.now();this.lastMessageReceivedAt=e,this._lastMessageAt$.next(e),o.next(t)}));this.message$=o.asObservable(),this.notice$=this.message$.pipe(vk(t=>Array.isArray(t)&&"NOTICE"===t[0]),KC(t=>t[1]));const l=this.connected$.pipe(Ak(t=>t&&this.enablePing?OC(this.pingFrequency,this.pingFrequency).pipe(QC(()=>{if(Date.now()-this.lastMessageReceivedAtArray.isArray(e)&&("EOSE"===e[0]||"CLOSED"===e[0])&&e[1]===t),dk(1),Dk({first:this.pingTimeout,with:()=>{const t=Date.now(),e=this.onUnresponsive?.({url:this.url,lastMessageAt:this.lastMessageReceivedAt,now:t,attempts:this.attempts$.value})??"reconnect",n=new Error(`Relay ping timeout after ${this.pingTimeout}ms`);return"reconnect"===e?(this.log("Relay connection has become unresponsive, triggering reconnect"),this.startReconnectTimer(n)):"close"===e?(this.log("Relay connection has become unresponsive, closing connection"),this.error$.next(n),this.socket.complete()):this.log("Relay connection has become unresponsive (ignoring per policy)"),mN}}),_k(()=>this.send(["CLOSE",t])))})):mN),UC(()=>mN));this.watchTower=this.ready$.pipe(Ak(t=>t?gN(a,i,s,l).pipe(pk(),UC(t=>(this.startReconnectTimer(t instanceof Error?t:new Error("Connection error")),mN)),Tk({resetOnRefCountZero:()=>OC(this.keepAlive).pipe(Ok(this.destroy$))})):mN),Tk())}startReconnectTimer(t){this.ready&&(this.error$.next(t instanceof Error?t:new Error("Connection error")),this._ready$.next(!1),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=this.reconnectTimer(t,this.attempts$.value).pipe(dk(1)).subscribe(()=>{this.reconnectSubscription=null,this._ready$.next(!0)}))}waitForAuth(t,e){return XC([t,this.authenticated$]).pipe(Ck(this.watchTower),vk(([t,e])=>!t||e),dk(1),Ak(()=>e))}waitForReady(t){return this.ready?t:this.ready$.pipe(vk(t=>t),dk(1),Ak(()=>t))}multiplex(t,e,n){return this.socket.multiplex(t,e,n)}send(t){this.socket.next(t)}req(t,e){const n=e?.id??KN(),r=e?.waitForAuth??!0;let i;if("function"==typeof t){const e=t(this);i=(hN(e)?e:gN(fk(e),mN)).pipe(KC(t=>Array.isArray(t)?t:[t]))}else i=(hN(t)?t:gN(fk(t),mN)).pipe(KC(t=>Array.isArray(t)?t:[t]));const s=i.pipe(pk(),wk(!0));let o=!1,a=!1;const l=this.socket.pipe(vk(t=>Array.isArray(t)&&("EVENT"===t[0]||"CLOSED"===t[0]||"EOSE"===t[0])&&t[1]===n),KC(t=>"EVENT"===t[0]&&"object"==typeof t[2]?{type:"EVENT",from:this.url,id:t[1],event:t[2]}:"CLOSED"===t[0]?{type:"CLOSED",from:this.url,id:t[1],reason:t[2]??""}:{type:"EOSE",from:this.url,id:t[1]}),zk(t=>{if("CLOSED"===t.type){o=!0;const e=Gj(t.reason);if(e)throw e;a=!0}}),Nk(t=>"CLOSED"!==t.type,!0),Tk()),c=i.pipe(KC(t=>(o=!1,a=!1,this.socket.next(["REQ",n,...t]),this.reqs$.next({...this.reqs$.value,[n]:t}),{type:"OPEN",id:n,filters:t,from:this.url})),_k(()=>{o||this.socket.next(["CLOSE",n]);const{[n]:t,...e}=this.reqs$.value;this.reqs$.next(e)}),Ak(t=>l.pipe(Mk(t)))),u=gN(this.watchTower,c).pipe(Ok(l.pipe(pk(),wk(!0))),Ok(s),zk(t=>{"EVENT"===t.type&&wO(t.event,this.url)}),Tk()),h=r?this.waitForAuth(this.authRequiredForRead$,u):u;return fN(()=>this.waitForReady(h)).pipe(Rk({delay:t=>t instanceof Wj?(this.log("Auth required for REQ"),this.receivedAuthRequiredForReq.next(!0),r?this.authenticated$.pipe(vk(t=>t),dk(1)):gk(()=>t)):gk(()=>t)}),this.customConnectionRetryOperator(e?.reconnect),this.customRepeatOperator(e?.resubscribe,()=>a),Tk())}count(t,e=KN()){let n=!1;const r=this.socket.pipe(vk(t=>Array.isArray(t)&&("COUNT"===t[0]||"CLOSED"===t[0])&&t[1]===e),KC(t=>{if("COUNT"===t[0])return t[2];if("CLOSED"===t[0]){n=!0;const e=Gj(t[2]??"");if(e)throw e}return null}),Nk(t=>null!==t,!0),vk(t=>null!==t),Tk()),i=fN(()=>(n=!1,this.socket.next(Array.isArray(t)?["COUNT",e,...t]:["COUNT",e,t]),r)).pipe(_k(()=>{n||this.socket.next(["CLOSE",e])})),s=gN(this.watchTower,i).pipe(Ok(r.pipe(pk(),wk(!0))),dk(1),UC(t=>(t instanceof Wj&&!this.receivedAuthRequiredForReq.value&&(this.log("Auth required for COUNT"),this.receivedAuthRequiredForReq.next(!0)),gk(()=>t))),Dk({first:1e4,with:()=>gk(()=>new Error("COUNT timeout"))}));return this.waitForReady(this.waitForAuth(this.authRequiredForRead$,s)).pipe(Tk())}event(t,e="EVENT"){const n=fN(()=>(this.socket.next([e,t]),this.socket.pipe(vk(e=>"OK"===e[0]&&e[1]===t.id),KC(t=>({ok:t[2],message:t[3],from:this.url}))))).pipe(Tk()),r=gN(this.watchTower,n).pipe(Ok(n.pipe(pk(),wk(!0))),dk(1),zk(({ok:t,message:e})=>{!1===t&&e?.startsWith(Bj)&&!this.receivedAuthRequiredForEvent.value&&(this.log("Auth required for publish"),this.receivedAuthRequiredForEvent.next(!0))}),Dk({first:this.eventTimeout,with:()=>fk({ok:!1,from:this.url,message:"Timeout"})}));return"AUTH"===e?this.waitForReady(r).pipe(Tk()):this.waitForReady(this.waitForAuth(this.authRequiredForPublish$,r)).pipe(Tk())}auth(t){return this.authentication$.next(t),dN(this.event(t,"AUTH").pipe(zk(t=>this.authenticationResponse$.next(t))))}async negentropy(t,e,n,r){if(!1===(await this.getSupported())?.includes(77))throw new Error("Relay does not support NIP-77");const{buildStorageVector:i,buildStorageFromFilter:s,negentropySync:o}=await Uj(async()=>{const{buildStorageVector:t,buildStorageFromFilter:e,negentropySync:n}=await import("./negentropy-Bkdf3Z9m.js");return{buildStorageVector:t,buildStorageFromFilter:e,negentropySync:n}},[]);return o(Array.isArray(t)?i(t):await s(t,e),this.socket,e,n,r)}authenticate(t){if(!this.challenge)throw new Error("Have not received authentication challenge");const e=t.signEvent(function(t,e){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",t],["challenge",e]],content:""}}(this.url,this.challenge));return dN((e instanceof Promise?ZC(e):fk(e)).pipe(Ak(t=>this.auth(t))))}customRetryOperator(t,e){return!1===t||void 0===t?uC:"number"==typeof t?Rk({...e,count:t}):!0===t?e?Rk(e):Rk():Rk({...e,...t})}customConnectionRetryOperator(t,e){if(!1===t||void 0===t)return uC;const n="number"==typeof t?{...e,count:t}:!0===t?e??{}:{...e,...t};return Rk({...n,delay:(t,e)=>t instanceof Vj?gk(()=>t):"number"==typeof n.delay?OC(n.delay):"function"==typeof n.delay?n.delay(t,e):fk(null)})}customRepeatOperator(t,e){if(!1===t||void 0===t)return uC;const n=n=>{if(e&&!e())return hk;if("object"==typeof t){if("number"==typeof t.delay)return OC(t.delay);if("function"==typeof t.delay)return t.delay(n)}return fk(null)};return Ek(!0===t?{delay:n}:"number"==typeof t?{count:t,delay:n}:{...t,delay:n})}customTimeoutOperator(t,e){return!1===t?uC:Ez(!0===t?e:t??e)}subscription(t,e){return this.req(t,{...e,reconnect:e?.reconnect??this.subscriptionReconnect}).pipe(vk(t=>"EOSE"===t.type||"EVENT"===t.type),KC(t=>"EOSE"===t.type?"EOSE":t.event),Tk())}request(t,e){return this.req(t,{...e,reconnect:e?.reconnect??this.requestReconnect}).pipe(e?.complete?Aj(e?.complete):uC,Dk({first:e?.timeout??3e4}),Nk(t=>"EOSE"!==t.type),vk(t=>"EVENT"===t.type),KC(t=>t.event),Tk())}publish(t,e){return dN(this.event(t).pipe(QC(t=>!1===t.ok&&t.message?.startsWith(Bj)?gk(()=>new Wj(t.message??"")):fk(t)),this.customRetryOperator(e?.retries??e?.reconnect??!0,this.publishRetry),this.customTimeoutOperator(e?.timeout,this.publishTimeout)))}sync(t,e,n=Nj.RECEIVE){return new hC(r=>{const i=new AbortController;let s=!1;return this.negentropy(t,e,async(e,i)=>{if(n&Nj.SEND&&e.length>0){const n=await(async e=>Array.isArray(t)?t.filter(t=>e.includes(t.id)):t.getByFilters({ids:e}))(e);await Promise.allSettled(n.map(async t=>{const e=await dN(this.event(t));return e.ok&&wO(t,this.url),e}))}n&Nj.RECEIVE&&i.length>0&&await dN(this.req({ids:i}).pipe(Nk(t=>"EOSE"!==t.type),vk(t=>"EVENT"===t.type),KC(t=>t.event),Reflect.has(t,"add")?Cz(t):uC,zk(t=>r.next(t))))},{signal:i.signal}).then(()=>{s||r.complete()}).catch(t=>{s||r.error(t)}),()=>{s||(s=!0,i.abort())}}).pipe(Tk())}close(){this.destroy$.next(),this.destroy$.complete(),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=null,this.internalSubscriptions.unsubscribe(),this.connected$.value&&this.connected$.next(!1),this._ready$.next(!1),this._ready$.complete(),this.socket.unsubscribe()}async getInformation(){return pN(this.information$)}async getLimitations(){return pN(this.limitations$)}async getSupported(){return pN(this.supported$)}static fetchInformationDocument(t){return ZC(fetch(mO(t),{headers:{Accept:"application/nostr+json"}}).then(t=>t.json())).pipe(UC(()=>fk(null)),Ez(1e4))}static createReconnectTimer(t){return(t,e=0)=>OC(Math.min(1e3*Math.pow(1.5,e),3e5))}static afterOpen(t){return e=>e.pipe(vk(t=>"OPEN"===t.type),Ak(()=>e.pipe(t)))}static completeOr(...t){return e=>XC(t.map(t=>e.pipe(t,Mk(!1)))).pipe(KC(t=>t.some(t=>!!t)))}static completeAnd(...t){return e=>XC(t.map(t=>e.pipe(t,Mk(!1)))).pipe(KC(t=>t.every(t=>!!t)))}static defaultComplete(t,e=1e4){return this.completeOr(()=>OC(t),this.afterOpen(()=>OC(e)))}},Jj=class{options;relays$=new kk(new Map);get relays(){return this.relays$.value}status$;ignoreOffline=!1;add$=new ok;remove$=new ok;constructor(t){this.options=t,this.status$=this.relays$.pipe(KC(t=>Array.from(t.values())),Ak(t=>0===t.length?fk({}):gN(...t.map(t=>t.status$)).pipe(Lk((t,e)=>({...t,[e.url]:e}),{}),Mk({}))),Ik(1))}relay(t){t=yO(t);let e=this.relays.get(t);return e||(e=new Xj(t,this.options),this.relays.set(t,e),this.relays$.next(this.relays),this.add$.next(e),e)}group(t,e=this.ignoreOffline){let n=Array.isArray(t)?t.map(t=>this.relay(t)):t.pipe(KC(t=>t.map(t=>this.relay(t))));return e&&(n=(Array.isArray(n)?fk(n):n).pipe(Ak(t=>0===t.length?fk([]):XC(t.map(t=>t.ready$.pipe(vk(t=>t),dk(1),KC(()=>t),Mk(null)))).pipe(KC(t=>t.filter(t=>null!==t)))))),new zj(n)}remove(t,e=!0){let n;if("string"==typeof t){if(n=this.relays.get(t),!n)return}else{if(!Array.from(this.relays.values()).some(e=>e===t))return;n=t}e&&n?.close(),this.relays.delete(n.url),this.relays$.next(this.relays),this.remove$.next(n)}close(){for(const t of[...this.relays.values()])this.remove(t,!0)}req(t,e,n){return this.group(t).req(e,n)}event(t,e){return this.group(t).event(e)}negentropy(t,e,n,r,i){return this.group(t).negentropy(e,n,r,i)}publish(t,e,n){return this.group(t).publish(e,n)}request(t,e,n){return this.group(t).request(e,n)}subscription(t,e,n){return this.group(t).subscription(e,n)}subscriptionMap(t,e){const n=hN(t)?t:fk(t);return this.group(n.pipe(KC(t=>Object.keys(t)))).subscription(t=>n.pipe(KC(e=>e[t.url]),mk(FN)),e)}outboxSubscription(t,e,n){const r=hN(t)?t.pipe(KC(t=>ZN(t,e))):ZN(t,e);return this.subscriptionMap(r,n)}count(t,e,n){return this.group(t,!1).count(e,n)}sync(t,e,n,r){return this.group(t,!1).sync(e,n,r)}},Qj=(t,e)=>e.some(e=>t instanceof e),tU=new WeakMap,eU=new WeakMap,nU=new WeakMap,rU={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return tU.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return sU(t[e])},set:(t,e,n)=>(t[e]=n,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function iU(t){rU=t(rU)}function sU(t){if(t instanceof IDBRequest)return function(t){const e=new Promise((e,n)=>{const r=()=>{t.removeEventListener("success",i),t.removeEventListener("error",s)},i=()=>{e(sU(t.result)),r()},s=()=>{n(t.error),r()};t.addEventListener("success",i),t.addEventListener("error",s)});return nU.set(e,t),e}(t);if(eU.has(t))return eU.get(t);const e=function(t){return"function"==typeof t?(e=t,(Kj||(Kj=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(oU(this),t),sU(this.request)}:function(...t){return sU(e.apply(oU(this),t))}):(t instanceof IDBTransaction&&function(t){if(tU.has(t))return;const e=new Promise((e,n)=>{const r=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",s),t.removeEventListener("abort",s)},i=()=>{e(),r()},s=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",i),t.addEventListener("error",s),t.addEventListener("abort",s)});tU.set(t,e)}(t),Qj(t,Zj||(Zj=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,rU):t);var e}(t);return e!==t&&(eU.set(t,e),nU.set(e,t)),e}var oU=t=>nU.get(t),aU=["get","getKey","getAll","getAllKeys","count"],lU=["put","add","delete","clear"],cU=new Map;function uU(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(cU.get(e))return cU.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=lU.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!aU.includes(n))return;const s=async function(t,...e){const s=this.transaction(t,i?"readwrite":"readonly");let o=s.store;return r&&(o=o.index(e.shift())),(await Promise.all([o[n](...e),i&&s.done]))[0]};return cU.set(e,s),s}iU(t=>({...t,get:(e,n,r)=>uU(e,n)||t.get(e,n,r),has:(e,n)=>!!uU(e,n)||t.has(e,n)}));var hU=["continue","continuePrimaryKey","advance"],dU={},pU=new WeakMap,fU=new WeakMap,gU={get(t,e){if(!hU.includes(e))return t[e];let n=dU[e];return n||(n=dU[e]=function(...t){pU.set(this,fU.get(this)[e](...t))}),n}};async function*mU(...t){let e=this;if(e instanceof IDBCursor||(e=await e.openCursor(...t)),!e)return;const n=new Proxy(e,gU);for(fU.set(n,e),nU.set(n,oU(e));e;)yield n,e=await(pU.get(n)||e.continue()),pU.delete(n)}function yU(t,e){return e===Symbol.asyncIterator&&Qj(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===e&&Qj(t,[IDBIndex,IDBObjectStore])}function vU(t){return 0===t||3===t||t>=1e4&&t<2e4}function bU(t){return t>=3e4&&t<4e4}function wU(t){return t>=2e4&&t<3e4}iU(t=>({...t,get:(e,n,r)=>yU(e,n)?mU:t.get(e,n,r),has:(e,n)=>yU(e,n)||t.has(e,n)}));var _U=Symbol.for("indexable-tags");function xU(t,e){if(t.ids&&-1===t.ids.indexOf(e.id))return!1;if(t.kinds&&-1===t.kinds.indexOf(e.kind))return!1;if(t.authors&&-1===t.authors.indexOf(e.pubkey))return!1;if(t.since&&e.created_att.until)return!1;const n=function(t){let e=Reflect.get(t,_U);if(!e){e=new Set;for(const n of t.tags)n.length>=2&&1===n[0].length&&e.add(n[0]+":"+n[1]);Reflect.set(t,_U,e)}return e}(e);for(const r in t)if("&"===r[0]){const e=r.slice(1),i=t[r];if(i&&i.length>0)for(const t of i)if(!n.has(e+":"+t))return!1}for(const r in t)if("#"===r[0]){const e=r.slice(1),i=t[r];if(i){const r=t[`&${e}`],s=r?i.filter(t=>!r.includes(t)):i;if(0===s.length)continue;if(!s.some(t=>n.has(e+":"+t)))return!1}}return!0}function CU(t,e){for(let n=0;nt.length>=2&&1===t[0].length&&SU.includes(t[0])).map(t=>t[0]+t[1])}function LU(t){if(Reflect.has(t,EU))return Reflect.get(t,EU);let e;if(vU(t.kind)||bU(t.kind)){const n=t.tags.find(t=>"d"===t[0])?.[1];e=t.kind+":"+t.pubkey+":"+(n??"")}else e=t.id;return Reflect.set(t,EU,e),e}async function TU(t="nostr-idb",e){return await function(t,e,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(t,e),a=sU(o);return r&&o.addEventListener("upgradeneeded",t=>{r(sU(o.result),t.oldVersion,t.newVersion,sU(o.transaction),t)}),n&&o.addEventListener("blocked",t=>n(t.oldVersion,t.newVersion,t)),a.then(t=>{s&&t.addEventListener("close",()=>s()),i&&t.addEventListener("versionchange",t=>i(t.oldVersion,t.newVersion,t))}).catch(()=>{}),a}(t,3,{...e,async upgrade(t,n,r,i,s){if(0===n){const e=t.createObjectStore("events");e.createIndex("id","event.id",{unique:!0}),e.createIndex("pubkey","event.pubkey"),e.createIndex("kind","event.kind"),e.createIndex("created_at","event.created_at"),e.createIndex("tags","tags",{multiEntry:!0}),t.createObjectStore("used",{keyPath:"uid"}).createIndex("date","date")}1===n&&(t.deleteObjectStore("events"),t.deleteObjectStore("used"),t.deleteObjectStore("seen")),n<=2&&await async function(t){const e=t.objectStore("events");let n=await e.openCursor();const r=[];for(;n;){const t=n.primaryKey,e=n.value,i=e.event;if(vU(i.kind)||bU(i.kind)){const n=LU(i);t!==n&&r.push({oldKey:t,newKey:n,value:e})}n=await n.continue()}for(const{oldKey:i,newKey:s,value:o}of r)await e.delete(i),await e.put(o,s)}(i),e?.upgrade&&e.upgrade(t,n,r,i,s)}})}function PU(t,e){return e.created_at-t.created_at}var IU=a({countEventsForFilters:()=>BU,getEventsForFilters:()=>UU,getIdsForFilter:()=>DU,getIdsForFilters:()=>jU,queryForKinds:()=>zU,queryForPubkeys:()=>MU,queryForTag:()=>AU,queryForTagAnd:()=>OU,queryForTime:()=>FU});function MU(t,e=[],n){const r=[],i=new Set;if(n)for(const l of e){const t=n.getPubkeyIndex(l);if(t){for(const e of t)i.add(e);r.push(l)}}if(r.length===e.length)return Promise.resolve(i);const s=t.transaction("events","readonly"),o=s.objectStore("events").index("pubkey"),a=e.filter(t=>!r.includes(t)).map(t=>o.getAllKeys(t).then(e=>((t,e)=>{for(const n of e)i.add(n);n&&n.setPubkeyIndex(t,new Set(e))})(t,e)));return s.commit(),Promise.all(a).then(()=>i)}function AU(t,e,n,r){const i=[],s=new Set;if(r)for(const c of n){const t=r.getTagIndex(e+c);if(t){for(const e of t)s.add(e);i.push(c)}}if(i.length===n.length)return Promise.resolve(s);const o=t.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.map(t=>a.getAllKeys(e+t).then(n=>((t,n)=>{for(const e of n)s.add(e);r&&r.setTagIndex(e+t,new Set(n))})(t,n)));return o.commit(),Promise.all(l).then(()=>s)}function OU(t,e,n,r){if(0===n.length)return Promise.resolve(new Set);if(1===n.length)return AU(t,e,n,r);const i=[],s=[];if(r)for(const c of n){const t=r.getTagIndex(e+c);t&&(s.push(t),i.push(c))}if(i.length===n.length)return Promise.resolve(NU(s));const o=t.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.filter(t=>!i.includes(t)).map(t=>a.getAllKeys(e+t).then(n=>((t,n)=>{const i=new Set(n);s.push(i),r&&r.setTagIndex(e+t,i)})(t,n)));return o.commit(),Promise.all(l).then(()=>NU(s))}function NU(t){if(0===t.length)return new Set;const e=t.slice().sort((t,e)=>t.size-e.size);let n=e[0];for(let r=1;r!r.includes(t)).map(t=>o.getAllKeys(t).then(e=>((t,e)=>{for(const n of e)i.add(n);n&&n.setKindIndex(t,new Set(e))})(t,e)));return s.commit(),Promise.all(a).then(()=>i)}async function FU(t,e,n){let r;if(void 0!==e&&void 0!==n)r=IDBKeyRange.bound(e,n);else if(void 0!==e)r=IDBKeyRange.lowerBound(e);else{if(void 0===n)throw new Error("Missing since or until");r=IDBKeyRange.upperBound(n)}return(await t.getAllKeysFromIndex("events","created_at",r)).reverse()}async function DU(t,e,n){if(e.search)return new Set;if(e.ids)return new Set(e.ids);let r=null;const i=t=>{const e=t instanceof Set?t:new Set(t);if(r)for(const n of r)e.has(n)||r.delete(n);else r=e;return r};let s=null;void 0!==e.since&&(s=await FU(t,e.since,e.until),i(s));for(const o of SU){const r=e[`&${o}`],s=e[`#${o}`];if(r?.length&&i(await OU(t,o,r,n)),s?.length){const e=r?.length?s.filter(t=>!r.includes(t)):s;e.length>0&&i(await AU(t,o,e,n))}}if(e.authors&&i(await MU(t,e.authors,n)),e.kinds&&i(await zU(t,e.kinds,n)),void 0===e.since&&void 0!==e.until&&(s=await FU(t,e.since,e.until),i(s)),e.limit&&s){const t=new Set;for(const n of s){if(t.size>=e.limit)break;r.has(n)&&t.add(n)}return t}if(null===r)throw new Error("Empty filter");return r}async function jU(t,e,n){if(0===e.length)throw new Error("No Filters");let r=new Set;for(const i of e){const e=await DU(t,i,n);for(const t of e)r.add(t)}return r}async function UU(t,e,n,r){const i=await jU(t,e,n);return await async function(t,e,n,r){const i=[];let s=[];if(r)for(const d of e){const t=r.get(d);t?i.push(t):s.push(d)}else s=e;const o=t.transaction("events","readonly"),a=o.objectStore("events"),l=t=>t&&i.push(t.event),c=Array.from(s).map(t=>a.get(t).then(l));o.commit();const u=await Promise.all(c).then(()=>i.sort(PU));let h=1/0;for(const d of n)d.limit&&d.limith&&(u.length=h),u}(t,Array.from(i),e,r)}async function BU(t,e,n){return(await jU(t,e,n)).size}var $U=wN.default("nostr-idb"),qU=$U.extend("prune");async function VU(t,e,n){const r=t.transaction("events","readwrite"),i=r.objectStore("events"),s=await i.get(e);if(!s)return await r.commit(),!1;if(await i.delete(e),await r.commit(),n){const t=s.event;n.removeEvent(t)}return!0}var WU=$U.extend("WriteQueue"),HU=class{db;queuedIds=new Set;eventQueue=[];lastUsedQueue=new Set;processEvents=null;constructor(t){this.db=t}addEvent(t){const e=LU(t);this.queuedIds.has(e)||(this.eventQueue.push(t),this.queuedIds.add(e),this.touch(t))}addEvents(t){const e=t.filter(t=>!this.queuedIds.has(LU(t)));if(0!==e.length){this.eventQueue.push(...e);for(const t of e)this.queuedIds.add(LU(t));this.touch(e)}}touch(t){if(Array.isArray(t))for(const e of t)this.lastUsedQueue.add(LU(e));else this.lastUsedQueue.add(LU(t))}matchPending(t){return this.eventQueue.filter(e=>CU(t,e))}async flush(t=1e3){if(this.eventQueue.length>0){let e=[];for(let n=0;nfunction(t){if("object"!=typeof t||null===t)return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.id)return!1;if(!/^[a-f0-9]{64}$/.test(t.id))return!1;if("string"!=typeof t.pubkey)return!1;if(!/^[a-f0-9]{64}$/.test(t.pubkey))return!1;if(!Array.isArray(t.tags))return!1;for(const e of t.tags){if(!Array.isArray(e))return!1;for(const t of e)if("string"!=typeof t)return!1}return!0}(t))).filter(t=>vU(t.kind)||bU(t.kind)),r={};if(n.length>0){const e=t.transaction("events","readonly"),i=n.map(t=>{const n=LU(t);return e.store.get(n).then(t=>t&&(r[n]=t.event.created_at))});e.commit(),await Promise.all(i)}const i=t.transaction("events","readwrite");for(const s of e){const t=LU(s);(!r[t]||s.created_at>r[t])&&i.objectStore("events").put({event:s,tags:RU(s)},t)}await i.commit()}(this.db,e),WU(`Wrote ${e.length} to database`),this.eventQueue.length>0&&WU(`${this.eventQueue.length} left`)}this.lastUsedQueue.size>0&&(await async function(t,e){const n=t.transaction("used","readwrite"),r=Math.floor((new Date).valueOf()/1e3);for(const i of e)n.objectStore("used").put({uid:i,date:r});await n.commit()}(this.db,this.lastUsedQueue),this.lastUsedQueue.clear())}clear(){this.eventQueue=[]}},GU=$U.extend("cache:indexes"),ZU=class extends Set{type;key;constructor(t,e,n){super(t),this.type=e,this.key=n}},KU=class{kinds=new Map;pubkeys=new Map;tags=new Map;get count(){return this.kinds.size+this.pubkeys.size+this.tags.size}max=1e3;lastUsed=[];useIndex(t){const e=this.lastUsed.indexOf(t);-1!==e&&this.lastUsed.splice(e,e+1),this.lastUsed.push(t)}getKindIndex(t){const e=this.kinds.get(t);return e&&this.useIndex(e),e}setKindIndex(t,e){const n=new ZU(e,"kind",t);this.kinds.set(t,n),this.useIndex(n),this.pruneIndexes()}getPubkeyIndex(t){const e=this.pubkeys.get(t);return e&&this.useIndex(e),e}setPubkeyIndex(t,e){const n=new ZU(e,"pubkey",t);this.pubkeys.set(t,n),this.useIndex(n),this.pruneIndexes()}getTagIndex(t){const e=this.tags.get(t);return e&&this.useIndex(e),e}setTagIndex(t,e){const n=new ZU(e,"tag",t);this.tags.set(t,n),this.useIndex(n),this.pruneIndexes()}addEventToIndexes(t){const e=LU(t);this.getKindIndex(t.kind)?.add(e),this.getPubkeyIndex(t.pubkey)?.add(e);const n=RU(t);for(const r of n)this.getTagIndex(r)?.add(e)}removeEvent(t){const e=LU(t);this.getKindIndex(t.kind)?.delete(e),this.getPubkeyIndex(t.pubkey)?.delete(e);const n=RU(t);for(const r of n)this.getTagIndex(r)?.delete(e)}clear(){this.kinds.clear(),this.pubkeys.clear(),this.tags.clear(),this.lastUsed=[]}pruneIndexes(){for(;this.lastUsed.length>0&&this.lastUsed.length>this.max;){const t=this.lastUsed.shift();if(!t)return;switch(GU(`Forgetting ${t.type}:${t.key}`),t.type){case"kind":this.kinds.delete(t.key);break;case"pubkey":this.pubkeys.delete(t.key);break;case"tag":this.tags.delete(t.key)}}}},YU={batchWrite:1e3,writeInterval:100,cacheIndexes:1e3,pruneInterval:6e4,maxEvents:1e4},XU=$U.extend("nostridb"),JU=class{options;running=!1;writeInterval;pruneInterval;eventMap=new Map;writeQueue=null;indexCache;db=null;baseEoseTimeout=4400;subscriptions=new Map;constructor(t,e={}){this.options={...YU,...e},t&&(this.db=t,this.writeQueue=new HU(t)),this.indexCache=new KU,this.indexCache.max=this.options.cacheIndexes,this.start()}async getDb(){return this.db||(this.db=await TU()),this.db}async getWriteQueue(){if(this.writeQueue)return this.writeQueue;const t=await this.getDb();return this.writeQueue=new HU(t),this.writeQueue}async flush(){await(await this.getWriteQueue()).flush(),this.writeInterval=setTimeout(this.flush.bind(this),this.options.writeInterval)}async start(){if(this.running)return;XU("Starting"),this.running=!0;const t=await this.getDb();await this.flush(),this.pruneInterval=setInterval(()=>{!async function(t,e){const n=await function(t){return t.transaction("events","readonly").store.count()}(t);if(n<=e)return;const r=n-e;if(r<=0)return;qU(`Pruning database to ${e}`);const i=(await t.getAll("used")).sort((t,e)=>t.date-e.date),s=[];let o=r;for(const u of i){if(o<=0)break;const t=u.uid;s.push(t),o--}if(0===s.length)return;const a=t.transaction("events","readwrite"),l=t.transaction("used","readwrite"),c=[];for(const u of s)c.push(a.store.delete(u)),c.push(l.store.delete(u));a.commit(),l.commit(),await Promise.all(c),qU(`Removed ${s.length} old events`)}(t,this.options.maxEvents)},this.options.pruneInterval)}async stop(){this.running&&(this.writeInterval&&(clearTimeout(this.writeInterval),this.writeInterval=void 0),this.pruneInterval&&(clearInterval(this.pruneInterval),this.pruneInterval=void 0),this.running=!1,XU("Stopped"))}async add(t){wU(t.kind)||((await this.getWriteQueue()).addEvent(t),this.indexCache.addEventToIndexes(t));const e=LU(t);if(!this.eventMap.has(e)){wU(t.kind)||this.eventMap.set(e,t);for(const[e,n]of this.subscriptions)n.event&&CU(n.filters,t)&&n.event(t)}return!0}async event(t){return(await(await this.getDb()).get("events",t))?.event}async replaceable(t,e,n){return this.event([t,e,n??""].join(":"))}async count(t){const e=Array.isArray(t)?t:[t],n=await this.getDb();return await BU(n,e)}async query(t){const e=Array.isArray(t)?t:[t],n=await this.getDb(),r=(await this.getWriteQueue()).matchPending(e),i=await UU(n,e,this.indexCache,this.eventMap);this.addToEventMaps(i);const s=new Set(r.map(t=>LU(t)));return r.length>0?[...i.filter(t=>!s.has(LU(t))),...r].sort(PU):i}async*subscribe(t){const e=Array.isArray(t)?t:[t],n=[],r=new Set;let i=null,s=!1;const o=this.subscribeInternal(e,{event:t=>{const e=LU(t);if(!r.has(e)&&(r.add(e),n.push(t),i)){const t=i;i=null,t()}},complete:()=>{if(s=!0,i){const t=i;i=null,t()}}});try{for(;;){for(;n.length>0;)yield n.shift();if(s)break;await new Promise(t=>{i=t})}}finally{o.close()}}async supports(){return[]}async deleteEvent(t){const e=await this.getDb(),n=await VU(e,t,this.indexCache);return this.eventMap.delete(t),n}async deleteReplaceable(t,e,n){const r=await this.getDb(),i=await async function(t,e,n,r,i){if(!vU(n)&&!bU(n))throw new Error(`Kind ${n} is not replaceable`);return await VU(t,`${n}:${e}:${r??""}`,i)}(r,t,e,n,this.indexCache);if(i){const r=`${e}:${t}:${n??""}`;this.eventMap.delete(r)}return i}async deleteByFilters(t){const e=Array.isArray(t)?t:[t],n=await this.getDb(),r=await this.getEventIdsForFilters(e),i=await async function(t,e,n){const r=await jU(t,e,n);return await async function(t,e,n){if(0===e.length)return 0;const r=t.transaction("events","readwrite"),i=r.objectStore("events");let s=0;const o=[];for(const a of e){const t=await i.get(a);t&&(o.push(t.event),await i.delete(a),s++)}if(await r.commit(),n&&o.length>0)for(const a of o)n.removeEvent(a);return s}(t,Array.from(r),n)}(n,e,this.indexCache);if(i>0)for(const s of r)this.eventMap.delete(s);return i}async deleteAllEvents(){const t=await this.getDb();await async function(t,e){const n=t.transaction("events","readwrite");await n.objectStore("events").clear(),await n.commit(),e&&e.clear()}(t,this.indexCache),this.eventMap.clear()}async getEventIdsForFilters(t){const e=await this.getDb(),{getIdsForFilters:n}=await Uj(async()=>{const{getIdsForFilters:t}=await Promise.resolve().then(()=>IU);return{getIdsForFilters:t}},void 0),r=await n(e,t,this.indexCache);return Array.from(r)}addToEventMaps(t){for(const e of t)this.eventMap.set(LU(e),e)}subscribeInternal(t,e){const n=((t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((t,e)=>t+((e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e>62?"-":"_"),""))(),r={id:n,filters:t,closed:!1,close:()=>this.unsubscribe(n),...e};return this.subscriptions.set(n,r),this.executeSubscription(r),r}async executeSubscription(t){const e=(new Date).valueOf();XU(`Running ${t.id}`,t.filters);const n=(await this.getWriteQueue()).matchPending(t.filters);return new Promise(async r=>{const i=await this.getDb(),s=setTimeout(()=>{t.eose&&!t.closed&&t.eose(),r()},this.baseEoseTimeout);UU(i,t.filters,this.indexCache,this.eventMap).then(i=>{if(clearTimeout(s),this.addToEventMaps(i),t.event&&!t.closed){const r=new Set(n.map(t=>LU(t))),s=n.length>0?[...i.filter(t=>!r.has(LU(t))),...n].sort(PU):i;for(const e of s)try{t.event(e)}catch(X8){XU("event handler failed with error",X8)}const o=(new Date).valueOf()-e;XU(`Finished ${t.id} took ${o}ms and got ${s.length} events`)}t.eose&&!t.closed&&t.eose(),r()})})}unsubscribe(t){const e=this.subscriptions.get(t);e&&(XU(`Closing ${t}`),e.closed=!0,e.complete?.(),this.subscriptions.delete(t))}},QU=a({excludeRequiredRelays:()=>rB,mergeRequiredRelays:()=>nB,normalizeRelayUrl:()=>tB,parsePlacePhotos:()=>sB,relayUrlMatches:()=>iB,uniqNormalizedRelays:()=>eB});function tB(t){if(!t)return"";let e=t.trim().toLowerCase();if(!e)return"";for(e.startsWith("ws://")||e.startsWith("wss://")||(e="wss://"+e);e.endsWith("/");)e=e.slice(0,-1);return e}function eB(t=[]){return Array.from(new Set(t.map(tB).filter(Boolean)))}function nB(t=[],e=[]){const n=new Set(t.filter(Boolean)),r=[...t.filter(Boolean)];for(const i of eB(e))n.has(i)||r.push(i);return r}function rB(t=[],e=[]){const n=new Set(e.filter(Boolean));return eB(t).filter(t=>!n.has(t))}function iB(t,e=[]){if(!t)return!1;const n=tB(t);return!!n&&new Set(eB(e||[]).filter(Boolean)).has(n)}function sB(t){if(!t||0===t.length)return[];const e=[...t].sort((t,e)=>t.created_at-e.created_at),n=[];for(const i of e){const t=i.tags.filter(t=>"t"===t[0]).map(t=>t[1]).filter(Boolean),e=i.tags.filter(t=>"imeta"===t[0]);for(const r of e){let e=null,s=null,o=null,a=!1,l=16/9,c=null,u=i.tags.find(t=>"i"===t[0])?.[1];const h=i.tags.find(t=>"published_at"===t[0])?.[1],d=h?Number(h):null;for(const t of r.slice(1))if(t.startsWith("url "))e=t.substring(4);else if(t.startsWith("thumb "))s=t.substring(6);else if(t.startsWith("blurhash "))o=t.substring(9);else if(t.startsWith("dim ")){const[e,n]=t.substring(4).split("x").map(Number);e&&n&&(l=e/n,e>n&&(a=!0))}else if(t.startsWith("alt ")){const e=t.substring(4).trim();c="A photo of a place"===e?null:e||null}e&&n.push({eventId:i.id,pubkey:i.pubkey,createdAt:i.created_at,publishedAt:d&&d>0?d:null,url:e,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:t,alt:c})}}if(0===n.length)return[];const r=n.findIndex(t=>t.isLandscape);if(r>0){const[t]=n.splice(r,1);n.unshift(t)}return n}var oB="0123456789bcdefghjkmnpqrstuvwxyz",aB=class t{static encode(e,n,r){if(void 0===r){for(let r=1;r<=12;r++){const i=t.encode(e,n,r),s=t.decode(i);if(s.lat==e&&s.lon==n)return i}r=12}if(e=Number(e),n=Number(n),r=Number(r),isNaN(e)||isNaN(n)||isNaN(r))throw new Error("Invalid geohash");let i=0,s=0,o=!0,a="",l=-90,c=90,u=-180,h=180;for(;a.length=t?(i=2*i+1,u=t):(i*=2,h=t)}else{const t=(l+c)/2;e>=t?(i=2*i+1,l=t):(i*=2,c=t)}o=!o,5==++s&&(a+=oB.charAt(i),s=0,i=0)}return a}static decode(e){const n=t.bounds(e),r=n.sw.lat,i=n.sw.lon,s=n.ne.lat,o=n.ne.lon;let a=(r+s)/2,l=(i+o)/2;return a=a.toFixed(Math.floor(2-Math.log(s-r)/Math.LN10)),l=l.toFixed(Math.floor(2-Math.log(o-i)/Math.LN10)),{lat:Number(a),lon:Number(l)}}static bounds(t){if(0==t.length)throw new Error("Invalid geohash");t=t.toLowerCase();let e=!0,n=-90,r=90,i=-180,s=180;for(let o=0;o=0;t--){const o=l>>t&1;if(e){const t=(i+s)/2;1==o?i=t:s=t}else{const t=(n+r)/2;1==o?n=t:r=t}e=!e}}return{sw:{lat:n,lon:i},ne:{lat:r,lon:s}}}static adjacent(e,n){if(e=e.toLowerCase(),n=n.toLowerCase(),0==e.length)throw new Error("Invalid geohash");if(-1=="nsew".indexOf(n))throw new Error("Invalid direction");const r=e.slice(-1);let i=e.slice(0,-1);const s=e.length%2;return-1!={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]}[n][s].indexOf(r)&&""!=i&&(i=t.adjacent(i,n)),i+oB.charAt({n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]}[n][s].indexOf(r))}static neighbours(e){return{n:t.adjacent(e,"n"),ne:t.adjacent(t.adjacent(e,"n"),"e"),e:t.adjacent(e,"e"),se:t.adjacent(t.adjacent(e,"s"),"e"),s:t.adjacent(e,"s"),sw:t.adjacent(t.adjacent(e,"s"),"w"),w:t.adjacent(e,"w"),nw:t.adjacent(t.adjacent(e,"n"),"w")}}},lB=a({getGeohashPrefixesInBbox:()=>cB});function cB(t){const{minLat:e,minLon:n,maxLat:r,maxLon:i}=t,s=new Set;if(Math.abs(r-e)>20||Math.abs(i-n)>20)return console.debug("BBox too large for 4-char geohash scanning, aborting fine scan."),[];for(let a=e;a<=r+.1;a+=.1)for(let t=n;t<=i+.1;t+=.1){const e=Math.min(a,r),n=Math.min(t,i);try{const t=aB.encode(e,n,4);s.add(t)}catch(o){}}try{s.add(aB.encode(e,n,4))}catch(o){}try{s.add(aB.encode(r,i,4))}catch(o){}try{s.add(aB.encode(e,i,4))}catch(o){}try{s.add(aB.encode(r,n,4))}catch(o){}return Array.from(s)}var uB=a({default:()=>yB}),hB=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],dB=["wss://nostr.kosmos.org"],pB=[],fB=[360],gB="event-relay-provenance";function mB(t){return ck(e=>{const n=e.pipe(t,vk(Boolean),dk(1));return e.pipe(Ok(n))})}var yB=class extends fp{static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"localForage",[pp])}#mt=void pF(this,"localForage");store=new xz;static{hF(this.prototype,"profile",[Wr],function(){return null})}#yt=void pF(this,"profile");static{hF(this.prototype,"mailboxes",[Wr],function(){return null})}#vt=void pF(this,"mailboxes");static{hF(this.prototype,"contacts",[Wr],function(){return null})}#bt=void pF(this,"contacts");static{hF(this.prototype,"blossomServers",[Wr],function(){return[]})}#wt=void pF(this,"blossomServers");static{hF(this.prototype,"placePhotos",[Wr],function(){return[]})}#_t=void pF(this,"placePhotos");static{hF(this.prototype,"myContributionEvents",[Wr],function(){return[]})}#xt=void pF(this,"myContributionEvents");static{hF(this.prototype,"profiles",[Wr],function(){return{}})}#Ct=void pF(this,"profiles");static{hF(this.prototype,"zapReceipts",[Wr],function(){return{}})}#kt=void pF(this,"zapReceipts");_eventRelays=new Map;_provenanceReady=null;_contactPubkeys=null;_contactsResolver=null;_contactsPromise=null;static{hF(this.prototype,"showUntrustedContent",[Wr],function(){return!1})}#St=void pF(this,"showUntrustedContent");static{hF(this.prototype,"untrustedContentCount",[Wr],function(){return 0})}#Et=void pF(this,"untrustedContentCount");_allPlacePhotos=[];_profileSub=null;_mailboxesSub=null;_contactsSub=null;_blossomSub=null;_photosSub=null;_contributionsSub=null;_deletionsSub=null;_profileModelSubs=new Map;_zapReceiptsSub=null;_zapReceiptsNetworkSub=null;_zapRefreshTimer=null;_lastPhotoIds=new Set;_incomingZapsNetworkSub=null;_activityPhotosSince=null;_activityPhotosMode="home";_activityPhotosNetworkSub=null;_requestSub=null;_cachePromise=null;_currentPlaceEntityId=null;loadedGeohashPrefixes=new Set;constructor(){super(...arguments),function(t,e,n){const r=function(t,e){const n=function(t,e){const n=Ej(t);return Sj(jC(e?.bufferTime??1e3,void 0,e?.bufferSize??200),function(...t){return Rj(function*(e){if(0===(e=function(t){let e=new Map;for(let n of t){let t=e.get(n.id);t&&n.relays?t.relays?t.relays=[...t.relays,...n.relays.filter(e=>!t.relays.includes(e))]:t.relays=[...n.relays]:t||e.set(n.id,{...n})}return Array.from(e.values())}(e)).length)return;const n=new Set;let r=Array.from(e);for(const i of t)if(void 0!==i&&(yield i(r).pipe(UC(()=>hk),zk(t=>n.add(t.id))),r=r.filter(t=>!n.has(t.id)),0===r.length))return})}(e?.cacheRequest?function(t){return e=>(e=e.filter(t=>!1!==t.cache),0===e.length?hk:Cj(t,[{ids:e.map(t=>t.id)}]))}(e.cacheRequest):void 0,!1!==e?.followRelayHints?Mj(n):void 0,e?.extraRelays?Pj(n,e.extraRelays):void 0),(t,e)=>e.id===t.id,null===e?.eventStore?uC:kz(e?.eventStore||new uz),{signal:e?.signal})}(t,{bufferTime:e?.bufferTime,bufferSize:e?.bufferSize,eventStore:e?.eventStore,cacheRequest:e?.cacheRequest,followRelayHints:e?.followRelayHints,extraRelays:e?.extraRelays,signal:e?.signal}),r=function(t,e){const n=Ej(t);return Sj(jC(e?.bufferTime??1e3,void 0,e?.bufferSize??200),function(...t){return Rj(function*(e){if(0===(e=function(t){const e=new Map;for(const n of t){const t=oO(n.kind,n.pubkey,n.identifier);if(e.has(t)){const r=e.get(t);n.relays&&n.relays.length>0&&(r.relays?r.relays=CO(r.relays,n.relays):r.relays=n.relays),!1===n.cache&&(r.cache=!1)}else e.set(t,Tj(n))}return Array.from(e.values())}(e.filter(xj))).length)return;let n=Array.from(e);for(const r of t){if(void 0===r)continue;const t=yield r(n).pipe(UC(()=>hk)),e=new Set(t.filter(t=>iO(t.kind)).map(t=>sO(t)));if(n=n.filter(t=>!e.has(oO(t.kind,t.pubkey,t.identifier))),0===n.length)return}})}(e?.cacheRequest?function(t){return e=>(e=e.filter(t=>!1!==t.cache),0===e.length?hk:Cj(t,_j(e)))}(e.cacheRequest):void 0,!1!==e?.followRelayHints?function(t){return e=>{const n=CO(...e.map(t=>t.relays));return 0===n.length?hk:t(n,_j(e))}}(n):void 0,e?.extraRelays?Lj(n,e.extraRelays):void 0,e?.lookupRelays?Lj(n,e.lookupRelays):void 0),(t,e)=>e.kind===t.kind&&e.pubkey===t.pubkey&&(void 0===t.identifier||cO(e)===t.identifier),null===e?.eventStore?uC:kz(e?.eventStore||new uz),{signal:e?.signal})}(t,{bufferTime:e?.bufferTime,bufferSize:e?.bufferSize,eventStore:e?.eventStore,cacheRequest:e?.cacheRequest,followRelayHints:e?.followRelayHints,extraRelays:e?.extraRelays,lookupRelays:e?.lookupRelays,signal:e?.signal}),i=()=>{n.stop(),r.stop()};return Object.assign(t=>TO(t)?n(t):r(t),{stop:i,[Symbol.dispose]:i})}(e,{...n,eventStore:t});t.eventLoader=r}(this.store,this.nostrRelay.pool,{cacheRequest:t=>this.cache?ZC(this.cache.query(t)):hk,lookupRelays:hB}),this._cachePromise=TU("applesauce-events").then(async t=>{this.cache=new JU(t,{cacheIndexes:1e3,maxEvents:1e4}),await this.cache.start(),this._stopPersisting=function(t,e,n){const r=n?.batchTime??5e3,i=t.insert$.pipe(vk(t=>{return e=t,!(!0===Reflect.get(e,eO));var e}),n?.maxBatchSize?jC(r,void 0,n?.maxBatchSize??100):jC(r),vk(t=>t.length>0)).subscribe(t=>{e(t).then(()=>xN(`Saved ${t.length} events to cache`)).catch(e=>xN(`Failed to save ${t.length} events to cache`,e))});return()=>i.unsubscribe()}(this.store,async t=>{const e=t.filter(t=>0===t.kind||3===t.kind||5===t.kind||10002===t.kind||10063===t.kind||360===t.kind||9735===t.kind);e.length>0&&await Promise.all(e.map(t=>this.cache.add(t)))},{batchTime:1e3,maxBatchSize:100})}),this._provenanceReady=this._hydrateProvenance(),this._deletionsSub=this.store.deletes.deleted$.subscribe(({pointer:t})=>{TO(t)&&this._removeProvenance(t.id)}),this.nostrRelay.pool.relays$.subscribe(()=>{})}get requiredReadRelays(){return dB}get requiredWriteRelays(){return pB}get mailboxReadRelays(){return(this.mailboxes?.inboxes||[]).map(tB).filter(Boolean)}get mailboxWriteRelays(){return(this.mailboxes?.outboxes||[]).map(tB).filter(Boolean)}get configuredReadRelays(){return rB(eB([...this.mailboxReadRelays,...this.settings.nostrReadRelays||[]]),this.settings.nostrReadRelayExclusions||[])}get configuredWriteRelays(){return rB(eB([...this.mailboxWriteRelays,...this.settings.nostrWriteRelays||[]]),this.settings.nostrWriteRelayExclusions||[])}get activeReadRelays(){return nB(this.requiredReadRelays,this.configuredReadRelays)}get activeWriteRelays(){return nB(this.requiredWriteRelays,this.configuredWriteRelays)}get trustedRelays(){const t=this.settings.nostrTrustedRelays||[];return eB([...this.requiredReadRelays,...t])}isTrustedEvent(t){if(!t)return!1;const e=this.nostrAuth?.pubkey;if(e&&t.pubkey===e)return!0;if(this._contactPubkeys?.has(t.pubkey))return!0;const n=this._eventRelays.get(t.id);if(!n||0===n.size)return!1;const r=this.trustedRelays;for(const i of n)if(iB(i,r))return!0;return!1}partitionByTrust(t){const e=[],n=[];for(const r of t)!fB.includes(r.kind)||this.isTrustedEvent(r)?e.push(r):n.push(r);return{trusted:e,untrusted:n}}async _hydrateProvenance(){try{await this.localForage.iterate(gB,(t,e)=>{this._eventRelays.set(e,new Set(t||[]))})}catch(t){console.debug("[nostr-data] Failed to hydrate relay provenance",t)}}_recordProvenance(t,e){if(!t||!e)return;let n=this._eventRelays.get(t);if(n||(n=new Set,this._eventRelays.set(t,n)),n.has(e))return;n.add(e);const r=Array.from(n);this.localForage.set(gB,t,r).catch(t=>{console.debug("[nostr-data] Failed to persist relay provenance",t)})}_removeProvenance(t){t&&this._eventRelays.delete(t)&&this.localForage.remove(gB,t).catch(t=>{console.debug("[nostr-data] Failed to remove relay provenance",t)})}_requestContentWithProvenance(t,e,n){const r=zj.completeOnAny(zj.completeAfterFirstRelay(5e3),zj.completeOnAllEose());return this.nostrRelay.pool.req(t,e).pipe(mB(r),Dk({first:3e4}),vk(t=>"EVENT"===t.type)).subscribe({next:t=>{this._recordProvenance(t.event.id,t.from),this.store.add(t.event)},error:t=>{console.error(n,t)}})}async loadPlacesInBounds(t){const e=cB(t).filter(t=>!this.loadedGeohashPrefixes.has(t));if(0!==e.length){console.debug("[nostr-data] Loading place photos for prefixes:",e);try{await this._cachePromise;const t=await this.cache.query([{kinds:[360],"#g":e}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read photos from local Nostr IDB cache",n)}this._requestContentWithProvenance(this.activeReadRelays,[{kinds:[360],"#g":e}],"[nostr-data] Error fetching place photos by geohash:");for(const t of e)this.loadedGeohashPrefixes.add(t)}}async loadPhotosForPlace(t){const e=t&&t.osmId&&t.osmType?`osm:${t.osmType}:${t.osmId}`:null;if((!e||e!==this._currentPlaceEntityId)&&(this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._cleanupZapReceiptSubs(),this._clearZapRefreshTimer(),this.placePhotos=[],this.zapReceipts={},this._lastPhotoIds=new Set,this._clearProfileSubs(),this._currentPlaceEntityId=e,e)){this._photosSub=this.store.timeline([{kinds:[360],"#i":[e]}]).subscribe(t=>{this._allPlacePhotos=t,this._updatePlacePhotos();const e=[...new Set(t.map(t=>t.pubkey))];this.loadProfiles(e),this._scheduleZapReceiptRefresh(t)});try{await this._cachePromise;const t=await this.cache.query([{kinds:[360,5],"#i":[e]}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read photos for place from local Nostr IDB cache",n)}this._requestContentWithProvenance(this.activeReadRelays,[{kinds:[360,5],"#i":[e]}],"[nostr-data] Error fetching place photos for place:")}}_updatePlacePhotos(){const t=this._allPlacePhotos,{trusted:e,untrusted:n}=this.partitionByTrust(t);this.untrustedContentCount=n.length,this.placePhotos=this.showUntrustedContent?t:e}toggleShowUntrustedContent(){this.showUntrustedContent=!this.showUntrustedContent,this._updatePlacePhotos()}static{dF(this.prototype,"toggleShowUntrustedContent",[Vl])}async loadMyContributions(t){if(!t)return;this.myContributionEvents=[],this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null);const e=[{kinds:[360,5],authors:[t]}];this._contributionsSub=this.store.timeline(e).subscribe(t=>{this.myContributionEvents=t});try{await this._cachePromise;const t=await this.cache.query(e);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read my contributions from local Nostr IDB cache",n)}this._requestContentWithProvenance(this.activeReadRelays,e,"[nostr-data] Error fetching my contribution events:")}async loadIncomingZaps(t){if(!t)return;const e=[{kinds:[9735],"#p":[t]}];console.debug("[nostr-data] Requesting incoming zap receipts from relays",{filters:e,relays:this.activeReadRelays}),this._incomingZapsNetworkSub&&(this._incomingZapsNetworkSub.unsubscribe(),this._incomingZapsNetworkSub=null);try{await this._cachePromise;const t=await this.cache.query(e);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read incoming zap receipts from local Nostr IDB cache",n)}this._incomingZapsNetworkSub=this._requestContentWithProvenance(this.activeReadRelays,e,"[nostr-data] Error fetching incoming zap receipts:")}async loadActivityPhotos(t,e="home"){this._activityPhotosSince=t,this._activityPhotosMode=e,this._activityPhotosNetworkSub&&(this._activityPhotosNetworkSub.unsubscribe(),this._activityPhotosNetworkSub=null),"home"===e?this._loadFolloweePhotos(t):"explore"===e&&this._loadTrustedRelaysPhotos(t)}_loadFolloweePhotos(t){const e=this._contactPubkeys?Array.from(this._contactPubkeys):[];if(0===e.length)return void console.debug("[nostr-data] No contacts loaded yet, deferring followee photo load");const n=this._batchAuthorFilters(e,[360],t);console.debug("[nostr-data] Loading followee photos",{filterCount:n.length,pubkeyCount:e.length,since:t}),this._cachePromise.then(()=>this.cache.query(n)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read followee photos from local Nostr IDB cache",t)}),this._activityPhotosNetworkSub=this._requestContentWithProvenance(this.activeReadRelays,n,"[nostr-data] Error fetching followee photos:")}_loadTrustedRelaysPhotos(t){const e=[{kinds:[360],since:t}];console.debug("[nostr-data] Loading trusted relay photos",{since:t}),this._cachePromise.then(()=>this.cache.query(e)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read trusted relay photos from local Nostr IDB cache",t)}),this._activityPhotosNetworkSub=this._requestContentWithProvenance(this.activeReadRelays,e,"[nostr-data] Error fetching trusted relay photos:")}async _fetchEventsWithProvenance(t,e){const n=zj.completeOnAny(zj.completeAfterFirstRelay(5e3),zj.completeOnAllEose()),r=new Set,i=[];return new Promise(s=>{this.nostrRelay.pool.req(this.activeReadRelays,t).pipe(mB(n),Dk({first:3e4}),vk(t=>"EVENT"===t.type)).subscribe({next:t=>{this._recordProvenance(t.event.id,t.from),this.store.add(t.event),r.has(t.event.id)||(r.add(t.event.id),i.push(t.event))},error:t=>{console.error(e,t),s(i)},complete:()=>s(i)})})}async fetchActivityPhotos(t,e,n="home"){let r;if("home"===n){const n=this._contactPubkeys?Array.from(this._contactPubkeys):[];if(0===n.length)return{cacheEvents:[],networkEvents:Promise.resolve([])};r=this._batchAuthorFilters(n,[360],t,e)}else{if("explore"!==n)return{cacheEvents:[],networkEvents:Promise.resolve([])};{const n={kinds:[360],since:t};void 0!==e&&(n.until=e),r=[n]}}const i=new Set,s=[],o=await this._cachePromise.then(()=>this.cache.query(r)).catch(()=>[]);if(o)for(const a of o)i.has(a.id)||(i.add(a.id),s.push(a),this.store.add(a));return{cacheEvents:s,networkEvents:this._fetchEventsWithProvenance(r,"[nostr-data] Error fetching activity photos:").then(t=>{const e=[];for(const n of t)i.has(n.id)||(i.add(n.id),e.push(n));return e})}}async fetchIncomingZaps(t,e,n){if(!t)return{cacheEvents:[],networkEvents:Promise.resolve([])};const r={kinds:[9735],"#p":[t]};void 0!==e&&(r.since=e),void 0!==n&&(r.until=n);const i=[r],s=new Set,o=[],a=await this._cachePromise.then(()=>this.cache.query(i)).catch(()=>[]);if(a)for(const l of a)s.has(l.id)||(s.add(l.id),o.push(l),this.store.add(l));return{cacheEvents:o,networkEvents:this._fetchEventsWithProvenance(i,"[nostr-data] Error fetching incoming zap receipts:").then(t=>{const e=[];for(const n of t)s.has(n.id)||(s.add(n.id),e.push(n));return e})}}_batchAuthorFilters(t,e,n,r){const i=[];for(let s=0;st&&!this._profileModelSubs.has(t));for(const n of e){const t=this.store.model(NO,n).subscribe(t=>{this.profiles={...this.profiles,[n]:t}});this._profileModelSubs.set(n,t)}}getProfile(t){return this.profiles[t]}_clearProfileSubs(){for(const t of this._profileModelSubs.values())t.unsubscribe();this._profileModelSubs.clear(),this.profiles={}}async loadProfile(t){if(!t)return;this.profile=null,this.mailboxes=null,this.contacts=null,this._contactPubkeys=null,this.blossomServers=[],this._contactsPromise=new Promise(t=>{this._contactsResolver=t}),this._cleanupSubscriptions(),this._profileSub=this.store.model(NO,t).subscribe(t=>{this.profile=t}),this._mailboxesSub=this.store.model(bz,t).subscribe(t=>{this.mailboxes=t}),this._contactsSub=this.store.model(vz,t).subscribe(t=>{this.contacts=t,this._contactPubkeys=new Set(t.map(t=>t.pubkey)),this._contactsResolver?.(),this._contactsResolver=null,this._updatePlacePhotos(),null!==this._activityPhotosSince&&this.loadActivityPhotos(this._activityPhotosSince,this._activityPhotosMode)}),this._blossomSub=this.store.replaceable(10063,t).subscribe(t=>{if(t&&t.tags?this.blossomServers=t.tags.filter(t=>"server"===t[0]&&t[1]).map(t=>t[1]):this.blossomServers=[],this.blossomServers.length>0){const t=this.settings.nostrMediaServer;"https://blossom.nostr.build"!==t&&this.blossomServers.includes(t)||this.settings.update("nostrMediaServer",this.blossomServers[0])}});try{await this._cachePromise;const e=await this.cache.query([{authors:[t],kinds:[0,3,10002,10063]}]);if(e&&e.length>0)for(const t of e)this.store.add(t)}catch(n){console.warn("Failed to read from local Nostr IDB cache",n)}const e=Array.from(new Set([...hB,...this.activeWriteRelays]));this._requestSub=this.nostrRelay.pool.request(e,[{authors:[t],kinds:[0,3,10002,10063]}]).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("Error fetching profile events:",t)}})}whenContactsLoaded(t=5e3){return this._contactPubkeys?Promise.resolve():this._contactsPromise?Promise.race([this._contactsPromise,new Promise(e=>setTimeout(e,t))]):Promise.resolve()}get userDisplayName(){if(this.profile){if(this.profile.nip05)return this.profile.nip05;if(this.profile.displayName||this.profile.display_name)return this.profile.displayName||this.profile.display_name;if(this.profile.name)return this.profile.name}if(this.nostrAuth.pubkey)try{const t=fO(this.nostrAuth.pubkey);return`${t.slice(0,9)}...${t.slice(-4)}`}catch{return this.nostrAuth.pubkey}return"Not connected"}async clearCache(){await this._cachePromise,this.cache&&await this.cache.deleteAllEvents()}_scheduleZapReceiptRefresh(t){const e=new Set(t.map(t=>t.id));let n=!1;if(e.size!==this._lastPhotoIds.size)n=!0;else for(const r of e)if(!this._lastPhotoIds.has(r)){n=!0;break}n&&(this._lastPhotoIds=e,this._clearZapRefreshTimer(),this._zapRefreshTimer=setTimeout(()=>{this._zapRefreshTimer=null,this._refreshZapReceiptSubscription([...e])},100))}_clearZapRefreshTimer(){this._zapRefreshTimer&&(clearTimeout(this._zapRefreshTimer),this._zapRefreshTimer=null)}_refreshZapReceiptSubscription(t){if(this._cleanupZapReceiptSubs(),!t||0===t.length)return;const e=[];for(let n=0;n{this._updateZapReceipts(t)}),this._cachePromise.then(()=>this.cache.query(e)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read zap receipts from cache",t)}),this._zapReceiptsNetworkSub=this.nostrRelay.pool.request(this.activeReadRelays,e).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("[nostr-data] Error fetching zap receipts:",t)}})}_updateZapReceipts(t){const e={};for(const n of t)for(const t of n.tags)"e"===t[0]&&t[1]&&(e[t[1]]||(e[t[1]]=[]),e[t[1]].push(n));this.zapReceipts={...this.zapReceipts,...e}}_cleanupZapReceiptSubs(){this._zapReceiptsSub&&(this._zapReceiptsSub.unsubscribe(),this._zapReceiptsSub=null),this._zapReceiptsNetworkSub&&(this._zapReceiptsNetworkSub.unsubscribe(),this._zapReceiptsNetworkSub=null)}_cleanupSubscriptions(){this._requestSub&&(this._requestSub.unsubscribe(),this._requestSub=null),this._profileSub&&(this._profileSub.unsubscribe(),this._profileSub=null),this._mailboxesSub&&(this._mailboxesSub.unsubscribe(),this._mailboxesSub=null),this._contactsSub&&(this._contactsSub.unsubscribe(),this._contactsSub=null,this._contactPubkeys=null),this._blossomSub&&(this._blossomSub.unsubscribe(),this._blossomSub=null),this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null),this._cleanupZapReceiptSubs(),this._clearZapRefreshTimer(),this._incomingZapsNetworkSub&&(this._incomingZapsNetworkSub.unsubscribe(),this._incomingZapsNetworkSub=null),this._activityPhotosNetworkSub&&(this._activityPhotosNetworkSub.unsubscribe(),this._activityPhotosNetworkSub=null)}willDestroy(){super.willDestroy(...arguments),this._cleanupSubscriptions(),this._clearProfileSubs(),this._deletionsSub&&(this._deletionsSub.unsubscribe(),this._deletionsSub=null),this._stopPersisting&&this._stopPersisting(),this.cache&&this.cache.stop()}},vB=a({default:()=>bB}),bB=class extends fp{pool=new Jj({enablePing:!0});async publish(t,e){if(!t||0===t.length)throw new Error("No relays provided to publish the event.");const n=await this.pool.publish(t,e);if(!n.some(t=>t.ok))throw new Error(`Failed to publish event. Responses: ${JSON.stringify(n)}`);return n}};qN.add(Tz),qN.add(Rz),qN.add(Lz),QO(30078,"nip44");var wB=class t extends oz{static create(e,n,r){return new t(t=>t(sz(OT.ZapRequest))).eventTarget(e).amount(n).relays(r)}static profile(e,n,r,i){return new t(t=>t(sz(OT.ZapRequest))).amount(n).relays(r).profileTarget(e,i)}static event(e,n,r,i){return new t(t=>t(sz(OT.ZapRequest))).amount(n).relays(r).eventTarget(e,i)}relays(t){return this.chain((e=t,JN(["relays",...e],!0)));var e}eventTarget(t,e){return this.chain(function(t,e){return QN(HN(XN(["k",String(t.kind)],!0),function(t,e,n=!0){return async r=>{const i="string"==typeof t?{id:t}:rO(t)?{id:(s=t).id,kind:s.kind,author:s.pubkey,relays:void 0}:t;var s;if(!i.relays?.[0]&&e){const t="string"==typeof e?e:await e(i.id);t&&(i.relays=[t])}return n&&(r=r.filter(t=>!("e"===t[0]&&t[1]===i.id))),[...r,RN(i)]}}(t,e,!0),iO(t.kind)?function(t,e,n=!0){const r="string"==typeof t?SO(t):rO(t)?jA((i=t).kind)||DA(i.kind)?{identifier:cO(i),kind:i.kind,pubkey:i.pubkey,relays:void 0}:null:t;var i;if(!r)throw new Error("Unable to resolve address pointer");return async i=>{const s="string"==typeof t?t:PO(r);if(!r.relays?.[0]&&e){const t="string"==typeof e?e:await e(r.pubkey);t&&(r.relays=[t])}return n&&(i=i.filter(t=>!("a"===t[0]&&t[1]===s))),[...i,EN(r)]}}(t,e,!0):t=>t,YN({pubkey:t.pubkey},e,!0)))}(t,e))}profileTarget(t,e){return this.chain(function(t,e){return QN(YN(t,e,!0))}(t,e))}amount(t){return this.chain(function(t){return JN(["amount",t.toString()],!0)}(t))}lnurl(t){return this.chain(function(t){return JN(["lnurl",t],!0)}(t))}message(t){return this.content(t)}},_B=a({default:()=>kB}),xB=["wss://relay.damus.io","wss://nos.lol","wss://relay.primal.net"],CB=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],kB=class extends fp{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"recipientRelays",[Wr],function(){return null})}#Rt=void pF(this,"recipientRelays");getLightningAddress(t){const e=this.nostrData.getProfile(t);return e?.lud16||e?.lud06||null}async resolveLnurl(t){const e=(n=t).includes("@")?function(t){let[e,n]=t.split("@");if(e&&n)return new URL(`https://${n}/.well-known/lnurlp/${e}`)}(n):function(t){try{const{words:e,prefix:n}=nF.decode(t);if("lnurl"!==n)return;const r=rF.decode(nF.fromWords(e));return new URL(r)}catch(X8){}}(n);var n;if(!e)throw new Error("Invalid lightning address or LNURL");const r=await fetch(e.toString());if(!r.ok)throw new Error(`Failed to fetch LNURL pay endpoint: ${r.statusText}`);const i=await r.json();if(!i.callback)throw new Error("Invalid LNURL pay endpoint: missing callback");if(!i.allowsNostr)throw new Error("This lightning address does not support Nostr zaps");return{callback:i.callback,minSendable:i.minSendable??1e3,maxSendable:i.maxSendable??1e11,allowsNostr:!!i.allowsNostr,nostrPubkey:i.nostrPubkey}}async loadRecipientRelays(t){if(!t)return this._fallbackRelays();const e=await this._getMailboxesFromStore(t);if(e?.length)return this.recipientRelays=e,e;const n=await this._fetchMailboxesFromNetwork(t);if(n?.length)return this.recipientRelays=n,n;const r=this._fallbackRelays();return this.recipientRelays=r,r}async _getMailboxesFromStore(t){try{const e=await pN(this.nostrData.store.replaceable(10002,t).pipe(Dk(500),UC(()=>fk(null))));if(e)return BN(e)}catch{}return null}async _fetchMailboxesFromNetwork(t){const e=this.nostrData.activeReadRelays?.length?this.nostrData.activeReadRelays:CB;try{const n=await pN(this.nostrRelay.pool.request(e,[{kinds:[10002],authors:[t]}]).pipe(Dk(1e4),UC(()=>fk(null))));if(n)return this.nostrData.store.add(n),BN(n)}catch{}return null}_fallbackRelays(){const t=this.nostrData.mailboxReadRelays||[];return[...new Set([...t,...xB])].slice(0,5)}getZapRelays(){return this.recipientRelays?.length?this.recipientRelays.slice(0,5):this._fallbackRelays()}async createZapRequest(t,e,n){const r=this.nostrData.store.getEvent(t.eventId);if(!r)throw new Error("Photo event not found in store");const i=this.getZapRelays(),s=this.nostrAuth.signer;if(!s)throw new Error("Nostr signer not available. Please connect Nostr.");return await wB.event(r,e,i).message(n||"").as(s).sign()}async fetchInvoice(t,e,n){const r=new URL(t);return r.searchParams.set("amount",n.toString()),r.searchParams.set("nostr",JSON.stringify(e)),await async function(t){const{pr:e}=await fetch(t).then(t=>t.json()),n=t.searchParams.get("amount");if(!n)throw new Error("Missing amount");if(e){if(WO(e).amount!==parseInt(n))throw new Error("Incorrect amount");return e}throw new Error("Failed to get invoice")}(r)}parseInvoice(t){return WO(t)}subscribeForZapReceipt(t,e,n){const r=e.eventId,i=this.getZapRelays(),s=Math.floor(Date.now()/1e3)-10;return this.nostrRelay.pool.subscription(i,{kinds:[9735],"#e":[r],since:s}).subscribe({next:e=>{this.nostrData.store.add(e);const r=e.tags.find(t=>"description"===t[0]);if(r)try{JSON.parse(r[1]).id===t.id&&n(e)}catch{}},error:t=>{console.error("[nostr-zap] Receipt subscription error:",t)}})}hasWebLN(){return"undefined"!=typeof window&&void 0!==window.webln}async payWithWebln(t){if(!this.hasWebLN())throw new Error("WebLN not available");return await window.webln.enable(),await window.webln.sendPayment(t)}async zap(t,e,n){const r=t?.pubkey;if(!r)throw new Error("Photo has no pubkey");this.recipientRelays||await this.loadRecipientRelays(r);const i=this.getLightningAddress(r);if(!i)throw new Error("This user has no lightning address set in their profile");const s=await this.resolveLnurl(i);if(es.maxSendable)throw new Error(`Amount must be between ${s.minSendable} and ${s.maxSendable} millisats`);const o=await this.createZapRequest(t,e,n);return{invoice:await this.fetchInvoice(s.callback,o,e),zapRequest:o}}},SB=class{},EB=class extends SB{constructor(t){super(),this.message=t}},RB=class extends SB{},LB=class extends SB{},TB=class extends SB{},PB=class extends SB{},IB=class extends SB{},MB=class extends SB{},AB={invalid_request:class extends SB{},invalid_grant:class extends IB{},unauthorized_client:class extends PB{},access_denied:class extends PB{},unsupported_response_type:class extends PB{},invalid_scope:class extends SB{},server_error:class extends PB{},temporarily_unavailable:class extends PB{},invalid_client:class extends IB{},unsupported_grant_type:class extends IB{},invalid_token:class extends SB{}},OB=t=>{const e=AB[t];return e?new e:new EB(t)},NB="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",zB=t=>{const e=t.slice(7).replace(/"/g,"").split(",").map(t=>{const[e,n]=t.trim().split("=");return{[e]:n}}).reduce((t,e)=>({...t,...e}),{});return{realm:e.realm,error:e.error,errorDescription:e.error_description,errorUri:e.error_uri}},FB=t=>{let e=btoa(t);return e=e.replace(/\+/g,"-"),e=e.replace(/\//g,"_"),e=e.replace(/=/g,""),e},DB=(t,e)=>{let n=e.split("?");if(n.length<2)return;n=n[1].split("#");const r=n[0].split("&");for(const i of r){const[e,n]=i.split("=");if(e===t)return decodeURIComponent(n)}},jB=t=>Object.entries(t).map(([t,e])=>`${t}=${encodeURIComponent(e)}`).join("&"),UB="WWW-Authenticate",BB=class{constructor(t,e){this.state={},this.config=t,this.storage=e||qB,this.ready=new Promise(t=>this.setReady=t),this.recoverState()}async reset(){this.state={},await this.saveState(),this.authCodeForAccessTokenPromise=void 0,this.refreshTokenForAccessTokenPromise=void 0}async requestAuthorizationCode(t){const{clientId:e,extraAuthorizationParams:n,redirectUrl:r,scopes:i}=this.config,{codeChallenge:s,codeVerifier:o}=await(async()=>{const t=new Uint32Array(96);crypto.getRandomValues(t);const e=FB(Array.from(t).map(t=>NB[t%66]).join("")),n=await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e)),r=new Uint8Array(n);let i="";const s=r.byteLength;for(let o=0;o{const t=new Uint32Array(32);return crypto.getRandomValues(t),Array.from(t).map(t=>NB[t%66]).join("")})();this.state={...this.state,codeChallenge:s,codeVerifier:o,stateQueryParam:a},await this.saveState();let l=this.config.authorizationUrl+`?response_type=code&client_id=${encodeURIComponent(e)}&redirect_uri=${encodeURIComponent(r)}&state=${a}&code_challenge=${encodeURIComponent(s)}&code_challenge_method=S256`;if(i&&(l+=`&scope=${encodeURIComponent(i.join(" "))}`),n||t){const e={...n,...t};l+=`&${jB(e)}`}location.replace(l)}isReturningFromAuthServer(){return!!DB("code",location.href)}async receiveCode(){await this.ready;const t=DB("error",location.href);if(t)throw OB(t);if(DB("state",location.href)!==this.state.stateQueryParam)throw console.warn('"state" parameter doesn\'t match the one sent! Possible malicious activity.'),new TB;if(this.state.authorizationCode=DB("code",location.href),!this.state.authorizationCode)throw new LB;this.saveState()}async getTokens(t){const{accessToken:e,authorizationCode:n,idToken:r,refreshToken:i,scopes:s}=this.state;if(n)return this.exchangeAuthCodeForAccessToken(t);if(!e)throw new RB;if(this.isAccessTokenExpired()){if(this.config.onAccessTokenExpiry)return this.config.onAccessTokenExpiry();throw new MB}return Promise.resolve({accessToken:e,idToken:r,refreshToken:i,scopes:s})}async exchangeAuthCodeForAccessToken(t){this.authCodeForAccessTokenPromise||(this.authCodeForAccessTokenPromise=this.fetchAccessTokenUsingCode(t));const e=await this.authCodeForAccessTokenPromise;return this.authCodeForAccessTokenPromise=void 0,this.state.authorizationCode=void 0,this.setTokens(e)}async exchangeRefreshTokenForAccessToken(){this.refreshTokenForAccessTokenPromise||(this.refreshTokenForAccessTokenPromise=this.fetchAccessTokenUsingRefreshToken());const t=await this.refreshTokenForAccessTokenPromise;return this.refreshTokenForAccessTokenPromise=void 0,this.setTokens(t)}makeRetryFetchFunction(t){return async(e,...n)=>{const r=await t(e,...n);if(401===r.status){const i=r.headers.get(UB.toLowerCase());if(i&&"invalid_token"===zB(i).error)return await this.exchangeRefreshTokenForAccessToken(),e=await this.requestInterceptor(e),t(e,...n)}return r}}decorateFetchWithInterceptors(t){return async(e,...n)=>{"string"==typeof e&&(e=new Request(e)),e=await this.requestInterceptor(e);const r=await t(e,...n);return this.responseInterceptor(r)}}async requestInterceptor(t){const e=await this.getTokens();return t.headers.set("Authorization",`Bearer ${e.accessToken}`),t}async responseInterceptor(t){if(401!==t.status)return t;const e=t.headers.get(UB.toLowerCase());if(e){const t=zB(e).error;throw"invalid_grant"===t&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),"invalid_token"===t&&this.config.onInvalidToken&&await this.config.onInvalidToken(),OB(t)}return t}getGrantedScopes(){return this.state.scopes}isAuthorized(){return!!this.state.accessToken}isAccessTokenExpired(){const{accessTokenExpiry:t}=this.state;return Boolean(t&&new Date>=new Date(t))}async fetchAccessTokenUsingCode(t){const{authorizationCode:e,codeVerifier:n=""}=this.state,{clientId:r,redirectUrl:i}=this.config;n?e||console.warn("No authorization grant code is being passed."):console.warn("No code verifier is being sent.");const s=this.config.tokenUrl,o={grant_type:"authorization_code",code:e,redirect_uri:i,client_id:r,code_verifier:n,...t},a=new URLSearchParams(o).toString();return this.makeTokenRequest(s,a)}fetchAccessTokenUsingRefreshToken(){const{extraRefreshParams:t,clientId:e,tokenUrl:n}=this.config,{refreshToken:r}=this.state;r||console.warn("No refresh token is present.");const i=n;let s=`grant_type=refresh_token&refresh_token=${r}&client_id=${e}`;return t&&(s=`${s}&${jB(t)}`),this.makeTokenRequest(i,s)}async makeTokenRequest(t,e){const n=await fetch(t,{method:"POST",body:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),r=await n.json();if(!n.ok)throw"invalid_grant"===r.error&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),OB(r.error);const{access_token:i,expires_in:s,id_token:o,refresh_token:a,scope:l}=r;return{accessToken:i,expiresIn:s,idToken:o,refreshToken:a,scope:l}}async setTokens(t){const{accessToken:e,expiresIn:n,idToken:r,refreshToken:i,scope:s}=t;return this.state.accessToken=e,n&&(this.state.accessTokenExpiry=new Date(Date.now()+1e3*parseInt(n,10)).toString()),r&&(this.state.idToken=r),i&&(this.state.refreshToken=i),s&&(this.state.scopes=s.split(" ")),await this.saveState(),{accessToken:this.state.accessToken,idToken:this.state.idToken,refreshToken:this.state.refreshToken,scopes:s?this.state.scopes:[]}}async recoverState(){this.state=JSON.parse(await this.storage.loadState()||"{}"),this.setReady(),this.config.storeRefreshToken||(this.state.refreshToken=this.refreshToken)}async saveState(){this.refreshToken=this.state.refreshToken;const t={...this.state};this.config.storeRefreshToken||delete t.refreshToken,await this.storage.saveState(JSON.stringify(t))}},$B="oauth2authcodepkce-state",qB={saveState:t=>localStorage.setItem($B,t),loadState:()=>localStorage.getItem($B)},VB=a({default:()=>HB}),WB=class{saveState(t){localStorage.setItem("marco:osm_auth_state",t)}loadState(){const t=localStorage.getItem("marco:osm_auth_state");if(!t)return!1;try{return JSON.parse(t),t}catch(e){return console.warn("Failed to parse OSM auth state",e),!1}}},HB=class extends fp{static{hF(this.prototype,"isConnected",[Wr],function(){return!1})}#Lt=void pF(this,"isConnected");static{hF(this.prototype,"userDisplayName",[Wr],function(){return null})}#Tt=void pF(this,"userDisplayName");oauthClient;constructor(){super(...arguments);const t="https://www.openstreetmap.org",e=`${window.location.origin}/oauth/osm/callback`;this.oauthClient=new BB({scopes:["read_prefs","write_api"],authorizationUrl:`${t}/oauth2/authorize`,tokenUrl:`${t}/oauth2/token`,clientId:"jIn8l5mT8FZOGYiIYXG1Yvj_2FZKB9TJ1edZwOJPsRU",redirectUrl:e,storeRefreshToken:!0,onAccessTokenExpiry(){return this.exchangeRefreshTokenForAccessToken()}},new WB),this.restoreSession()}async restoreSession(){try{await this.oauthClient.ready}catch(t){console.warn("oauthClient.ready failed",t)}if(await this.oauthClient.isAuthorized()){this.isConnected=!0;const t=localStorage.getItem("marco:osm_user_display_name");t?this.userDisplayName=t:await this.fetchUserInfo()}}async login(){await this.oauthClient.requestAuthorizationCode()}async handleCallback(){await this.oauthClient.receiveCode(),await this.oauthClient.getTokens(),this.isConnected=!0,await this.fetchUserInfo()}async logout(){await this.oauthClient.reset(),this.isConnected=!1,this.userDisplayName=null,localStorage.removeItem("marco:osm_user_display_name")}async fetchUserInfo(){try{const t=await this.oauthClient.getTokens(),e=await fetch("https://api.openstreetmap.org/api/0.6/user/details.json",{headers:{Authorization:`Bearer ${t.accessToken}`}});if(e.ok){const t=await e.json();console.debug("OSM data:",t);const n=t.user.display_name;this.userDisplayName=n,localStorage.setItem("marco:osm_user_display_name",n)}else console.error("Failed to fetch OSM user info",e.status)}catch(t){console.error("Error fetching OSM user info",t)}}},GB=a({capitalize:()=>KB,formatRelativeDate:()=>YB,humanizeOsmTag:()=>ZB});function ZB(t){return"string"==typeof t&&t?t.replace(/[_-]/g," ").replace(/\w\S*/g,t=>t.replace(/^\w/,t=>t.toUpperCase())):""}function KB(t){return"string"==typeof t&&t?t.charAt(0).toUpperCase()+t.slice(1):""}function YB(t){if(!t)return"";const e=new Date(1e3*t),n=new Date,r=n-e,i=Math.floor(r/6e4),s=Math.floor(i/60),o=Math.floor(s/24);if(i<1)return"just now";if(i<60)return`${i} min ago`;if(s<24)return`${s} hr ago`;if(o<7)return`${o} day${1===o?"":"s"} ago`;const a=e.getFullYear()===n.getFullYear();return e.toLocaleDateString(void 0,{month:"short",day:"numeric",...a?{}:{year:"numeric"}})}var XB=a({getLocalizedName:()=>JB,getPlaceType:()=>t$});function JB(t,e="Untitled Place"){if(!t)return e;const n=navigator.languages||[navigator.language||"en"];for(const r of n){if(!r)continue;const e=`name:${r.split("-")[0]}`;if(t[e])return t[e]}return t.name?t.name:t["name:en"]?t["name:en"]:e}var QB=["craft","amenity","shop","tourism","historic","leisure","office","aeroway","building","landuse","public_transport","highway","waterway","natural","place","border_type","admin_title"];function t$(t){if(!t)return null;let e=null;for(const n of QB){const r=t[n];if(r){if("yes"===r){e||(e=n);continue}return ZB(r)}}return e?ZB(e):null}var e$=a({POI_CATEGORIES:()=>n$,getCategoryById:()=>r$}),n$=[{id:"restaurants",label:"Restaurants",icon:"fork-and-knife",filter:['["amenity"~"^(restaurant|fast_food|food_court|pub|cafe)$"]["cuisine"!~"coffee"]'],types:["node","way"]},{id:"coffee",label:"Coffee",icon:"cup-and-saucer",filter:['["amenity"~"^(cafe|ice_cream)$"]','["shop"~"^(coffee|tea)$"]','["cuisine"~"coffee_shop"]'],types:["node","way"]},{id:"groceries",label:"Groceries",icon:"shopping-basket",filter:['["shop"~"^(supermarket|convenience|grocery|greengrocer|bakery|butcher|deli|farm|seafood)$"]'],types:["node","way"]},{id:"things-to-do",label:"Things to do",icon:"feather-camera",filter:['["tourism"~"^(museum|gallery|attraction|viewpoint|zoo|theme_park|aquarium|artwork|information)$"]','["amenity"~"^(cinema|theatre|arts_centre|planetarium)$"]','["leisure"~"^(sports_centre|stadium|water_park|golf_course|marina)$"]','["historic"]','["shop"="flea_market"]'],types:["node","way","relation"]},{id:"accommodation",label:"Hotels",icon:"person-sleeping-in-bed",filter:['["tourism"~"^(hotel|hostel|motel|chalet|guest_house)$"]','["leisure"="resort"]'],types:["node","way","relation"]}];function r$(t){return n$.find(e=>e.id===t)}var i$,s$=a({default:()=>o$}),o$=class t extends fp{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"localForage",[pp])}#mt=void pF(this,"localForage");controller=null;cachedResults=null;lastQueryKey=null;cachedPlaces=new Map;static STORE_NAME="osm-cache";static CACHE_TTL_MS=6048e5;static IN_MEMORY_TTL_MS=1e4;_buildCacheKey(t,e){return`${t}:${e}`}async _readLocalCache(e,n){const r=this._buildCacheKey(e,n);try{const e=await this.localForage.get(t.STORE_NAME,r);if(!e)return null;const n="string"==typeof e?JSON.parse(e):e;return!n||"number"!=typeof n.timestamp||Date.now()-n.timestamp>t.CACHE_TTL_MS?(await this.localForage.remove(t.STORE_NAME,r),null):n.data}catch{try{await this.localForage.remove(t.STORE_NAME,r)}catch{}return null}}async _writeLocalCache(e,n,r){if(!r)return;const i=this._buildCacheKey(e,n);try{await this.localForage.set(t.STORE_NAME,i,{data:r,timestamp:Date.now()})}catch(s){console.debug("[osm] Failed to write IndexedDB cache entry",s)}}async getCachedOsmObject(e,n){if(!e||!n)return null;const r=this._buildCacheKey(e,n),i=this.cachedPlaces.get(r);return i&&Date.now()-i.timestamp{this.cachedPlaces.delete(e)},t.IN_MEMORY_TTL_MS),this._writeLocalCache(n,r,i)):console.debug(`[osm] Skipping cache write for ${e}: data has no title`)}cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}async getNearbyPois(t,e,n=50){const r=`${t},${e},${n}`;if(this.lastQueryKey===r&&this.cachedResults)return console.debug("Returning cached Overpass results for:",r),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=[`~"^(${["amenity","shop","tourism","historic","leisure","office","craft","building","landuse","public_transport","aeroway"].join("|")})$"~".*"`],o=Object.entries({public_transport:["stop_area","platform"]}).map(([t,e])=>`["${t}"!~"^(${e.join("|")})$"]`).join(""),a=`\n[out:json][timeout:25];\n(\n node(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n way(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n relation(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n);\nout center;\n `.trim(),l=`${this.settings.overpassApi}?data=${encodeURIComponent(a)}`;try{const t=await this.fetchWithRetry(l,{signal:i});if(!t.ok)throw new Error("Overpass request failed");const e=(await t.json()).elements.map(this.normalizePoi);return this.lastQueryKey=r,this.cachedResults=e,e}catch(c){if("AbortError"===c.name)return console.debug("Overpass request aborted"),[];throw c}}async getCategoryPois(t,e,n,r){const i=r$(e);if(!i||!t)return[];const s=n&&r?`cat:${e}:${n}:${r}`:null;if(s&&this.lastQueryKey===s&&this.cachedResults)return console.debug("Returning cached category results for:",s),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const o=this.controller.signal,{minLat:a,minLon:l,maxLat:c,maxLon:u}=t,h=[],d=i.types||["node","way","relation"];i.filter.forEach(t=>{d.forEach(e=>{h.push(`${e}${t}[~"^name"~"."];`)})});const p=`\n[out:json][timeout:25][bbox:${a},${l},${c},${u}];\n(\n ${h.join("\n ")}\n);\nout center;\n `.trim(),f=`${this.settings.overpassApi}?data=${encodeURIComponent(p)}`;try{const t=await this.fetchWithRetry(f,{signal:o});if(!t.ok)throw new Error("Overpass request failed");const e=(await t.json()).elements.map(this.normalizePoi);return s&&(this.lastQueryKey=s,this.cachedResults=e),e}catch(g){if("AbortError"===g.name)return console.debug("Category search aborted"),[];throw console.error("Category search failed",g),g}}normalizePoi(t){const e=t.tags||{},n=t$(e)||"Point of Interest";return{title:JB(e),lat:t.lat||t.center?.lat,lon:t.lon||t.center?.lon,url:e.website,osmId:String(t.id),osmType:t.type,osmTags:e,description:e.description,source:"osm",type:n}}async fetchWithRetry(t,e={},n=3){try{const r=await fetch(t,e);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Overpass request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Overpass request... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1);throw r}}async getPoiById(t,e=null){let n;n="node"===e?`[out:json][timeout:25];node(${t});out center;`:"way"===e?`[out:json][timeout:25];way(${t});out center;`:`\n[out:json][timeout:25];\n(\n node(${t});\n way(${t});\n);\nout center;\n `.trim();const r=`${this.settings.overpassApi}?data=${encodeURIComponent(n)}`,i=await this.fetchWithRetry(r);if(!i.ok)throw new Error("Overpass request failed");const s=await i.json();return s.elements[0]?this.normalizePoi(s.elements[0]):null}async fetchOsmObject(e,n,{forceFresh:r=!1}={}){if(!e||!n)return null;const i=this._buildCacheKey(n,e);if(r)return this._fetchAndCacheOsmObject(e,n,i);const s=this.cachedPlaces.get(i);if(s&&Date.now()-s.timestamp{console.debug("[osm] Background refresh failed for",i,t)}),o):this._fetchAndCacheOsmObject(e,n,i)}async _refreshOsmObject(t,e,n){const r=await this._fetchOsmObjectFromApi(t,e);return r&&this._storeInMemoryAndLocalStorage(n,e,t,r),r}async _fetchAndCacheOsmObject(t,e,n){const r=await this._fetchOsmObjectFromApi(t,e);return r&&this._storeInMemoryAndLocalStorage(n,e,t,r),r}async _fetchOsmObjectFromApi(t,e){let n;if("node"===e)n=`https://www.openstreetmap.org/api/0.6/node/${t}.json`;else if("way"===e)n=`https://www.openstreetmap.org/api/0.6/way/${t}/full.json`;else{if("relation"!==e)return console.error("Unknown OSM type:",e),null;n=`https://www.openstreetmap.org/api/0.6/relation/${t}/full.json`}try{const r=await this.fetchWithRetry(n);if(!r.ok){if(410===r.status)return console.warn("OSM object has been deleted"),null;throw new Error(`OSM API request failed: ${r.status}`)}const i=await r.json();return this.normalizeOsmApiData(i.elements,t,e)}catch(r){return console.error("Failed to fetch OSM object:",r),null}}async fetchOsmObjectsBatch(t){const e=new Map;if(!t||0===t.length)return e;const n=[];for(const{osmType:s,osmId:o}of t){if(!s||!o)continue;const t=this._buildCacheKey(s,o),r=await this.getCachedOsmObject(s,o);r?e.set(t,r):n.push({osmType:s,osmId:o,cacheKey:t})}if(0===n.length)return e;const r=new Map;for(const s of n)r.has(s.osmType)||r.set(s.osmType,[]),r.get(s.osmType).push(s);const i=[];for(const[s,o]of r)i.push(this._fetchOsmObjectsByType(s,o,e));return await Promise.allSettled(i),e}async _fetchOsmObjectsByType(t,e,n){for(let i=0;it.osmId).join(","),a="way"===t?"ways":t+"s",l=`https://www.openstreetmap.org/api/0.6/${a}.json?${a}=${o}`;try{const e=await this.fetchWithRetry(l);if(!e.ok){console.warn(`[osm] Batch fetch failed for ${t} (${e.status})`,o);continue}const r=await e.json();for(const i of s){const e=this.normalizeOsmApiData(r.elements,i.osmId,t);e&&(n.set(i.cacheKey,e),null!=e.lat&&null!=e.lon&&e.title&&this._storeInMemoryAndLocalStorage(i.cacheKey,t,i.osmId,e))}}catch(r){console.error(`[osm] Batch fetch error for ${t}:`,r)}}}normalizeOsmApiData(t,e,n){if(!t||0===t.length)return null;let r=t.find(t=>String(t.id)===String(e)&&t.type===n);if(!r)return null;let i=r;if("relation"===n&&r.members){const e=r.members.find(t=>"label"===t.role&&"node"===t.type),n=r.members.find(t=>"admin_centre"===t.role&&"node"===t.type),s=e||n;if(s){const e=t.find(t=>String(t.id)===String(s.ref)&&"node"===t.type);e&&(i=e)}}let s=i.lat,o=i.lon,a=null,l=null;if("way"===n&&r.nodes){const e=new Map;t.forEach(t=>{"node"===t.type&&e.set(t.id,[t.lon,t.lat])});const n=r.nodes.map(t=>e.get(t)).filter(Boolean);if(n.length>0){if(i===r){const t=n.reduce((t,e)=>t+e[1],0),e=n.reduce((t,e)=>t+e[0],0);s=t/n.length,o=e/n.length}const t=n.map(t=>t[1]),e=n.map(t=>t[0]);if(a={minLat:Math.min(...t),maxLat:Math.max(...t),minLon:Math.min(...e),maxLon:Math.max(...e)},n.length>1){const t=n[0],e=n[n.length-1];l=t[0]===e[0]&&t[1]===e[1]?{type:"Polygon",coordinates:[n]}:{type:"LineString",coordinates:n}}}}else if("relation"===n&&r.members){const e=[],n=new Map;t.forEach(t=>{"node"===t.type&&n.set(t.id,t)});const c=[];if(r.members.forEach(r=>{if("node"===r.type){const t=n.get(r.ref);t&&e.push(t)}else if("way"===r.type){const i=t.find(t=>"way"===t.type&&t.id===r.ref);if(i&&i.nodes){const t=[];i.nodes.forEach(r=>{const i=n.get(r);i&&(e.push(i),t.push([i.lon,i.lat]))}),t.length>1&&c.push(t)}}}),e.length>0){if(i===r){const t=e.reduce((t,e)=>t+e.lat,0),n=e.reduce((t,e)=>t+e.lon,0);s=t/e.length,o=n/e.length}const t=e.map(t=>t.lat),n=e.map(t=>t.lon);a={minLat:Math.min(...t),maxLat:Math.max(...t),minLon:Math.min(...n),maxLon:Math.max(...n)}}c.length>0&&(l={type:"MultiLineString",coordinates:c})}const c=i.tags||{},u=t$(c)||"Point of Interest";return{title:JB(c),lat:s,lon:o,bbox:a,geojson:l,url:c.website,osmId:String(i.id),osmType:i.type,osmTags:c,description:c.description,source:"osm",type:u}}},a$=a({default:()=>l$}),l$=class extends fp{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");controller=null;cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}get baseUrl(){return this.settings.photonApi}async search(t,e,n,r=10){if(!t||t.length<2)return[];this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=new URLSearchParams({q:t,limit:String(r)});e&&n&&(s.append("lat",parseFloat(e).toFixed(4)),s.append("lon",parseFloat(n).toFixed(4)));const o=`${this.baseUrl}?${s.toString()}`;try{const t=await this.fetchWithRetry(o,{signal:i});if(!t.ok)throw new Error(`Photon request failed with status ${t.status}`);const e=await t.json();return e.features?e.features.map(t=>this.normalizeFeature(t)):[]}catch(a){return"AbortError"===a.name||console.error("Photon search error:",a),[]}}normalizeFeature(t){const e=t.properties||{},n=(t.geometry||{}).coordinates||[],r=n[0],i=n[1],s=[];e.street&&s.push(e.housenumber?`${e.street} ${e.housenumber}`:e.street),e.city&&e.city!==e.name&&s.push(e.city),e.state&&e.state!==e.city&&s.push(e.state),e.country&&s.push(e.country);const o=s.join(", "),a=e.name||o||"Unknown Place",l={...e};e.osm_key&&e.osm_value&&(l[e.osm_key]=e.osm_value);const c=t$(l)||ZB(e.osm_value);return{title:a,lat:i,lon:r,osmId:e.osm_id,osmType:{N:"node",W:"way",R:"relation"}[e.osm_type]||e.osm_type,osmTags:l,description:e.name?o:s.slice(1).join(", "),source:"photon",type:c}}async fetchWithRetry(t,e={},n=3){try{const r=await fetch(t,e);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Photon request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Photon request... (${n} left)`,r),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1);throw r}}},c$=a({default:()=>h$}),u$="place-name-cache",h$=class extends fp{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"localForage",[pp])}#mt=void pF(this,"localForage");_pendingBatchPromise=null;_lastBatchSignature="";_unresolvable=new Set;resolveBookmark(t){return this.storage.findPlaceById(t)?.title||null}async _resolveCachedName(t){return await this.localForage.get(u$,t.placeIdentifier)||(await this.osm.getCachedOsmObject(t.osmType,t.osmId))?.title||null}async resolveInBackground(t){const e=t.filter(t=>t.placeNameLoading);if(0===e.length)return;await Promise.all(e.map(async t=>{const e=await this._resolveCachedName(t);e&&(t.placeName=e,t.placeNameLoading=!1)}));for(const i of t)i.placeNameLoading&&this._isUnresolvable(i)&&(i.placeName=this._fallbackName(i),i.placeNameLoading=!1);const n=t.filter(t=>t.placeNameLoading&&!this._isUnresolvable(t));if(0!==n.length)try{const e=await this._getOrCreateBatch(n);for(const n of t)n.placeNameLoading&&(e.has(n.placeIdentifier)?(n.placeName=e.get(n.placeIdentifier),n.placeNameLoading=!1):(this._unresolvable.add(n.placeIdentifier),n.placeName=this._fallbackName(n),n.placeNameLoading=!1))}catch(r){console.error("[place-name-resolver] Batch resolution failed",r);for(const e of t)e.placeNameLoading&&(this._unresolvable.add(e.placeIdentifier),e.placeName=this._fallbackName(e),e.placeNameLoading=!1)}}_isUnresolvable(t){return this._unresolvable.has(t.placeIdentifier)}_getOrCreateBatch(t){const e=t.map(t=>t.placeIdentifier).sort().join("|");return e===this._lastBatchSignature&&this._pendingBatchPromise||(this._lastBatchSignature=e,this._pendingBatchPromise=this._batchResolveNames(t).finally(()=>{this._pendingBatchPromise=null})),this._pendingBatchPromise}_fallbackName(t){return`OSM ${t.osmType} ${t.osmId}`}async _batchResolveNames(t){const e=new Map,n=[];for(const s of t){const t=await this._resolveCachedName(s);t?e.set(s.placeIdentifier,t):n.push({osmType:s.osmType,osmId:s.osmId})}if(0===n.length)return e;const r=await this.osm.fetchOsmObjectsBatch(n),i=[];for(const s of t){if(e.has(s.placeIdentifier))continue;const t=`${s.osmType}:${s.osmId}`,n=r.get(t);n?.title&&(e.set(s.placeIdentifier,n.title),i.push(this.localForage.set(u$,s.placeIdentifier,n.title)))}return await Promise.all(i),e}reset(){this._unresolvable.clear(),this._lastBatchSignature="",this._pendingBatchPromise=null}},d$=a({default:()=>f$}),p$={overpassApi:"https://overpass-api.de/api/interpreter",mapKinetic:!0,photonApi:"https://photon.komoot.io/api/",showQuickSearchButtons:!0,nostrPhotoFallbackUploads:!1,nostrMediaServer:JF,nostrReadRelays:null,nostrWriteRelays:null,nostrReadRelayExclusions:null,nostrWriteRelayExclusions:null,nostrTrustedRelays:null,experimentalEnablePhotoDeletion:!1},f$=class extends fp{static{hF(this.prototype,"overpassApi",[Wr],function(){return p$.overpassApi})}#Mt=void pF(this,"overpassApi");static{hF(this.prototype,"mapKinetic",[Wr],function(){return p$.mapKinetic})}#At=void pF(this,"mapKinetic");static{hF(this.prototype,"photonApi",[Wr],function(){return p$.photonApi})}#Ot=void pF(this,"photonApi");static{hF(this.prototype,"showQuickSearchButtons",[Wr],function(){return p$.showQuickSearchButtons})}#Nt=void pF(this,"showQuickSearchButtons");static{hF(this.prototype,"nostrPhotoFallbackUploads",[Wr],function(){return p$.nostrPhotoFallbackUploads})}#zt=void pF(this,"nostrPhotoFallbackUploads");static{hF(this.prototype,"nostrMediaServer",[Wr],function(){return p$.nostrMediaServer})}#Ft=void pF(this,"nostrMediaServer");static{hF(this.prototype,"nostrReadRelays",[Wr],function(){return p$.nostrReadRelays})}#Dt=void pF(this,"nostrReadRelays");static{hF(this.prototype,"nostrWriteRelays",[Wr],function(){return p$.nostrWriteRelays})}#jt=void pF(this,"nostrWriteRelays");static{hF(this.prototype,"nostrReadRelayExclusions",[Wr],function(){return p$.nostrReadRelayExclusions})}#Ut=void pF(this,"nostrReadRelayExclusions");static{hF(this.prototype,"nostrWriteRelayExclusions",[Wr],function(){return p$.nostrWriteRelayExclusions})}#Bt=void pF(this,"nostrWriteRelayExclusions");static{hF(this.prototype,"nostrTrustedRelays",[Wr],function(){return p$.nostrTrustedRelays})}#$t=void pF(this,"nostrTrustedRelays");static{hF(this.prototype,"experimentalEnablePhotoDeletion",[Wr],function(){return p$.experimentalEnablePhotoDeletion})}#qt=void pF(this,"experimentalEnablePhotoDeletion");overpassApis=[{name:"overpass-api.de (DE)",url:"https://overpass-api.de/api/interpreter"},{name:"private.coffee (AT)",url:"https://overpass.private.coffee/api/interpreter"}];photonApis=[{name:"photon.komoot.io",url:"https://photon.komoot.io/api/"}];constructor(){super(...arguments),this.loadSettings()}loadSettings(){let t={};const e=localStorage.getItem("marco:settings");if(e)try{t=JSON.parse(e)}catch(r){console.error("Failed to parse settings from localStorage",r)}else{const e=localStorage.getItem("marco:overpass-api");e&&(t.overpassApi=e);const n=localStorage.getItem("marco:map-kinetic");null!==n&&(t.mapKinetic="true"===n);const r=localStorage.getItem("marco:show-quick-search");null!==r&&(t.showQuickSearchButtons="true"===r);const i=localStorage.getItem("marco:nostr-photo-fallback-uploads");null!==i&&(t.nostrPhotoFallbackUploads="true"===i);const s=localStorage.getItem("marco:photon-api");s&&(t.photonApi=s)}const n={...p$,...t};this.overpassApis.some(t=>t.url===n.overpassApi)||(n.overpassApi=p$.overpassApi),this.overpassApi=n.overpassApi,this.mapKinetic=n.mapKinetic,this.photonApi=n.photonApi,this.showQuickSearchButtons=n.showQuickSearchButtons,this.nostrPhotoFallbackUploads=n.nostrPhotoFallbackUploads,this.nostrMediaServer=n.nostrMediaServer,this.nostrReadRelays=n.nostrReadRelays,this.nostrWriteRelays=n.nostrWriteRelays,this.nostrReadRelayExclusions=n.nostrReadRelayExclusions,this.nostrWriteRelayExclusions=n.nostrWriteRelayExclusions,this.nostrTrustedRelays=n.nostrTrustedRelays,this.experimentalEnablePhotoDeletion=n.experimentalEnablePhotoDeletion,this.saveSettings()}saveSettings(){const t={overpassApi:this.overpassApi,mapKinetic:this.mapKinetic,photonApi:this.photonApi,showQuickSearchButtons:this.showQuickSearchButtons,nostrPhotoFallbackUploads:this.nostrPhotoFallbackUploads,nostrMediaServer:this.nostrMediaServer,nostrReadRelays:this.nostrReadRelays,nostrWriteRelays:this.nostrWriteRelays,nostrReadRelayExclusions:this.nostrReadRelayExclusions,nostrWriteRelayExclusions:this.nostrWriteRelayExclusions,nostrTrustedRelays:this.nostrTrustedRelays,experimentalEnablePhotoDeletion:this.experimentalEnablePhotoDeletion};localStorage.setItem("marco:settings",JSON.stringify(t))}update(t,e){t in p$&&(this[t]=e,this.saveSettings())}},g$=o((t,e)=>{var n,r;n=t,r=function(){return function(){var t={548:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Access=void 0;class n{constructor(t){this.rs=t,this.reset(!1)}get scopes(){return Object.keys(this.scopeModeMap).map(t=>({name:t,mode:this.scopeModeMap[t]}))}get scopeParameter(){return this.scopes.map(t=>`${this._scopeNameForParameter(t)}:${t.mode}`).join(" ")}claim(t,e){if("string"!=typeof t||-1!==t.indexOf("/")||0===t.length)throw new Error("Scope should be a non-empty string without forward slashes");if("string"!=typeof e||!e.match(/^rw?$/))throw new Error("Mode should be either 'r' or 'rw'");this._adjustRootPaths(t),this.scopeModeMap[t]=e,this._notifyChange()}get(t){return this.scopeModeMap[t]}remove(t){const e={};for(const n in this.scopeModeMap)e[n]=this.scopeModeMap[n];this.reset(!1),delete e[t];for(const n in e)this._adjustRootPaths(n),this.scopeModeMap[n]=e[n];this._notifyChange()}checkPermission(t,e){const n=this.get(t);return n&&("r"===e||"rw"===n)}checkPathPermission(t,e){if(this.checkPermission("*",e))return!0;const n=this._getModuleName(t);return!!this.checkPermission(n,e)}reset(t=!0){this.rootPaths=[],this.scopeModeMap={},t&&this._notifyChange()}_getModuleName(t){if("/"!==t[0])throw new Error("Path should start with a slash");const e=t.replace(/^\/public/,"").match(/^\/([^/]*)\//);return e?e[1]:"*"}_adjustRootPaths(t){"*"in this.scopeModeMap||"*"===t?this.rootPaths=["/"]:t in this.scopeModeMap||(this.rootPaths.push("/"+t+"/"),this.rootPaths.push("/public/"+t+"/"))}_scopeNameForParameter(t){if("*"===t.name&&this.storageType){if("2012.04"===this.storageType)return"";if(this.storageType.match(/remotestorage-0[01]/))return"root"}return t.name}setStorageType(t){this.storageType=t}_notifyChange(){this.rs&&"function"==typeof this.rs._checkScopeChange&&this.rs._checkScopeChange()}static _rs_init(){}}e.Access=n,e.default=n},275:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Authorize=void 0;const s=i(n(28)),o=i(n(334)),a=n(746),l=i(n(503)),c=n(368);let u;function h(t){const e=t||d.getLocation().href,n={};for(const[s,o]of new URL(e).searchParams)n[s]=o;const r=e.indexOf("#");if(-1===r)return n;const i=e.substring(r+1);return i.includes("=")?i.split("&").reduce(function(t,e){const n=e.split("=");if("state"===n[0]&&n[1].match(/rsDiscovery/)){let e=decodeURIComponent(n[1]);const r=e.substr(e.indexOf("rsDiscovery=")).split("&")[0].split("=")[1];t.rsDiscovery=JSON.parse(atob(r)),e=e.replace(new RegExp("&?rsDiscovery="+r),""),e.length>0&&(t.state=e)}else t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]);return t},n):n}class d{static authorize(t,e){if((0,o.default)("[Authorize] authURL = ",e.authURL,"scope = ",e.scope,"redirectUri = ",e.redirectUri,"clientId = ",e.clientId,"response_type =",e.response_type),!e.scope)throw new Error("Cannot authorize due to undefined or empty scope; did you forget to access.claim()?");if("function"==typeof t._rememberPendingScope&&t._rememberPendingScope(e.scope),!(0,a.localStorageAvailable)()&&"remotestorage"===t.backend){e.redirectUri+=e.redirectUri.indexOf("#")>0?"&":"#";const n={userAddress:t.remote.userAddress,href:t.remote.href,storageApi:t.remote.storageApi,properties:t.remote.properties};e.redirectUri+="rsDiscovery="+(0,a.toBase64)(JSON.stringify(n))}const n=function(t){const e=new URL(t.redirectUri);t.state||(t.state=e.hash?e.hash.substring(1):""),t.response_type||(t.response_type="token");const n=new URL(t.authURL);n.searchParams.set("redirect_uri",t.redirectUri.replace(/#.*$/,"")),n.searchParams.set("scope",t.scope),n.searchParams.set("client_id",t.clientId);for(const r of["state","response_type","code_challenge","code_challenge_method","token_access_type"]){const e=t[r];e&&n.searchParams.set(r,e)}return n.href}(e);a.globalContext.cordova&&(d.getLocation().href.startsWith("file:")||"string"==typeof s.default.cordovaRedirectUri&&e.redirectUri===s.default.cordovaRedirectUri)?d.openWindow(n,e.redirectUri,"location=yes,clearsessioncache=yes,clearcache=yes").then(n=>{t.remote.configure({token:n.access_token}),"function"==typeof t._completeAuthorization&&t._completeAuthorization(n.scope||e.scope)}):d.setLocation(n)}static refreshAccessToken(t,e,n){return r(this,void 0,void 0,function*(){var t,r,i;yield e.configure({token:null,tokenType:null});const s=new URLSearchParams({grant_type:"refresh_token",client_id:e.clientId,refresh_token:n}),a=yield(0,c.requestWithTimeout)("POST",e.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s.toString(),responseType:"json"});if(200!==(null==a?void 0:a.status))throw yield e.configure({refreshToken:null}),new l.default("refresh token rejected:"+JSON.stringify(a.response));{(0,o.default)(`[Authorize] access token good for ${null===(t=null==a?void 0:a.response)||void 0===t?void 0:t.expires_in} seconds`);const n={token:null===(r=null==a?void 0:a.response)||void 0===r?void 0:r.access_token,tokenType:null===(i=null==a?void 0:a.response)||void 0===i?void 0:i.token_type};if(!n.token)throw new Error(`no access_token in "successful" refresh: ${a.response}`);yield e.configure(n)}})}static setLocation(t){if("string"==typeof t)document.location.href=t;else{if("object"!=typeof t)throw"Invalid location "+t;document.location.href=t.href}}static _rs_supported(){return"undefined"!=typeof document}static _rs_cleanup(t){t.removeEventListener("features-loaded",u)}}e.Authorize=d,d.IMPLIED_FAKE_TOKEN=!1,d.getLocation=function(){return document.location},d.openWindow=function(t,e,n){return new Promise((r,i)=>{const s=open(t,"_blank",n);function o(){i("Authorization was canceled")}s&&!s.closed?(s.addEventListener("loadstart",function(t){if(0!==t.url.indexOf(e))return;s.removeEventListener("exit",o),s.close();const n=h(t.url);n?r(n):i("Authorization error")}),s.addEventListener("exit",o)):i("Authorization popup was blocked")})},d._rs_init=function(t){const e=h(),n=function(t){return"string"==typeof t.access_token||"string"==typeof t.code||"string"==typeof t.error||"string"==typeof t.remotestorage||"object"==typeof t.rsDiscovery}(e);let i;n&&(i=d.getLocation(),i.hash=""),u=function(){let s=!1;if(n){if(e.error)throw"function"==typeof t._forgetPendingScope&&t._forgetPendingScope(),"access_denied"===e.error?new l.default("Authorization failed: access denied",{code:"access_denied"}):new l.default(`Authorization failed: ${e.error}`);e.rsDiscovery&&t.remote.configure(e.rsDiscovery),e.access_token&&(t.remote.configure({token:e.access_token}),"function"==typeof t._completeAuthorization&&t._completeAuthorization(e.scope),s=!0),e.remotestorage&&(t.connect(e.remotestorage),s=!0),e.state&&(i=d.getLocation(),d.setLocation(i.href.split("#")[0]+"#"+e.state)),e.code&&(function(e){r(this,void 0,void 0,function*(){var n,r,s,a,l;const u=sessionStorage.getItem("remotestorage:codeVerifier");if(!u)return void(0,o.default)("[Authorize] Ignoring OAuth code parameter, because no PKCE code verifier found in sessionStorage");i=d.getLocation();let h=i.origin;"/"!==i.pathname&&(h+=i.pathname);const p=new URLSearchParams({code:e,grant_type:"authorization_code",client_id:t.remote.clientId,redirect_uri:h,code_verifier:u}),f=yield(0,c.requestWithTimeout)("POST",t.remote.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:p.toString(),responseType:"json"});switch(f.status){case 200:{(0,o.default)(`[Authorize] access token good for ${null===(n=null==f?void 0:f.response)||void 0===n?void 0:n.expires_in} seconds`);const e={token:null===(r=null==f?void 0:f.response)||void 0===r?void 0:r.access_token,refreshToken:null===(s=null==f?void 0:f.response)||void 0===s?void 0:s.refresh_token,tokenType:null===(a=null==f?void 0:f.response)||void 0===a?void 0:a.token_type};e.token?(t.remote.configure(e),"function"==typeof t._completeAuthorization&&t._completeAuthorization(null===(l=null==f?void 0:f.response)||void 0===l?void 0:l.scope)):t._emit("error",new Error(`no access_token in "successful" response: ${f.response}`)),sessionStorage.removeItem("remotestorage:codeVerifier");break}default:"function"==typeof t._forgetPendingScope&&t._forgetPendingScope(),t._emit("error",new Error(`${f.statusText}: ${f.response}`))}})}(e.code),s=!0),s||t.remote.stopWaitingForToken()}else t.remote.stopWaitingForToken()},t.on("features-loaded",u)},e.default=d},424:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.BaseClient=void 0;const s=i(n(439)),o=i(n(613)),a=i(n(491)),l=i(n(93)),c=i(n(28)),u=n(746);class h{constructor(t,e){if(this.schemas={configurable:!0,get(){return h.Types.inScope(this.moduleName)}},"/"!==e[e.length-1])throw"Not a folder: "+e;"/"===e&&(this.makePath=t=>("/"===t[0]?"":"/")+t),this.storage=t,this.base=e,this.moduleName=function(t){const e=t.split("/");return t.length>2?e[1]:"root"}(this.base),this.addEvents(["change"]),this.on=this.on.bind(this),t.onChange(this.base,this._fireChange.bind(this))}scope(t){return new h(this.storage,this.makePath(t))}getListing(t,e){return r(this,void 0,void 0,function*(){if("string"!=typeof t)t="";else if(t.length>0&&!(0,u.isFolder)(t))return Promise.reject("Not a folder: "+t);return this.storage.get(this.makePath(t),e).then(t=>404===t.statusCode?{}:t.body)})}getAll(t,e){return r(this,void 0,void 0,function*(){if("string"!=typeof t)t="";else if(t.length>0&&!(0,u.isFolder)(t))return Promise.reject("Not a folder: "+t);return this.storage.get(this.makePath(t),e).then(n=>{if(404===n.statusCode)return{};if("object"==typeof n.body){const r=Object.keys(n.body);if(0===r.length)return{};const i=r.map(r=>this.storage.get(this.makePath(t+r),e).then(t=>{if("string"==typeof t.body)try{t.body=JSON.parse(t.body)}catch(t){}"object"==typeof t.body&&(n.body[r]=t.body)}));return Promise.all(i).then(()=>n.body)}})})}getFile(t,e){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.getFile must be a string"):this.storage.get(this.makePath(t),e).then(t=>({data:t.body,contentType:t.contentType,revision:t.revision}))})}storeFile(t,e,n){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'contentType' of baseClient.storeFile must be a string"):"string"!=typeof e?Promise.reject("Argument 'path' of baseClient.storeFile must be a string"):"string"!=typeof n&&"object"!=typeof n?Promise.reject("Argument 'body' of baseClient.storeFile must be a string, ArrayBuffer, or ArrayBufferView"):(this.storage.access.checkPathPermission(this.makePath(e),"rw")||console.warn("WARNING: Editing a document to which only read access ('r') was claimed"),this.storage.put(this.makePath(e),n,t).then(t=>200===t.statusCode||201===t.statusCode?t.revision:Promise.reject("Request (PUT "+this.makePath(e)+") failed with status: "+t.statusCode)))})}getObject(t,e){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.getObject must be a string"):this.storage.get(this.makePath(t),e).then(e=>{if("object"==typeof e.body)return e.body;if("string"==typeof e.body)try{return JSON.parse(e.body)}catch(e){throw new Error("Not valid JSON: "+this.makePath(t))}else if(void 0!==e.body&&200===e.statusCode)return Promise.reject("Not an object: "+this.makePath(t))})})}storeObject(t,e,n){return r(this,void 0,void 0,function*(){if("string"!=typeof t)return Promise.reject("Argument 'typeAlias' of baseClient.storeObject must be a string");if("string"!=typeof e)return Promise.reject("Argument 'path' of baseClient.storeObject must be a string");if("object"!=typeof n)return Promise.reject("Argument 'object' of baseClient.storeObject must be an object");this._attachType(n,t);try{const t=this.validate(n);if(!t.valid)return Promise.reject(t)}catch(t){return Promise.reject(t)}return this.storage.put(this.makePath(e),JSON.stringify(n),"application/json; charset=UTF-8").then(t=>200===t.statusCode||201===t.statusCode?t.revision:Promise.reject("Request (PUT "+this.makePath(e)+") failed with status: "+t.statusCode))})}remove(t){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.remove must be a string"):(this.storage.access.checkPathPermission(this.makePath(t),"rw")||console.warn("WARNING: Removing a document to which only read access ('r') was claimed"),this.storage.delete(this.makePath(t),this.storage.connected))})}getItemURL(t){return r(this,void 0,void 0,function*(){if("string"!=typeof t)throw"Argument 'path' of baseClient.getItemURL must be a string";if(this.storage.connected)return"function"==typeof this.storage.remote.getItemURL?this.storage.remote.getItemURL(this.makePath(t)):this.storage.remote.href+(0,u.cleanPath)(this.makePath(t))})}cache(t,e="ALL"){if("string"!=typeof t)throw"Argument 'path' of baseClient.cache must be a string";if("string"!=typeof e)throw"Argument 'strategy' of baseClient.cache must be a string or undefined";if("FLUSH"!==e&&"SEEN"!==e&&"ALL"!==e)throw'Argument \'strategy\' of baseclient.cache must be one of ["FLUSH", "SEEN", "ALL"]';return this.storage.caching.set(this.makePath(t),e),this}declareType(t,e,n){let r;if(n&&"string"==typeof e)r=e;else if(n||"string"==typeof e){if(!n&&"string"==typeof e)throw new Error("declareType() requires a JSON Schema object to be passed, in order to validate object types/formats")}else n=e,r=this._defaultTypeURI(t);h.Types.declare(this.moduleName,t,r,n)}validate(t){const e=h.Types.getSchema(t["@context"]);if(e)return s.default.validateResult(t,e);throw new a.default(t["@context"])}_defaultTypeURI(t){return"http://remotestorage.io/spec/modules/"+encodeURIComponent(this.moduleName)+"/"+encodeURIComponent(t)}_attachType(t,e){t["@context"]=h.Types.resolveAlias(this.moduleName+"/"+e)||this._defaultTypeURI(e)}makePath(t){return this.base+(t||"")}_fireChange(t){c.default.changeEvents[t.origin]&&(["new","old","lastCommon"].forEach(function(e){if((!t[e+"ContentType"]||/^application\/(.*)json(.*)/.exec(t[e+"ContentType"]))&&"string"==typeof t[e+"Value"])try{t[e+"Value"]=JSON.parse(t[e+"Value"])}catch(t){}}),this._emit("change",t))}static _rs_init(){}}e.BaseClient=h,h.Types=o.default,(0,u.applyMixins)(h,[l.default]),e.default=h},285:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Caching=void 0;const i=n(746),s=r(n(334));class o{constructor(t){this.pendingActivations=[],this._access=t.access,this.reset()}set(t,e){if("string"!=typeof t)throw new Error("path should be a string");if(!(0,i.isFolder)(t))throw new Error("path should be a folder");if(!this._access.checkPathPermission(t,"r"))throw new Error('No access to path "'+t+'". You must claim access to it first.');if(void 0===e||!e.match(/^(FLUSH|SEEN|ALL)$/))throw new Error("strategy should be 'FLUSH', 'SEEN', or 'ALL'");this._rootPaths[t]=e,"ALL"===e&&(this.activateHandler?this.activateHandler(t):this.pendingActivations.push(t))}enable(t){this.set(t,"ALL")}disable(t){this.set(t,"FLUSH")}onActivate(t){(0,s.default)("[Caching] Setting activate handler",t,this.pendingActivations),this.activateHandler=t;for(let e=0;e{this.emitChange(t.data)})}get(t,e,n){return r(this,void 0,void 0,function*(){return"number"==typeof e?this.getNodes((0,c.pathsFromRoot)(t)).then(r=>{const i=u(r[t]);return h(r,e)?n(t):i?{statusCode:200,body:i.body||i.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(i.contentType||null)}:{statusCode:404}}):this.getNodes([t]).then(e=>{const n=u(e[t]);if(n){if((0,c.isFolder)(t))for(const t in n.itemsMap)n.itemsMap.hasOwnProperty(t)&&!1===n.itemsMap[t]&&delete n.itemsMap[t];return{statusCode:200,body:n.body||n.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(n.contentType||null)}}return{statusCode:404}})})}put(t,e,n){return r(this,void 0,void 0,function*(){const r=(0,c.pathsFromRoot)(t);return this._updateNodes(r,function(t,r){try{for(let i=0,s=t.length;i0)break}else console.error("Cannot delete non-existing node "+i)}return n})})}flush(t){return this._getAllDescendentPaths(t).then(t=>this.getNodes(t)).then(t=>{for(const e in t){const n=t[e];n&&n.common&&n.local&&this.emitChange({path:n.path,origin:"local",oldValue:!1===n.local.body?void 0:n.local.body,newValue:!1===n.common.body?void 0:n.common.body}),t[e]=void 0}return this.setNodes(t)})}emitChange(t){a.default.changeEvents[t.origin]&&this._emit("change",t)}fireInitial(){a.default.changeEvents.local&&this.forAllNodes(t=>{if((0,c.isDocument)(t.path)){const e=u(t);e&&this.emitChange({path:t.path,origin:"local",oldValue:void 0,oldContentType:void 0,newValue:e.body,newContentType:e.contentType})}}).then(()=>{this._emit("local-events-done")})}onDiff(t){this.diffHandler=t}_updateNodes(t,e){return new Promise((n,r)=>{this._doUpdateNodes(t,e,{resolve:n,reject:r})})}_doUpdateNodes(t,e,n){return r(this,void 0,void 0,function*(){if(this._updateNodesRunning)return void this._updateNodesQueued.push({paths:t,cb:e,promise:n});this._updateNodesRunning=!0;try{let r=yield this.getNodes(t);const i=(0,c.deepClone)(r),s=[];r=e(t,r);for(const t in r){const e=r[t];(0,c.equal)(e,i[t])?delete r[t]:(0,c.isDocument)(t)&&((0,c.equal)(e.local.body,e.local.previousBody)&&e.local.contentType===e.local.previousContentType||s.push({path:t,origin:"window",oldValue:e.local.previousBody,newValue:!1===e.local.body?void 0:e.local.body,oldContentType:e.local.previousContentType,newContentType:e.local.contentType}),void 0===e.local.body?r[t]=void 0:(delete e.local.previousBody,delete e.local.previousContentType))}yield this.setNodes(r),this._emitChangeEvents(s),n.resolve({statusCode:200})}catch(t){n.reject(t)}this._updateNodesRunning=!1;const r=this._updateNodesQueued.shift();r&&(yield this._doUpdateNodes(r.paths,r.cb,r.promise))})}_emitChangeEvents(t){for(let e=0,n=t.length;e{const n=[t],r=u(e[t]),i=Object.keys(r.itemsMap).map(e=>this._getAllDescendentPaths(t+e).then(t=>{for(let e=0,r=t.length;en)}):Promise.resolve([t])}_getInternals(){return{getLatest:u,makeNode:d,isOutdated:h}}}(0,c.applyMixins)(f,[o.default]),t.exports=f},28:function(t){t.exports={cache:!0,changeEvents:{local:!0,window:!1,remote:!0,conflict:!0},cordovaRedirectUri:void 0,discovery:{allowPrivateAddresses:!0,timeout:5e3},logging:!1,modules:[],backgroundSyncInterval:6e4,disableFeatures:[],isBackground:!1,requestTimeout:3e4,syncInterval:1e4}},373:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(713)),s=r(n(28)),o=r(n(334)),a=n(746);let l;const c="remotestorage:discover";let u={};const h=function(t){if(t in u)return Promise.resolve(u[t]);const e=new i.default({tls_only:!1,uri_fallback:!0,request_timeout:s.default.discovery.timeout,allow_private_addresses:s.default.discovery.allowPrivateAddresses});let n;const r=new Promise((t,e)=>{n=setTimeout(()=>{e(new Error("timed out"))},s.default.discovery.timeout)});return Promise.race([e.lookup(t),r]).then(e=>{if(clearTimeout(n),"object"!=typeof e.idx.links.remotestorage||"number"!=typeof e.idx.links.remotestorage.length||e.idx.links.remotestorage.length<=0)throw(0,o.default)("[Discover] WebFinger record for "+t+" does not have remotestorage defined in the links section ",JSON.stringify(e.object)),new Error("WebFinger record for "+t+" does not have remotestorage defined in the links section.");const r=e.idx.links.remotestorage[0],i=r.properties||{},s=i["http://tools.ietf.org/html/rfc6749#section-4.2"]||i["auth-endpoint"],a=i["http://remotestorage.io/spec/version"]||r.type;return u[t]={href:r.href,storageApi:a,authURL:s,properties:i},l&&localStorage.setItem(c,JSON.stringify({cache:u})),u[t]}).catch(t=>{throw clearTimeout(n),t})};(h.DiscoveryError=function(t){this.name="DiscoveryError",this.message=t,this.stack=(new Error).stack}).prototype=Object.create(Error.prototype),h.DiscoveryError.prototype.constructor=h.DiscoveryError,h._rs_init=function(){if(l=(0,a.localStorageAvailable)(),l){const t=JSON.parse(localStorage.getItem(c));t&&(u=t.cache)}},h._rs_supported=function(){return Object.prototype.hasOwnProperty.call(a.globalContext,"fetch")||Object.prototype.hasOwnProperty.call(a.globalContext,"XMLHttpRequest")},h._rs_cleanup=function(){l&&localStorage.removeItem(c)},t.exports=h},706:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(93)),o=i(n(941)),a=i(n(982)),l=i(n(503)),c=n(746),u=n(368),h=n(684),d=i(n(275));let p;const f="remotestorage:dropbox",g="https://api.dropboxapi.com/2/files/list_folder",m="https://api.dropboxapi.com/2/files/list_folder/continue";function y(t){return("/remotestorage/"+t).replace(/\/+$/,"").replace(/\/+/g,"/")}const v=/[\u007f-\uffff]/g;function b(t){return JSON.stringify(t).replace(v,function(t){return"\\u"+("000"+t.charCodeAt(0).toString(16)).slice(-4)})}function w(t,e){return new RegExp("^"+e.join("\\/")+"(\\/|$)").test(t.error_summary)}class _ extends h.RemoteBase{constructor(t){if(super(t),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this._initialFetchDone=!1,this.addEvents(["connected","not-connected"]),this.clientId=t.apiKeys.dropbox.appKey,this.TOKEN_URL="https://api.dropboxapi.com/oauth2/token",this._revCache=new o.default("rev"),this._fetchDeltaCursor=null,this._fetchDeltaPromise=null,this._itemRefs={},p=(0,c.localStorageAvailable)(),p){const t=(0,c.getJSONFromLocalStorage)(f);t&&this.configure(t),this._itemRefs=(0,c.getJSONFromLocalStorage)(`${f}:shares`)||{}}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}connect(){return r(this,void 0,void 0,function*(){try{if(this.rs.setBackend("dropbox"),this.token)k(this.rs);else{const{codeVerifier:t,codeChallenge:e,state:n}=yield(0,c.generateCodeVerifier)();sessionStorage.setItem("remotestorage:codeVerifier",t),sessionStorage.setItem("remotestorage:state",n),this.rs.authorize({authURL:"https://www.dropbox.com/oauth2/authorize",scope:"account_info.read files.content.read files.content.write files.metadata.read files.metadata.write sharing.read sharing.write",clientId:this.clientId,response_type:"code",state:n,code_challenge:e,code_challenge_method:"S256",token_access_type:"offline"})}}catch(t){throw this.rs._emit("error",t),this.rs.setBackend(void 0),t}})}configure(t){return r(this,void 0,void 0,function*(){void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.token&&(this.token=t.token),void 0!==t.refreshToken&&(this.refreshToken=t.refreshToken),void 0!==t.tokenType&&(this.tokenType=t.tokenType);const e=()=>{p&&localStorage.setItem(f,JSON.stringify({userAddress:this.userAddress,token:this.token,refreshToken:this.refreshToken,tokenType:this.tokenType}))};if(this.refreshToken||this.token)if(this.connected=!0,this.userAddress)this._emit("connected"),e();else try{const t=yield this.info();this.userAddress=t.email,this._emit("connected"),e()}catch(t){this.connected=!1,this.rs._emit("error",new Error("Could not fetch user info.")),e.apply(this)}else(()=>{this.connected=!1,p&&(localStorage.removeItem(f),localStorage.removeItem(`${f}:shares`)),this.rs.setBackend(void 0)})()})}_getFolder(t){const e=this._revCache,n=n=>{let i;if(200!==n.status&&409!==n.status)return Promise.reject("Unexpected response status: "+n.status);try{i=JSON.parse(n.responseText)}catch(t){return Promise.reject(t)}if(409===n.status)return w(i,["path","not_found"])?Promise.resolve({}):Promise.reject(new Error("API returned an error: "+i.error_summary));const s=i.entries.reduce((n,r)=>{try{const i="folder"===r[".tag"],s=r.path_display.split("/").slice(-1)[0]+(i?"/":"");if(i)n[s]={ETag:e.get(t+s)};else{const e=new Date(r.server_modified);n[s]={ETag:r.rev,"Content-Length":r.size,"Last-Modified":e.toUTCString()},this._revCache.set(t+s,r.rev)}}catch(e){console.error(`[Dropbox] folder “${t}” has entry ${JSON.stringify(r)}:`,e)}return n},{});return i.has_more?r(i.cursor).then(function(t){return Object.assign(s,t)}):Promise.resolve(s)},r=t=>{const e={body:{cursor:t}};return this._request("POST",m,e).then(n)};return this._request("POST",g,{body:{path:y(t)}}).then(n).then(function(n){return Promise.resolve({statusCode:200,body:n,contentType:"application/json; charset=UTF-8",revision:e.get(t)})})}get(t,e={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const n=this._revCache.get(t);if(null===n)return Promise.resolve({statusCode:404});if(e&&e.ifNoneMatch){if(!this._initialFetchDone)return this.fetchDelta().then(()=>this.get(t,e));if(n&&n===e.ifNoneMatch)return Promise.resolve({statusCode:304})}if("/"===t.slice(-1))return this._getFolder(t);const r={headers:{"Dropbox-API-Arg":b({path:y(t)})},responseType:"arraybuffer"};return e&&e.ifNoneMatch&&(r.headers["If-None-Match"]=e.ifNoneMatch),this._request("GET","https://content.dropboxapi.com/2/files/download",r).then(e=>{const n=e.status;let r,i,s,o;return 200!==n&&409!==n?Promise.resolve({statusCode:n}):(r=e.getResponseHeader("Dropbox-API-Result"),(0,c.getTextFromArrayBuffer)(e.response,"UTF-8").then(a=>{i=a,409===n&&(r=i);try{r=JSON.parse(r)}catch(t){return Promise.reject(t)}if(409===n)return w(r,["path","not_found"])?{statusCode:404}:Promise.reject(new Error('API error while downloading file ("'+t+'"): '+r.error_summary));if(s=e.getResponseHeader("Content-Type"),o=r.rev,this._revCache.set(t,o),this._shareIfNeeded(t),(0,c.shouldBeTreatedAsBinary)(a,s))i=e.response;else try{i=JSON.parse(i),s="application/json; charset=UTF-8"}catch(t){}return{statusCode:n,body:i,contentType:(0,c.stripLegacyCharsetBinary)(s),revision:o}}))})}put(t,e,n){return r(this,arguments,void 0,function*(t,e,n,r={}){if(!this.connected)throw new Error("not connected (path: "+t+")");const i=this._revCache.get(t);if(r&&r.ifMatch&&i&&i!==r.ifMatch)return{statusCode:412,revision:i};if(r&&"*"===r.ifNoneMatch&&i&&"rev"!==i)return{statusCode:412,revision:i};if(e.length>157286400)throw new Error("Cannot upload file larger than 150MB");const s={body:e,contentType:n,path:t};if(r&&(r.ifMatch||"*"===r.ifNoneMatch)){const e=yield this._getMetadata(t);if(r&&"*"===r.ifNoneMatch&&e)return{statusCode:412,revision:e.rev};if(r&&r.ifMatch&&e&&e.rev!==r.ifMatch)return{statusCode:412,revision:e.rev}}const o=yield this._uploadSimple(s);return this._shareIfNeeded(t),o})}delete(t){return r(this,arguments,void 0,function*(t,e={}){if(!this.connected)throw new Error("not connected (path: "+t+")");const n=this._revCache.get(t);if((null==e?void 0:e.ifMatch)&&n&&e.ifMatch!==n)return{statusCode:412,revision:n};if(null==e?void 0:e.ifMatch){const n=yield this._getMetadata(t);if((null==e?void 0:e.ifMatch)&&n&&n.rev!==e.ifMatch)return{statusCode:412,revision:n.rev}}return this._deleteSimple(t)})}_shareIfNeeded(t){if(t.match(/^\/public\/.*[^/]$/)&&void 0===this._itemRefs[t])return this.share(t)}getItemURL(t){return r(this,void 0,void 0,function*(){if(t.match(/^\/public\/.*[^/]$/))return this._itemRefs[t]?this._itemRefs[t]:this.share(t)})}share(t){const e={body:{path:y(t)}};return this._request("POST","https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings",e).then(e=>{if(200!==e.status&&409!==e.status)return Promise.reject(new Error("Invalid response status:"+e.status));let n;try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid response body: "+e.responseText))}return 409===e.status?w(n,["shared_link_already_exists"])?this._getSharedLink(t):Promise.reject(new Error("API error: "+n.error_summary)):Promise.resolve(n.url)}).then(e=>(this._itemRefs[t]=e,p&&localStorage.setItem("remotestorage:dropbox:shares",JSON.stringify(this._itemRefs)),Promise.resolve(e)),e=>(e.message='Sharing Dropbox file or folder ("'+t+'") failed: '+e.message,Promise.reject(e)))}info(){return this._request("POST","https://api.dropboxapi.com/2/users/get_current_account",{}).then(function(t){let e;try{const n=JSON.parse(t.responseText);e=null==n?void 0:n.email}catch(e){return Promise.reject(new Error("Could not query current account info: Invalid API response: "+t.responseText))}return Promise.resolve({email:e})})}_request(t,e,n){return r(this,arguments,void 0,function*(t,e,n,r=1){if(this.isForbiddenRequestMethod(t,e))throw`Don't use ${t} on directories!`;if(!this.token)throw new l.default("No access token");var i;n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,"object"!=typeof n.body||(i=n.body)instanceof ArrayBuffer||(0,u.isArrayBufferView)(i)||(n.body=JSON.stringify(n.body),n.headers["Content-Type"]="application/json; charset=UTF-8"),this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)});try{const i=yield(0,u.requestWithTimeout)(t,e,n);return this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),401===(null==i?void 0:i.status)&&this.refreshToken?r>=3?(console.error(`Abandoned after ${r} attempts: ${t} ${e}`),i):(this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)}),yield d.default.refreshAccessToken(this.rs,this,this.refreshToken),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),this._request(t,e,n,r+1)):[503,429].includes(null==i?void 0:i.status)?(this.online&&(this.online=!1,this.rs._emit("network-offline")),r>=3?(console.warn(`Abandoned after ${r} attempts: ${t} ${e}`),i):(yield new Promise(t=>setTimeout(t,(0,u.retryAfterMs)(i))),this._request(t,e,n,r+1))):i}catch(n){throw this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!1}),n}})}fetchDelta(...t){if(this._fetchDeltaPromise)return this._fetchDeltaPromise;const e=t=>r(this,void 0,void 0,function*(){let n,r;"string"==typeof t?(n=m,r={cursor:t}):(n=g,r={path:"/remotestorage",recursive:!0,include_deleted:!0});try{const i=yield this._request("POST",n,{body:r});if(401===i.status)throw new l.default;if(200!==i.status&&409!==i.status)throw new Error("Invalid response status: "+i.status);let s;try{s=JSON.parse(i.responseText)}catch(t){throw new Error("Invalid response body: "+i.responseText)}if(409===i.status){if(!w(s,["path","not_found"]))throw new Error("API returned an error: "+s.error_summary);s={cursor:null,entries:[],has_more:!1}}if(t||this._revCache.deactivatePropagation(),s.entries.forEach(t=>{const e=t.path_display.slice(14);"deleted"===t[".tag"]?(this._revCache.delete(e),this._revCache.delete(e+"/")):"file"===t[".tag"]&&this._revCache.set(e,t.rev)}),this._fetchDeltaCursor=s.cursor,s.has_more)return e(s.cursor);this._revCache.activatePropagation(),this._initialFetchDone=!0}catch(t){if("timeout"===t)return;throw t}});return this._fetchDeltaPromise=e(this._fetchDeltaCursor).catch(t=>("object"==typeof t&&"message"in t?t.message="Dropbox: fetchDelta: "+t.message:t=`Dropbox: fetchDelta: ${t}`,this.rs._emit("error",t),this._fetchDeltaPromise=null,Promise.reject(t))).then(()=>(this._fetchDeltaPromise=null,Promise.resolve(t))),this._fetchDeltaPromise}_getMetadata(t){const e={path:y(t)};return this._request("POST","https://api.dropboxapi.com/2/files/get_metadata",{body:e}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status:"+t.status));let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?w(e,["path","not_found"])?Promise.resolve():Promise.reject(new Error("API error: "+e.error_summary)):Promise.resolve(e)}).then(void 0,e=>(e.message='Could not load metadata for file or folder ("'+t+'"): '+e.message,Promise.reject(e)))}_uploadSimple(t){const e={path:y(t.path),mode:{".tag":"overwrite",update:void 0},mute:!0};return t.ifMatch&&(e.mode={".tag":"update",update:t.ifMatch}),this._request("POST","https://content.dropboxapi.com/2/files/upload",{body:t.body,headers:{"Content-Type":"application/octet-stream","Dropbox-API-Arg":b(e)}}).then(e=>{if(200!==e.status&&409!==e.status)return Promise.resolve({statusCode:e.status});let n;try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid API result: "+e.responseText))}return 409===e.status?w(n,["path","conflict"])?this._getMetadata(t.path).then(function(t){return Promise.resolve({statusCode:412,revision:t.rev})}):(this.rs._emit("error",new Error(n.error_summary)),Promise.resolve({statusCode:e.status})):(this._revCache.set(t.path,n.rev),Promise.resolve({statusCode:e.status,revision:n.rev}))})}_deleteSimple(t){const e={path:y(t)};return this._request("POST","https://api.dropboxapi.com/2/files/delete",{body:e}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.resolve({statusCode:t.status});let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}if(409===t.status){if(w(e,["path_lookup","not_found"]))return Promise.resolve({statusCode:404});this.rs._emit("error",new Error(e.error_summary))}return Promise.resolve({statusCode:t.status,revision:200===t.status?e.rev:void 0})}).then(e=>(200!==e.statusCode&&404!==e.statusCode||(this._revCache.delete(t),delete this._itemRefs[t]),Promise.resolve(e)),e=>(e.message='Could not delete Dropbox file or folder ("'+t+'"): '+e.message,Promise.reject(e)))}_getSharedLink(t){return r(this,void 0,void 0,function*(){const e={body:{path:y(t),direct_only:!0}};return this._request("POST","https://api.dropboxapi.com/2/sharing/list_shared_links",e).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status: "+t.status));let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?Promise.reject(new Error("API error: "+(null==e?void 0:e.error_summary)||0)):e.links.length?Promise.resolve(e.links[0].url):Promise.reject(new Error("No links returned"))},e=>(e.message='Could not get link to a shared file or folder ("'+t+'"): '+e.message,Promise.reject(e)))})}static _rs_init(t){p=(0,c.localStorageAvailable)(),t.apiKeys.dropbox&&(t.dropbox=new _(t)),"dropbox"===t.backend&&k(t)}static _rs_supported(){return!0}static _rs_cleanup(t){(function(t){(function(t){t._origRemote&&(t.remote=t._origRemote,delete t._origRemote)})(t),function(t){t._dropboxOrigSync&&(t.sync.sync=t._dropboxOrigSync,delete t._dropboxOrigSync)}(t),C(t)})(t),p&&localStorage.removeItem(f),t.setBackend(void 0)}}function x(t,...e){t._dropboxOrigSync||(t._dropboxOrigSync=t.sync.sync.bind(t.sync),t.sync.sync=function(){return this.dropbox.fetchDelta(t,...e).then(t._dropboxOrigSync,function(e){t._emit("error",new a.default(e)),t._emit("sync-done",{completed:!1})})}.bind(t))}function C(t){t._dropboxOrigSyncCycle&&(t.syncCycle=t._dropboxOrigSyncCycle,delete t._dropboxOrigSyncCycle)}function k(t){(function(t){t._origRemote||(t._origRemote=t.remote,t.remote=t.dropbox)})(t),t.sync?x(t):function(t,...e){t._dropboxOrigSyncCycle||(t._dropboxOrigSyncCycle=t.syncCycle,t.syncCycle=()=>{if(!t.sync)throw new Error("expected sync to be initialized by now");x(t),t._dropboxOrigSyncCycle(t,...e),C(t)})}(t)}(0,c.applyMixins)(_,[s.default]),t.exports=_},451:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(93)),s=n(746),o=r(n(334));class a{constructor(){this.addEvents(["background","foreground"]),this.mode="undefined"!=typeof window?"browser":"node","browser"===this.mode&&(this.setBrowserPrefixedNames(),document.addEventListener(this.visibilityChangeEvent,this.setVisibility.bind(this),!1),this.setVisibility())}setBrowserPrefixedNames(){"browser"===this.mode&&(void 0!==document.hidden?(this.hiddenProperty="hidden",this.visibilityChangeEvent="visibilitychange"):void 0!==document.mozHidden?(this.hiddenProperty="mozHidden",this.visibilityChangeEvent="mozvisibilitychange"):void 0!==document.msHidden?(this.hiddenProperty="msHidden",this.visibilityChangeEvent="msvisibilitychange"):void 0!==document.webkitHidden&&(this.hiddenProperty="webkitHidden",this.visibilityChangeEvent="webkitvisibilitychange"))}setVisibility(){document[this.hiddenProperty]?((0,o.default)("[Env] Going into background mode"),this.goBackground()):((0,o.default)("[Env] Going into foreground mode"),this.goForeground())}isBrowser(){return"browser"===this.mode}isNode(){return"node"===this.mode}goBackground(){this._emit("background")}goForeground(){this._emit("foreground")}static _rs_init(){}static _rs_cleanup(){}}(0,s.applyMixins)(a,[i.default]),t.exports=a},93:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.EventHandling=void 0;const i=r(n(334));class s{addEvents(t){t.forEach(t=>this._addEvent(t))}addEventListener(t,e){if("string"!=typeof t)throw new Error("Argument eventName should be a string");if("function"!=typeof e)throw new Error("Argument handler should be a function");(0,i.default)("[EventHandling] Adding event listener",t),this._validateEvent(t),this._handlers[t].push(e)}on(t,e){return this.addEventListener(t,e)}removeEventListener(t,e){this._validateEvent(t);const n=this._handlers[t].length;for(let r=0;r{t(...e)})}_validateEvent(t){if(!(t in this._handlers))throw new Error("Unknown event: "+t)}_delegateEvent(t,e){e.on(t,e=>{this._emit(t,e)})}_addEvent(t){void 0===this._handlers&&(this._handlers={}),this._handlers[t]=[]}}e.EventHandling=s,e.default=s},545:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(28)),s=r(n(451)),o=r(n(334)),a=n(746),l=r(n(370)),c=r(n(548)),u=r(n(275)),h=r(n(373)),d=r(n(424)),p=r(n(801)),f=r(n(706)),g=r(n(600)),m=r(n(313)),y=r(n(285)),v=r(n(567)),b=r(n(794)),w=r(n(365));t.exports={features:[],featuresDone:0,readyFired:!1,loadFeatures(){this.features=[],this.featuresDone=0,this.readyFired=!1,this.featureModules={WireClient:g.default,Dropbox:f.default,GoogleDrive:p.default,Access:c.default,Discover:h.default,Authorize:u.default,BaseClient:d.default,Env:s.default},i.default.cache&&(0,a.extend)(this.featureModules,{Caching:y.default,IndexedDB:v.default,LocalStorage:b.default,InMemoryStorage:w.default,Sync:m.default}),i.default.disableFeatures.forEach(t=>{this.featureModules[t]&&delete this.featureModules[t]}),this._allLoaded=!1;for(const t in this.featureModules)this.loadFeature(t)},hasFeature(t){for(let e=this.features.length-1;e>=0;e--)if(this.features[e].name===t)return this.features[e].supported;return!1},loadFeature(t){const e=this.featureModules[t],n=!e._rs_supported||e._rs_supported();(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initializing ...`),"object"==typeof n?n.then(()=>{this.featureSupported(t,!0),this.initFeature(t)},()=>{this.featureSupported(t,!1)}):"boolean"==typeof n?(this.featureSupported(t,n),n&&this.initFeature(t)):this.featureSupported(t,!1)},initFeature(t){const e=this.featureModules[t];let n;try{n=e._rs_init(this)}catch(e){return void this.featureFailed(t,e)}"object"==typeof n&&"function"==typeof n.then?n.then(()=>{this.featureInitialized(t)},e=>{this.featureFailed(t,e)}):this.featureInitialized(t)},featureFailed(t,e){(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initialization failed (${e})`),this.featureDone()},featureSupported(t,e){(0,o.default)(`[RemoteStorage] [FEATURE ${t}]${e?"":"not "} supported`),e||this.featureDone()},featureInitialized(t){(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initialized`),this.features.push({name:t,init:this.featureModules[t]._rs_init,supported:!0,cleanup:this.featureModules[t]._rs_cleanup}),this.featureDone()},featureDone(){this.featuresDone++,this.featuresDone===Object.keys(this.featureModules).length&&setTimeout(this.featuresLoaded.bind(this),0)},_setCachingModule(){["IndexedDB","LocalStorage","InMemoryStorage"].some(t=>{if(this.features.some(e=>e.name===t))return this.features.local=this.featureModules[t],!0})},_fireReady(){try{this.readyFired||(this._emit("ready"),this.readyFired=!0)}catch(t){console.error("'ready' failed: ",t,t.stack),this._emit("error",t)}},featuresLoaded(){(0,o.default)("[RemoteStorage] All features loaded"),this._setCachingModule(),this.local=i.default.cache&&this.features.local&&new this.features.local,this.local&&this.remote?(this._setGPD(l.default,this),this._bindChange(this.local)):this.remote&&this._setGPD(this.remote,this.remote),this.remote&&(this.remote.on("connected",()=>{this._fireReady(),this._emit("connected")}),this.remote.on("not-connected",()=>{this._fireReady(),this._emit("not-connected")}),this.remote.connected&&(this._fireReady(),this._emit("connected")),this.hasFeature("Authorize")||this.remote.stopWaitingForToken()),this._collectCleanupFunctions();try{this._allLoaded=!0,this._emit("features-loaded")}catch(t){(0,a.logError)(t),this._emit("error",t)}this._processPending()},_collectCleanupFunctions(){this._cleanups=[];for(let t=0;t=n-this.maxAge?e.v:void 0}set(t,e){this._items[t]={v:e,t:(new Date).getTime()}}}class m extends a.RemoteBase{constructor(t,e){if(super(t),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this.addEvents(["connected","not-connected"]),this.clientId=e,this._fileIdCache=new g(300),u=(0,s.localStorageAvailable)(),u){const t=(0,s.getJSONFromLocalStorage)(l);t&&this.configure(t)}}configure(t){void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.token&&(this.token=t.token);const e=function(){u&&localStorage.setItem(l,JSON.stringify({userAddress:this.userAddress,token:this.token}))},n=function(){this.connected=!1,delete this.token,u&&localStorage.removeItem(l)};this.token?(this.connected=!0,this.userAddress?(this._emit("connected"),e.apply(this)):this.info().then(t=>{this.userAddress=t.user.emailAddress,this._emit("connected"),e.apply(this)}).catch(()=>{n.apply(this),this.rs._emit("error",new Error("Could not fetch user info."))})):n.apply(this)}connect(){this.rs.setBackend("googledrive"),this.rs.authorize({authURL:"https://accounts.google.com/o/oauth2/auth",scope:"https://www.googleapis.com/auth/drive",clientId:this.clientId})}get(t,e={}){return(0,s.isFolder)(t)?this._getFolder(f(t)):this._getFile(f(t),e)}put(t,e,n,r={}){const i=f(t);function s(t){if(t.status>=200&&t.status<300){const e=JSON.parse(t.responseText),n=this.stripQuotes(e.etag);return Promise.resolve({statusCode:200,contentType:e.mimeType,revision:n})}return 412===t.status?Promise.resolve({statusCode:412,revision:"conflict"}):Promise.reject("PUT failed with status "+t.status+" ("+t.responseText+")")}return this._getFileId(i).then(t=>t?r&&"*"===r.ifNoneMatch?s({status:412}):this._updateFile(t,i,e,n,r).then(s):this._createFile(i,e,n).then(s))}delete(t,e={}){const n=f(t);return this._getFileId(n).then(t=>t?this._getMeta(t).then(n=>{let r;return"object"==typeof n&&"string"==typeof n.etag&&(r=this.stripQuotes(n.etag)),e&&e.ifMatch&&e.ifMatch!==r?{statusCode:412,revision:r}:this._request("DELETE","https://www.googleapis.com/drive/v2/files/"+t,{}).then(t=>200===t.status||204===t.status?{statusCode:200}:Promise.reject("Delete failed: "+t.status+" ("+t.responseText+")"))}):Promise.resolve({statusCode:200}))}info(){return this._request("GET","https://www.googleapis.com/drive/v2/about?fields=user",{}).then(function(t){try{const e=JSON.parse(t.responseText);return Promise.resolve(e)}catch(t){return Promise.reject(t)}})}_updateFile(t,e,n,r,i){const s={mimeType:r},o={"Content-Type":"application/json; charset=UTF-8"};return i&&i.ifMatch&&(o["If-Match"]=this.addQuotes(i.ifMatch)),this._request("PUT","https://www.googleapis.com/upload/drive/v2/files/"+t+"?uploadType=resumable",{body:JSON.stringify(s),headers:o}).then(t=>412===t.status?t:this._request("PUT",t.getResponseHeader("Location"),{body:r.match(/^application\/json/)?JSON.stringify(n):n}))}_createFile(t,e,n){return this._getParentId(t).then(r=>{const i={title:h(p(t)),mimeType:n,parents:[{kind:"drive#fileLink",id:r}]};return this._request("POST","https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable",{body:JSON.stringify(i),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(t=>this._request("POST",t.getResponseHeader("Location"),{body:n.match(/^application\/json/)?JSON.stringify(e):e}))})}_getFile(t,e){return this._getFileId(t).then(t=>this._getMeta(t).then(t=>{let n;if("object"==typeof t&&"string"==typeof t.etag&&(n=this.stripQuotes(t.etag)),e&&e.ifNoneMatch&&n===e.ifNoneMatch)return Promise.resolve({statusCode:304});if(!t.downloadUrl){if(!t.exportLinks||!t.exportLinks["text/html"])return Promise.resolve({statusCode:200,body:"",contentType:t.mimeType,revision:n});t.mimeType+=";export=text/html",t.downloadUrl=t.exportLinks["text/html"]}return this._request("GET",t.downloadUrl,{responseType:"arraybuffer"}).then(e=>(0,s.getTextFromArrayBuffer)(e.response,"UTF-8").then(function(r){let i=r;if(t.mimeType.match(/^application\/json/))try{i=JSON.parse(i)}catch(t){}else(0,s.shouldBeTreatedAsBinary)(r,t.mimeType)&&(i=e.response);return{statusCode:200,body:i,contentType:(0,s.stripLegacyCharsetBinary)(t.mimeType),revision:n}}))}))}_getFolder(t){return this._getFileId(t).then(e=>{let n,r,i;if(!e)return Promise.resolve({statusCode:404});const o="'"+e+"' in parents";return this._request("GET","https://www.googleapis.com/drive/v2/files?q="+encodeURIComponent(o)+"&fields=items(downloadUrl%2Cetag%2CfileSize%2Cid%2CmimeType%2Ctitle%2Clabels)&maxResults=1000&trashed=false",{}).then(e=>{var o;if(200!==e.status)return Promise.reject("request failed or something: "+e.status);try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject("non-JSON response from GoogleDrive")}i={};for(const a of n.items)null!==(o=a.labels)&&void 0!==o&&o.trashed||(r=this.stripQuotes(a.etag),a.mimeType===c?(this._fileIdCache.set(t+(0,s.cleanPath)(a.title)+"/",a.id),i[a.title+"/"]={ETag:r}):(this._fileIdCache.set(t+(0,s.cleanPath)(a.title),a.id),i[a.title]={ETag:r,"Content-Type":a.mimeType,"Content-Length":a.fileSize}));return Promise.resolve({statusCode:200,body:i,contentType:"application/json; charset=UTF-8",revision:void 0})})})}_getParentId(t){const e=d(t);return this._getFileId(e).then(t=>t?Promise.resolve(t):this._createFolder(e))}_createFolder(t){return this._getParentId(t).then(e=>this._request("POST","https://www.googleapis.com/drive/v2/files",{body:JSON.stringify({title:h(p(t)),mimeType:c,parents:[{id:e}]}),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(t=>{const e=JSON.parse(t.responseText);return Promise.resolve(e.id)}))}_getFileId(t){let e;return"/"===t?Promise.resolve("root"):(e=this._fileIdCache.get(t))?Promise.resolve(e):this._getFolder(d(t)).then(()=>(e=this._fileIdCache.get(t),e?Promise.resolve(e):"/"===t.substr(-1)?this._createFolder(t).then(()=>this._getFileId(t)):Promise.resolve()))}_getMeta(t){return this._request("GET","https://www.googleapis.com/drive/v2/files/"+t,{}).then(function(e){return 200===e.status?Promise.resolve(JSON.parse(e.responseText)):Promise.reject("request (getting metadata for "+t+") failed with status: "+e.status)})}_request(t,e,n){return this.isForbiddenRequestMethod(t,e)?Promise.reject(`Don't use ${t} on directories!`):(n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,this.rs._emit("wire-busy",{method:t,isFolder:(0,s.isFolder)(e)}),(0,o.requestWithTimeout)(t,e,n).then(n=>n&&401===n.status?void this.connect():(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,s.isFolder)(e),success:!0}),Promise.resolve(n)),n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,s.isFolder)(e),success:!1}),Promise.reject(n))))}getItemURL(t){return r(this,void 0,void 0,function*(){throw new Error("getItemURL is not implemented for Google Drive yet")})}static _rs_init(t){const e=t.apiKeys.googledrive;e&&(t.googledrive=new m(t,e.clientId),"googledrive"===t.backend&&(t._origRemote=t.remote,t.remote=t.googledrive))}static _rs_supported(){return!0}static _rs_cleanup(t){t.setBackend(void 0),t._origRemote&&(t.remote=t._origRemote,delete t._origRemote)}}(0,s.applyMixins)(m,[i.default]),t.exports=m},567:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(93)),o=i(n(496)),a=i(n(334)),l=n(746),c="remotestorage";let u;class h extends o.default{constructor(t){super(),this.addEvents(["change","local-events-done"]),this.db=t||u,this.db?(this.getsRunning=0,this.putsRunning=0,this.changesQueued={},this.changesRunning={},this.commitSlownessWarning=null):(0,a.default)("[IndexedDB] Failed to open DB")}getNodes(t){return r(this,void 0,void 0,function*(){const e=[],n={};for(let r=0,i=t.length;r0?this.getNodesFromDb(e).then(function(t){for(const e in n)t[e]=n[e];return t}):n})}setNodes(t){return r(this,void 0,void 0,function*(){for(const e in t)this.changesQueued[e]=t[e]||!1;this.maybeFlush()})}maybeFlush(){0===this.putsRunning?this.flushChangesQueued():this.commitSlownessWarning||(this.commitSlownessWarning=n.g.setInterval(function(){console.warn("WARNING: waited more than 10 seconds for previous commit to finish")},1e4))}flushChangesQueued(){this.commitSlownessWarning&&(clearInterval(this.commitSlownessWarning),this.commitSlownessWarning=null),Object.keys(this.changesQueued).length>0&&(this.changesRunning=this.changesQueued,this.changesQueued={},this.setNodesInDb(this.changesRunning).then(this.flushChangesQueued.bind(this)))}getNodesFromDb(t){return new Promise((e,n)=>{const r=this.db.transaction(["nodes"],"readonly"),i=r.objectStore("nodes"),s={};this.getsRunning++,t.map(t=>{i.get(t).onsuccess=e=>{s[t]=e.target.result}}),r.oncomplete=()=>{e(s),this.getsRunning--},r.onerror=r.onabort=()=>{n("get transaction error/abort"),this.getsRunning--}})}setNodesInDb(t){return r(this,void 0,void 0,function*(){return new Promise((e,n)=>{const r=this.db.transaction(["nodes"],"readwrite"),i=r.objectStore("nodes"),s=(new Date).getTime();this.putsRunning++,(0,a.default)("[IndexedDB] Starting puts",t,this.putsRunning);for(const o in t){const e=t[o];if("object"==typeof e)try{i.put(e)}catch(t){throw(0,a.default)("[IndexedDB] Error while putting",e,t),t}else try{i.delete(o)}catch(t){throw(0,a.default)("[IndexedDB] Error while removing",i,e,t),t}}r.oncomplete=()=>{this.putsRunning--,(0,a.default)("[IndexedDB] Finished puts",t,this.putsRunning,(new Date).getTime()-s+"ms"),e()},r.onerror=()=>{this.putsRunning--,n("transaction error")},r.onabort=()=>{n("transaction abort"),this.putsRunning--}})})}reset(t){const e=this.db.name;this.db.close(),h.clean(e,()=>{h.open(e,(n,r)=>{n?(0,a.default)(`[IndexedDB] Error while resetting database ${e}:`,n):this.db=r,"function"==typeof t&&t(self)})})}forAllNodes(t){return r(this,void 0,void 0,function*(){return new Promise(e=>{this.db.transaction(["nodes"],"readonly").objectStore("nodes").openCursor().onsuccess=n=>{const r=n.target.result;r?(t(r.value),r.continue()):e()}})})}closeDB(){0===this.putsRunning?this.db.close():setTimeout(this.closeDB.bind(this),100)}static open(t,e){const n=setTimeout(function(){e("timeout trying to open db")},1e4);try{const r=indexedDB.open(t,2);r.onerror=function(){(0,a.default)("[IndexedDB] Opening DB failed",r),clearTimeout(n),e(r.error)},r.onupgradeneeded=function(t){const e=r.result;(0,a.default)("[IndexedDB] Upgrade: from ",t.oldVersion," to ",t.newVersion),e.objectStoreNames.contains("nodes")||((0,a.default)("[IndexedDB] Creating object store: nodes"),e.createObjectStore("nodes",{keyPath:"path"})),e.objectStoreNames.contains("changes")||((0,a.default)("[IndexedDB] Creating object store: changes"),e.createObjectStore("changes",{keyPath:"path"}))},r.onsuccess=function(){clearTimeout(n);const i=r.result;if(!i.objectStoreNames.contains("nodes")||!i.objectStoreNames.contains("changes"))return(0,a.default)("[IndexedDB] Missing object store. Resetting the database."),i.close(),void h.clean(t,function(){h.open(t,e)});e(null,r.result)}}catch(r){(0,a.default)("[IndexedDB] Failed to open database: "+r),(0,a.default)("[IndexedDB] Resetting database and trying again."),clearTimeout(n),h.clean(t,function(){h.open(t,e)})}}static clean(t,e){const n=indexedDB.deleteDatabase(t);n.onblocked=function(e){console.warn(`Deleting IndexedDB database "${t}" is blocked by another open connection`,e)},n.onsuccess=function(){(0,a.default)(`[IndexedDB] Deleted database "${t}"`),e()},n.onerror=n.onabort=function(e){console.error('Failed to remove database "'+t+'"',e)}}static _rs_init(t){return new Promise((e,n)=>{h.open(c,function(r,i){if(r)n(r);else{if(!i)return void n(new Error("IndexedDB opened without a database instance"));u=i,i.onerror=e=>{t._emit("error",h.eventToError(e))},e()}})})}static _rs_supported(){return new Promise((t,e)=>{const n=(0,l.getGlobalContext)();let r=!1;if("undefined"!=typeof navigator&&navigator.userAgent.match(/Android (2|3|4\.[0-3])/)&&(navigator.userAgent.match(/Chrome|Firefox/)||(r=!0)),"indexedDB"in n&&!r)try{const n=indexedDB.open("rs-check");n.onerror=function(){e()},n.onsuccess=function(){n.result.close(),indexedDB.deleteDatabase("rs-check"),t()}}catch(t){e()}else e()})}static _rs_cleanup(t){return new Promise(e=>{t.local instanceof h&&t.local.closeDB(),h.clean(c,e)})}static eventToError(t){var e;const n=null==t?void 0:t.target,r=null==n?void 0:n.error;if(r)return r;if(null===(e=null==n?void 0:n.db)||void 0===e?void 0:e.name){const t=n.objectStoreNames,e=t?Array.from(t).join(", "):"";return new Error(`Error in store(s) “${e}” in database “${n.db.name}”`)}return new Error("Unknown IndexedDB error")}diffHandler(){}}(0,l.applyMixins)(h,[s.default]),t.exports=h},365:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(93)),s=r(n(496)),o=n(746);class a extends s.default{constructor(){super(),this._storage={},this.addEvents(["change","local-events-done"])}getNodes(t){const e={};for(let n=0,r=t.length;n=2e3&&t<=36e5}var M;!function(t){t.GOOGLE="googledrive",t.DROPBOX="dropbox"}(M||(M={}));class A{constructor(t){if(this._pending=[],this._cleanups=[],this._pathHandlers={change:{}},this.apiKeys={},this._init=x.default.loadFeatures,this.features=x.default.features,this.loadFeature=x.default.loadFeature,this.featureSupported=x.default.featureSupported,this.featureDone=x.default.featureDone,this.featuresDone=x.default.featuresDone,this.featuresLoaded=x.default.featuresLoaded,this.featureInitialized=x.default.featureInitialized,this.featureFailed=x.default.featureFailed,this.hasFeature=x.default.hasFeature,this._setCachingModule=x.default._setCachingModule,this._collectCleanupFunctions=x.default._collectCleanupFunctions,this._fireReady=x.default._fireReady,this.initFeature=x.default.initFeature,"object"==typeof t&&null!==t){const e=t,{discovery:n}=e,r=a(e,["discovery"]);Object.assign(c.default,r),n&&"object"==typeof n&&Object.assign(c.default.discovery,n)}if(this.addEvents(["ready","authing","connecting","connected","disconnected","not-connected","conflict","error","features-loaded","scope-change-required","sync-interval-change","sync-started","sync-req-done","sync-done","wire-busy","wire-done","network-offline","network-online"]),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")}),S=(0,h.localStorageAvailable)(),S){this.apiKeys=(0,h.getJSONFromLocalStorage)("remotestorage:api-keys")||{};const t=localStorage.getItem("remotestorage:backend");"dropbox"===t||"googledrive"===t?this.setBackend(t):this.setBackend("remotestorage")}this._authorizedScope=this._loadAuthorizedScope(),this._scopeChangeRequired=!1,this._scopeChangeEvent=null;const e=this.on;this.on=function(t,n){const r=e.call(this,t,n);if("scope-change-required"===t&&this._scopeChangeRequired&&this._scopeChangeEvent&&setTimeout(()=>{n(this._scopeChangeEvent)},0),this._allLoaded)switch(t){case"features-loaded":setTimeout(n,0);break;case"ready":this.remote&&setTimeout(n,0);break;case"connected":this.remote&&this.remote.connected&&setTimeout(n,0);break;case"not-connected":this.remote&&!this.remote.connected&&setTimeout(n,0)}return r},this._init(),this.fireInitial=function(){this.local&&setTimeout(this.local.fireInitial.bind(this.local),0)}.bind(this),this.on("ready",this.fireInitial.bind(this)),this.loadModules()}get connected(){return this.remote.connected}get scopeChangeRequired(){return this._scopeChangeRequired}loadModules(){c.default.modules.forEach(this.addModule.bind(this))}authorize(t){if(this.access.setStorageType(this.remote.storageApi),void 0===t.scope&&(t.scope=this.access.scopeParameter),k.cordova&&"string"==typeof c.default.cordovaRedirectUri)t.redirectUri=c.default.cordovaRedirectUri;else{const e=p.default.getLocation();let n=e.origin;"/"!==e.pathname&&(n+=e.pathname),t.redirectUri=n}void 0===t.clientId&&(t.clientId=t.redirectUri.match(/^(https?:\/\/[^/]+)/)[0]),p.default.authorize(this,t)}impliedauth(t,e){t=t||this.remote.storageApi,e=e||String(document.location),(0,u.default)("ImpliedAuth proceeding due to absent authURL; storageApi = "+t+" redirectUri = "+e),this.remote.configure({token:p.default.IMPLIED_FAKE_TOKEN}),document.location.href=e}connect(t,e){if(this.setBackend("remotestorage"),t.indexOf("@")<0&&!t.match(/^(https?:\/\/)?[^\s\/$\.?#]+\.[^\s]*$/))this._emit("error",new A.DiscoveryError("Not a valid user address or URL."));else{if(t.indexOf("@")<0&&!t.match(/^https?:\/\//)&&(t=`https://${t}`),k.cordova){if("string"!=typeof c.default.cordovaRedirectUri)return void this._emit("error",new A.DiscoveryError("Please supply a custom HTTPS redirect URI for your Cordova app"));if(!k.cordova.InAppBrowser)return void this._emit("error",new A.DiscoveryError("Please include the InAppBrowser Cordova plugin to enable OAuth"))}this.remote.configure({userAddress:t}),this._emit("connecting"),A.Discover(t).then(n=>{if(this._emit("authing"),n.userAddress=t,this.remote.configure(n),!this.remote.connected)if(n.authURL)if(void 0===e)this.authorize({authURL:n.authURL});else{if("string"!=typeof e)throw new Error("Supplied bearer token must be a string");(0,u.default)("Skipping authorization sequence and connecting with known token"),this.remote.configure({token:e}),this._rememberAuthorizedScope(this.access.scopeParameter)}else this.impliedauth()},()=>{this._emit("error",new A.DiscoveryError("No storage information found for this user address."))})}}reconnect(){this.remote.configure({token:null}),"remotestorage"===this.backend?this.connect(this.remote.userAddress):this.remote.connect()}reauthorize(){this.reconnect()}disconnect(){this.remote&&this.remote.configure({userAddress:null,href:null,storageApi:null,token:null,refreshToken:null,properties:null}),this._forgetPendingScope(),this._rememberAuthorizedScope(null),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")});const t=this._cleanups.length;let e=0;const n=()=>{e++,e>=t&&(this._init(),(0,u.default)('Cleanups done, emitting "disconnected" event'),this._emit("disconnected"))};t>0?this._cleanups.forEach(t=>{const e=t(this);"object"==typeof e&&"function"==typeof e.then?e.then(n):n()}):n()}setBackend(t){if(this.backend=t,S&&(void 0!==t?localStorage.setItem("remotestorage:backend",t):localStorage.removeItem("remotestorage:backend")),void 0===t)return this._authorizedScope=null,this._scopeChangeRequired=!1,void(this._scopeChangeEvent=null);this._authorizedScope=this._loadAuthorizedScope(),this._checkScopeChange()}_rememberPendingScope(t){const e=L(t);S&&(e&&this.backend?localStorage.setItem(R,JSON.stringify({backend:this.backend,scope:e})):localStorage.removeItem(R))}_forgetPendingScope(){S&&localStorage.removeItem(R)}_rememberAuthorizedScope(t){const e=L(t);S?e&&this.backend?(localStorage.setItem(E,JSON.stringify({backend:this.backend,scope:e})),this._authorizedScope=e,this._checkScopeChange()):(localStorage.removeItem(E),this._authorizedScope=null,this._checkScopeChange()):(this._authorizedScope=e,this._checkScopeChange())}_completeAuthorization(t){const e=this._loadPendingScope()||L(t);this._forgetPendingScope(),e?this._rememberAuthorizedScope(e):this._checkScopeChange()}_checkScopeChange(){const t=L(this.access.scopeParameter),e=this._authorizedScope||this._loadAuthorizedScope(),n=!(!t||!e||t===e),r=n&&(!this._scopeChangeRequired||!this._scopeChangeEvent||this._scopeChangeEvent.requestedScope!==t||this._scopeChangeEvent.authorizedScope!==e);this._scopeChangeRequired=n,n?(this._scopeChangeEvent=this._buildScopeChangeEvent(t,e),r&&this._emit("scope-change-required",this._scopeChangeEvent)):this._scopeChangeEvent=null}_loadAuthorizedScope(){if(!S||!this.backend)return null;const t=T(E);return t&&t.backend===this.backend?L(t.scope):null}_loadPendingScope(){if(!S||!this.backend)return null;const t=T(R);return t&&t.backend===this.backend?L(t.scope):null}_buildScopeChangeEvent(t=L(this.access.scopeParameter),e=this._authorizedScope){return{requestedScope:t||"",authorizedScope:e||"",reauthorize:this.reauthorize.bind(this)}}onChange(t,e){this._pathHandlers.change[t]||(this._pathHandlers.change[t]=[]),this._pathHandlers.change[t].push(e)}enableLog(){c.default.logging=!0}disableLog(){c.default.logging=!1}log(...t){u.default.apply(A,t)}setApiKeys(t){const e=[M.GOOGLE,M.DROPBOX];if("object"!=typeof t||!Object.keys(t).every(t=>e.includes(t)))return console.error("setApiKeys() was called with invalid arguments"),!1;Object.keys(t).forEach(e=>{const n=t[e];if(n){switch(e){case M.DROPBOX:this.apiKeys[M.DROPBOX]={appKey:n},void 0!==this.dropbox&&this.dropbox.clientId===n||v.default._rs_init(this);break;case M.GOOGLE:this.apiKeys[M.GOOGLE]={clientId:n},void 0!==this.googledrive&&this.googledrive.clientId===n||y.default._rs_init(this)}return!0}delete this.apiKeys[e]}),S&&localStorage.setItem("remotestorage:api-keys",JSON.stringify(this.apiKeys))}setCordovaRedirectUri(t){if("string"!=typeof t||!t.match(/http(s)?:\/\//))throw new Error("Cordova redirect URI must be a URI string");c.default.cordovaRedirectUri=t}_setGPD(t,e){function n(t){return function(...n){return t.apply(e,n).then(P.bind(this))}}this.get=n(t.get),this.put=n(t.put),this.delete=n(t.delete)}_pendingGPD(t){return(...e)=>{const n=Array.prototype.slice.call(e);return new Promise((e,r)=>{this._pending.push({method:t,args:n,promise:{resolve:e,reject:r}})})}}_processPending(){this._pending.forEach(t=>{try{this[t.method](...t.args).then(t.promise.resolve,t.promise.reject)}catch(e){t.promise.reject(e)}}),this._pending=[]}_bindChange(t){t.on("change",this._dispatchEvent.bind(this,"change"))}_dispatchEvent(t,e){Object.keys(this._pathHandlers[t]).forEach(n=>{const r=n.length;e.path.substr(0,r)===n&&this._pathHandlers[t][n].forEach(t=>{const r={};for(const n in e)r[n]=e[n];r.relativePath=e.path.replace(new RegExp("^"+n),"");try{t(r)}catch(t){console.error("'change' handler failed: ",t,t.stack),this._emit("error",t)}})})}scope(t){if("string"!=typeof t)throw"Argument 'path' of baseClient.scope must be a string";return this.access.checkPathPermission(t,"r")||console.warn("WARNING: Please use remoteStorage.access.claim() to ask for access permissions first: https://remotestorage.io/rs.js/docs/api/access/classes/Access.html#claim"),new f.default(this,t)}getSyncInterval(){return c.default.syncInterval}setSyncInterval(t){if(!I(t))throw t+" is not a valid sync interval";const e=c.default.syncInterval;c.default.syncInterval=t,this._emit("sync-interval-change",{oldValue:e,newValue:t})}getBackgroundSyncInterval(){return c.default.backgroundSyncInterval}setBackgroundSyncInterval(t){if(!I(t))throw t+" is not a valid sync interval";const e=c.default.backgroundSyncInterval;c.default.backgroundSyncInterval=t,this._emit("sync-interval-change",{oldValue:e,newValue:t})}getCurrentSyncInterval(){return c.default.isBackground?c.default.backgroundSyncInterval:c.default.syncInterval}getRequestTimeout(){return c.default.requestTimeout}setRequestTimeout(t){if("number"!=typeof t)throw t+" is not a valid request timeout";c.default.requestTimeout=t}setupSyncCycle(){this.sync&&!this.sync.stopped&&((0,u.default)("[Sync] Setting up sync cycle"),this.on("sync-done",()=>{(0,u.default)("[Sync] Sync done. Setting timer to",this.getCurrentSyncInterval()),this.sync&&!this.sync.stopped&&(this._syncTimer&&clearTimeout(this._syncTimer),this._syncTimer=setTimeout(this.sync.sync.bind(this.sync),this.getCurrentSyncInterval()))}),this.sync.sync())}startSync(){return c.default.cache?(this.sync.stopped=!1,this.syncStopped=!1,this.sync.sync()):(console.warn("Nothing to sync, because caching is disabled."),Promise.resolve())}stopSync(){clearTimeout(this._syncTimer),this._syncTimer=void 0,this.sync?((0,u.default)("[Sync] Stopping sync"),this.sync.stopped=!0):((0,u.default)("[Sync] Will instantiate sync stopped"),this.syncStopped=!0)}addModule(t){const e=t.name,n=t.builder;if(Object.defineProperty(this,e,{configurable:!0,get:function(){const t=this._loadModule(e,n);return Object.defineProperty(this,e,{value:t}),t}}),-1!==e.indexOf("-")){const t=e.replace(/\-[a-z]/g,function(t){return t[1].toUpperCase()});Object.defineProperty(this,t,{get:function(){return this[e]}})}}_loadModule(t,e){if(e)return e(new f.default(this,"/"+t+"/"),new f.default(this,"/public/"+t+"/")).exports;throw"Unknown module: "+t}}e.RemoteStorage=A,A.SyncError=w.default,A.Unauthorized=_.default,A.Discover=b.default,A.DiscoveryError=b.default.DiscoveryError,A.util=C,Object.defineProperty(A.prototype,"access",{configurable:!0,get:function(){const t=new d.default(this);return Object.defineProperty(this,"access",{value:t,writable:!0,configurable:!0}),t}}),Object.defineProperty(A.prototype,"caching",{configurable:!0,get:function(){const t=new g.default(this);return Object.defineProperty(this,"caching",{value:t,writable:!0,configurable:!0}),t}}),(0,h.applyMixins)(A,[m.EventHandling]),e.default=A},368:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.isArrayBufferView=void 0,e.retryAfterMs=function(t){const e=1e3*parseInt(t.getResponseHeader("Retry-After"));return e>=1e3?e:Math.max(1500,Math.min(6e4,Math.round(o.default.syncInterval/(2.9+.2*Math.random()))))},e.requestWithTimeout=function(t,n,i){return r(this,void 0,void 0,function*(){return"function"==typeof fetch?function(t,e,n){return r(this,void 0,void 0,function*(){const r="function"==typeof AbortController?new AbortController:null;let i;const a=new Promise((t,e)=>{i=setTimeout(()=>{r&&r.abort(),e("timeout")},o.default.requestTimeout)});let l;const c={},u=fetch(e,{method:t,headers:n.headers,body:n.body,signal:r?r.signal:void 0}).then(t=>{switch((0,s.default)("[requests fetch]",t),t.headers.forEach((t,e)=>{c[e.toUpperCase()]=t}),l={readyState:4,status:t.status,statusText:t.statusText,response:void 0,getResponseHeader:t=>c[t.toUpperCase()]||null,responseType:n.responseType,responseURL:e},n.responseType){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"json":return t.json();case void 0:case"":case"text":return t.text();default:throw new Error("responseType 'document' is not currently supported using fetch")}}).then(t=>(l.response=t,n.responseType&&"text"!==n.responseType||(l.responseText=t),l)).finally(()=>{clearTimeout(i)});return Promise.race([u,a])})}(t,n,i):"function"==typeof XMLHttpRequest?function(t,n,i){return r(this,void 0,void 0,function*(){return new Promise((r,a)=>{(0,s.default)("[requests XHR]",t,n);let l=!1;const c=setTimeout(()=>{l=!0,a("timeout")},o.default.requestTimeout),u=new XMLHttpRequest;if(u.open(t,n,!0),i.responseType&&(u.responseType=i.responseType),i.headers)for(const t in i.headers)u.setRequestHeader(t,i.headers[t]);u.onload=()=>{l||(clearTimeout(c),r(u))},u.onerror=t=>{l||(clearTimeout(c),a(t))};let h=i.body;"object"==typeof h&&!(0,e.isArrayBufferView)(h)&&h instanceof ArrayBuffer&&(h=new Uint8Array(h)),u.send(h)})})}(t,n,i):Promise.reject("[Requests] You need to add a polyfill for fetch or XMLHttpRequest")})};const s=i(n(334)),o=i(n(28));if("function"==typeof(n.g||window).ArrayBufferView)e.isArrayBufferView=function(t){return t&&t instanceof(n.g||window).ArrayBufferView};else{const t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];e.isArrayBufferView=function(e){for(let n=0;n<8;n++)if(e instanceof t[n])return!0;return!1}}},941:function(t){t.exports=class{constructor(t){this._itemsRev={},this._storage={},this._canPropagate=!1,this.defaultValue=t,this.activatePropagation()}get(t){t=t.toLowerCase();let e=this._storage[t];return void 0===e&&(e=this.defaultValue,this._storage[t]=e),e}set(t,e){return t=t.toLowerCase(),this._storage[t]===e||(this._storage[t]=e,e||delete this._itemsRev[t],this._updateParentFolderItemRev(t,e),this._canPropagate&&this._propagate(t)),e}delete(t){return this.set(t,null)}deactivatePropagation(){return this._canPropagate=!1,!0}activatePropagation(){return this._canPropagate||(this._generateFolderRev("/"),this._canPropagate=!0),!0}_hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n0&&(n=this._generateHash(t))}return this.set(t,n),n}}},491:function(t){class e extends Error{constructor(t){super();const e=new Error("Schema not found: "+t);return e.name="SchemaNotFound",e}}t.exports=e},982:function(t){class e extends Error{constructor(t){super(),this.name="SyncError",this.message="Sync failed: ","string"==typeof t?this.message+=t:(this.message+=t.message,this.stack=t.stack,this.originalError=t)}}t.exports=e},313:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Sync=void 0;const s=i(n(28)),o=i(n(451)),a=i(n(93)),l=i(n(334)),c=i(n(275)),u=i(n(982)),h=i(n(503)),d=n(746);let p,f;function g(t,e,n){return{action:t,path:e,promise:n}}function m(t,e){return t.common.revision!==e&&(!t.remote||t.remote.revision!==e)}function y(t){return!!t.common&&!!t.common.revision}class v{constructor(t){this.numThreads=10,this._tasks={},this._running={},this._timeStarted={},this._finishedTasks=[],this.rs=t,this.rs.local.onDiff(t=>{this.addTask(t),this.doTasks()}),this.rs.caching.onActivate(t=>{this.addTask(t),this.doTasks()}),this.addEvents(["done","req-done"])}now(){return(new Date).getTime()}queueGetRequest(t){return r(this,void 0,void 0,function*(){return new Promise((e,n)=>{this.rs.remote.connected?this.rs.remote.online?(this.addTask(t,function(){this.rs.local.get(t).then(t=>e(t))}.bind(this)),this.doTasks()):n("cannot fulfill maxAge requirement - remote is not online"):n("cannot fulfill maxAge requirement - remote is not connected")})})}corruptServerItemsMap(t){if("object"!=typeof t||Array.isArray(t))return!0;for(const e in t){const n=t[e];if("object"!=typeof n)return!0;if("string"!=typeof n.ETag)return!0;if((0,d.isFolder)(e)){if(-1!==e.substring(0,e.length-1).indexOf("/"))return!0}else if(-1!==e.indexOf("/"))return!0}return!1}corruptItemsMap(t){if("object"!=typeof t||Array.isArray(t))return!0;for(const e in t)if("boolean"!=typeof t[e])return!0;return!1}corruptRevision(t){return"object"!=typeof t||Array.isArray(t)||t.revision&&"string"!=typeof t.revision||t.body&&"string"!=typeof t.body&&"object"!=typeof t.body||t.contentType&&"string"!=typeof t.contentType||t.contentLength&&"number"!=typeof t.contentLength||t.timestamp&&"number"!=typeof t.timestamp||t.itemsMap&&this.corruptItemsMap(t.itemsMap)}isCorrupt(t){return"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.path||this.corruptRevision(t.common)||t.local&&this.corruptRevision(t.local)||t.remote&&this.corruptRevision(t.remote)||t.push&&this.corruptRevision(t.push)}hasTasks(){return Object.keys(this._tasks).length>0}collectDiffTasks(){return r(this,void 0,void 0,function*(){let t=0;return this.rs.local.forAllNodes(e=>{t>100||(this.isCorrupt(e)?((0,l.default)("[Sync] WARNING: corrupt node in local cache",e),"object"==typeof e&&e.path&&(this.addTask(e.path),t++)):(this.needsFetch(e)&&this.rs.access.checkPathPermission(e.path,"r")||(0,d.isDocument)(e.path)&&this.needsPush(e)&&this.rs.access.checkPathPermission(e.path,"rw"))&&(this.addTask(e.path),t++))}).then(()=>t)})}inConflict(t){return!(!t.local||!t.remote||void 0===t.remote.body&&!t.remote.itemsMap)}needsRefresh(t){return!!t.common&&(!t.common.timestamp||this.now()-t.common.timestamp>s.default.syncInterval)}needsFetch(t){return!!this.inConflict(t)||!(!t.common||void 0!==t.common.itemsMap||void 0!==t.common.body)||!(!t.remote||void 0!==t.remote.itemsMap||void 0!==t.remote.body)}needsPush(t){return!this.inConflict(t)&&(!(!t.local||t.push)||void 0)}needsRemotePut(t){return!(!t.local||void 0===t.local.body||!1===t.local.body)}needsRemoteDelete(t){return t.local&&!1===t.local.body}getParentPath(t){const e=t.match(/^(.*\/)([^\/]+\/?)$/);if(e)return e[1];throw new Error('Not a valid path: "'+t+'"')}deleteChildPathsFromTasks(){for(const t in this._tasks){const e=(0,d.pathsFromRoot)(t);for(let n=1;n{let e;if(this.needsRefresh(t)){try{e=this.getParentPath(t.path)}catch(t){}e&&this.rs.access.checkPathPermission(e,"r")?this.addTask(e):this.rs.access.checkPathPermission(t.path,"r")&&this.addTask(t.path)}}),this.deleteChildPathsFromTasks()})}flush(t){for(const e in t)"FLUSH"===this.rs.caching.checkPath(e)&&t[e]&&!t[e].local&&((0,l.default)("[Sync] Flushing",e),t[e]=void 0);return t}doTask(t){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([t]).then(e=>{const n=e[t];return void 0===n||function(t){return!(!t.remote||!t.remote.revision||t.remote.itemsMap||t.remote.body)}(n)?g("get",t,this.rs.remote.get(t)):this.needsRemotePut(n)?(n.push=(0,d.deepClone)(n.local),n.push.timestamp=this.now(),this.rs.local.setNodes(this.flush(e)).then(()=>{let e;return e=y(n)?{ifMatch:n.common.revision}:{ifNoneMatch:"*"},g("put",t,this.rs.remote.put(t,n.push.body,n.push.contentType,e))})):this.needsRemoteDelete(n)?(n.push={body:!1,timestamp:this.now()},this.rs.local.setNodes(this.flush(e)).then(()=>y(n)?g("delete",t,this.rs.remote.delete(t,{ifMatch:n.common.revision})):g("get",t,this.rs.remote.get(t)))):y(n)?g("get",t,this.rs.remote.get(t,{ifNoneMatch:n.common.revision})):g("get",t,this.rs.remote.get(t))})})}autoMergeFolder(t){if(t.remote.itemsMap&&(t.common=t.remote,delete t.remote,t.common.itemsMap)){for(const e in t.common.itemsMap)t.local.itemsMap[e]||(t.local.itemsMap[e]=!1);for(const e in t.local.itemsMap)t.common.itemsMap[e]||this.addTask(t.path+e);(0,d.equal)(t.local.itemsMap,t.common.itemsMap)&&delete t.local}return t}autoMergeDocument(t){var e;return function(t){return(!t.remote||!t.remote.revision||t.remote.revision===t.common.revision)&&(void 0===t.common.body&&!1===t.remote.body||t.remote.body===t.common.body&&t.remote.contentType===t.common.contentType)}(t)?delete(t=function(t){return t.remote&&!1===t.remote.body&&t.local&&!1===t.local.body&&delete t.local,t}(t)).remote:void 0!==t.remote.body&&(!1===t.remote.body&&!1===(null===(e=t.local)||void 0===e?void 0:e.body)||((0,l.default)("[Sync] Emitting conflict event"),setTimeout(this.rs.local.emitChange.bind(this.rs.local),10,{origin:"conflict",path:t.path,oldValue:t.local.body,newValue:t.remote.body,lastCommonValue:t.common.body,oldContentType:t.local.contentType,newContentType:t.remote.contentType,lastCommonContentType:t.common.contentType})),!1===t.remote.body?t.common={}:t.common=t.remote,delete t.remote,delete t.local),t}autoMerge(t){if(t.remote){if(t.local)return(0,d.isFolder)(t.path)?this.autoMergeFolder(t):this.autoMergeDocument(t);if((0,d.isFolder)(t.path))void 0!==t.remote.itemsMap&&(t.common=t.remote,delete t.remote);else if(void 0!==t.remote.body){const e={origin:"remote",path:t.path,oldValue:!1===t.common.body?void 0:t.common.body,newValue:!1===t.remote.body?void 0:t.remote.body,oldContentType:t.common.contentType,newContentType:t.remote.contentType};if(void 0===e.oldValue&&void 0===e.newValue||this.rs.local.emitChange(e),!1===t.remote.body)return;t.common=t.remote,delete t.remote}return t}t.common.body&&this.rs.local.emitChange({origin:"remote",path:t.path,oldValue:t.common.body,newValue:void 0,oldContentType:t.common.contentType,newContentType:void 0})}updateCommonTimestamp(t,e){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([t]).then(n=>(n[t]&&n[t].common&&n[t].common.revision===e&&(n[t].common.timestamp=this.now()),this.rs.local.setNodes(this.flush(n))))})}markChildren(t,e,n,i){return r(this,void 0,void 0,function*(){const r=[],s={},o={};for(const n in e)r.push(t+n),s[t+n]=e[n];for(const e in i)r.push(t+e);const a=yield this.rs.local.getNodes(r);let l,c;for(const e in a)if(c=a[e],s[e])c&&c.common?m(c,s[e].ETag)&&(n[e]=(0,d.deepClone)(c),n[e].remote={revision:s[e].ETag,timestamp:this.now()},n[e]=this.autoMerge(n[e])):(l=this.rs.caching.checkPath(e),"ALL"===l&&(n[e]={path:e,common:{timestamp:this.now()},remote:{revision:s[e].ETag,timestamp:this.now()}})),n[e]&&s[e]["Content-Type"]&&(n[e].remote.contentType=s[e]["Content-Type"]),n[e]&&s[e]["Content-Length"]&&(n[e].remote.contentLength=s[e]["Content-Length"]);else if(i[e.substring(t.length)]&&c&&c.common){if(c.common.itemsMap)for(const t in c.common.itemsMap)o[e+t]=!0;if(c.local&&c.local.itemsMap)for(const t in c.local.itemsMap)o[e+t]=!0;if(c.remote||(0,d.isFolder)(e))n[e]=void 0;else if(n[e]=this.autoMerge(c),void 0===n[e]){const r=n[this.getParentPath(e)],i=e.substring(t.length);r&&r.local&&(delete r.local.itemsMap[i],(0,d.equal)(r.local.itemsMap,r.common.itemsMap)&&delete r.local)}}const u=yield this.markRemoteDeletions(Object.keys(o),n);u&&(yield this.rs.local.setNodes(this.flush(u)))})}markRemoteDeletions(t,e){return r(this,void 0,void 0,function*(){if(0===t.length)return e;const n=yield this.rs.local.getNodes(t),r={};function i(t,e){if(t&&t.itemsMap)for(const n in t.itemsMap)r[e+n]=!0}for(const t in n){const r=n[t];r&&((0,d.isFolder)(t)?(i(r.common,t),i(r.local,t)):r.common&&void 0!==r.common.body&&(e[t]=(0,d.deepClone)(r),e[t].remote={body:!1,timestamp:this.now()},e[t]=this.autoMerge(e[t])))}const s=yield this.markRemoteDeletions(Object.keys(r),e);s&&(yield this.rs.local.setNodes(this.flush(s)))})}completeFetch(t,e,n,i){return r(this,void 0,void 0,function*(){let r,s;const o=(0,d.pathsFromRoot)(t);(0,d.isFolder)(t)?r=[t]:(s=o[1],r=[t,s]);const a=yield this.rs.local.getNodes(r),l=a[s],c={};let u,h=a[t];function p(t){if(t&&t.itemsMap)for(u in t.itemsMap)e[u]||(c[u]=!0)}if("object"==typeof h&&h.path===t&&"object"==typeof h.common||(h={path:t,common:{}},a[t]=h),h.remote={revision:i,timestamp:this.now()},(0,d.isFolder)(t))for(u in p(h.common),p(h.remote),h.remote.itemsMap={},e)h.remote.itemsMap[u]=!0;else h.remote.body=e,h.remote.contentType=n,l&&l.local&&l.local.itemsMap&&(u=t.substring(s.length),!1!==e?l.local.itemsMap[u]=!0:l.local.itemsMap[u]&&delete l.local.itemsMap[u],(0,d.equal)(l.local.itemsMap,l.common.itemsMap)&&delete l.local);return a[t]=this.autoMerge(h),{toBeSaved:a,missingChildren:c}})}completePush(t,e,n,i){return r(this,void 0,void 0,function*(){const r=yield this.rs.local.getNodes([t]),s=r[t];if(!s.push)throw this.stopped=!0,new Error("completePush called but no push version!");n?((0,l.default)("[Sync] We have a conflict"),s.remote&&s.remote.revision===i||(s.remote={revision:i||"conflict",timestamp:this.now()},delete s.push),r[t]=this.autoMerge(s)):(s.common={revision:i,timestamp:this.now()},"put"===e?(s.common.body=s.push.body,s.common.contentType=s.push.contentType,(0,d.equal)(s.local.body,s.push.body)&&s.local.contentType===s.push.contentType&&delete s.local,delete s.push):"delete"===e&&(!1===s.local.body?r[t]=void 0:delete s.push)),yield this.rs.local.setNodes(this.flush(r))})}dealWithFailure(t){return r(this,void 0,void 0,function*(){const e=yield this.rs.local.getNodes([t]);if(e[t])return delete e[t].push,this.rs.local.setNodes(this.flush(e))})}interpretStatus(t){const e={statusCode:t,successful:void 0,conflict:void 0,unAuth:void 0,notFound:void 0,changed:void 0,networkProblems:void 0};return"string"!=typeof t||"offline"!==t&&"timeout"!==t?"number"==typeof t?(e.successful=2===Math.floor(t/100)||304===t||412===t||404===t,e.conflict=412===t,e.unAuth=401===t&&this.rs.remote.token!==c.default.IMPLIED_FAKE_TOKEN||402===t||403===t,e.notFound=404===t,e.changed=304!==t,e):void 0:(e.successful=!1,e.networkProblems=!0,e)}handleGetResponse(t,e,n,i,s){return r(this,void 0,void 0,function*(){if(e.notFound&&(n=!!(0,d.isFolder)(t)&&{}),e.changed){const e=yield this.completeFetch(t,n,i,s);if((0,d.isFolder)(t)){if(this.corruptServerItemsMap(n))return(0,l.default)("[Sync] WARNING: Discarding corrupt folder description from server for "+t),!1;yield this.markChildren(t,n,e.toBeSaved,e.missingChildren)}else yield this.rs.local.setNodes(this.flush(e.toBeSaved))}else yield this.updateCommonTimestamp(t,s);return!0})}handleResponse(t,e,n){return r(this,void 0,void 0,function*(){const r=this.interpretStatus(n.statusCode);if(r.successful){if("get"===e)return this.handleGetResponse(t,r,n.body,n.contentType,n.revision);if("put"===e||"delete"===e)return this.completePush(t,e,r.conflict,n.revision).then(function(){return!0});throw new Error(`cannot handle response for unknown action ${e}`)}{let e;return e=r.unAuth?new h.default:r.networkProblems?new u.default("Network request failed."):new Error("HTTP response code "+r.statusCode+" received."),this.dealWithFailure(t).then(()=>{throw this.rs._emit("error",e),e})}})}finishTask(t){return r(this,arguments,void 0,function*(t,e=!0){if(void 0===t.action)return void delete this._running[t.path];if(e&&((0,l.default)("[Sync] queue finished task:",t.path),this._finishedTasks.push(t),this._finishedTasks.length>1))return void(0,l.default)("[Sync] delaying finished task:",t.path);let n;(0,l.default)("[Sync] run task:",t.path);try{n=yield t.promise}catch(e){(0,l.default)("[Sync] wire client rejects its promise",t.path,t.action,e),n={statusCode:"offline"}}try{const e=yield this.handleResponse(t.path,t.action,n);this.finishSuccessfulTask(t,e)}catch(e){this.finishUnsuccessfulTask(t,e)}})}finishSuccessfulTask(t,e){return r(this,void 0,void 0,function*(){if(this._finishedTasks.shift(),delete this._timeStarted[t.path],delete this._running[t.path],e&&this._tasks[t.path]){for(let e=0;e0?yield this.finishTask(this._finishedTasks[0],!1):yield this.collectTasks(!1).then(()=>{!this.hasTasks()||this.stopped?(this.done||(this.done=!0),this.rs._emit("sync-done",{completed:!0})):setTimeout(()=>{this.doTasks()},10)})})}finishUnsuccessfulTask(t,e){return r(this,void 0,void 0,function*(){(0,l.default)("[Sync]",e.message),this._finishedTasks.shift(),delete this._timeStarted[t.path],delete this._running[t.path],this.rs._emit("sync-req-done",{tasksRemaining:Object.keys(this._tasks).length}),this._finishedTasks.length>0?yield this.finishTask(this._finishedTasks[0],!1):this.done||(this.done=!0,this.rs._emit("sync-done",{completed:!1}))})}tasksWanted(){return this.rs.remote.connected?this.rs.remote.online?this.numThreads:1:0}doTasks(){const t=this.tasksWanted()-Object.keys(this._running).length;if(t<=0)return!0;this.hasTasks()&&!this.done&&this.rs._emit("sync-started");let e,n=0;for(e in this._tasks)if(!this._running[e]&&(this._timeStarted[e]=this.now(),this._running[e]=this.doTask(e).then(this.finishTask.bind(this)),n++,n>=t))break;return n>=t}collectTasks(){return r(this,arguments,void 0,function*(t=!0){if(!this.hasTasks()&&!this.stopped)return(yield this.collectDiffTasks())>0?void 0:t?this.collectRefreshTasks():void 0})}addTask(t,e){this._tasks[t]||(this._tasks[t]=[]),"function"==typeof e&&this._tasks[t].push(e)}sync(){return r(this,void 0,void 0,function*(){if(this.done=!1,!this.doTasks()){try{yield this.collectTasks()}catch(t){throw(0,l.default)("[Sync] Sync error",t),new Error("Local cache unavailable")}this.doTasks()}})}static _rs_init(t){p=function(){const e=new o.default;e.isBrowser()&&function(t,e){function n(t){const n=e.getCurrentSyncInterval();s.default.isBackground=!t;const r=e.getCurrentSyncInterval();e._emit("sync-interval-change",{oldValue:n,newValue:r})}t.on("background",()=>n(!1)),t.on("foreground",()=>n(!0))}(e,t),t.sync||(t.sync=new v(t),t.syncStopped&&((0,l.default)("[Sync] Initializing with sync stopped"),t.sync.stopped=!0,delete t.syncStopped)),t.setupSyncCycle()},f=function(){t.removeEventListener("connected",f),t.startSync()},t.on("ready",p),t.on("connected",f)}static _rs_cleanup(t){t.stopSync(),t.removeEventListener("ready",p),t.removeEventListener("connected",f),t.caching.resetActivationHandler(),t.sync=void 0,delete t.sync}}e.Sync=v,(0,d.applyMixins)(v,[a.default]),e.default=v},370:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})};const i=(this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}})(n(334));function s(t){return"dropbox"===this.backend&&!!t.match(/^\/public\/.*[^\/]$/)}const o={get:function(t,e){if(this.local){if(void 0===e)e="object"==typeof(n=this).remote&&n.remote.connected&&n.remote.online?2*n.getSyncInterval():((0,i.default)("Not setting default maxAge, because remote is offline or not connected"),!1);else if("number"!=typeof e&&!1!==e)return Promise.reject("Argument 'maxAge' must be 'false' or a number");return this.local.get(t,e,this.sync.queueGetRequest.bind(this.sync))}return this.remote.get(t);var n},put:function(t,e,n){return s.bind(this)(t)?o._wrapBusyDone.call(this,this.remote.put(t,e,n)):this.local?this.local.put(t,e,n):o._wrapBusyDone.call(this,this.remote.put(t,e,n))},delete:function(t,e){return this.local?this.local.delete(t,e):o._wrapBusyDone.call(this,this.remote.delete(t,e))},_wrapBusyDone:function(t){return r(this,void 0,void 0,function*(){return this._emit("wire-busy"),t.then(t=>(this._emit("wire-done",{success:!0}),Promise.resolve(t)),t=>(this._emit("wire-done",{success:!1}),Promise.reject(t)))})}};t.exports=o},613:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.BaseClientTypes=void 0;class n{constructor(){this.uris={},this.schemas={},this.aliases={}}declare(t,e,n,r){const i=t+"/"+e;if(r.extends){const e=r.extends.split("/"),n=1===e.length?t+"/"+e.shift():e.join("/"),s=this.uris[n];if(!s)throw"Type '"+i+"' tries to extend unknown schema '"+n+"'";r.extends=this.schemas[s]}this.uris[i]=n,this.aliases[n]=i,this.schemas[n]=r}resolveAlias(t){return this.uris[t]}getSchema(t){return this.schemas[t]}inScope(t){const e=t.length,n={};for(const r in this.uris)if(r.substr(0,e+1)===t+"/"){const t=this.uris[r];n[t]=this.schemas[t]}return n}}e.BaseClientTypes=n,e.default=new n},503:function(t){class e extends Error{constructor(t,e={}){super(),this.name="Unauthorized",this.message=void 0===t?"App authorization expired or revoked.":t,void 0!==e.code&&(this.code=e.code),this.stack=(new Error).stack}}t.exports=e},746:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.toBase64=e.getTextFromArrayBuffer=e.stripLegacyCharsetBinary=e.shouldBeTreatedAsBinary=e.getJSONFromLocalStorage=e.localStorageAvailable=e.pathsFromRoot=e.deepClone=e.equal=e.bindAll=e.cleanPath=e.baseName=e.isDocument=e.isFolder=e.containingFolder=e.extend=e.getGlobalContext=e.globalContext=e.logError=void 0,e.generateCodeVerifier=function(){return r(this,arguments,void 0,function*(t=128){const e=new Uint8Array(t);crypto.getRandomValues(e);const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=Array.from(e).map(t=>n[t%66]),i=r.join(""),s=Uint8Array.from(r.map(t=>t.charCodeAt(0))),o=(a=yield crypto.subtle.digest("SHA-256",s),btoa(String.fromCharCode.apply(null,new Uint8Array(a))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""));var a;return crypto.getRandomValues(e),{codeVerifier:i,codeChallenge:o,state:Array.from(e).map(t=>n[t%66]).join("")}})},e.applyMixins=function(t,e){e.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(n=>{Object.defineProperty(t.prototype,n,Object.getOwnPropertyDescriptor(e.prototype,n))})})},e.logError=t=>{"string"==typeof t?console.error(t):console.error(t.message,t.stack)},e.globalContext="undefined"!=typeof window?window:"object"==typeof self?self:n.g,e.getGlobalContext=()=>"undefined"!=typeof window?window:"object"==typeof self?self:n.g,e.extend=(...t)=>{const e=t[0];return Array.prototype.slice.call(t,1).forEach(function(t){for(const n in t)e[n]=t[n]}),e},e.containingFolder=t=>{if(""===t)return"/";if(!t)throw"Path not given!";return t.replace(/\/+/g,"/").replace(/[^\/]+\/?$/,"")},e.isFolder=t=>"/"===t.slice(-1),e.isDocument=t=>!(0,e.isFolder)(t),e.baseName=t=>{const n=t.split("/");return(0,e.isFolder)(t)?n[n.length-2]+"/":n[n.length-1]},e.cleanPath=t=>t.replace(/\/+/g,"/").split("/").map(encodeURIComponent).join("/").replace(/'/g,"%27"),e.bindAll=t=>{for(const e in this)"function"==typeof t[e]&&(t[e]=t[e].bind(t))},e.equal=(t,n,r=[])=>{let i;if(typeof t!=typeof n)return!1;if("number"==typeof t||"boolean"==typeof t||"string"==typeof t)return t===n;if("function"==typeof t)return t.toString()===n.toString();if(t instanceof ArrayBuffer&&n instanceof ArrayBuffer&&(t=new Uint8Array(t),n=new Uint8Array(n)),null===t||null===n)return t===n;if(t instanceof Array){if(t.length!==n.length)return!1;for(let i=0,s=t.length;i=0)continue;s=r.slice(),s.push(n[i])}if(!(0,e.equal)(t[i],n[i],s))return!1}}return!0},e.deepClone=t=>void 0===t?void 0:"function"==typeof structuredClone?structuredClone(t):JSON.parse(JSON.stringify(t)),e.pathsFromRoot=t=>{const e=[t],n=t.replace(/\/$/,"").split("/");for(;n.length>1;)n.pop(),e.push(n.join("/")+"/");return e},e.localStorageAvailable=()=>{const t=(0,e.getGlobalContext)();if(!("localStorage"in t))return!1;try{return t.localStorage.setItem("rs-check","1"),t.localStorage.removeItem("rs-check"),!0}catch(t){return!1}},e.getJSONFromLocalStorage=t=>{const n=(0,e.getGlobalContext)();try{return JSON.parse(n.localStorage.getItem(t))}catch(t){}},e.shouldBeTreatedAsBinary=(t,e)=>!!(e&&e.match(/charset=binary/)||/[\x00-\x08\x0E-\x1F\x80-\x9F\uFFFD]/.test(t)),e.stripLegacyCharsetBinary=t=>t?t.replace(/\s*;\s*charset=binary\b/i,""):t,e.getTextFromArrayBuffer=(t,n)=>new Promise(r=>{if("undefined"==typeof Blob||"undefined"==typeof FileReader)r(Buffer.from(t).toString(n));else{let i;const s=e.globalContext;if(s.BlobBuilder=s.BlobBuilder||s.WebKitBlobBuilder,void 0!==s.BlobBuilder){const e=new s.BlobBuilder;e.append(t),i=e.getBlob()}else i=new Blob([t]);const o=new FileReader;"function"==typeof o.addEventListener?o.addEventListener("loadend",function(t){r(t.target.result)}):o.onloadend=function(t){r(t.target.result)},o.readAsText(i,n)}}),e.toBase64=t=>{const n=(0,e.getGlobalContext)();return"btoa"in n?n.btoa(t):Buffer.from(t).toString("base64")}},600:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(275)),o=i(n(93)),a=i(n(503)),l=i(n(334)),c=n(746),u=n(368),h=n(684);let d;const p="remotestorage:wireclient",f={"draft-dejong-remotestorage-00":2,"draft-dejong-remotestorage-01":3,"draft-dejong-remotestorage-02":4,"https://www.w3.org/community/rww/wiki/read-write-web-00#simple":1};class g extends h.RemoteBase{constructor(t){if(super(t),this._revisionCache={},d=(0,c.localStorageAvailable)(),this.addEvents(["connected","not-connected"]),d){const t=function(){const{userAddress:t,href:e,storageApi:n,token:r,properties:i}=(0,c.getJSONFromLocalStorage)(p)||{};return{userAddress:t,href:e,storageApi:n,token:r,properties:i}}();t&&setTimeout(()=>{this.configure(t)},0)}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}_request(t,e,n,i,o,h,d){return r(this,void 0,void 0,function*(){if(this.isForbiddenRequestMethod(t,e))return Promise.reject(`Don't use ${t} on directories!`);let r;return n!==s.default.IMPLIED_FAKE_TOKEN&&(i.Authorization="Bearer "+n),this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)}),(0,u.requestWithTimeout)(t,e,{body:o,headers:i,responseType:"arraybuffer"}).then(n=>{if(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),i=n.status,[401,403,404,412].indexOf(i)>=0)return(0,l.default)("[WireClient] Error response status",n.status),r=h?this.stripQuotes(n.getResponseHeader("ETag")):void 0,401===n.status&&this.rs._emit("error",new a.default),Promise.resolve({statusCode:n.status,revision:r});if(function(t){return[201,204,304].indexOf(t)>=0}(n.status)||200===n.status&&"GET"!==t)return r=this.stripQuotes(n.getResponseHeader("ETag")),(0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,revision:r});{const t=n.getResponseHeader("Content-Type");r=h?this.stripQuotes(n.getResponseHeader("ETag")):200===n.status?d:void 0;const e=function(t){let e,n="utf-8";return t&&(e=t.match(/charset=(.+)$/),e&&(n=e[1])),n}(t);return(0,c.shouldBeTreatedAsBinary)(n.response,t)?((0,l.default)("[WireClient] Successful request with unknown or binary mime-type",r),Promise.resolve({statusCode:n.status,body:n.response,contentType:(0,c.stripLegacyCharsetBinary)(t),revision:r})):(0,c.getTextFromArrayBuffer)(n.response,e).then(e=>((0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,body:e,contentType:(0,c.stripLegacyCharsetBinary)(t),revision:r})))}var i},n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!1}),Promise.reject(n)))})}configure(t){if("object"!=typeof t)throw new Error("WireClient configure settings parameter should be an object");if(void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.href&&(this.href=t.href),void 0!==t.storageApi&&(this.storageApi=t.storageApi),void 0!==t.token&&(this.token=t.token),void 0!==t.properties&&(this.properties=t.properties),"string"==typeof this.storageApi){const t=f[this.storageApi]||5;this.supportsRevs=t>=2}this.href&&this.token?(this.connected=!0,this.online=!0,this._emit("connected")):this.connected=!1,d&&localStorage.setItem(p,JSON.stringify({userAddress:this.userAddress,href:this.href,storageApi:this.storageApi,token:this.token,properties:this.properties}))}get(t,e={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const n={};return this.supportsRevs&&e.ifNoneMatch&&(n["If-None-Match"]=this.addQuotes(e.ifNoneMatch)),this._request("GET",this.href+(0,c.cleanPath)(t),this.token,n,void 0,this.supportsRevs,this._revisionCache[t]).then(e=>{if(!(0,c.isFolder)(t))return Promise.resolve(e);let n={};if(void 0!==e.body)try{e.body=JSON.parse(e.body)}catch(e){return Promise.reject("Folder description at "+this.href+(0,c.cleanPath)(t)+" is not JSON")}if(200===e.statusCode&&"object"==typeof e.body){if(0===Object.keys(e.body).length)e.statusCode=404;else if("http://remotestorage.io/spec/folder-description"===(r=e.body)["@context"]&&"object"==typeof r.items){for(const n in e.body.items)this._revisionCache[t+n]=e.body.items[n].ETag;n=e.body.items}else Object.keys(e.body).forEach(r=>{this._revisionCache[t+r]=e.body[r],n[r]={ETag:e.body[r]}});return e.body=n,Promise.resolve(e)}return Promise.resolve(e);var r})}put(t,e,n,r={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const i={"Content-Type":n};return this.supportsRevs&&(r.ifMatch&&(i["If-Match"]=this.addQuotes(r.ifMatch)),r.ifNoneMatch&&(i["If-None-Match"]=this.addQuotes(r.ifNoneMatch))),this._request("PUT",this.href+(0,c.cleanPath)(t),this.token,i,e,this.supportsRevs)}delete(t,e={}){if(!this.connected)throw new Error("not connected (path: "+t+")");e||(e={});const n={};return this.supportsRevs&&e.ifMatch&&(n["If-Match"]=this.addQuotes(e.ifMatch)),this._request("DELETE",this.href+(0,c.cleanPath)(t),this.token,n,void 0,this.supportsRevs)}static _rs_init(t){t.remote=new g(t),t.remote.online=!0}static _rs_supported(){return"function"==typeof fetch||"function"==typeof XMLHttpRequest}static _rs_cleanup(){d&&delete localStorage[p]}}(0,c.applyMixins)(g,[o.default]),t.exports=g},439:function(t,e){var n;void 0===(n=function(){var t,e,n,r;Object.keys||(Object.keys=(t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),r=(n=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(i){if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Object.keys called on non-object");var s=[];for(var o in i)t.call(i,o)&&s.push(o);if(e)for(var a=0;a>>0;if(0===n)return-1;var r=0;if(arguments.length>1&&((r=Number(arguments[1]))!=r?r=0:0!==r&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r)))),r>=n)return-1;for(var i=r>=0?r:Math.max(n-Math.abs(r),0);i0&&(e+=u.suffices["*"]&&n||",",u.suffices["*"]&&l&&(e+=u.name+"=")),e+=a?encodeURIComponent(h[p]).replace(/!/g,"%21"):o(h[p])}else if("object"==typeof h){l&&!u.suffices["*"]&&(e+=u.name+"=");var f=!0;for(var g in h)f||(e+=u.suffices["*"]&&n||","),f=!1,e+=a?encodeURIComponent(g).replace(/!/g,"%21"):o(g),e+=u.suffices["*"]?"=":",",e+=a?encodeURIComponent(h[g]).replace(/!/g,"%21"):o(h[g])}else l&&(e+=u.name,c&&""===h||(e+="=")),null!=u.truncate&&(h=h.substring(0,u.truncate)),e+=a?encodeURIComponent(h).replace(/!/g,"%21"):o(h)}return e};return w.varNames=u,{prefix:r,substitution:w}}function l(t){if(!(this instanceof l))return new l(t);for(var e=t.split("{"),n=[e.shift()],r=[],i=[],s=[];e.length>0;){var o=e.shift(),c=o.split("}")[0],u=o.substring(c.length+1),h=a(c);i.push(h.substitution),r.push(h.prefix),n.push(u),s=s.concat(h.substitution.varNames)}this.fill=function(t){for(var e=n[0],r=0;r0&&"/"===e.charAt(t.length-1)||"#"===n.charAt(0)||"?"===n.charAt(0))return!0}return!1}(e,t.id)&&void 0===this.schemas[t.id]&&(this.schemas[t.id]=t),t)if("enum"!==r)if("object"==typeof t[r])this.searchSchemas(t[r],e);else if("$ref"===r){var i=g(t[r]);i&&void 0===this.schemas[i]&&void 0===this.missingMap[i]&&(this.missingMap[i]=i)}},c.prototype.addSchema=function(t,e){if("string"!=typeof t||void 0===e){if("object"!=typeof t||"string"!=typeof t.id)return;t=(e=t).id}t===g(t)+"#"&&(t=g(t)),this.schemas[t]=e,delete this.missingMap[t],m(e,t),this.searchSchemas(e,t)},c.prototype.getSchemaMap=function(){var t={};for(var e in this.schemas)t[e]=this.schemas[e];return t},c.prototype.getSchemaUris=function(t){var e=[];for(var n in this.schemas)t&&!t.test(n)||e.push(n);return e},c.prototype.getMissingUris=function(t){var e=[];for(var n in this.missingMap)t&&!t.test(n)||e.push(n);return e},c.prototype.dropSchemas=function(){this.schemas={},this.reset()},c.prototype.reset=function(){this.missing=[],this.missingMap={},this.errors=[]},c.prototype.validateAll=function(t,e,n,r,i){var s;if(!(e=this.resolveRefs(e)))return null;if(e instanceof x)return this.errors.push(e),e;var o,a=this.errors.length,l=null,c=null;if(this.checkRecursive&&t&&"object"==typeof t){if(s=!this.scanned.length,t[this.validatedSchemasKey]){var u=t[this.validatedSchemasKey].indexOf(e);if(-1!==u)return this.errors=this.errors.concat(t[this.validationErrorsKey][u]),null}if(Object.isFrozen(t)&&-1!==(o=this.scannedFrozen.indexOf(t))){var h=this.scannedFrozenSchemas[o].indexOf(e);if(-1!==h)return this.errors=this.errors.concat(this.scannedFrozenValidationErrors[o][h]),null}if(this.scanned.push(t),Object.isFrozen(t))-1===o&&(o=this.scannedFrozen.length,this.scannedFrozen.push(t),this.scannedFrozenSchemas.push([])),l=this.scannedFrozenSchemas[o].length,this.scannedFrozenSchemas[o][l]=e,this.scannedFrozenValidationErrors[o][l]=[];else{if(!t[this.validatedSchemasKey])try{Object.defineProperty(t,this.validatedSchemasKey,{value:[],configurable:!0}),Object.defineProperty(t,this.validationErrorsKey,{value:[],configurable:!0})}catch(e){t[this.validatedSchemasKey]=[],t[this.validationErrorsKey]=[]}c=t[this.validatedSchemasKey].length,t[this.validatedSchemasKey][c]=e,t[this.validationErrorsKey][c]=[]}}var d=this.errors.length,p=this.validateBasic(t,e,i)||this.validateNumeric(t,e,i)||this.validateString(t,e,i)||this.validateArray(t,e,i)||this.validateObject(t,e,i)||this.validateCombinations(t,e,i)||this.validateHypermedia(t,e,i)||this.validateFormat(t,e,i)||this.validateDefinedKeywords(t,e,i)||null;if(s){for(;this.scanned.length;)delete this.scanned.pop()[this.validatedSchemasKey];this.scannedFrozen=[],this.scannedFrozenSchemas=[]}if(p||d!==this.errors.length)for(;n&&n.length||r&&r.length;){var f=n&&n.length?""+n.pop():null,g=r&&r.length?""+r.pop():null;p&&(p=p.prefixWith(f,g)),this.prefixErrors(d,f,g)}return null!==l?this.scannedFrozenValidationErrors[o][l]=this.errors.slice(a):null!==c&&(t[this.validationErrorsKey][c]=this.errors.slice(a)),this.handleError(p)},c.prototype.validateFormat=function(t,e){if("string"!=typeof e.format||!this.formatValidators[e.format])return null;var n=this.formatValidators[e.format].call(null,t,e);return"string"==typeof n||"number"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n},"","/format",null,t,e):n&&"object"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n.message||"?"},n.dataPath||"",n.schemaPath||"/format",null,t,e):null},c.prototype.validateDefinedKeywords=function(t,e,n){for(var r in this.definedKeywords)if(void 0!==e[r])for(var i=this.definedKeywords[r],s=0;s=h&&re.maximum)return this.createError(v.NUMBER_MAXIMUM,{value:t,maximum:e.maximum},"","/maximum",null,t,e);if(e.exclusiveMaximum&&t===e.maximum)return this.createError(v.NUMBER_MAXIMUM_EXCLUSIVE,{value:t,maximum:e.maximum},"","/exclusiveMaximum",null,t,e)}return null},c.prototype.validateNaN=function(t,e){return"number"!=typeof t?null:!0===isNaN(t)||t===1/0||t===-1/0?this.createError(v.NUMBER_NOT_A_NUMBER,{value:t},"","/type",null,t,e):null},c.prototype.validateString=function(t,e,n){return this.validateStringLength(t,e,n)||this.validateStringPattern(t,e,n)||null},c.prototype.validateStringLength=function(t,e){return"string"!=typeof t?null:void 0!==e.minLength&&t.lengthe.maxLength?this.createError(v.STRING_LENGTH_LONG,{length:t.length,maximum:e.maxLength},"","/maxLength",null,t,e):null},c.prototype.validateStringPattern=function(t,e){if("string"!=typeof t||"string"!=typeof e.pattern&&!(e.pattern instanceof RegExp))return null;var n;if(e.pattern instanceof RegExp)n=e.pattern;else{var r,i="",s=e.pattern.match(/^\/(.+)\/([img]*)$/);s?(r=s[1],i=s[2]):r=e.pattern,n=new RegExp(r,i)}return n.test(t)?null:this.createError(v.STRING_PATTERN,{pattern:e.pattern},"","/pattern",null,t,e)},c.prototype.validateArray=function(t,e,n){return Array.isArray(t)&&(this.validateArrayLength(t,e,n)||this.validateArrayUniqueItems(t,e,n)||this.validateArrayItems(t,e,n))||null},c.prototype.validateArrayLength=function(t,e){var n;return void 0!==e.minItems&&t.lengthe.maxItems&&(n=this.createError(v.ARRAY_LENGTH_LONG,{length:t.length,maximum:e.maxItems},"","/maxItems",null,t,e),this.handleError(n))?n:null},c.prototype.validateArrayUniqueItems=function(t,e){if(e.uniqueItems)for(var n=0;ne.maxProperties&&(n=this.createError(v.OBJECT_PROPERTIES_MAXIMUM,{propertyCount:r.length,maximum:e.maxProperties},"","/maxProperties",null,t,e),this.handleError(n))?n:null},c.prototype.validateObjectRequiredProperties=function(t,e){if(void 0!==e.required)for(var n=0;n 10000");if(void 0!==v[t])throw new Error("Error already defined: "+t+" as "+v[t]);if(void 0!==b[e])throw new Error("Error code already used: "+b[e]+" as "+e);for(var r in v[t]=e,b[e]=t,_[t]=_[e]=n,C){var i=C[r];i[t]&&(i[e]=i[e]||i[t])}},reset:function(){i.reset(),this.error=null,this.missing=[],this.valid=!0},missing:[],error:null,valid:!0,normSchema:m,resolveUrl:f,getDocumentUri:g,errorCodes:v};return s.language(e||"en"),s}();return k.addLanguage("en-gb",_),k.tv4=k,k}.apply(e,[]))||(t.exports=n)},713:function(t){!function(){{const e=function(){var t={"http://webfinger.net/rel/avatar":"avatar",remotestorage:"remotestorage","http://tools.ietf.org/id/draft-dejong-remotestorage":"remotestorage",remoteStorage:"remotestorage","http://www.packetizer.com/rel/share":"share","http://webfinger.net/rel/profile-page":"profile",me:"profile",vcard:"vcard",blog:"blog","http://packetizer.com/rel/blog":"blog","http://schemas.google.com/g/2010#updates-from":"updates","https://camlistore.org/rel/server":"camilstore"},e={avatar:[],remotestorage:[],blog:[],vcard:[],updates:[],share:[],profile:[],camlistore:[]},n=["webfinger","host-meta","host-meta.json"],r="(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",i=new RegExp(`^(?:${r}\\.){3}${r}$`),s=new RegExp(`^(${r})\\.(${r})\\.(${r})\\.(${r})$`),o=/^localhost(?:\.localdomain)?(?::\d+)?$/,a=/^\d+$/,l=/^[a-zA-Z0-9.-]+$/,c=/^127\.(?:\d{1,3}\.){2}\d{1,3}$/;function u(t){const e=t.match(s);return e?e.slice(1).map(Number):null}function h(t){const[e,n]=t;return 0===e||10===e||127===e||172===e&&n>=16&&n<=31||192===e&&168===n||169===e&&254===n||e>=224&&e<=239||e>=240}class d extends Error{status;constructor(t,e){super(t),this.name="WebFingerError",this.status=e}}class p{static default;config;constructor(t={}){this.config={tls_only:void 0===t.tls_only||t.tls_only,uri_fallback:void 0!==t.uri_fallback&&t.uri_fallback,request_timeout:void 0!==t.request_timeout?t.request_timeout:1e4,allow_private_addresses:void 0!==t.allow_private_addresses&&t.allow_private_addresses}}async fetchJRD(t,e=0){if(e>3)throw new d("too many redirects");const n=new AbortController,r=setTimeout(()=>{n.abort()},this.config.request_timeout);try{const i=await fetch(t,{headers:{Accept:"application/jrd+json, application/json"},redirect:"manual",signal:n.signal});if(i.status>=300&&i.status<400){const n=i.headers.get("location");if(!n)throw new d("redirect without location header");let s;try{s=new URL(n,t)}catch{throw new d("invalid redirect URL")}try{await this.resolveAndValidateHost(s.host)}catch(t){if(t instanceof d)throw new d("redirect to private or internal address blocked");throw t}return clearTimeout(r),this.fetchJRD(s.toString(),e+1)}if(404===i.status)throw new d("resource not found",404);if(!i.ok)throw new d("error during request",i.status);const s=i.headers.get("content-type")||"",o=s.toLowerCase().split(";")[0].trim();"application/jrd+json"===o||("application/json"===o?console.debug('WebFinger: Server uses "application/json" instead of RFC 7033 recommended "application/jrd+json".'):console.warn(`WebFinger: Server returned unexpected content-type "${s}". Expected "application/jrd+json" per RFC 7033.`));const a=await i.text();if(p.isValidJSON(a))return a;throw new d("invalid json")}catch(t){if(n.signal.aborted)throw new d("request timed out");throw t}finally{clearTimeout(r)}}static isValidJSON(t){try{JSON.parse(t)}catch{return!1}return!0}static isLocalhost(t){return o.test(t)}static isPrivateAddress(t){let e=t;if(e.startsWith("[")&&e.includes("]:"))e=e.substring(1,e.lastIndexOf("]:"));else if(e.startsWith("[")&&e.endsWith("]"))e=e.substring(1,e.length-1);else if(e.includes(":")&&1===(e.match(/:/g)||[]).length){const t=e.split(":"),n=t[0],r=t[1];if(r&&!a.test(r))throw new d("invalid host format");(n.match(i)||n.match(l))&&(e=n)}if("localhost"===e||"127.0.0.1"===e||e.match(c)||"::1"===e||"localhost.localdomain"===e)return!0;const n=u(e);if(n)return h(n);const r=function(t){let e=t.toLowerCase();const n=u(e.substring(e.lastIndexOf(":")+1));if(n&&(e=`${e.substring(0,e.lastIndexOf(":"))}:${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`),!/^[0-9a-f:]+$/.test(e)||e.indexOf("::")!==e.lastIndexOf("::"))return null;const r=e.includes("::"),[i="",s=""]=e.split("::"),o=i?i.split(":"):[],a=r&&s?s.split(":"):[],l=8-o.length-a.length;if(!r&&8!==o.length||r&&l<1)return null;const c=(r?[...o,...Array(l).fill("0"),...a]:o).map(t=>Number.parseInt(t,16));return 8===c.length&&c.every(t=>t>=0&&t<=65535)?c:null}(e);if(r){const t=r.slice(0,5).every(t=>0===t)&&65535===r[5],e=r.slice(0,6).every(t=>0===t);if(t||e)return h([r[6]>>8,255&r[6],r[7]>>8,255&r[7]]);const n=r[0];return 64512==(65024&n)||65152==(65472&n)||!(65280&~n)}return!1}static getExplicitPort(t){if(t.startsWith("[")){const e=t.lastIndexOf("]:");if(-1!==e){const n=t.substring(e+2);if(!a.test(n))throw new d("invalid host format");return n}return}if(1===(t.match(/:/g)||[]).length){const[,e=""]=t.split(":");if(!e||!a.test(e))throw new d("invalid host format");return e}}static parseAddress(t){const e=t.replace(/ /g,"");if(e.includes("://")){let t;try{t=new URL(e)}catch{throw new d("invalid URI format")}if(!t.hostname)throw new d("could not determine host from address");return{host:t.host}}const n=e.split("@");if(2!==n.length||!n[1])throw new d("invalid useraddress format");return{host:n[1]}}async resolveAndValidateHost(t){const e=p.normalizeHost(t);if(!this.config.allow_private_addresses){if(p.isPrivateAddress(e.host))throw new d("private or internal addresses are not allowed");await this.validateDNSResolution(e.hostname)}return e}static normalizeHost(t){const e=t.split("/")[0];if(!e||0===e.length)throw new d("invalid host format");if(/[?# @]/.test(e))throw new d("invalid characters in host");const n=p.getExplicitPort(e);let r;try{r=new URL(`http://${e}`)}catch{throw new d("invalid host format")}const i=r.hostname;return{host:n?`${i}:${n}`:r.host||i,hostname:i}}static async processJRD(n,r){const i=JSON.parse(r);if("object"!=typeof i||"object"!=typeof i.links)throw void 0!==i.error?new d(i.error):new d("unknown response from server");const s={object:i,idx:{properties:{name:void 0},links:JSON.parse(JSON.stringify(e))}};(Array.isArray(i.links)?i.links:[]).map(function(e){if(Object.prototype.hasOwnProperty.call(t,String(e.rel))){const n=t[String(e.rel)];if(s.idx.links[n]){const t={href:String(e.href||""),rel:String(e.rel||"")};Object.keys(e).map(function(n){"object"==typeof e[n]&&null!==e[n]?t[n]=e[n]:t[n]=String(e[n])}),s.idx.links[n].push(t)}}});const o=i.properties||{};for(const t in o)Object.prototype.hasOwnProperty.call(o,t)&&"http://packetizer.com/ns/name"===t&&(s.idx.properties.name=o[t]);return s}async validateDNSResolution(t){if(!t.match(i)&&!t.includes(":")&&"localhost"!==t&&"undefined"!=typeof process&&process.versions?.node){const e="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns")?.promises:null;if(e)try{const[n,r]=await Promise.allSettled([e.resolve4(t).catch(()=>[]),e.resolve6(t).catch(()=>[])]),i="fulfilled"===n.status?n.value:[],s="fulfilled"===r.status?r.value:[];for(const e of[...i,...s])if(p.isPrivateAddress(e))throw new d(`hostname ${t} resolves to private address ${e}`)}catch(t){if(t instanceof d)throw t}}}async lookup(t){if(!t)throw new d("address is required");const{host:e}=p.parseAddress(t),{host:r}=await this.resolveAndValidateHost(e);let i=0,s="https";p.isLocalhost(r)&&(s="http");const o=async t=>{if(this.config.uri_fallback&&i!==n.length-1)return i+=1,a();if(this.config.tls_only||"https"!==s)throw t instanceof Error?t:new d(String(t));return i=0,s="http",a()},a=async()=>{const e=(()=>{let e="";return t.split("://")[1]||(e="acct:"),s+"://"+r+"/.well-known/"+n[i]+"?resource="+e+t})();try{const t=await this.fetchJRD(e);return p.processJRD(e,t)}catch(t){return await o(t)}};return a()}async lookupLink(t,n){if(Object.prototype.hasOwnProperty.call(e,n)){const e=(await this.lookup(t)).idx.links[n];return 0===e.length?Promise.reject('no links found with rel="'+n+'"'):Promise.resolve(e[0])}return Promise.reject("unsupported rel "+n)}}return p.default=p,p}();t.exports=e,t.exports.default=e}}("undefined"!=typeof self&&self)}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var s=e[r]={exports:{}};return t[r].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n(423).default}()},"object"==typeof t&&"object"==typeof e?e.exports=r():"function"==typeof define&&define.amd?define("RemoteStorage",[],r):"object"==typeof t?t.RemoteStorage=r():n.RemoteStorage=r()}),m$=c(g$(),1),y$="0123456789ABCDEFGHJKMNPQRSTVWXYZ";!function(t){t.Base32IncorrectEncoding="B32_ENC_INVALID",t.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",t.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",t.EncodeTimeNegative="ENC_TIME_NEG",t.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",t.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",t.PRNGDetectFailure="PRNG_DETECT",t.ULIDInvalid="ULID_INVALID",t.Unexpected="UNEXPECTED",t.UUIDInvalid="UUID_INVALID"}(i$||(i$={}));var v$=class extends Error{constructor(t,e){super(`${e} (${t})`),this.name="ULIDError",this.code=t}};function b$(t){const e=Math.floor(32*t())%32;return y$.charAt(e)}var w$={type:"object",properties:{id:{type:"string"},title:{type:"string"},lat:{type:"number"},lon:{type:"number"},geohash:{type:"string"},zoom:{type:"number"},url:{type:"string"},osmId:{type:"string"},osmType:{type:"string"},osmTags:{type:"object",additionalProperties:{type:"string"}},description:{type:"string"},tags:{type:"array",items:{type:"string"},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","lat","lon","geohash","createdAt"]},_$={type:"object",properties:{id:{type:"string"},title:{type:"string"},color:{type:"string"},placeRefs:{type:"array",items:{type:"object",properties:{id:{type:"string"},geohash:{type:"string"}},required:["id","geohash"]},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","placeRefs","createdAt"]},x$={name:"places",builder:function(t){function e(t,e){return`${t.substring(0,2)}/${t.substring(2,4)}/${e}`}t.declareType("place",w$),t.declareType("list",_$);const n={async getAll(){const e=await t.getAll("_lists/");return e?Object.values(e):[]},async get(e){const n=`_lists/${e}`;return t.getObject(n)},async getPlaces(n){const r=await this.get(n);if(!r)throw new Error(`List not found: ${n}`);if(!r.placeRefs||!Array.isArray(r.placeRefs))return[];const i=r.placeRefs.map(async n=>{if(!n.id||!n.geohash)return null;const r=e(n.geohash,n.id);return await t.getObject(r)});return(await Promise.all(i)).filter(t=>!!t)},async create(e,n,r){const i=`_lists/${e}`;let s=await t.getObject(i);const o=(new Date).toISOString();return s?(s.title=n,r&&(s.color=r),s.updatedAt=o):s={id:e,title:n,color:r,placeRefs:[],createdAt:o,updatedAt:o},await t.storeObject("list",i,s),s},async delete(e){await t.remove(`_lists/${e}`)},async addPlace(e,n,r){const i=`_lists/${e}`,s=await t.getObject(i);if(!s)throw new Error(`List not found: ${e}`);return-1===s.placeRefs.findIndex(t=>t.id===n)&&(s.placeRefs.push({id:n,geohash:r}),s.updatedAt=(new Date).toISOString(),await t.storeObject("list",i,s)),s},async removePlace(e,n){const r=`_lists/${e}`,i=await t.getObject(r);if(!i)throw new Error(`List not found: ${e}`);const s=i.placeRefs.findIndex(t=>t.id===n);return-1!==s&&(i.placeRefs.splice(s,1),i.updatedAt=(new Date).toISOString(),await t.storeObject("list",r,i)),i},async initDefaults(){for(const t of[{id:"to-go",title:"Want to go",color:"#2e9e4f"},{id:"to-do",title:"To do",color:"#2a7fff"}])await this.get(t.id)||await this.create(t.id,t.title,t.color)}};return{exports:{lists:n,store:async function(n){const r=function(t){const e=(new Date).toISOString(),n=t.id||function(t,e){const n=e||function(){const t="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:null,e=t&&(t.crypto||t.msCrypto)||null;if("function"==typeof e?.getRandomValues)return()=>{const t=new Uint8Array(1);return e.getRandomValues(t),t[0]/256};if("function"==typeof e?.randomBytes)return()=>e.randomBytes(1).readUInt8()/256;throw new v$(i$.PRNGDetectFailure,"Failed to find a reliable PRNG")}();return function(t,e=10){if(isNaN(t))throw new v$(i$.EncodeTimeValueMalformed,`Time must be a number: ${t}`);if(t>0xffffffffffff)throw new v$(i$.EncodeTimeSizeExceeded,`Cannot encode a time larger than 281474976710655: ${t}`);if(t<0)throw new v$(i$.EncodeTimeNegative,`Time must be positive: ${t}`);if(!1===Number.isInteger(t))throw new v$(i$.EncodeTimeValueMalformed,`Time must be an integer: ${t}`);let n,r="";for(let i=e;i>0;i--)n=t%32,r=y$.charAt(n)+r,t=(t-n)/32;return r}(!t||isNaN(t)?Date.now():t,10)+function(t,e){let n="";for(;t>0;t--)n=b$(e)+n;return n}(16,n)}(),r="number"==typeof t.lat?t.lat:0,i="number"==typeof t.lon?t.lon:0,s=t.title||"Untitled Place",o=t.geohash||aB.encode(r,i,10),a={...t,id:n,lat:r,lon:i,geohash:o,title:s,tags:t.tags||[],createdAt:t.createdAt||e,updatedAt:t.id?e:void 0};return Object.keys(a).forEach(t=>{void 0===a[t]&&delete a[t]}),a}(n),i=e(r.geohash,r.id);return await t.storeObject("place",i,r),r},remove:async function(r,i){if(!r||!i)throw new Error("Both id and geohash are required to remove a place");const s=await n.getAll();await Promise.all(s.map(async e=>{const n=e.placeRefs.findIndex(t=>t.id===r);-1!==n&&(e.placeRefs.splice(n,1),e.updatedAt=(new Date).toISOString(),await t.storeObject("list",`_lists/${e.id}`,e))}));const o=e(i,r);return t.remove(o)},get:async function(n,r){if(!n||!r)throw new Error("Both id and geohash are required to get a place");const i=e(r,n);return t.getObject(i)},listByPrefix:async function(e){let n="";return e.length>=2&&(n+=e.substring(0,2)+"/"),e.length>=4&&(n+=e.substring(2,4)+"/"),t.getAll(n)},getPlaces:async function(e){const n=[],r=async e=>{const r=await t.getAll(e,!1);r&&Object.values(r).forEach(t=>{t&&"object"==typeof t&&!t.toString().endsWith("/")&&n.push(t)})};if(e&&e.length>0){const t=e.map(async t=>{if(t.length<4)return;const e=t.substring(0,2),n=t.substring(2,4);await r(`${e}/${n}/`)});await Promise.all(t)}else{const e=t=>{if(!t||"object"!=typeof t)return[];let e=t;return t.items&&"object"==typeof t.items&&(e=t.items),Object.keys(e).filter(t=>t.endsWith("/")&&!t.startsWith("@"))},n=e(await t.getListing("",!1));await Promise.all(n.map(async n=>{const i=await t.getListing(n,!1),s=e(i);await Promise.all(s.map(async t=>{await r(n+t)}))}))}return n}}}}},C$=o((t,e)=>{var n,r;n=self,r=()=>(()=>{var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}t.d(e,{default:()=>i});const i=function(){return t=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.rs=e,this.leaveOpen=!!n.leaveOpen&&n.leaveOpen,this.autoCloseAfter=n.autoCloseAfter?n.autoCloseAfter:1500,this.skipInitial=!!n.skipInitial&&n.skipInitial,this.logging=!!n.logging&&n.logging,this.parentContainerEl=null,n.hasOwnProperty("modalBackdrop")){if("boolean"!=typeof n.modalBackdrop&&"onlySmallScreens"!==n.modalBackdrop)throw'options.modalBackdrop has to be true/false or "onlySmallScreens"';this.modalBackdrop=n.modalBackdrop}else this.modalBackdrop="onlySmallScreens";this.active=!1,this.online=!1,this.closed=!1,this.lastSynced=null,this.lastSyncedUpdateLoop=null},e=[{key:"log",value:function(){if(this.logging){for(var t,e=arguments.length,n=new Array(e),r=0;r

Connect your storage

To sync data with your account
';var e=document.createElement("style");return e.innerHTML='#remotestorage-widget {\n z-index: 21000000;\n}\n\n.rs-widget {\n box-sizing: border-box;\n overflow: hidden;\n max-width: 350px;\n padding: 10px;\n margin: 10px;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n font-family: arial, sans-serif;\n font-size: 16px;\n color: #333;\n will-change: max-height, height, width, opacity, max-width, background, box-shadow;\n transition-property: width, height, opacity, max-width, max-height, background, box-shadow;\n transition-duration: 300ms;\n}\n\n.rs-widget * {\n box-sizing: border-box;\n}\n\n.rs-widget .rs-hidden {\n display: none;\n}\n\n.rs-box {\n overflow: hidden;\n will-change: height;\n transition-property: height, width, max-height;\n transition-duration: 300ms;\n transition-timing-function: ease-in;\n opacity: 0;\n max-height: 0px;\n}\n\n.rs-box.rs-selected:not([aria-hidden=true]) {\n opacity: 1;\n max-height: 420px;\n}\n\n/* Main logo */\n.rs-main-logo {\n float: left;\n height: 36px;\n width: 36px;\n margin-top: 1px;\n margin-right: 0.625em;\n transition: margin-left 300ms ease-out, transform 300ms ease-out;\n cursor: pointer;\n}\n.rs-widget .rs-backend-remotestorage svg#rs-main-logo-remotestorage {\n display: block;\n}\n.rs-widget[class*="rs-backend-"]:not(.rs-backend-remotestorage) svg#rs-main-logo-remotestorage {\n display: none;\n}\n.rs-widget.rs-backend-dropbox svg#rs-main-logo-dropbox {\n display: block;\n}\n.rs-widget:not(.rs-backend-dropbox) svg#rs-main-logo-dropbox {\n display: none;\n}\n.rs-widget.rs-backend-googledrive svg#rs-main-logo-googledrive {\n display: block;\n}\n.rs-widget:not(.rs-backend-googledrive) svg#rs-main-logo-googledrive {\n display: none;\n}\n\npolygon.rs-logo-shape {\n fill: #FF4B03;\n}\n\npolygon.rs-logo-shape,\n#rs-main-logo-dropbox path,\n#rs-main-logo-googledrive path {\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n.rs-offline polygon.rs-logo-shape,\n.rs-offline #rs-main-logo-dropbox path,\n.rs-offline #rs-main-logo-googledrive path {\n fill: #888;\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n/* Hide everything except logo when connected and clicked outside of box */\n.rs-closed {\n max-width: 56px;\n background-color: transparent;\n box-shadow: none;\n opacity: 0.5;\n\n transition: max-height 100ms ease-out 0ms, max-width 300ms ease-out 300ms, background 300ms ease-in 200ms, opacity 300ms ease 200ms;\n}\n\n.rs-closed:hover {\n cursor: pointer;\n opacity: 1;\n}\n\n.rs-box-initial {\n transition-duration: 0ms;\n}\n\n.rs-box-initial:hover {\n cursor: pointer;\n}\n\n.rs-widget a {\n color: #0093cc;\n}\n\n/* HEADLINE */\n.rs-small-headline {\n font-size: 1em;\n font-weight: bold;\n margin: 0;\n margin-bottom: 2px;\n height: 1.2em;\n word-break: break-all;\n overflow: hidden;\n line-height: 1em;\n}\n\n.rs-sub-headline {\n word-break: break-all;\n overflow: hidden;\n color: #666;\n font-size: 0.92em;\n height: 1.2em;\n}\n.rs-big-headline {\n font-size: 1.625em;\n font-weight: normal;\n text-align: center;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* BUTTONS */\n.rs-button {\n font: inherit;\n color: inherit;\n background-color: transparent;\n border: 1px solid #dcdcdc;\n border-radius: 3px;\n cursor: pointer;\n}\n.rs-button-small {\n padding: 0.6em 0.7em;\n margin-left: 0.2em;\n transition: border-color 300ms ease-out;\n}\n.rs-button-small svg {\n vertical-align: top;\n}\n.rs-button-wrap {\n margin-top: 10px;\n}\n\n.rs-button-wrap img,\n.rs-button-wrap svg {\n float: left;\n margin-right: 0.6em;\n width: 40px;\n height: 40px;\n}\n\n.rs-button-big {\n padding: 15px 10px;\n margin-bottom: 10px;\n display: block;\n width: 100%;\n text-align: left;\n transition: box-shadow 200ms;\n}\n.rs-button-big > div {\n font-size: 1.125em;\n padding: 10px 0;\n}\n.rs-button-big:hover {\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:active {\n background-color: #eee;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:last-child {\n margin-bottom: 0;\n}\n\n.rs-content {\n padding: 0 10px 10px 10px;\n}\n\n\n.rs-state-choose .rs-main-logo,\n.rs-state-sign-in .rs-main-logo {\n margin-left: 45%;\n float: none;\n}\n\n.rs-sign-in-form input[type=text] {\n padding: 15px 10px;\n display: block;\n width: 100%;\n font: inherit;\n height: 52px;\n border: 1px solid #aaa;\n border-radius: 0;\n box-shadow: none;\n}\n.rs-sign-in-form button.rs-connect {\n padding: 15px 10px;\n margin-top: 20px;\n margin-bottom: 15px;\n display: block;\n width: 100%;\n border: none;\n border-radius: 3px;\n background-color: #3fb34f;\n font: inherit;\n color: #fff;\n transition: box-shadow 200ms, background-color 200ms;\n}\n\n.rs-sign-in-form button.rs-connect:hover {\n cursor: pointer;\n background-color: #4BCB5D;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n\n.rs-sign-in-form button.rs-connect:active {\n background-color: #3fb34f;\n}\n\n.rs-sign-in-form button.rs-connect:disabled,\n.rs-sign-in-form button.rs-connect:disabled:hover {\n background-color: #aaa;\n}\n\n.rs-sign-in-form button.rs-connecting svg {\n height: 1em;\n width: auto;\n vertical-align: middle;\n margin-left: 0.5em;\n animation: rs-spin 1s linear infinite;\n}\n\n.rs-sign-in-error.rs-hidden,\n.rs-box-error.rs-hidden {\n height: 0;\n}\n\n.rs-sign-in-error.rs-visible,\n.rs-box-error.rs-visible {\n height: auto;\n border-radius: 3px;\n padding: 0.5em 0.5em;\n margin-top: 0.5em;\n text-align: center;\n background-color: rgba(255,0,0,0.1);\n color: darkred;\n}\n\n.rs-box-error {\n display: flex;\n flex-direction: row;\n}\n\n.rs-box-error .rs-error-message {\n flex: auto;\n}\n\n /*Choose provider box */\n.rs-box-choose {\n text-align: center;\n overflow: hidden;\n}\n\n.rs-box-choose p {\n margin-top: 0;\n margin-bottom: 20px;\n line-height: 1.4em;\n}\n\n/*Connected box */\n.rs-box-connected {\n display: flex;\n flex-direction: row;\n height: 40px;\n transition: height 0s;\n}\n.rs-connected-text {\n flex: auto;\n min-width: 0;\n}\n.rs-box-connected .rs-user {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: keep-all;\n}\n.rs-connected-buttons, .rs-error-buttons {\n flex: none;\n}\n.rs-disconnect:hover {\n border-color: #FF2D2D;\n}\n.rs-disconnect:hover .rs-icon{\n fill: #FF2D2D;\n}\n.rs-sync:hover {\n border-color: #FFBB0C;\n}\n.rs-sync:hover .rs-icon {\n fill: #FFBB0C;\n}\n.rs-sync.rs-rotate {\n border-color: #FFBB0C;\n}\n.rs-sync.rs-rotate .rs-icon {\n fill: #FFBB0C;\n animation: rs-spin 1s linear infinite;\n}\n\n/* Floating widget styles (top right corner) */\n.rs-floating {\n position: fixed;\n top: 0;\n right: 0;\n}\n\n@keyframes rs-spin {\n 100% {\n transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* Small/mobile screens */\n@media screen and (max-width: 420px) {\n .rs-widget {\n font-size: 100%;\n transition: all 300ms ease-out;\n max-width: 400px;\n }\n .rs-floating {\n position: relative;\n top: auto;\n right: auto\n }\n .rs-closed {\n max-width: 56px;\n }\n .rs-state-choose,\n .rs-state-sign-in {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n max-width: 100%;\n }\n}\n\n/* remove dotted outline border on Firefox */\n.rs-widget a:focus,\n.rs-widget a:active,\n.rs-widget button:focus,\n.rs-widget input:focus {\n outline:none;\n}\n.rs-widget button::-moz-focus-inner,\n.rs-widget input[type="button"]::-moz-focus-inner {\n border:0;\n}\n\n/* prevent rounded buttons on mobile Safari */\n.rs-widget button,\n.rs-widget input[type="button"] {\n -webkit-appearance: none;\n}\n\n.remotestorage-widget-modal-backdrop {\n display: none;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s linear;\n}\n\n.remotestorage-widget-modal-backdrop.visible {\n opacity: 1;\n transition: opacity 0.3s linear;\n}\n',t.appendChild(e),t}},{key:"setModalClass",value:function(){if(this.modalBackdrop){if("onlySmallScreens"===this.modalBackdrop&&!this.isSmallScreen())return;this.rsWidget.classList.add("rs-modal")}}},{key:"setupElements",value:function(){if(!this.parentContainerEl)throw new Error("Parent container element not found");this.rsWidget=this.parentContainerEl.querySelector(".rs-widget"),this.rsBackdrop=this.parentContainerEl.querySelector(".remotestorage-widget-modal-backdrop"),this.rsInitial=this.parentContainerEl.querySelector(".rs-box-initial"),this.rsChoose=this.parentContainerEl.querySelector(".rs-box-choose"),this.rsConnected=this.parentContainerEl.querySelector(".rs-box-connected"),this.rsSignIn=this.parentContainerEl.querySelector(".rs-box-sign-in"),this.rsConnectedLabel=this.parentContainerEl.querySelector(".rs-box-connected .rs-sub-headline"),this.rsChooseRemoteStorageButton=this.parentContainerEl.querySelector("button.rs-choose-rs"),this.rsChooseDropboxButton=this.parentContainerEl.querySelector("button.rs-choose-dropbox"),this.rsChooseGoogleDriveButton=this.parentContainerEl.querySelector("button.rs-choose-googledrive"),this.rsErrorBox=this.parentContainerEl.querySelector(".rs-box-error .rs-error-message"),this.rs.apiKeys.hasOwnProperty("googledrive")||this.rsChooseGoogleDriveButton.parentNode.removeChild(this.rsChooseGoogleDriveButton),this.rs.apiKeys.hasOwnProperty("dropbox")||this.rsChooseDropboxButton.parentNode.removeChild(this.rsChooseDropboxButton),this.rsSignInForm=this.parentContainerEl.querySelector(".rs-sign-in-form"),this.rsAddressInput=this.rsSignInForm.querySelector("input[name=rs-user-address]"),this.rsConnectButton=this.parentContainerEl.querySelector(".rs-connect"),this.rsDisconnectButton=this.parentContainerEl.querySelector(".rs-disconnect"),this.rsSyncButton=this.parentContainerEl.querySelector(".rs-sync"),this.rsLogo=this.parentContainerEl.querySelector(".rs-widget-icon"),this.rsErrorReconnectLink=this.parentContainerEl.querySelector(".rs-box-error a.rs-reconnect"),this.rsErrorDisconnectButton=this.parentContainerEl.querySelector(".rs-box-error button.rs-disconnect"),this.rsConnectedUser=this.parentContainerEl.querySelector(".rs-connected-text h1.rs-user")}},{key:"setupHandlers",value:function(){var t=this;this.rs.on("connected",function(){return t.eventHandler("connected")}),this.rs.on("ready",function(){return t.eventHandler("ready")}),this.rs.on("disconnected",function(){return t.eventHandler("disconnected")}),this.rs.on("network-online",function(){return t.eventHandler("network-online")}),this.rs.on("network-offline",function(){return t.eventHandler("network-offline")}),this.rs.on("error",function(e){return t.eventHandler("error",e)}),this.setEventListeners(),this.setClickHandlers()}},{key:"attach",value:function(t){var e=this.createHtmlTemplate(t);if(this.parentContainerEl,t instanceof HTMLElement)this.parentContainerEl=t;else if("string"==typeof t){if(this.parentContainerEl=document.getElementById(t),!this.parentContainerEl)throw new Error('Failed to find target DOM element with id="'+t+'"')}else{if(t)throw new Error("Unknown element type. Expected instance of HTMLElement or type of string.");this.parentContainerEl=document.body}this.parentContainerEl.appendChild(e),this.setupElements(),this.setupHandlers(),this.setInitialState(),this.setModalClass()}},{key:"setEventListeners",value:function(){var t=this;this.rsSignInForm.addEventListener("submit",function(e){e.preventDefault();var n=t.parentContainerEl.querySelector("input[name=rs-user-address]").value.trim();t.disableConnectButton(),t.rs.connect(n)})}},{key:"showChooseOrSignIn",value:function(){this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.style.display="block",this.rsBackdrop.classList.add("visible")),this.rs.apiKeys&&Object.keys(this.rs.apiKeys).length>0?this.setState("choose"):this.setState("sign-in")}},{key:"setClickHandlers",value:function(){var t=this;this.rsInitial.addEventListener("click",function(){return t.showChooseOrSignIn()}),this.rsChooseRemoteStorageButton.addEventListener("click",function(){t.setState("sign-in"),t.rsAddressInput.focus()}),this.rsChooseDropboxButton.addEventListener("click",function(){return t.rs.dropbox.connect()}),this.rsChooseGoogleDriveButton.addEventListener("click",function(){return t.rs.googledrive.connect()}),this.rsDisconnectButton.addEventListener("click",function(){return t.rs.disconnect()}),this.rsErrorReconnectLink.addEventListener("click",function(){return t.rs.reconnect()}),this.rsErrorDisconnectButton.addEventListener("click",function(){return t.rs.disconnect()}),this.rs.hasFeature("Sync")&&this.rsSyncButton.addEventListener("click",function(){t.rsSyncButton.classList.contains("rs-rotate")?(t.rs.stopSync(),t.rsSyncButton.classList.remove("rs-rotate")):(t.rsConnectedLabel.textContent="Synchronizing",t.rs.startSync(),t.rsSyncButton.classList.add("rs-rotate"))}),document.addEventListener("click",function(){return t.close()}),this.rsWidget.addEventListener("click",function(t){return t.stopPropagation()}),this.rsLogo.addEventListener("click",function(){return t.toggle()})}},{key:"toggle",value:function(){this.closed?this.open():"initial"===this.state?this.showChooseOrSignIn():this.close()}},{key:"open",value:function(){this.closed=!1,this.rsWidget.classList.remove("rs-closed"),this.shouldCloseWhenSyncDone=!1;var t=this.parentContainerEl.querySelector(".rs-box.rs-selected");t&&t.setAttribute("aria-hidden","false")}},{key:"close",value:function(){var t=this;if("error"!==this.state){if(!this.leaveOpen&&this.active){this.closed=!0,this.rsWidget.classList.add("rs-closed");var e=this.parentContainerEl.querySelector(".rs-box.rs-selected");e&&e.setAttribute("aria-hidden","true")}else this.active?this.setState("connected"):this.setInitialState();this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.classList.remove("visible"),setTimeout(function(){t.rsBackdrop.style.display="none"},300))}}},{key:"disableConnectButton",value:function(){this.rsConnectButton.disabled=!0,this.rsConnectButton.classList.add("rs-connecting"),this.rsConnectButton.innerHTML="Connecting ".concat('\n \n \n \n \n \n \n\n')}},{key:"enableConnectButton",value:function(){this.rsConnectButton.disabled=!1,this.rsConnectButton.textContent="Connect",this.rsConnectButton.classList.remove("rs-connecting")}},{key:"setOffline",value:function(){this.online&&(this.rsWidget.classList.add("rs-offline"),this.rsConnectedLabel.textContent="Offline",this.online=!1)}},{key:"setOnline",value:function(){this.online||(this.rsWidget.classList.remove("rs-offline"),this.active&&(this.rsConnectedLabel.textContent="Connected")),this.online=!0}},{key:"setBackendClass",value:function(t){this.rsWidget.classList.remove("rs-backend-remotestorage"),this.rsWidget.classList.remove("rs-backend-dropbox"),this.rsWidget.classList.remove("rs-backend-googledrive"),t&&this.rsWidget.classList.add("rs-backend-".concat(t))}},{key:"showErrorBox",value:function(t){this.rsErrorBox.innerHTML=t,this.setState("error")}},{key:"hideErrorBox",value:function(){this.rsErrorBox.innerHTML="",this.close()}},{key:"handleSyncStarted",value:function(){var t=this;this.syncInProgress=!0,this.rsSyncButton.classList.add("rs-rotate"),setTimeout(function(){t.syncInProgress&&(t.rsConnectedLabel.textContent="Synchronizing")},1e3)}},{key:"handleDiscoveryError",value:function(t){var e=this.parentContainerEl.querySelector(".rs-sign-in-error");e.innerHTML=t.message,e.classList.remove("rs-hidden"),e.classList.add("rs-visible"),this.enableConnectButton()}},{key:"handleSyncError",value:function(){this.setOffline()}},{key:"handleUnauthorized",value:function(t){t.code&&"access_denied"===t.code?this.rs.disconnect():(this.open(),this.showErrorBox(t.message+" "),this.rsErrorBox.appendChild(this.rsErrorReconnectLink),this.rsErrorReconnectLink.classList.remove("rs-hidden"))}},{key:"updateLastSyncedStatus",value:function(){var t=new Date;this.online?(this.lastSynced=t,this.rsConnectedLabel.textContent="Synced"):this.rsWidget.classList.contains("rs-state-unauthorized")||(this.rsConnectedLabel.textContent="Offline")}},{key:"isSmallScreen",value:function(){return window.innerWidth<421}}],e&&function(t,e){for(var n=0;nAs(t.cancelId))}))),s=r.has(e)?r.get(e).debouncedTask:(...n)=>{r.delete(e),t[e](...n)};let o=Os(t,s,...n);r.set(e,{debouncedTask:s,cancelId:o})}var R$=a({default:()=>L$}),L$=class extends fp{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");rs;widget;static{hF(this.prototype,"placesInView",[Wr],function(){return[]})}#Wt=void pF(this,"placesInView");static{hF(this.prototype,"savedPlaces",[Wr],function(){return[]})}#Ht=void pF(this,"savedPlaces");static{hF(this.prototype,"loadedPrefixes",[Wr],function(){return[]})}#Gt=void pF(this,"loadedPrefixes");static{hF(this.prototype,"currentBbox",[Wr],function(){return null})}#Zt=void pF(this,"currentBbox");static{hF(this.prototype,"lists",[Wr],function(){return[]})}#Kt=void pF(this,"lists");static{hF(this.prototype,"version",[Wr],function(){return 0})}#Yt=void pF(this,"version");static{hF(this.prototype,"initialSyncDone",[Wr],function(){return!1})}#Xt=void pF(this,"initialSyncDone");static{hF(this.prototype,"connected",[Wr],function(){return!1})}#Jt=void pF(this,"connected");static{hF(this.prototype,"userAddress",[Wr],function(){return null})}#Qt=void pF(this,"userAddress");static{hF(this.prototype,"isWidgetOpen",[Wr],function(){return!1})}#te=void pF(this,"isWidgetOpen");isNewConnection=!0;constructor(){super(...arguments),this.checkInitialConnectionState(),this.rs=new m$.default({modules:[x$]}),this.rs.access.claim("places","rw"),this.rs.caching.enable("/places/"),window.remoteStorage=this.rs,this.widget=new k$.default(this.rs,{leaveOpen:!0,skipInitial:!0}),this.rs.on("ready",()=>{}),this.rs.on("error",t=>{t&&(console.info("[rs] Error —",`${t.name}: ${t.message}`),"Unauthorized"===t.name&&this.showConnectWidget())}),this.rs.on("connected",()=>{this.connected=!0,this.userAddress=this.rs.remote.userAddress,this.initialSyncDone=!1,this.isNewConnection&&(this.toast.show("Remote storage connected",3e3),this.isNewConnection=!1),this.loadLists()}),this.rs.on("not-connected",()=>{this.initialSyncDone=!0,this.loadLists()}),this.rs.on("disconnected",()=>{this.connected=!1,this.userAddress=null,this.placesInView=[],this.savedPlaces=[],this.loadedPrefixes=[],this.lists=[],this.initialSyncDone=!1,this.isNewConnection=!0}),this.rs.on("sync-done",()=>{this.initialSyncDone||(this.initialSyncDone=!0,this.loadLists())}),this.rs.scope("/places/").on("change",t=>{t.relativePath.startsWith("_lists/")?this.loadLists():(this.handlePlaceChange(t),E$(this,"reloadCurrentView",200))})}checkInitialConnectionState(){this.isNewConnection=!0;try{if(window.localStorage)for(const t of["remotestorage:wireclient","remotestorage:dropbox","remotestorage:googledrive"]){const e=window.localStorage.getItem(t);if(e){const t=JSON.parse(e);if(t&&t.token){this.isNewConnection=!1;break}}}}catch(t){console.warn("Failed to check localStorage for existing connection:",t)}}handlePlaceChange(t){const{newValue:e,relativePath:n}=t,r=n.split("/"),i=r[r.length-1];if(e){const t={...e,id:i},n=this.savedPlaces.findIndex(t=>t.id===i);if(-1!==n){const e=[...this.savedPlaces];e[n]=t,this.savedPlaces=e}else this.savedPlaces=[...this.savedPlaces,t]}else this.savedPlaces=this.savedPlaces.filter(t=>t.id!==i)}get places(){return this.rs.places}notifyChange(){this.version++,E$(this,"reloadCurrentView",200)}reloadCurrentView(){if(!this.currentBbox)return;const t=cB(this.currentBbox);console.debug("Reloading view due to changes, prefixes:",t),this.loadAllPlaces(t)}async loadLists(){try{if(!this.places.lists)return;await this.places.lists.initDefaults();const t=await this.places.lists.getAll();this.lists=t||[],this.lists.forEach(t=>{"to-go"===t.id?t.icon="bookmark":"to-do"===t.id&&(t.icon="check-square")}),this.refreshPlaceListAssociations()}catch(t){console.error("Failed to load lists:",t)}}refreshPlaceListAssociations(){const t=new Map;this.lists.forEach(e=>{e.placeRefs&&Array.isArray(e.placeRefs)&&e.placeRefs.forEach(n=>{n.id&&(t.has(n.id)||t.set(n.id,[]),t.get(n.id).push(e.id))})});const e=e=>(e._listIds=t.get(e.id)||[],e);this.savedPlaces=this.savedPlaces.map(t=>e({...t})),this.placesInView=this.placesInView.map(t=>e({...t}))}async togglePlaceList(t,e,n){if(!t)return;let r=t;if(!t.id||!t.geohash){if(!n)return;r=await this.storePlace(t)}try{return n?await this.places.lists.addPlace(e,r.id,r.geohash):await this.places.lists.removePlace(e,r.id),await this.loadLists(),this.findPlaceById(r.id)}catch(i){throw console.error("Failed to toggle place in list:",i),i}}async getPlacesInList(t){return this.places&&this.places.lists?this.places.lists.getPlaces(t):[]}async loadPlacesInBounds(t){const e=cB(t).filter(t=>!this.loadedPrefixes.includes(t));0!==e.length&&(console.debug("Loading new prefixes:",e),await this.loadAllPlaces(e),this.loadedPrefixes=[...this.loadedPrefixes,...e],this.currentBbox=t)}async loadAllPlaces(t=null){try{const e=await this.places.getPlaces(t);if(e&&Array.isArray(e)){if(t){const n=new Set(t),r=this.placesInView.filter(t=>{if(!t.lat||!t.lon)return!1;try{const e=aB.encode(t.lat,t.lon,4);return!n.has(e)}catch{return!0}});this.placesInView=[...r,...e]}else this.placesInView=e;this.refreshPlaceListAssociations()}else t||(this.placesInView=[]);console.debug("Loaded saved places:",this.placesInView.length)}catch(e){console.error("Failed to load places:",e)}}findPlaceById(t){if(!t)return;const e=String(t);let n=this.savedPlaces.find(t=>t.id&&String(t.id)===e);return n||(n=this.placesInView.find(t=>t.id&&String(t.id)===e),n||(n=this.savedPlaces.find(t=>t.osmId&&String(t.osmId)===e),n||(n=this.placesInView.find(t=>t.osmId&&String(t.osmId)===e),n)))}isPlaceSaved(t){return!!this.findPlaceById(t)}async storePlace(t){const e=await this.places.store(t);return this.savedPlaces.some(t=>t.id===e.id)?this.savedPlaces=this.savedPlaces.map(t=>t.id===e.id?e:t):this.savedPlaces=[...this.savedPlaces,e],this.placesInView.some(t=>t.id===e.id)?this.placesInView=this.placesInView.map(t=>t.id===e.id?e:t):this.placesInView=[...this.placesInView,e],e}async updatePlace(t){const e=await this.places.store(t),n=this.savedPlaces.findIndex(t=>t.id===e.id);if(-1!==n){const t=[...this.savedPlaces];t[n]=e,this.savedPlaces=t}return this.placesInView=this.placesInView.map(t=>t.id===e.id?e:t),e}async removePlace(t){await this.places.remove(t.id,t.geohash),this.savedPlaces=this.savedPlaces.filter(e=>e.id!==t.id),this.placesInView.length>0&&(this.placesInView=this.placesInView.filter(e=>e.id!==t.id))}async refreshPlace(t){if(!(t&&t.id&&t.osmId&&t.osmType))return null;try{console.debug(`Checking for updates for ${t.title} (${t.osmId})`);const e=await this.osm.fetchOsmObject(t.osmId,t.osmType,{forceFresh:!0});if(!e)return console.warn("Could not fetch fresh data for",t.osmId),null;let n=!1;const r={},i=Math.abs(t.lat-e.lat),s=Math.abs(t.lon-e.lon);(i>1e-5||s>1e-5)&&(n=!0,r.lat=e.lat,r.lon=e.lon);const o=t.osmTags||{},a=e.osmTags||{},l=new Set([...Object.keys(o),...Object.keys(a)]);for(const t of l)if(o[t]!==a[t]){n=!0,r.osmTags=a;break}if(!n)return console.debug("No changes detected for",t.title),null;console.debug("Changes detected:",r);const c={...t,...r},u=JB(o),h=JB(a);return t.title===u&&u!==h&&(c.title=h),await this.updatePlace(c)}catch(e){return console.error("Failed to refresh place:",e),null}}showConnectWidget(){this.isWidgetOpen=!0,document.querySelector(".rs-widget")||this.widget.attach("rs-widget-container")}static{dF(this.prototype,"showConnectWidget",[Vl])}closeWidget(){this.isWidgetOpen=!1}static{dF(this.prototype,"closeWidget",[Vl])}disconnect(){this.rs.disconnect(),this.isWidgetOpen=!1}static{dF(this.prototype,"disconnect",[Vl])}},T$=a({default:()=>P$}),P$=class extends fp{static{hF(this.prototype,"message",[Wr],function(){return null})}#ee=void pF(this,"message");static{hF(this.prototype,"isVisible",[Wr],function(){return!1})}#ne=void pF(this,"isVisible");timeoutId=null;show(t,e=3e3){this.message=t,this.isVisible=!0,this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isVisible=!1},e)}},I$=a({getDistance:()=>M$});function M$(t,e,n,r){const i=t*Math.PI/180,s=n*Math.PI/180,o=(n-t)*Math.PI/180,a=(r-e)*Math.PI/180,l=Math.sin(o/2)*Math.sin(o/2)+Math.cos(i)*Math.cos(s)*Math.sin(a/2)*Math.sin(a/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3}var A$=a({getIcon:()=>z$,isIconFilled:()=>F$}),O$={activity:'',angelfish:'\n \n',anchor:'\n \n',"airport-terminal":'\n \n',"arrow-left":'',barbell:'\n \n',"barrel-with-bunghole":'\n \n',banknote:'\n \n',"banknote-in-slot":'\n \n',"badge-shield-with-fire":'\n \n',"beach-umbrella-in-ground":'\n \n',"beer-mug-with-foam":'\n \n',bookmark:'',"boxing-glove-up":'\n \n',"burger-and-drink-cup-with-straw":'\n \n',bridge:'\n \n',bus:'\n \n',camera:'\n \n',"feather-camera":'',"check-square":'',"chevron-left":'',"chevron-right":'',"cigarette-with-smoke-curl":'\n \n',"city-gate":'\n \n',climbing_wall:'\n \n',check:'',"alert-circle":'',"alert-triangle":'',"classical-building":'\n \n',"classical-building-with-clock":'\n \n',"classical-building-with-dome-and-flag":'\n \n',"classical-building-with-flag":'\n \n',"commercial-building":'\n \n',"clothes-hanger":'\n \n',cleaver:'\n \n',cloth:'\n \n',cocktail:'\n \n',couch:'\n \n',clock:'',"coffee-bean":'\n \n',"comedy-mask-and-tragedy-mask":'\n \n',croissant:'\n \n',"cup-and-saucer":'\n \n',database:'',donut:'\n \n',"dollar-swap-to-euro":'\n \n',edit:'',eyeglasses:'\n \n',facebook:'',"fancy-mirror-with-reflection-and-stars":'\n \n',"family-restroom-symbol":'\n \n',film:'\n \n',"fingernail-polished":'\n \n',fish:'\n \n',"flag-checkered":'\n \n',"flower-bouquet":'\n \n',"fork-and-knife":'\n \n',fort:'\n \n',"gasoline-pump":'\n \n',gift:'',globe:'',grapes:'\n \n',gravestone:'\n \n',"grecian-vase":'\n \n',"greek-cross":'\n \n',heart:'',home:'',"ice-cream-on-cone":'\n \n',"industrial-building":'\n \n',info:'',"info-i":'\n \n',instagram:'',jewel:'\n \n',"log-in":'',"log-out":'',"lowrise-building":'\n \n',mail:'',map:'',"map-pin":'',"market-stall":'\n \n',"memorial-stone-with-inscription":'\n \n',menu:'',"mobile-phone-with-keypad-and-antenna":'\n \n',"molar-tooth":'\n \n',"more-horizontal":'',"more-vertical":'',navigation:'',"needle-and-spool-of-thread":'\n \n',nostrich:'\n \n\n',"open-book":'\n \n',palace:'\n \n',"person-cricket-batting-at-cricket-ball":'\n \n',"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track":'\n \n',"person-jockeying-racehorse":'\n \n',"person-playing-tennis":'\n \n',"person-running":'\n \n',"person-sleeping-in-bed":'\n \n',"person-swimming-in-water":'\n \n',"person-swinging-golf-club":'\n \n',phone:'',"plane-top-right":'\n \n',"plant-in-raised-planter":'\n \n',"place-of-worship-building":'\n \n',"play-structure-with-slide":'\n \n',"police-officer-with-stop-arm":'\n \n',plus:'',"round-structure-with-flag":'\n \n',remotestorage:'\n\x3c!-- Creator: CorelDRAW X7 --\x3e\n\n \n',"sailing-ship-in-water":'\n \n',"scissors-open":'\n \n',"shipwreck-in-water":'\n \n',"steam-train-on-railway-track":'\n \n',"shopping-bag":'\n \n',search:'',server:'',settings:'',"shopping-basket":'\n \n',"shopping-cart":'\n \n',"table-tennis-paddle":'\n \n',"tattoo-machine":'\n \n',toolbox:'\n \n',target:'',"trash-2":'',"upload-cloud":'',"tree-and-bench-with-backrest":'\n \n',user:'',"user-check":'',"village-buildings":'\n \n',"wall-hanging-with-mountains-and-sun":'\n \n',"womens-and-mens-restroom-symbol":'\n \n',whatsapp:'\n\n \n\n',wikipedia:'\n\n\n',winding_way_wide:'\n \n',"water-standpipe-with-handle-and-drinking-glass":'\n \n',parking_p:'\n \n',car:'\n \n',"car-and-wrench":'\n \n',"car-between-roller-brushes":'\n \n',"castle-keep":'\n \n',x:'',zap:'',shield:'',"loading-ring":''},N$=["fork-and-knife","wikipedia","whatsapp","cup-and-saucer","coffee-bean","shopping-basket","person-sleeping-in-bed","loading-ring","nostrich"];function z$(t){return O$[t]}function F$(t){return N$.includes(t)}var D$=a({POI_ICON_RULES:()=>j$,getIconNameForTags:()=>U$,getIconSvgForTags:()=>B$}),j$=[{tags:{cuisine:"donut"},icon:"donut"},{tags:{cuisine:"doughnut"},icon:"donut"},{tags:{cuisine:"coffee_shop"},icon:"coffee-bean"},{tags:{cuisine:"coffee"},icon:"coffee-bean"},{tags:{craft:"brewery"},icon:"barrel-with-bunghole"},{tags:{amenity:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{cuisine:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{shop:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{amenity:"cafe"},icon:"cup-and-saucer"},{tags:{amenity:"restaurant"},icon:"fork-and-knife"},{tags:{amenity:"fast_food"},icon:"burger-and-drink-cup-with-straw"},{tags:{amenity:"pub"},icon:"beer-mug-with-foam"},{tags:{amenity:"bar"},icon:"cocktail"},{tags:{amenity:"food_court"},icon:"fork-and-knife"},{tags:{amenity:"childcare"},icon:"family-restroom-symbol"},{tags:{amenity:"community_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_facility"},icon:"family-restroom-symbol"},{tags:{amenity:"bank"},icon:"banknote"},{tags:{amenity:"atm"},icon:"banknote-in-slot"},{tags:{amenity:"bureau_de_change"},icon:"dollar-swap-to-euro"},{tags:{amenity:"place_of_worship"},icon:"place-of-worship-building"},{tags:{amenity:"townhall"},icon:"classical-building-with-clock"},{tags:{building:"townhall"},icon:"classical-building-with-clock"},{tags:{amenity:"fire_station"},icon:"badge-shield-with-fire"},{tags:{amenity:"police"},icon:"police-officer-with-stop-arm"},{tags:{amenity:"toilets"},icon:"womens-and-mens-restroom-symbol"},{tags:{amenity:"smoking_area"},icon:"cigarette-with-smoke-curl"},{tags:{amenity:"lounge"},icon:"couch"},{tags:{amenity:"drinking_water"},icon:"water-standpipe-with-handle-and-drinking-glass"},{tags:{amenity:"school"},icon:"open-book"},{tags:{amenity:"driving_school"},icon:"car"},{tags:{amenity:"car_wash"},icon:"car-between-roller-brushes"},{tags:{amenity:"fuel"},icon:"gasoline-pump"},{tags:{shop:"coffee"},icon:"coffee-bean"},{tags:{shop:"tea"},icon:"coffee-bean"},{tags:{shop:"pastry"},icon:"donut"},{tags:{shop:"supermarket"},icon:"shopping-cart"},{tags:{shop:"convenience"},icon:"shopping-basket"},{tags:{shop:"grocery"},icon:"shopping-basket"},{tags:{shop:"greengrocer"},icon:"shopping-basket"},{tags:{shop:"bakery"},icon:"croissant"},{tags:{shop:"butcher"},icon:"cleaver"},{tags:{shop:"seafood"},icon:"fish"},{tags:{shop:"deli"},icon:"shopping-basket"},{tags:{shop:"clothes"},icon:"clothes-hanger"},{tags:{shop:"clothing"},icon:"clothes-hanger"},{tags:{shop:"hairdresser"},icon:"scissors-open"},{tags:{shop:"optician"},icon:"eyeglasses"},{tags:{shop:"fabric"},icon:"cloth"},{tags:{shop:"flea_market"},icon:"market-stall"},{tags:{shop:"kiosk"},icon:"shopping-basket"},{tags:{shop:"leather"},icon:"shopping-bag"},{tags:{shop:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{shop:"jewelry"},icon:"jewel"},{tags:{shop:"jewellery"},icon:"jewel"},{tags:{shop:"tobacco"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"cannabis"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"florist"},icon:"flower-bouquet"},{tags:{shop:"garden_centre"},icon:"plant-in-raised-planter"},{tags:{shop:"estate_agent"},icon:"village-buildings"},{tags:{shop:"mobile_phone"},icon:"mobile-phone-with-keypad-and-antenna"},{tags:{beauty:"nails"},icon:"fingernail-polished"},{tags:{shop:"tattoo"},icon:"tattoo-machine"},{tags:{shop:"beauty"},icon:"fancy-mirror-with-reflection-and-stars"},{tags:{shop:"car_repair"},icon:"car-and-wrench"},{tags:{craft:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{office:"estate_agent"},icon:"village-buildings"},{tags:{office:!0},icon:"commercial-building"},{tags:{craft:!0},icon:"toolbox"},{tags:{shop:!0},icon:"shopping-bag"},{tags:{natural:"beach"},icon:"beach-umbrella-in-ground"},{tags:{leisure:"park"},icon:"tree-and-bench-with-backrest"},{tags:{leisure:"playground"},icon:"play-structure-with-slide"},{tags:{leisure:"marina"},icon:"anchor"},{tags:{landuse:"vineyard"},icon:"grapes"},{tags:{aeroway:"aerodrome"},icon:"plane-top-right"},{tags:{aeroway:"terminal"},icon:"airport-terminal"},{tags:{aeroway:"heliport"},icon:"plane-top-right"},{tags:{aeroway:"helipad"},icon:"plane-top-right"},{tags:{highway:"bus_stop"},icon:"bus"},{tags:{bus:!0},icon:"bus"},{tags:{railway:"tram_stop"},icon:"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track"},{tags:{tourism:"museum"},icon:"classical-building"},{tags:{tourism:"gallery"},icon:"wall-hanging-with-mountains-and-sun"},{tags:{tourism:"aquarium"},icon:"angelfish"},{tags:{tourism:"theme_park"},icon:"camera"},{tags:{tourism:"attraction"},icon:"camera"},{tags:{tourism:"viewpoint"},icon:"camera"},{tags:{tourism:"zoo"},icon:"camera"},{tags:{tourism:"artwork"},icon:"camera"},{tags:{tourism:"information"},icon:"info-i"},{tags:{amenity:"cinema"},icon:"film"},{tags:{amenity:"theatre"},icon:"camera"},{tags:{amenity:"arts_centre"},icon:"comedy-mask-and-tragedy-mask"},{tags:{amenity:"arts_center"},icon:"comedy-mask-and-tragedy-mask"},{tags:{historic:"canal"},icon:"winding_way_wide"},{tags:{historic:"bridge"},icon:"bridge"},{tags:{historic:"bridge_site"},icon:"bridge"},{tags:{historic:"fort"},icon:"fort"},{tags:{historic:"city_gate"},icon:"city-gate"},{tags:{historic:"castle"},icon:"palace"},{tags:{building:"tower",historic:"yes"},icon:"castle-keep"},{tags:{historic:"building"},icon:"classical-building-with-flag"},{tags:{historic:"archaeological_site"},icon:"grecian-vase"},{tags:{historic:"memorial"},icon:"memorial-stone-with-inscription"},{tags:{historic:"tomb"},icon:"gravestone"},{tags:{historic:"monument"},icon:"classical-building-with-dome-and-flag"},{tags:{historic:"folly"},icon:"classical-building"},{tags:{historic:"industrial"},icon:"industrial-building"},{tags:{historic:"railway_station"},icon:"steam-train-on-railway-track"},{tags:{historic:"ship"},icon:"sailing-ship-in-water"},{tags:{historic:"wreck"},icon:"shipwreck-in-water"},{tags:{historic:"ruins"},icon:"camera"},{tags:{historic:"ruin"},icon:"camera"},{tags:{historic:"yes"},icon:"camera"},{tags:{tourism:"hotel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"hostel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"motel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"guest_house"},icon:"person-sleeping-in-bed"},{tags:{leisure:"resort"},icon:"person-sleeping-in-bed"},{tags:{sport:"motor"},icon:"flag-checkered"},{tags:{sport:"karting"},icon:"flag-checkered"},{tags:{sport:"motocross"},icon:"flag-checkered"},{tags:{sport:"cricket"},icon:"person-cricket-batting-at-cricket-ball"},{tags:{sport:"boxing"},icon:"boxing-glove-up"},{tags:{sport:"martial_arts"},icon:"boxing-glove-up"},{tags:{sport:"tennis"},icon:"person-playing-tennis"},{tags:{sport:"squash"},icon:"person-playing-tennis"},{tags:{sport:"padel"},icon:"person-playing-tennis"},{tags:{sport:"table_tennis"},icon:"table-tennis-paddle"},{tags:{sport:"climbing"},icon:"climbing_wall"},{tags:{leisure:"water_park"},icon:"person-swimming-in-water"},{tags:{sport:"swimming"},icon:"person-swimming-in-water"},{tags:{sport:"golf"},icon:"person-swinging-golf-club"},{tags:{leisure:"golf_course"},icon:"person-swinging-golf-club"},{tags:{sport:"horse_racing"},icon:"person-jockeying-racehorse"},{tags:{sport:"fitness"},icon:"barbell"},{tags:{sport:"fitness_centre"},icon:"barbell"},{tags:{leisure:"fitness_centre"},icon:"barbell"},{tags:{sport:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"sports_centre"},icon:"person-running"},{tags:{leisure:"pitch"},icon:"person-running"},{tags:{sport:!0},icon:"person-running"},{tags:{amenity:"dentist"},icon:"molar-tooth"},{tags:{healthcare:"dentist"},icon:"molar-tooth"},{tags:{healthcare:!0},icon:"greek-cross"},{tags:{amenity:"parking"},icon:"parking_p"},{tags:{building:"commercial"},icon:"commercial-building"},{tags:{building:"apartments"},icon:"lowrise-building"},{tags:{building:"office"},icon:"lowrise-building"}];function U$(t){if(!t)return null;for(const e of j$){let n=!0;for(const[r,i]of Object.entries(e.tags)){const e=t[r];if(!e){n=!1;break}const s=e.split(";").map(t=>t.trim());if(!0!==i&&!s.includes(i)){n=!1;break}}if(n)return e.icon}return null}function B$(t){const e=U$(t);return e?z$(e):null}var $$=a({getMatchingPoiCategories:()=>q$,getMatchingPoiCategoryIds:()=>V$});function q$(t,e){return Array.isArray(e)&&t?e.filter(e=>!!Array.isArray(e.filter)&&e.filter.some(e=>function(t,e){const n=function(t){if(!t)return[];const e=t.match(/\[[^\]]+\]/g);return e?e.map(t=>function(t){const e=t.match(/^"([^"]+)"$/);if(e)return{type:"presence",key:e[1]};const n=t.match(/^"([^"]+)"\s*=\s*"([^"]*)"$/);if(n)return{type:"equals",key:n[1],value:n[2]};const r=t.match(/^"([^"]+)"\s*~\s*"([^"]*)"$/);if(r)return{type:"regex",key:r[1],pattern:r[2],regex:new RegExp(r[2])};const i=t.match(/^"([^"]+)"\s*!~\s*"([^"]*)"$/);return i?{type:"not-regex",key:i[1],pattern:i[2],regex:new RegExp(i[2])}:null}(t.slice(1,-1).trim())).filter(Boolean):[]}(e);return 0!==n.length&&n.every(e=>function(t,e){const n=function(t,e){if(!t||!e)return[];const n=t[e];return null==n?[]:String(n).split(";").map(t=>t.trim()).filter(Boolean)}(t,e.key);switch(e.type){case"presence":return n.length>0;case"equals":return n.some(t=>t===e.value);case"regex":return n.some(t=>e.regex.test(t));case"not-regex":return 0===n.length||!n.some(t=>e.regex.test(t));default:return!1}}(t,e))}(t,e))):[]}function V$(t,e){return q$(t,e).map(t=>t.id)}var W$=a({CATEGORY_TAGS:()=>H$,getSuggestedPhotoTags:()=>G$}),H$={restaurants:["front","food","drinks","menu","vibe"],coffee:["front","food","drinks","menu","vibe"],groceries:["front","products"],"things-to-do":["front","architecture","amenities","vibe"],accommodation:["front","rooms","amenities","food","drinks","vibe"]};function G$(t){const e=V$(t?.osmTags||t?.tags||{},n$),n=[];for(const r of e){const t=H$[r];if(Array.isArray(t))for(const e of t)n.includes(e)||n.push(e)}return 0===n.length?[]:n}var Z$=a({mapToStorageSchema:()=>K$});function K$(t){return{title:t.title||JB(t.osmTags,"Untitled Place"),lat:t.lat,lon:t.lon,tags:[],url:t.osmTags?.website,osmId:String(t.osmId||t.id),osmType:t.osmType,osmTags:t.osmTags||{},description:t.description}}var Y$=a({getSocialInfo:()=>J$}),X$=(t,...e)=>{for(const n of e)if(t[n])return t[n];return null};function J$(t,e){if(!t)return null;const n=`${e}.com`,r=X$(t,`contact:${e}`,e);if(!r)return null;if(r.startsWith("http"))try{const t=new URL(r);return"facebook"===e&&"/profile.php"===t.pathname&&t.searchParams.has("id")?{url:r,username:t.searchParams.get("id")}:{url:r,username:t.pathname.replace(/^\/|\/$/g,"")||r}}catch{return{url:r,username:r}}const i=r.replace(/^@/,"");return{url:`https://${n}/${i}`,username:i}}var Q$,tq,eq,nq,rq,iq=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],sq=t=>{let e=0;for(let n=0;n{var n="";for(let r=1;r<=e;r++){let i=Math.floor(t)/Math.pow(83,e-r)%83;n+=iq[Math.floor(i)]}return n},aq=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},lq=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(12.92*e*255+.5):Math.trunc(255*(1.055*Math.pow(e,.4166666666666667)-.055)+.5)},cq=(t,e)=>(t=>t<0?-1:1)(t)*Math.pow(Math.abs(t),e),uq=class extends Error{constructor(t){super(t),this.name="ValidationError",this.message=t}},hq=t=>{let e=t>>8&255,n=255&t;return[aq(t>>16),aq(e),aq(n)]},dq=(t,e)=>{let n=Math.floor(t/361),r=Math.floor(t/19)%19,i=t%19;return[cq((n-9)/9,2)*e,cq((r-9)/9,2)*e,cq((i-9)/9,2)*e]},pq=(t,e,n,r)=>{let i=0,s=0,o=0,a=4*e;for(let c=0;c{if("PROCESS_IMAGE"!==t.data?.type)return;const{id:e,file:n,targetWidth:r,targetHeight:i,quality:s,computeBlurhash:o}=t.data;try{let t,c;try{const e=await createImageBitmap(n,{resizeWidth:r,resizeHeight:i,resizeQuality:"high"});if(t=new OffscreenCanvas(r,i),c=t.getContext("2d"),!c)throw new Error("Failed to get 2d context from OffscreenCanvas");c.drawImage(e,0,0,r,i),e.close()}catch(a){console.warn("Hardware resize failed, falling back to stepped software scaling:",a);const e=await n.arrayBuffer(),s=new Blob([e],{type:n.type}),o=await createImageBitmap(s);let l=o.width,u=o.height,h=new OffscreenCanvas(l,u),d=h.getContext("2d");for(d.imageSmoothingEnabled=!0,d.imageSmoothingQuality="high",d.drawImage(o,0,0);.5*h.width>r&&.5*h.height>i;){const t=new OffscreenCanvas(Math.floor(.5*h.width),Math.floor(.5*h.height)),e=t.getContext("2d");e.imageSmoothingEnabled=!0,e.imageSmoothingQuality="high",e.drawImage(h,0,0,t.width,t.height),h=t}t=new OffscreenCanvas(r,i),c=t.getContext("2d"),c.imageSmoothingEnabled=!0,c.imageSmoothingQuality="high",c.drawImage(h,0,0,r,i),o.close()}let u=null;if(o)try{u=((t,e,n)=>{if(e*n*4!==t.length)throw new uq("Width and height must match the pixels array");let r=[];for(let l=0;l<3;l++)for(let i=0;i<4;i++){let s=0==i&&0==l?1:2,o=pq(t,e,n,(t,r)=>s*Math.cos(Math.PI*i*t/e)*Math.cos(Math.PI*l*r/n));r.push(o)}let i,s=r[0],o=r.slice(1),a="";if(a+=oq(21,1),o.length>0){let t=Math.max(...o.map(t=>Math.max(...t))),e=Math.floor(Math.max(0,Math.min(82,Math.floor(166*t-.5))));i=(e+1)/166,a+=oq(e,1)}else i=1,a+=oq(0,1);return a+=oq((t=>(lq(t[0])<<16)+(lq(t[1])<<8)+lq(t[2]))(s),4),o.forEach(t=>{a+=oq(((t,e)=>19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*cq(t[0]/e,.5)+9.5))))*19+19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*cq(t[1]/e,.5)+9.5))))+Math.floor(Math.max(0,Math.min(18,Math.floor(9*cq(t[2]/e,.5)+9.5)))))(t,i),2)}),a})(c.getImageData(0,0,r,i).data,r,i)}catch(l){console.warn("Could not generate blurhash (possible canvas fingerprinting protection):",l)}const h=await t.convertToBlob({type:"image/jpeg",quality:s}),d=`${r}x${i}`;self.postMessage({id:e,success:!0,blob:h,dim:d,blurhash:u})}catch(X8){self.postMessage({id:e,success:!1,error:X8.message})}};var vq="undefined"!=typeof FastBoot,bq="routeDidChange",wq=["separator","prepend","replace"],_q=(Q$=pp("router"),tq=pp("-document"),eq=class extends fp{constructor(t){if(super(t),mq(this,"router",nq,this),mq(this,"document",rq,this),gq(this,"tokens",[]),gq(this,"_defaultConfig",{separator:" | ",prepend:!0,replace:null}),gq(this,"scheduleTitleUpdate",()=>{Is("afterRender",this,this._updateTitle)}),this._validateExistingTitleElement(),function(t){return"resolveRegistration"in t}(t)){const n=t.resolveRegistration("config:environment");"object"==typeof(e=n)&&null!==e&&"pageTitle"in e&&wq.forEach(t=>{if(!function(t){if(null==t)return!0;if(!ur(t)&&"number"==typeof t.size)return!t.size;if("object"==typeof t){let e=hr(t,"size");if("number"==typeof e)return!e;let n=hr(t,"length");if("number"==typeof n)return!n}return"number"==typeof t.length&&"function"!=typeof t&&!t.length}(n.pageTitle[t])){const e=n.pageTitle[t];this._defaultConfig[t]=e}})}var e;this.router.on(bq,this.scheduleTitleUpdate)}applyTokenDefaults(t){const e=this._defaultConfig.separator,n=this._defaultConfig.prepend,r=this._defaultConfig.replace;t.previous??=null,t.next??=null,null==t.separator&&(t.separator=e),null==t.prepend&&null!=n&&(t.prepend=n),null==t.replace&&null!=r&&(t.replace=r)}inheritFromPrevious(t){const e=t.previous;e&&(null==t.separator&&(t.separator=e.separator),null==t.prepend&&(t.prepend=e.prepend))}push(t){const e=this._findTokenById(t.id);if(e){const n=this.tokens.indexOf(e),r=[...this.tokens];return t.previous=e.previous,t.next=e.next,this.inheritFromPrevious(t),this.applyTokenDefaults(t),r.splice(n,1,t),void(this.tokens=r)}const n=this.tokens.slice(-1)[0];n&&(t.previous=n??null,n.next=t,this.inheritFromPrevious(t)),this.applyTokenDefaults(t),this.tokens=[...this.tokens,t]}remove(t){const e=this._findTokenById(t);if(!e)return;const{next:n,previous:r}=e;n&&(n.previous=r),r&&(r.next=n),e.previous=e.next=null;const i=[...this.tokens];i.splice(i.indexOf(e),1),this.tokens=i}get visibleTokens(){const t=this.tokens;let e=t?t.length:0;const n=[];for(;e--;){const r=t[e];if(r){if(r.replace){n.unshift(r);break}n.unshift(r)}}return n}get sortedTokens(){const t=this.visibleTokens;if(!t)return[];let e=!0,n=[];const r=[n],i=[];return t.forEach(t=>{t.front?i.unshift(t):t.prepend?(e&&(e=!1,n=[],r.push(n)),n.unshift(t)):(e||(e=!0,n=[],r.push(n)),n.push(t))}),i.concat(r.reduce((t,e)=>t.concat(e),[]))}toString(){const t=this.sortedTokens,e=[];for(let n=0,r=t.length;ne.id===t)}updateFastbootTitle(t){if(!vq)return;const e=this.document.head,n=e.childNodes;for(let s=0;s_q}),Cq=_l.create({target:null,action:null,actionContext:null,actionContextObject:Xn("actionContext",function(){let t=hr(this,"actionContext");if("string"==typeof t){let e=hr(this,t);return void 0===e&&(e=hr(Jr.lookup,t)),e}return t}),triggerAction(t={}){let{action:e,target:n,actionContext:r}=t;e=e||hr(this,"action"),n=n||function(t){let e=hr(t,"target");if(e){if("string"==typeof e){let n=hr(t,e);return void 0===n&&(n=hr(Jr.lookup,e)),n}return e}return t._target?t._target:null}(this),void 0===r&&(r=hr(this,"actionContextObject")||this);let i=Array.isArray(r)?r:[r];if(n&&e){let t;if(t=null!=(s=n)&&"object"==typeof s&&"function"==typeof s.send?n.send(e,...i):n[e](...i),!1!==t)return!0}var s;return!1}}),kq=_l.create({send(t,...e){let n=this.actions&&this.actions[t];if(n&&!0!==n.apply(this,e))return;let r=hr(this,"target");r&&r.send(...arguments)}}),Sq=Object.freeze({appendChild(){throw new Error("You can't use appendChild outside of the rendering process")},handleEvent:()=>!0,rerender(){},destroy(){}}),Eq=Object.freeze({...Sq}),Rq=Object.freeze({...Sq,rerender(t){t.renderer.rerender()},destroy(t){t.renderer.remove(t)},handleEvent:(t,e,n)=>!t.has(e)||uv(0,0,()=>xs(t,t.trigger,e,n))}),Lq=Object.freeze({...Rq,enter(t){t.renderer.register(t)}}),Tq=Object.freeze({...Sq,appendChild(){throw new Error("You can't call appendChild on a view being destroyed")},rerender(){throw new Error("You can't call rerender on a view being destroyed")}}),Pq=Object.freeze({preRender:Eq,inDOM:Lq,hasElement:Rq,destroying:Tq}),Iq=class extends(Xc.extend(bc,Sl)){isView=!0;_superTrigger;_superHas;init(t){super.init(t),this._superTrigger=this.trigger,this.trigger=this._trigger,this._superHas=this.has,this.has=this._has,this.parentView??=null,this._state="preRender",this._currentState=this._states.preRender}static{Zh(this.prototype,"renderer",[qr("renderer","-dom")])}#re=void Yh(this,"renderer");instrumentDetails(t){return t.object=this.toString(),t.containerKey=this._debugContainerKey,t.view=this,t}_trigger(t,...e){this._superTrigger(t,...e);let n=this[t];if("function"==typeof n)return n.apply(this,e)}_has(t){return"function"==typeof this[t]||this._superHas(t)}static isViewFactory=!0};Iq.prototype._states=Pq;var Mq=a({Input:()=>c_,Textarea:()=>d_,capabilities:()=>cb,default:()=>Nq,getComponentTemplate:()=>Np,setComponentManager:()=>zq,setComponentTemplate:()=>Op}),Aq=new WeakMap,Oq=Object.freeze([]),Nq=class extends(Iq.extend(Cq,kq,{didReceiveAttrs(){},didRender(){},didUpdate(){},didUpdateAttrs(){},willRender(){},willUpdate(){}},{concatenatedProperties:["attributeBindings","classNames","classNameBindings"],classNames:Oq,classNameBindings:Oq})){isComponent=!0;init(t){super.init(t),this._superRerender=this.rerender,this.rerender=this._rerender,this[Tv]=!1,this[Lv]=gt(),this[Pv]=null;const e=this._dispatcher;if(e){let t=Aq.get(e);t||(t=new WeakSet,Aq.set(e,t));let n=Object.getPrototypeOf(this);t.has(n)||(e.lazyEvents.forEach((t,n)=>{null!==t&&"function"==typeof this[t]&&e.setupHandlerForBrowserEvent(n)}),t.add(n))}this.elementId||""===this.tagName||(this.elementId=ll(this))}__dispatcher;get _dispatcher(){if(void 0===this.__dispatcher){let t=Br(this);if(t.lookup("-environment:main").isInteractive){let e=t.lookup("event_dispatcher:main");this.__dispatcher=e}else this.__dispatcher=null}return this.__dispatcher}on(t,e,n){return this._dispatcher?.setupHandlerForEmberEvent(t),super.on(t,e,n)}_rerender(){pt(this[Lv]),this._superRerender()}[Bn](t,e){if(this[Tv])return;let n=Rv.get(this),r=void 0!==n?n[t]:void 0;void 0!==r&&we(r)&&xe(r,2===arguments.length?e:hr(this,t))}getAttr(t){return this.get(t)}readDOMAttr(t){let e=Ql(this),n="http://www.w3.org/2000/svg"===e.namespaceURI,{type:r,normalized:i}=kg(e,t);return n||"attr"===r?e.getAttribute(i):e[i]}get childViews(){return sc(this)}static{Kh(this.prototype,"childViews",[k({configurable:!1,enumerable:!1})])}appendChild(t){oc(this,t)}_transitionTo(t){let e=this._currentState,n=this._currentState=this._states[t];this._state=t,e&&e.exit&&e.exit(this),n.enter&&n.enter(this)}nearestOfType(t){let e=this.parentView;for(;e;){if(t.detect(e.constructor))return e;e=e.parentView}}nearestWithProperty(t){let e=this.parentView;for(;e;){if(t in e)return e;e=e.parentView}}rerender(){return this._currentState.rerender(this)}get element(){return this.renderer.getElement(this)}static{Kh(this.prototype,"element",[k({configurable:!1,enumerable:!1})])}appendTo(t){let e;return e=Ao&&"string"==typeof t?document.querySelector(t):t,this.renderer.appendTo(this,e),this}append(){return this.appendTo(document.body)}willInsertElement(){return this}didInsertElement(){return this}willClearRender(){return this}destroy(){return super.destroy(),this._currentState.destroy(this),this}willDestroyElement(){return this}didDestroyElement(){return this}parentViewDidChange(){return this}handleEvent(t,e){return this._currentState.handleEvent(this,t,e)}static isComponentFactory=!0;static toString(){return"@ember/component"}};function zq(t,e){return mb(t,e)}Nq.reopenClass({positionalParams:[]}),zu(zv,Nq);var Fq=a({default:()=>Wq}),Dq=new WeakMap,jq=new WeakMap,Uq=class{constructor(t,e){this.args=e,Dq.set(this,!1),jq.set(this,!1)}args;get isDestroying(){return Dq.get(this)||!1}get isDestroyed(){return jq.get(this)||!1}willDestroy(){}},Bq=class{owner;constructor(t){this.owner=t}createComponent(t,e){return new t(this.owner,e.named)}getContext(t){return t}},$q=cb(0,{destructor:!0,asyncLifecycleCallbacks:!1,updateHook:!1});function qq(t){t.isDestroyed||(nt(t),function(t){jq.set(t,!0)}(t))}var Vq=class extends Bq{capabilities=$q;destroyComponent(t){t.isDestroying||(function(t){Dq.set(t,!0)}(t),Es("actions",t,t.willDestroy),Es("destroy",this,qq,t))}},Wq=class extends Uq{constructor(t,e){super(t,e),$r(this,t)}};zq(t=>new Vq(t),Wq);var Hq=yb,Gq=class extends Wq{get svg(){return z$(this.args.name)}get size(){return this.args.size||16}get color(){return this.args.color||"#898989"}get style(){return qv(`width:${this.size}px;height:${this.size}px;color:${this.color}`)}get title(){return this.args.title||""}get isFilled(){return this.args.filled||F$(this.args.name)}static{Op(ig({id:null,block:'[[[41,[30,0,["svg"]],[[[1," "],[10,1],[15,0,[29,["icon ",[52,[30,0,["isFilled"]],"icon-filled"]]]],[15,5,[30,0,["style"]]],[15,"title",[30,0,["title"]]],[12],[1,"\\n "],[1,[28,[32,0],[[30,0,["svg"]]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:qv}),isStrictMode:!0}),this)}};function Zq(t){return $t(t.argsCache)}var Kq=class{argsCache;constructor(t,e=()=>ly){let n=Bt(()=>e(t));this.argsCache=n}get named(){return Zq(this).named||oy}get positional(){return Zq(this).positional||ay}};function Yq(t,e,n){const r=Ur(t),i=Nu(e).getDelegateFor(r);let s,o=new Kq(t,n),a=i.createHelper(e,o);if(!_u(i))throw new Error("TODO: unreachable, to be implemented with hasScheduledEffect");return s=Bt(()=>i.getValue(a)),tt(t,s),xu(i)&&tt(s,i.getDestroyable(a)),s}function Xq(t,e){return t===e}function Jq(t,e){return t!==e}function Qq(t,e){return t>e}function tV(t,e){return t>=e}function eV(t,e){return tge(()=>{let e;for(let n=0;nge(()=>{let e;for(let n=0;n!B(t[0]),oV={createInstance:!0,wrapped:!0},aV=new class{getCapabilities(){return oV}getDebugName(t){return`(element "${t.tagName}")`}getSelf(){return ue}getDestroyable(){return null}didCreateElement(){}create(t,e){return e.tagName||null}getTagName(t){return t}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}},lV=class{constructor(t){this.tagName=t}toString(){return`(element "${this.tagName}")`}};zu(aV,lV.prototype);var cV=new Map;Bv(({positional:t,named:e})=>ge(()=>function(t){let e=cV.get(t);return void 0===e&&(e=new lV(t),cV.set(t,e)),e}(_e(t[0])),null));var uV=Hv,hV=Qq;function dV(t,e){return t===e}var pV=ab,fV=Op(ig({id:null,block:'[[[10,"nav"],[14,0,"tab-nav"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,1]],null]],null],null,[[[1," "],[11,"button"],[16,0,[29,["tab-nav-button ",[52,[28,[32,0],[[30,3],[30,2,["value"]]],null],"is-active"]]]],[24,4,"button"],[4,[32,1],["click",[28,[32,2],[[30,4],[30,2,["value"]]],null]],null],[12],[1,"\\n "],[1,[30,2,["label"]]],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[13]],["@tabs","tab","@active","@onChange"],["each","-track-array","if"]]',moduleName:"(unknown template module)",scope:()=>({eq:dV,on:Hw,fn:uV}),isStrictMode:!0}),pV()),gV=Eb(function([t]){return YB(t)}),mV=class extends Wq{get item(){return this.args.item}get senderName(){return this.item?.senderName}get senderDisplayName(){const t=this.senderName;if(t)return t;const e=this.item?.senderPubkey;if(!e)return"Someone";try{return`${fO(e).slice(0,12)}…`}catch{return`${e.slice(0,12)}…`}}get senderAvatar(){return this.item?.senderAvatar}get hasPhoto(){return!!this.item?.photo}get photoThumbUrl(){return this.item?.photo?.thumbUrl||this.item?.photo?.url}get placeName(){return this.item?.placeName}get placeNameLoading(){return this.item?.placeNameLoading}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"activity-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"header"],[12],[1,"\\n "],[10,1],[14,0,"sender-line"],[12],[1,"\\n "],[10,1],[14,0,"sender-name"],[12],[1,[30,0,["senderDisplayName"]]],[13],[1,"\\n"],[1," "],[10,1],[14,0,"action"],[12],[1," zapped your photo"],[13],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"amount"],[12],[1,[30,0,["item","amountSats"]]],[1," ⚡"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"context"],[12],[1,"\\n "],[10,0],[14,0,"context-images"],[12],[1,"\\n"],[41,[30,0,["senderAvatar"]],[[[1," "],[10,"img"],[14,0,"sender-avatar"],[15,"src",[30,0,["senderAvatar"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"sender-avatar-placeholder"],[12],[1,"\\n "],[8,[32,2],null,[["@name","@size","@color"],["user",16,"#999"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[41,[30,0,["hasPhoto"]],[[[1," "],[10,0],[14,0,"context-thumb"],[12],[1,"\\n "],[10,"img"],[15,"src",[30,0,["photoThumbUrl"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"context-text"],[12],[1,"\\n "],[10,1],[14,0,"activity-place-name"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[10,1],[14,0,"place-name-text"],[12],[1,[30,0,["placeName"]]],[13],[1,"\\n "]],[]],[[[41,[30,0,["placeNameLoading"]],[[],[]],[[[1,"\\n "],[10,1],[14,0,"place-name-text"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"activity-date"],[12],[1,[28,[32,3],[[30,2,["createdAt"]]],null]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["item","message"]],[[[1," "],[10,0],[14,0,"message"],[12],[1,[30,0,["item","message"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"],[13]],["@onSelect","@item"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:uV,Icon:Gq,formatRelativeDate:gV}),isStrictMode:!0}),this)}},yV=class extends Wq{get item(){return this.args.item}get senderName(){return this.item?.senderName}get senderDisplayName(){const t=this.senderName;if(t)return t;const e=this.item?.senderPubkey;if(!e)return"Someone";try{return`${fO(e).slice(0,12)}…`}catch{return`${e.slice(0,12)}…`}}get senderAvatar(){return this.item?.senderAvatar}get hasPhoto(){return this.photos.length>0}get photos(){const t=this.item?.photos;if(t&&t.length>0)return t;const e=this.item?.photo;return e?[e]:[]}get primaryPhoto(){return this.photos[0]}get extraPhotoCount(){return Math.max(0,this.photos.length-1)}get photoCountText(){const t=this.photos.length;return 1===t?"a photo":`${t} photos`}get photoThumbUrl(){return this.primaryPhoto?.thumbUrl||this.primaryPhoto?.url}get placeName(){return this.item?.placeName}get placeNameLoading(){return this.item?.placeNameLoading}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"activity-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"header"],[12],[1,"\\n "],[10,1],[14,0,"sender-line"],[12],[1,"\\n "],[10,1],[14,0,"sender-name"],[12],[1,[30,0,["senderDisplayName"]]],[13],[1,"\\n"],[1," "],[10,1],[14,0,"action"],[12],[1," shared "],[1,[30,0,["photoCountText"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"amount"],[12],[1,"\\n "],[8,[32,2],null,[["@name","@size","@color"],["feather-camera",16,"var(--secondary-text-color)"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"context"],[12],[1,"\\n "],[10,0],[14,0,"context-images"],[12],[1,"\\n"],[41,[30,0,["senderAvatar"]],[[[1," "],[10,"img"],[14,0,"sender-avatar"],[15,"src",[30,0,["senderAvatar"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"sender-avatar-placeholder"],[12],[1,"\\n "],[8,[32,2],null,[["@name","@size","@color"],["user",16,"#999"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[41,[30,0,["hasPhoto"]],[[[1," "],[10,0],[14,0,"context-thumb"],[12],[1,"\\n "],[10,"img"],[15,"src",[30,0,["photoThumbUrl"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n"],[41,[28,[32,3],[[30,0,["extraPhotoCount"]],0],null],[[[1," "],[10,1],[14,0,"context-thumb-badge"],[12],[1,"+"],[1,[30,0,["extraPhotoCount"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"context-text"],[12],[1,"\\n "],[10,1],[14,0,"activity-place-name"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[10,1],[14,0,"place-name-text"],[12],[1,[30,0,["placeName"]]],[13],[1,"\\n "]],[]],[[[41,[30,0,["placeNameLoading"]],[[],[]],[[[1,"\\n "],[10,1],[14,0,"place-name-text"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"activity-date"],[12],[1,[28,[32,4],[[30,2,["createdAt"]]],null]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onSelect","@item"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:uV,Icon:Gq,__keyword__gt:hV,formatRelativeDate:gV}),isStrictMode:!0}),this)}},vV=Op(ig({id:null,block:'[[[11,0],[24,0,"modal-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[11,0],[24,0,"modal-content"],[24,"role","document"],[24,"tabindex","0"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[11,"button"],[16,0,[29,["close-modal-btn btn-text ",[52,[30,3],"disabled"]]]],[16,"disabled",[30,3]],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",24,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[18,4,null],[1,"\\n "],[13],[1,"\\n"],[13]],["@close","@stopProp","@disableClose","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq}),isStrictMode:!0}),pV()),bV=class extends Wq{get isTesting(){return"test"===ix.environment}get shouldPortal(){return!this.isTesting&&!this.args.inline}get destinationElement(){return document.getElementById("modal-portal")||document.body}stopProp(t){t.stopPropagation()}static{dF(this.prototype,"stopProp",[Vl])}close(){this.args.disableClose||this.args.onClose&&this.args.onClose()}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["shouldPortal"]],[[[40,[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]],[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]]]],["@disableClose","&default"],["if","in-element","-in-el-null","yield"]]',moduleName:"(unknown template module)",scope:()=>({ModalContent:vV}),isStrictMode:!0}),this)}};function wV(t){return"object"==typeof t&&t&&"isTruthy"in t&&"boolean"==typeof t.isTruthy?t.isTruthy:Ic(t)?0!==t.length:!!t}var _V=class extends _b{compute(t){for(let e=0,n=t.length;e!wV(t))}var CV=class extends _b{compute(t){for(let e=0,n=t.length;enew kV(t),class{constructor(t,e){X_(this,t)}modify(t,e,n){}});var SV=new class{capabilities=fb();createModifier(t){return{element:null,instance:t}}installModifier(t,e,n){const r=function(t,e){const n=t;return n.element=e,n}(t,e),{positional:i,named:s}=n,o=t.instance(e,i,s);"function"==typeof o&&(r.teardown=o)}updateModifier(t,e){"function"==typeof t.teardown&&t.teardown();const n=t.instance(t.element,e.positional,e.named);"function"==typeof n&&(t.teardown=n)}destroyModifier(t){"function"==typeof t.teardown&&t.teardown()}getDebugName(t){return t.instance.toString()}getDebugInstance(t){return t}};function EV(t,e){return t.toString=()=>e?.name||t.name,Hq(()=>SV,t)}var RV=o((t,e)=>{e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}}),LV=o(t=>{var e,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];t.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},t.getSymbolTotalCodewords=function(t){return n[t]},t.getBCHDigit=function(t){let e=0;for(;0!==t;)e++,t>>>=1;return e},t.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');e=t},t.isKanjiModeEnabled=function(){return void 0!==e},t.toSJIS=function(t){return e(t)}}),TV=o(t=>{t.L={bit:1},t.M={bit:0},t.Q={bit:3},t.H={bit:2},t.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},t.from=function(e,n){if(t.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return t.L;case"m":case"medium":return t.M;case"q":case"quartile":return t.Q;case"h":case"high":return t.H;default:throw new Error("Unknown EC Level: "+e)}}(e)}catch(r){return n}}}),PV=o((t,e)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){const e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(let n=0;n>>e-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n}),IV=o((t,e)=>{function n(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}n.prototype.set=function(t,e,n,r){const i=t*this.size+e;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(t,e){return this.data[t*this.size+e]},n.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n},n.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=n}),MV=o(t=>{var e=LV().getSymbolSize;t.getRowColCoords=function(t){if(1===t)return[];const n=Math.floor(t/7)+2,r=e(t),i=145===r?26:2*Math.ceil((r-13)/(2*n-2)),s=[r-7];for(let e=1;e{var e=LV().getSymbolSize;t.getPositions=function(t){const n=e(t);return[[0,0],[n-7,0],[0,n-7]]}}),OV=o(t=>{function e(e,n,r){switch(e){case t.Patterns.PATTERN000:return(n+r)%2==0;case t.Patterns.PATTERN001:return n%2==0;case t.Patterns.PATTERN010:return r%3==0;case t.Patterns.PATTERN011:return(n+r)%3==0;case t.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case t.Patterns.PATTERN101:return n*r%2+n*r%3==0;case t.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case t.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}}t.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},t.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},t.from=function(e){return t.isValid(e)?parseInt(e,10):void 0},t.getPenaltyN1=function(t){const e=t.size;let n=0,r=0,i=0,s=null,o=null;for(let a=0;a=5&&(n+=r-5+3),s=e,r=1),e=t.get(l,a),e===o?i++:(i>=5&&(n+=i-5+3),o=e,i=1)}r>=5&&(n+=r-5+3),i>=5&&(n+=i-5+3)}return n},t.getPenaltyN2=function(t){const e=t.size;let n=0;for(let r=0;r=10&&(1488===r||93===r)&&n++,i=i<<1&2047|t.get(o,s),o>=10&&(1488===i||93===i)&&n++}return 40*n},t.getPenaltyN4=function(t){let e=0;const n=t.data.length;for(let r=0;r{var e=TV(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];t.getBlocksCount=function(t,r){switch(r){case e.L:return n[4*(t-1)+0];case e.M:return n[4*(t-1)+1];case e.Q:return n[4*(t-1)+2];case e.H:return n[4*(t-1)+3];default:return}},t.getTotalCodewordsCount=function(t,n){switch(n){case e.L:return r[4*(t-1)+0];case e.M:return r[4*(t-1)+1];case e.Q:return r[4*(t-1)+2];case e.H:return r[4*(t-1)+3];default:return}}}),zV=o(t=>{var e=new Uint8Array(512),n=new Uint8Array(256);!function(){let t=1;for(let r=0;r<255;r++)e[r]=t,n[t]=r,t<<=1,256&t&&(t^=285);for(let n=255;n<512;n++)e[n]=e[n-255]}(),t.log=function(t){if(t<1)throw new Error("log("+t+")");return n[t]},t.exp=function(t){return e[t]},t.mul=function(t,r){return 0===t||0===r?0:e[n[t]+n[r]]}}),FV=o(t=>{var e=zV();t.mul=function(t,n){const r=new Uint8Array(t.length+n.length-1);for(let i=0;i=0;){const t=r[0];for(let s=0;s{var n=FV();function r(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(t){this.degree=t,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");const e=new Uint8Array(t.length+this.degree);e.set(t);const r=n.mod(e,this.genPoly),i=this.degree-r.length;if(i>0){const t=new Uint8Array(this.degree);return t.set(r,i),t}return r},e.exports=r}),jV=o(t=>{t.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}}),UV=o(t=>{var e="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",n="(?:(?![A-Z0-9 $%*+\\-./:]|"+(e=e.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";t.KANJI=new RegExp(e,"g"),t.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),t.BYTE=new RegExp(n,"g"),t.NUMERIC=new RegExp("[0-9]+","g"),t.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var r=new RegExp("^"+e+"$"),i=new RegExp("^[0-9]+$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");t.testKanji=function(t){return r.test(t)},t.testNumeric=function(t){return i.test(t)},t.testAlphanumeric=function(t){return s.test(t)}}),BV=o(t=>{var e=jV(),n=UV();t.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},t.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},t.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},t.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},t.MIXED={bit:-1},t.getCharCountIndicator=function(t,n){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!e.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?t.ccBits[0]:n<27?t.ccBits[1]:t.ccBits[2]},t.getBestModeForData=function(e){return n.testNumeric(e)?t.NUMERIC:n.testAlphanumeric(e)?t.ALPHANUMERIC:n.testKanji(e)?t.KANJI:t.BYTE},t.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},t.isValid=function(t){return t&&t.bit&&t.ccBits},t.from=function(e,n){if(t.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"numeric":return t.NUMERIC;case"alphanumeric":return t.ALPHANUMERIC;case"kanji":return t.KANJI;case"byte":return t.BYTE;default:throw new Error("Unknown mode: "+e)}}(e)}catch(r){return n}}}),$V=o(t=>{var e=LV(),n=NV(),r=TV(),i=BV(),s=jV(),o=e.getBCHDigit(7973);function a(t,e){return i.getCharCountIndicator(t,e)+4}function l(t,e){let n=0;return t.forEach(function(t){const r=a(t.mode,e);n+=r+t.getBitsLength()}),n}t.from=function(t,e){return s.isValid(t)?parseInt(t,10):e},t.getCapacity=function(t,r,o){if(!s.isValid(t))throw new Error("Invalid QR Code version");void 0===o&&(o=i.BYTE);const l=8*(e.getSymbolTotalCodewords(t)-n.getTotalCodewordsCount(t,r));if(o===i.MIXED)return l;const c=l-a(o,t);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},t.getBestVersionForData=function(e,n){let s;const o=r.from(n,r.M);if(Array.isArray(e)){if(e.length>1)return function(e,n){for(let r=1;r<=40;r++)if(l(e,r)<=t.getCapacity(r,n,i.MIXED))return r}(e,o);if(0===e.length)return 1;s=e[0]}else s=e;return function(e,n,r){for(let i=1;i<=40;i++)if(n<=t.getCapacity(i,r,e))return i}(s.mode,s.getLength(),o)},t.getEncodedBits=function(t){if(!s.isValid(t)||t<7)throw new Error("Invalid QR Code version");let n=t<<12;for(;e.getBCHDigit(n)-o>=0;)n^=7973<{var e=LV(),n=e.getBCHDigit(1335);t.getEncodedBits=function(t,r){const i=t.bit<<3|r;let s=i<<10;for(;e.getBCHDigit(s)-n>=0;)s^=1335<{var n=BV();function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){let e,n,r;for(e=0;e+3<=this.data.length;e+=3)n=this.data.substr(e,3),r=parseInt(n,10),t.put(r,10);const i=this.data.length-e;i>0&&(n=this.data.substr(e),r=parseInt(n,10),t.put(r,3*i+1))},e.exports=r}),WV=o((t,e)=>{var n=BV(),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function i(t){this.mode=n.ALPHANUMERIC,this.data=t}i.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let n=45*r.indexOf(this.data[e]);n+=r.indexOf(this.data[e+1]),t.put(n,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=i}),HV=o((t,e)=>{var n=BV();function r(t){this.mode=n.BYTE,this.data="string"==typeof t?(new TextEncoder).encode(t):new Uint8Array(t)}r.getBitsLength=function(t){return 8*t},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){for(let e=0,n=this.data.length;e{var n=BV(),r=LV();function i(t){this.mode=n.KANJI,this.data=t}i.getBitsLength=function(t){return 13*t},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let e;for(e=0;e=33088&&n<=40956)n-=33088;else{if(!(n>=57408&&n<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13)}},e.exports=i}),ZV=o((t,e)=>{var n={single_source_shortest_paths:function(t,e,r){var i={},s={};s[e]=0;var o,a,l,c,u,h,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in a=(o=p.pop()).value,c=o.cost,u=t[a]||{})u.hasOwnProperty(l)&&(h=c+u[l],d=s[l],(void 0===s[l]||d>h)&&(s[l]=h,p.push(l,h),i[l]=a));if(void 0!==r&&void 0===s[r]){var f=["Could not find a path from ",e," to ",r,"."].join("");throw new Error(f)}return i},extract_shortest_path_from_predecessor_list:function(t,e){for(var n=[],r=e;r;)n.push(r),t[r],r=t[r];return n.reverse(),n},find_path:function(t,e,r){var i=n.single_source_shortest_paths(t,e,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(t){var e,r=n.PriorityQueue,i={};for(e in t=t||{},r)r.hasOwnProperty(e)&&(i[e]=r[e]);return i.queue=[],i.sorter=t.sorter||r.default_sorter,i},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var n={value:t,cost:e};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)}),KV=o(t=>{var e=BV(),n=VV(),r=WV(),i=HV(),s=GV(),o=UV(),a=LV(),l=ZV();function c(t){return unescape(encodeURIComponent(t)).length}function u(t,e,n){const r=[];let i;for(;null!==(i=t.exec(n));)r.push({data:i[0],index:i.index,mode:e,length:i[0].length});return r}function h(t){const n=u(o.NUMERIC,e.NUMERIC,t),r=u(o.ALPHANUMERIC,e.ALPHANUMERIC,t);let i,s;return a.isKanjiModeEnabled()?(i=u(o.BYTE,e.BYTE,t),s=u(o.KANJI,e.KANJI,t)):(i=u(o.BYTE_KANJI,e.BYTE,t),s=[]),n.concat(r,i,s).sort(function(t,e){return t.index-e.index}).map(function(t){return{data:t.data,mode:t.mode,length:t.length}})}function d(t,o){switch(o){case e.NUMERIC:return n.getBitsLength(t);case e.ALPHANUMERIC:return r.getBitsLength(t);case e.KANJI:return s.getBitsLength(t);case e.BYTE:return i.getBitsLength(t)}}function p(t,o){let l;const c=e.getBestModeForData(t);if(l=e.from(o,c),l!==e.BYTE&&l.bit=0?t[t.length-1]:null;return n&&n.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[]))},t.rawSplit=function(e){return t.fromArray(h(e,a.isKanjiModeEnabled()))}}),YV=o(t=>{var e=LV(),n=TV(),r=PV(),i=IV(),s=MV(),o=AV(),a=OV(),l=NV(),c=DV(),u=$V(),h=qV(),d=BV(),p=KV();function f(t,e,n){const r=t.size,i=h.getEncodedBits(e,n);let s,o;for(s=0;s<15;s++)o=1==(i>>s&1),s<6?t.set(s,8,o,!0):s<8?t.set(s+1,8,o,!0):t.set(r-15+s,8,o,!0),s<8?t.set(8,r-s-1,o,!0):s<9?t.set(8,15-s-1+1,o,!0):t.set(8,15-s-1,o,!0);t.set(r-8,8,1,!0)}t.create=function(t,h){if(void 0===t||""===t)throw new Error("No input text");let g,m,y=n.M;return void 0!==h&&(y=n.from(h.errorCorrectionLevel,n.M),g=u.from(h.version),m=a.from(h.maskPattern),h.toSJISFunc&&e.setToSJISFunction(h.toSJISFunc)),function(t,n,h,g){let m;if(Array.isArray(t))m=p.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");{let e=n;if(!e){const n=p.rawSplit(t);e=u.getBestVersionForData(n,h)}m=p.fromString(t,e||40)}}const y=u.getBestVersionForData(m,h);if(!y)throw new Error("The amount of data is too big to be stored in a QR Code");if(n){if(n=0&&r<=6&&(0===i||6===i)||i>=0&&i<=6&&(0===r||6===r)||r>=2&&r<=4&&i>=2&&i<=4?t.set(e+r,s+i,!0,!0):t.set(e+r,s+i,!1,!0))}}(w,n),function(t){const e=t.size;for(let n=8;n=7&&function(t,e){const n=t.size,r=u.getEncodedBits(e);let i,s,o;for(let a=0;a<18;a++)i=Math.floor(a/3),s=a%3+n-8-3,o=1==(r>>a&1),t.set(i,s,o,!0),t.set(s,i,o,!0)}(w,n),function(t,e){const n=t.size;let r=-1,i=n-1,s=7,o=0;for(let a=n-1;a>0;a-=2)for(6===a&&a--;;){for(let n=0;n<2;n++)if(!t.isReserved(i,a-n)){let r=!1;o>>s&1)),t.set(i,a-n,r),s--,-1===s&&(o++,s=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}(w,v),isNaN(g)&&(g=a.getBestMask(w,f.bind(null,w,h))),a.applyMask(g,w),f(w,h,g),{modules:w,version:n,errorCorrectionLevel:h,maskPattern:g,segments:m}}(t,g,y,m)}}),XV=o(t=>{function e(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map(function(t){return[t,t]}))),6===e.length&&e.push("F","F");const n=parseInt(e.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:255&n,hex:"#"+e.slice(0,6).join("")}}t.getOptions=function(t){t||(t={}),t.color||(t.color={});const n=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,r=t.width&&t.width>=21?t.width:void 0,i=t.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:e(t.color.dark||"#000000ff"),light:e(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},t.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},t.getImageWidth=function(e,n){const r=t.getScale(e,n);return Math.floor((e+2*n.margin)*r)},t.qrToImageData=function(e,n,r){const i=n.modules.size,s=n.modules.data,o=t.getScale(i,r),a=Math.floor((i+2*r.margin)*o),l=r.margin*o,c=[r.color.light,r.color.dark];for(let t=0;t=l&&n>=l&&t{var e=XV();t.render=function(t,n,r){let i=r,s=n;void 0!==i||n&&n.getContext||(i=n,n=void 0),n||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),i=e.getOptions(i);const o=e.getImageWidth(t.modules.size,i),a=s.getContext("2d"),l=a.createImageData(o,o);return e.qrToImageData(l.data,t,i),function(t,e,n){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=n,e.width=n,e.style.height=n+"px",e.style.width=n+"px"}(a,s,o),a.putImageData(l,0,0),s},t.renderToDataURL=function(e,n,r){let i=r;void 0!==i||n&&n.getContext||(i=n,n=void 0),i||(i={});const s=t.render(e,n,i),o=i.type||"image/png",a=i.rendererOpts||{};return s.toDataURL(o,a.quality)}}),QV=o(t=>{var e=XV();function n(t,e){const n=t.a/255,r=e+'="'+t.hex+'"';return n<1?r+" "+e+'-opacity="'+n.toFixed(2).slice(1)+'"':r}function r(t,e,n){let r=t+e;return void 0!==n&&(r+=" "+n),r}t.render=function(t,i,s){const o=e.getOptions(i),a=t.modules.size,l=t.modules.data,c=a+2*o.margin,u=o.color.light.a?"':"",h="0&&c>0&&t[l-1]||(i+=o?r("M",c+n,.5+u+n):r("m",s,0),s=0,o=!1),c+1',d='viewBox="0 0 '+c+" "+c+'"',p=''+u+h+"\n";return"function"==typeof s&&s(null,p),p}}),tW=o(t=>{var e=RV(),n=YV(),r=JV(),i=QV();function s(t,r,i,s,o){const a=[].slice.call(arguments,1),l=a.length,c="function"==typeof a[l-1];if(!c&&!e())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=r,r=s=void 0):2!==l||r.getContext||(s=i,i=r,r=void 0),new Promise(function(e,o){try{e(t(n.create(i,s),r,s))}catch(a){o(a)}})}if(l<2)throw new Error("Too few arguments provided");2===l?(o=i,i=r,r=s=void 0):3===l&&(r.getContext&&void 0===o?(o=s,s=void 0):(o=s,s=i,i=r,r=void 0));try{const e=n.create(i,s);o(null,t(e,r,s))}catch(u){o(u)}}t.create=n.create,t.toCanvas=s.bind(null,r.render),t.toDataURL=s.bind(null,r.renderToDataURL),t.toString=s.bind(null,function(t,e,n){return i.render(t,n)})}),eW=c(tW(),1),nW=EV((t,[e])=>{e&&eW.toCanvas(t,e,{width:256,margin:2,color:{dark:"#000000",light:"#ffffff"}}).catch(t=>{console.error("Failed to generate QR code",t)})}),rW=class extends Wq{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");get hasExtension(){return"undefined"!=typeof window&&void 0!==window.nostr}async connectExtension(){try{await this.nostrAuth.connectWithExtension(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(t){console.error(t),alert(t.message)}}static{dF(this.prototype,"connectExtension",[Vl])}async connectApp(){try{await this.nostrAuth.connectWithApp(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(t){console.error(t),alert(t.message)}}static{dF(this.prototype,"connectApp",[Vl])}async copyConnectUri(){const t=this.nostrAuth.connectUri;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select();const n=document.execCommand("copy");if(document.body.removeChild(e),!n)throw new Error("Fallback copy failed")}this.toast.show("Connection link copied to clipboard")}catch(PD){console.error("Failed to copy text: ",PD),alert("Failed to copy link")}}static{dF(this.prototype,"copyConnectUri",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"nostr-connect-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Connect with Nostr"],[13],[1,"\\n\\n "],[10,0],[14,0,"nostr-connect-options"],[12],[1,"\\n"],[41,[30,0,["hasExtension"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectExtension"]]],null],[12],[1,"\\n Browser Extension (nos2x, Alby)\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,"button"],[14,0,"btn btn-outline"],[14,"disabled",""],[14,"title","No Nostr extension found in your browser"],[14,4,"button"],[12],[1,"\\n Browser Extension (Not Found)\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectApp"]]],null],[12],[1,"\\n Mobile Signer App (Amber, etc.)\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["nostrAuth","connectStatus"]],"waiting"],null],[[[1," "],[10,0],[14,0,"nostr-connect-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isMobile"]],[[[1," "],[10,2],[12],[1,"Waiting for you to approve the connection in your mobile signer\\n app..."],[13],[1,"\\n "],[10,0],[14,0,"mobile-connect-actions"],[12],[1,"\\n "],[10,3],[15,6,[30,0,["nostrAuth","connectUri"]]],[14,0,"btn btn-primary"],[12],[1,"\\n Open Signer App\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,0,["copyConnectUri"]]],null],[12],[1,"\\n Copy Connection Link\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[12],[1,"Scan this QR code with a Nostr signer app (like Amber):"],[13],[1,"\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,2],[[30,0,["nostrAuth","connectUri"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],null],[13]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,eq:dV,qrCode:nW}),isStrictMode:!0}),this)}},iW=EV((t,[e])=>{t&&"number"==typeof e&&e>0&&requestAnimationFrame(()=>{t.scrollTop=e})}),sW=EV((t,[e,n])=>{if(n)return;let r,i=!1;return r=new IntersectionObserver(t=>{i||t[0]?.isIntersecting&&e()},{root:null,rootMargin:"200px",threshold:0}),r.observe(t),()=>{i=!0,r&&r.disconnect()}}),oW=class extends Wq{static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");tabs=[{label:"Home",value:"home"},{label:"Explore",value:"explore"}];openNostrConnectModal(t){t.preventDefault(),this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.closeNostrConnectModal(),this.args.onNostrConnected?.()}static{dF(this.prototype,"onNostrConnected",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["activity",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n Activity\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[8,[32,2],null,[["@tabs","@active","@onChange"],[[30,0,["tabs"]],[30,3],[30,4]]],null],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,3],[[30,5]],null],[12],[1,"\\n"],[41,[30,6],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,4],[[28,[32,5],[[30,7]],null],[28,[32,6],[[30,3],"home"],null]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"\\n "],[11,3],[24,6,"#"],[24,"role","button"],[24,"tabindex","0"],[4,[32,0],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect your Nostr account"],[13],[1,"\\n to see your activity.\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,5],[[30,8,["length"]]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No activity yet."],[13],[1,"\\n"]],[]],[[[1," "],[10,"ul"],[14,0,"activity-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,8]],null]],null],null,[[[41,[28,[32,6],[[30,9,["type"]],"zap"],null],[[[1," "],[8,[32,7],null,[["@item","@onSelect"],[[30,9],[30,10]]],null],[1,"\\n"]],[]],[[[41,[28,[32,6],[[30,9,["type"]],"photo"],null],[[[1," "],[8,[32,8],null,[["@item","@onSelect"],[[30,9],[30,10]]],null],[1,"\\n "]],[]],null]],[]]]],[9]],null],[1," "],[11,"li"],[24,0,"activity-load-more"],[4,[32,9],[[30,11]],null],[12],[1,"\\n"],[41,[30,12],[[[1," "],[10,0],[14,0,"activity-load-more-spinner"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,10],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,11],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@onBack","@onClose","@sourceMode","@onSetSourceMode","@scrollTop","@isLoading","@isConnected","@items","item","@onSelect","@onLoadMore","@isLoadingMore"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq,TabNav:fV,restoreScroll:iW,and:_V,not:xV,eq:dV,ActivityZapItem:mV,ActivityPhotoItem:yV,observeIntersection:sW,Modal:bV,NostrConnect:rW}),isStrictMode:!0}),this)}},aW=a({default:()=>lW}),lW=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@items","@isLoading","@isConnected","@sourceMode","@onSetSourceMode","@isLoadingMore","@onLoadMore","@scrollTop","@onSelect","@onBack","@onClose","@onNostrConnected"],[[30,1,["items"]],[30,1,["isLoading"]],[30,1,["isConnected"]],[30,1,["sourceMode"]],[30,1,["setSourceMode"]],[30,1,["isLoadingMore"]],[30,1,["loadMore"]],[30,1,["scrollTop"]],[30,1,["selectItem"]],[30,1,["backToMenu"]],[30,1,["close"]],[30,1,["onNostrConnected"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({ActivityTimeline:oW}),isStrictMode:!0}),pV()),cW=class{assert(){}async(t){Promise.resolve().then(t)}reportUncaughtRejection(){this.async(t=>{throw t})}defer(){let t={promise:null,resolve:null,reject:null};return t.promise=new Promise((e,n)=>{t.resolve=e,t.reject=n}),t}globalDebuggingEnabled(){return!1}},uW=new cW,hW=class{constructor(t){this.maxConcurrency=t||1}},dW="CANCELLED",pW="STARTED",fW="QUEUED",gW={type:pW},mW={type:fW},yW=t=>({type:dW,reason:t}),vW=yW("it belongs to a 'drop' Task that was already running"),bW=class{constructor(t){this.remainingSlots=t}step(){return this.remainingSlots>0?(this.remainingSlots--,gW):vW}},wW=class extends hW{makeReducer(){return new bW(this.maxConcurrency)}},_W=class{constructor(t){this.remainingSlots=t}step(){return this.remainingSlots>0?(this.remainingSlots--,gW):mW}},xW=class extends hW{makeReducer(){return new _W(this.maxConcurrency)}},CW=yW("it belongs to a 'keepLatest' Task that was already running"),kW=class{constructor(t,e){this.remainingSlots=t,this.numToCancel=e}step(){return this.remainingSlots>0?(this.remainingSlots--,gW):this.numToCancel>0?(this.numToCancel--,CW):mW}},SW=class extends hW{makeReducer(t,e){let n=t+e;return new kW(this.maxConcurrency,n-this.maxConcurrency-1)}},EW=yW("it belongs to a 'restartable' Task that was .perform()ed again"),RW=class{constructor(t){this.numToCancel=t}step(){return this.numToCancel>0?(this.numToCancel--,EW):gW}},LW=class extends hW{makeReducer(t,e){return new RW(t+e-this.maxConcurrency)}},TW=new class{step(){return gW}},PW=class{makeReducer(){return TW}},IW=new Map,MW=class{constructor(t,e,n){this.stateTracker=e,this.schedulerPolicy=t,this.initialTaskInstances=n,this.startingInstances=[]}process(){let[t,e,n]=this.filterFinishedTaskInstances(),r=this.schedulerPolicy.makeReducer(e,n),i=t.filter(t=>this.setTaskInstanceExecutionState(t,r.step()));return this.stateTracker.computeFinalStates(t=>this.applyState(t)),this.startingInstances.forEach(t=>t.start()),i}filterFinishedTaskInstances(){let t=0,e=0;return[this.initialTaskInstances.filter(n=>{let r=this.stateTracker.stateFor(n.task),i=n.executor.state;return i.isFinished?(r.onCompletion(n),!1):(i.hasStarted?t+=1:e+=1,!0)}),t,e]}setTaskInstanceExecutionState(t,e){let n=this.stateTracker.stateFor(t.task);switch(t.executor.counted||(t.executor.counted=!0,n.onPerformed(t)),e.type){case dW:return t.cancel(e.reason),!1;case pW:return t.executor.state.hasStarted||(this.startingInstances.push(t),n.onStart(t)),n.onRunning(t),!0;case fW:return n.onQueued(t),!0}}applyState(t){let{taskable:e}=t;if(!e.onState)return;const{guid:n}=e;if(IW.has(n)&&t.tagt(e))}forEachState(t){this.states.forEach(e=>t(e))}},zW=new class{onCompletion(){}onPerformed(){}onStart(){}onRunning(){}onQueued(){}},FW=class{stateFor(){return zW}computeFinalStates(){}},DW=class{constructor(t,e){this.schedulerPolicy=t,this.stateTrackingEnabled=e,this.taskInstances=[]}cancelAll(t,e){let n=this.taskInstances.map(n=>{n.task.guids[t]&&n.executor.cancel(e)}).filter(t=>!!t);return Promise.all(n)}perform(t){t.onFinalize(()=>this.scheduleRefresh()),this.taskInstances.push(t),this.refresh()}scheduleRefresh(){Promise.resolve().then(()=>this.refresh())}refresh(){let t=this.stateTrackingEnabled?new NW:new FW,e=new MW(this.schedulerPolicy,t,this.taskInstances);this.taskInstances=e.process()}},jW=class{constructor(t,e,n){this.value=t,this.done=e,this.errored=n}},UW=class{constructor(t){this.done=!1,this.generatorFactory=t,this.iterator=null}step(t,e){try{let{value:n,done:r}=this.getIterator()[e](t);return r?this.finalize(n,!1):new jW(n,!1,!1)}catch(n){return this.finalize(n,!0)}}getIterator(){return this.iterator||this.done||(this.iterator=this.generatorFactory()),this.iterator}finalize(t,e){return this.done=!0,this.iterator=null,new jW(t,!0,e)}},BW="__ec_cancel__",$W="__ec_yieldable__",qW="next",VW="throw",WW="return",HW="cancel",GW=class{constructor(t,e){this._taskInstance=t,this._resumeIndex=e}getTaskInstance(){return this._taskInstance}cancel(){let t=this._taskInstance;t.proceed.call(t,this._resumeIndex,HW)}next(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,qW,t)}return(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,WW,t)}throw(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,VW,t)}},ZW=class{constructor(){this[$W]=this[$W].bind(this)}onYield(){}_deferable(){let t={resolve:void 0,reject:void 0};return t.promise=new Promise((e,n)=>{t.resolve=e,t.reject=n}),t}_toPromise(){let t=this._deferable(),e=this[$W]({proceed(e,n,r){"next"==n||"return"==n?t.resolve(r):t.reject(r)}},0);return t.promise[BW]=e,t.promise}then(...t){return this._toPromise().then(...t)}catch(...t){return this._toPromise().catch(...t)}finally(...t){return this._toPromise().finally(...t)}[$W](t,e){let n=new GW(t,e);return this.onYield(n)}},KW=(new class extends ZW{onYield(){}},{completionState:0,value:null,error:null,isSuccessful:!1,isError:!1,isCanceled:!1,hasStarted:!1,isFinished:!1}),YW=class{constructor(t,e){this.kind=t,this.reason=e,this.promise=new Promise(t=>{this.finalize=t})}},XW={},JW=[],QW=class{constructor({generatorFactory:t,env:e,debug:n}){this.generatorState=new UW(t),this.state=Object.assign({},KW),this.index=1,this.disposers=[],this.finalizeCallbacks=[],this.env=e,this.debug=n,this.cancelRequest=null}start(){this.state.hasStarted||this.cancelRequest||(this.setState({hasStarted:!0}),this.proceedSync(qW,void 0))}cancel(t){return this.requestCancel(t)?(this.state.hasStarted?this.proceedWithCancelAsync():this.finalizeWithCancel(),this.cancelRequest.promise):(t.finalize(),t.promise)}setState(t){Object.assign(this.state,t),this.taskInstance.setState(this.state)}proceedChecked(t,e,n){this.state.isFinished||this.advanceIndex(t)&&("cancel"===e?(this.requestCancel(new YW("yielded"),n),this.proceedWithCancelAsync()):this.proceedAsync(e,n))}proceedWithCancelAsync(){this.proceedAsync(WW,XW)}proceedAsync(t,e){this.advanceIndex(this.index),this.env.async(()=>this.proceedSync(t,e))}proceedSync(t,e){this.state.isFinished||(this.dispose(),this.generatorState.done?this.handleResolvedReturnedValue(t,e):this.handleResolvedContinueValue(t,e))}handleResolvedContinueValue(t,e){let n=this.index,r=this.generatorStep(e,t);this.advanceIndex(n)&&(r.errored?this.finalize(r.value,2):this.handleYieldedValue(r))}handleResolvedReturnedValue(t,e){switch(t){case qW:case WW:this.finalize(e,1);break;case VW:this.finalize(e,2)}}handleYieldedUnknownThenable(t){let e=this.index;t.then(t=>{this.proceedChecked(e,qW,t)},t=>{this.proceedChecked(e,VW,t)})}advanceIndex(t){if(this.index===t)return++this.index}handleYieldedValue(t){let e=t.value;e?(this.addDisposer(e[BW]),e.__ec_yieldable__?this.invokeYieldable(e):"function"==typeof e.then?this.handleYieldedUnknownThenable(e):this.proceedWithSimpleValue(e)):this.proceedWithSimpleValue(e)}proceedWithSimpleValue(t){this.proceedAsync(qW,t)}addDisposer(t){"function"==typeof t&&this.disposers.push(t)}dispose(){let t=this.disposers;0!==t.length&&(this.disposers=[],t.forEach(t=>t()))}generatorStep(t,e){JW.push(this);let n=this.generatorState.step(t,e);if(JW.pop(),this._expectsLinkedYield){let t=n.value;t&&"PERFORM_TYPE_LINKED"===t.performType||console.warn("You performed a .linked() task without immediately yielding/returning it. This is currently unsupported (but might be supported in future version of ember-concurrency)."),this._expectsLinkedYield=!1}return n}maybeResolveDefer(){this.defer&&this.state.isFinished&&(1===this.state.completionState?this.defer.resolve(this.state.value):this.defer.reject(this.state.error))}onFinalize(t){this.finalizeCallbacks.push(t),this.state.isFinished&&this.runFinalizeCallbacks()}runFinalizeCallbacks(){this.finalizeCallbacks.forEach(t=>t()),this.finalizeCallbacks=[],this.maybeResolveDefer(),this.maybeThrowUnhandledTaskErrorLater()}promise(){return this.defer||(this.defer=this.env.defer(),this.asyncErrorsHandled=!0,this.maybeResolveDefer()),this.defer.promise}maybeThrowUnhandledTaskErrorLater(){var t;this.asyncErrorsHandled||2!==this.state.completionState||(t=this.state.error)&&"TaskCancelation"===t.name||this.env.async(()=>{this.asyncErrorsHandled||this.env.reportUncaughtRejection(this.state.error)})}requestCancel(t){return!this.cancelRequest&&!this.state.isFinished&&(this.cancelRequest=t,!0)}finalize(t,e){if(this.cancelRequest)return this.finalizeWithCancel();let n={completionState:e};1===e?(n.isSuccessful=!0,n.value=t):2===e?(n.isError=!0,n.error=t):3===e&&(n.error=t),this.finalizeShared(n)}finalizeWithCancel(){let t=this.taskInstance.formatCancelReason(this.cancelRequest.reason),e=new Error(t);this.debugEnabled()&&console.log(t),e.name="TaskCancelation",this.finalizeShared({isCanceled:!0,completionState:3,error:e,cancelReason:t}),this.cancelRequest.finalize()}debugEnabled(){return this.debug||this.env.globalDebuggingEnabled()}finalizeShared(t){this.index++,t.isFinished=!0,this.setState(t),this.runFinalizeCallbacks()}invokeYieldable(t){try{let e=t[$W](this.taskInstance,this.index);this.addDisposer(e)}catch(e){this.env.reportUncaughtRejection(e)}}onYielded(t,e){this.asyncErrorsHandled=!0,this.onFinalize(()=>{let n=this.state.completionState;1===n?t.proceed(e,qW,this.state.value):2===n?t.proceed(e,VW,this.state.error):3===n&&t.proceed(e,HW,null)});let n=this.getPerformType();if("PERFORM_TYPE_UNLINKED"!==n)return()=>{this.detectSelfCancelLoop(n,t),this.cancel(new YW("parent_cancel"))}}getPerformType(){return this.taskInstance.performType||"PERFORM_TYPE_DEFAULT"}detectSelfCancelLoop(t,e){if("PERFORM_TYPE_DEFAULT"!==t)return;let n=e.executor&&e.executor.cancelRequest;!n||"lifespan_end"!==n.kind||this.cancelRequest||this.state.isFinished||this.taskInstance.selfCancelLoopWarning(e)}},tH={last:null,lastRunning:null,lastPerformed:null,lastSuccessful:null,lastComplete:null,lastErrored:null,lastCanceled:null,lastIncomplete:null,performCount:0};Object.freeze(tH);var eH=0,nH=class{constructor(t){this.context=t.context,this.debug=t.debug||!1,this.enabledModifiers=t.enabledModifiers,this.env=t.env,this.group=t.group,this.hasEnabledEvents=t.hasEnabledEvents,this.modifierOptions=t.modifierOptions,this.name=t.name,this.onStateCallback=t.onStateCallback,this.scheduler=t.scheduler,this.guid="ec_"+eH++,this.guids={},this.guids[this.guid]=!0,this.group&&Object.assign(this.guids,this.group.guids)}cancelAll(t){let{reason:e,cancelRequestKind:n,resetState:r}=t||{};e=e||".cancelAll() was explicitly called on the Task";let i=new YW(n||"explicit",e);return this.scheduler.cancelAll(this.guid,i).then(()=>{r&&this._resetState()})}get _isAlive(){return!0}_resetState(){this.setState(tH)}setState(){}};Object.assign(nH.prototype,tH),Object.assign(nH.prototype,{numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"});var rH,iH,sH=class{constructor(t,e,n){this.task=t,this.performType=e,this.linkedObject=n}perform(...t){return this.task._performShared(t,this.performType,this.linkedObject)}},oH=class t extends nH{constructor(t){super(t),this.generatorFactory=t.generatorFactory,this.perform=this._perform.bind(this)}linked(){let t=JW[JW.length-1];if(!t)throw new Error("You can only call .linked() from within a task.");return new sH(this,"PERFORM_TYPE_LINKED",t)}unlinked(){return new sH(this,"PERFORM_TYPE_UNLINKED",null)}toString(){return``}_clone(){return new t({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}_curry(...t){let e=this._clone();return e._curryArgs=[...this._curryArgs||[],...t],e}_perform(...t){return this._performShared(t,"PERFORM_TYPE_DEFAULT",null)}_performShared(t,e,n){let r=this._curryArgs?[...this._curryArgs,...t]:t,i=this._taskInstanceFactory(r,e,n);return"PERFORM_TYPE_LINKED"===e&&(n._expectsLinkedYield=!0),this._isAlive||i.cancel(),this.scheduler.perform(i),i}_taskInstanceOptions(t,e,n){return{args:t,executor:new QW({generatorFactory:()=>this.generatorFactory(t),env:this.env,debug:this.debug}),performType:e,hasEnabledEvents:this.hasEnabledEvents}}},aH={enqueue:(t,e)=>e&&t.setBufferPolicy(xW),debug:(t,e)=>e&&t.setDebug(e),drop:(t,e)=>e&&t.setBufferPolicy(wW),keepLatest:(t,e)=>e&&t.setBufferPolicy(SW),maxConcurrency:(t,e)=>t.setMaxConcurrency(e),onState:(t,e)=>t.setOnState(e),restartable:(t,e)=>e&&t.setBufferPolicy(LW)},lH=class{env=uW;_debug=null;_enabledModifiers=[];_hasSetConcurrencyConstraint=!1;_hasSetBufferPolicy=!1;_hasEnabledEvents=!1;_maxConcurrency=null;_onStateCallback=(t,e)=>e.setState(t);_schedulerPolicyClass=PW;constructor(t="",e=null,n={}){this.name=t,this.taskDefinition=e,this.options=n,this._processModifierOptions(n)}createTask(t){let e=this.getTaskOptions(t);return new oH(Object.assign({generatorFactory:e=>this.taskDefinition.apply(t,e)},e))}getModifier(t){if(function(t){return t in aH}(t))return aH[t].bind(null,this)}getOptions(){return this.options}getScheduler(t,e){return new DW(t,e)}getTaskOptions(t){let e,n=this._onStateCallback,r=new this._schedulerPolicyClass(this._maxConcurrency);return e=this.getScheduler(r,n&&"function"==typeof n),{context:t,debug:this._debug,env:this.env,name:this.name,group:void 0,scheduler:e,hasEnabledEvents:this._hasEnabledEvents,onStateCallback:n,enabledModifiers:this._enabledModifiers,modifierOptions:this.getOptions()}}setBufferPolicy(t){return function(t){if(t._hasSetBufferPolicy)throw new Error(`Cannot set multiple buffer policies on a task. ${t._schedulerPolicyClass} has already been set for task '${t.name}'`)}(this),this._hasSetBufferPolicy=!0,this._hasSetConcurrencyConstraint=!0,this._schedulerPolicyClass=t,this}setDebug(t){return this._debug=t,this}setEvented(t){return this._hasEnabledEvents=t,this}setMaxConcurrency(t){return this._hasSetConcurrencyConstraint=!0,this._maxConcurrency=t,this}setName(t){return this.name=t,this}setOnState(t){return this._onStateCallback=t,this}setTaskDefinition(t){return this.taskDefinition=t,this}_processModifierOptions(t){if(t)for(let e of Object.keys(t)){let n=t[e],r=this.getModifier(e);"function"==typeof r&&r(n)&&this._enabledModifiers.push(e)}}},cH=a({EventTarget:()=>No,Promise:()=>ia,all:()=>la,allSettled:()=>ua,asap:()=>Ra,async:()=>Da,cast:()=>Fa,configure:()=>Fo,default:()=>Ba,defer:()=>ya,denodeify:()=>oa,filter:()=>ka,hash:()=>pa,hashSettled:()=>ga,map:()=>ba,off:()=>Ua,on:()=>ja,race:()=>ha,reject:()=>_a,resolve:()=>wa,rethrow:()=>ma}),uH=new class extends cW{assert(...t){}async(t){xs(()=>Es("actions",t))}reportUncaughtRejection(t){Ms(null,function(){throw t})}defer(){return ya()}globalDebuggingEnabled(){return!1}},hH=class extends DW{scheduleRefresh(){Ps(this,this.refresh)}},dH=class{constructor({task:t,args:e,executor:n,performType:r,hasEnabledEvents:i}){this.task=t,this.args=e,this.performType=r,this.executor=n,this.executor.taskInstance=this,this.hasEnabledEvents=i}setState(){}formatCancelReason(){}selfCancelLoopWarning(){}onFinalize(t){this.executor.onFinalize(t)}proceed(t,e,n){this.executor.proceedChecked(t,e,n)}[$W](t,e){return this.executor.onYielded(t,e)}cancel(t=".cancel() was explicitly called"){this.executor.cancel(new YW("explicit",t))}then(...t){return this.executor.promise().then(...t)}catch(...t){return this.executor.promise().catch(...t)}finally(...t){return this.executor.promise().finally(...t)}toString(){return`${this.task} TaskInstance`}start(){return this.executor.start(),this}};function pH(t,e){return Object.keys(t).reduce((e,n)=>function(t,e,n){const r=Object.getOwnPropertyDescriptor(t,n);return r.initializer=r.initializer||(()=>t[n]),delete r.value,e[n]=Wr(e,n,r),e}(t,e,n),e)}Object.assign(dH.prototype,KW),Object.assign(dH.prototype,{state:"waiting",isDropped:!1,isRunning:!0}),rH=pH(tH,{}),rH=pH({numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"},rH),iH=pH(KW,{}),iH=pH({state:"waiting",isDropped:!1,isRunning:!1},iH),Object.freeze(rH),Object.freeze(iH);var fH=class extends dH{setState(t){let e=this._recomputeState(t);Object.assign(this,{...t,isRunning:!t.isFinished,isDropped:"dropped"===e,state:e})}_recomputeState(t){return t.isDropped?"dropped":t.isCanceled?t.hasStarted?"canceled":"dropped":t.isFinished?"finished":t.hasStarted?"running":"waiting"}formatCancelReason(t){return`TaskInstance '${this.getName()}' was canceled because ${t}. For more information, see: http://ember-concurrency.com/docs/task-cancelation-help`}getName(){return this.name||(this.name=this.task&&this.task.name||""),this.name}selfCancelLoopWarning(t){let e=`\`${t.getName()}\``,n=`\`${this.getName()}\``;console.warn(`ember-concurrency detected a potentially hazardous "self-cancel loop" between parent task ${e} and child task ${n}. If you want child task ${n} to be canceled when parent task ${e} is canceled, please change \`.perform()\` to \`.linked().perform()\`. If you want child task ${n} to keep running after parent task ${e} is canceled, change it to \`.unlinked().perform()\``)}triggerEvent(...t){if(!this.hasEnabledEvents)return;let e=this.task,n=e.context,r=e&&e.name;if(n&&n.trigger&&r){let[e,...i]=t;n.trigger(`${r}:${e}`,...i)}}};iH&&Object.defineProperties(fH.prototype,iH);var gH={_performCount:0,setState(t){this._performCount=this._performCount+(t.numPerformedInc||0);let e=t.numRunning>0,n=t.numQueued>0,r=Object.assign({},t,{performCount:this._performCount,isRunning:e,isQueued:n,isIdle:!e&&!n,state:e?"running":"idle"});Object.assign(this,r)},onState(t,e){e.onStateCallback&&e.onStateCallback(t,e)}},mH=class t extends oH{constructor(t){super(t),it(this.context)||Rx(this.context,()=>{this.cancelAll({reason:"the object it lives on was destroyed or unrendered",cancelRequestKind:"lifespan_end"})})}get _isAlive(){return!it(this.context)}_taskInstanceFactory(t,e,n){let r=this._taskInstanceOptions(t,e,n);return r.task=this,new fH(r)}_clone(){return new t({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}};rH&&Object.defineProperties(mH.prototype,rH),Object.assign(mH.prototype,gH);var yH=class extends lH{env=uH;createTask(t){this.taskDefinition;let e=this.getTaskOptions(t);return new mH(Object.assign({generatorFactory:e=>this.taskDefinition.apply(t,e)},e))}getModifier(t){return super.getModifier(t)}getScheduler(t,e){return new hH(t,e)}get taskFn(){return this.taskDefinition}set taskFn(t){this.setTaskDefinition(t)}};function vH(t,e,n,r){let i=e;r&&(i=Object.assign({},i),i[r]=!0);const s=t();return new yH(n||"",s.generator,i).createTask(s.context)}var bH=a({default:()=>wH}),wH=class extends eu{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"activity",[pp])}#ae=void pF(this,"activity");loadTask=vH(()=>({context:this,generator:function*(t){yield this.activity.load(t)}}),{restartable:!0},"loadTask",null);get scrollTop(){return this.mapUi.getScrollPosition("activity")}get items(){return this.activity.items}get isLoading(){return this.activity.isLoading}get isConnected(){return this.nostrAuth.isConnected}get sourceMode(){return this.activity.sourceMode}get isLoadingMore(){return this.activity.isLoadingMore}setSourceMode(t){this.activity.setSourceMode(t)}static{dF(this.prototype,"setSourceMode",[Vl])}loadMore(){this.activity.loadMore()}static{dF(this.prototype,"loadMore",[Vl])}selectItem(t){if(!t||!t.placeIdentifier)return;const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("activity",e.scrollTop),this.mapUi.returnToRoute={name:"activity"},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo(`/place/${t.placeIdentifier}`)}static{dF(this.prototype,"selectItem",[Vl])}onNostrConnected(){this.loadTask.perform(this.nostrAuth.pubkey)}static{dF(this.prototype,"onNostrConnected",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{dF(this.prototype,"backToMenu",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}},_H=a({default:()=>xH}),xH=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"activity",[pp])}#ae=void pF(this,"activity");activate(){this.mapUi.showSidebar()}setupController(t,e){super.setupController(t,e),t&&t.loadTask&&t.loadTask.perform(this.nostrAuth.pubkey)}deactivate(){}},CH=class extends Wq{get item(){return this.args.item}get primaryPhoto(){return this.item?.photos?.[0]||null}get extraPhotoCount(){return Math.max(0,(this.item?.photos?.length||0)-1)}get placeName(){return this.item?.placeName}get isNameLoading(){return this.item?.placeNameLoading}get tags(){const t=(this.item?.photos||[]).flatMap(t=>t.tags||[]);return[...new Set(t)]}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"contribution-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"contribution-thumb"],[12],[1,"\\n"],[41,[30,0,["primaryPhoto"]],[[[1," "],[10,"img"],[15,"src",[28,[32,2],[[30,0,["primaryPhoto","thumbUrl"]],[30,0,["primaryPhoto","url"]]],null]],[15,"alt",[28,[32,2],[[30,0,["primaryPhoto","alt"]],"Place photo"],null]],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],null],[41,[28,[32,3],[[30,0,["extraPhotoCount"]],0],null],[[[1," "],[10,1],[14,0,"contribution-thumb-badge"],[12],[1,"+"],[1,[30,0,["extraPhotoCount"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-info"],[12],[1,"\\n "],[10,0],[14,0,"contribution-place"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[1,[30,0,["placeName"]]],[1,"\\n"]],[]],[[[41,[30,0,["isNameLoading"]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Loading…"],[13],[1,"\\n"]],[]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-meta"],[12],[1,"\\n "],[1,[28,[32,4],[[30,2,["createdAt"]]],null]],[1,"\\n"],[41,[28,[32,3],[[30,0,["item","photos","length"]],1],null],[[[1," ·\\n "],[1,[30,0,["item","photos","length"]]],[1,"\\n photos\\n"]],[]],[[[1," · 1 photo\\n"]],[]]],[1," "],[13],[1,"\\n"],[41,[30,0,["tags","length"]],[[[1," "],[10,0],[14,0,"contribution-tags"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["tags"]]],null]],null],null,[[[1," "],[10,1],[14,0,"contribution-tag"],[12],[1,[30,3]],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onSelect","@item","tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:uV,or:CV,__keyword__gt:hV,formatRelativeDate:gV}),isStrictMode:!0}),this)}},kH=class extends Wq{static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");openNostrConnectModal(t){t.preventDefault(),this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.closeNostrConnectModal(),this.args.onNostrConnected?.()}static{dF(this.prototype,"onNostrConnected",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["user-check",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n My Contributions\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,2],[[30,3]],null],[12],[1,"\\n"],[41,[30,4],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,5]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"\\n "],[11,3],[24,6,"#"],[24,"role","button"],[24,"tabindex","0"],[4,[32,0],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect your Nostr account"],[13],[1,"\\n to see your contributions.\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,6,["length"]]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No contributions yet. Start by adding photos to\\n places."],[13],[1,"\\n"]],[]],[[[1," "],[10,"ul"],[14,0,"contributions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,6]],null]],null],null,[[[41,[28,[32,4],[[30,7,["type"]],"photo"],null],[[[1," "],[8,[32,5],null,[["@item","@onSelect"],[[30,7],[30,8]]],null],[1,"\\n"]],[]],null]],[7]],null],[1," "],[13],[1,"\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,6],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@onBack","@onClose","@scrollTop","@isLoading","@isConnected","@items","item","@onSelect"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq,restoreScroll:iW,not:xV,eq:dV,ContributionPhoto:CH,Modal:bV,NostrConnect:rW}),isStrictMode:!0}),this)}},SH=a({default:()=>EH}),EH=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@items","@isLoading","@isConnected","@scrollTop","@onSelect","@onBack","@onClose","@onNostrConnected"],[[30,1,["items"]],[30,1,["loadContributionsTask","isRunning"]],[30,1,["isConnected"]],[30,1,["scrollTop"]],[30,1,["selectContribution"]],[30,1,["backToMenu"]],[30,1,["close"]],[30,1,["onNostrConnected"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({ContributionsTimeline:kH}),isStrictMode:!0}),pV()),RH=a({default:()=>LH}),LH=class extends eu{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"contributions",[pp])}#le=void pF(this,"contributions");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");loadContributionsTask=vH(()=>({context:this,generator:function*(t){t&&(yield this.contributions.load(t))}}),{restartable:!0},"loadContributionsTask",null);get scrollTop(){return this.mapUi.getScrollPosition("contributions")}get items(){return this.contributions.items}get isConnected(){return this.nostrAuth.isConnected}selectContribution(t){if(!t)return;const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("contributions",e.scrollTop),this.mapUi.returnToRoute={name:"contributions"},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo(`/place/${t.placeIdentifier}`)}static{dF(this.prototype,"selectContribution",[Vl])}onNostrConnected(){this.loadContributionsTask.perform(this.nostrAuth.pubkey)}static{dF(this.prototype,"onNostrConnected",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{dF(this.prototype,"backToMenu",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}},TH=a({default:()=>PH}),PH=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"contributions",[pp])}#le=void pF(this,"contributions");activate(){this.mapUi.showSidebar()}setupController(t,e){super.setupController(t,e),t&&t.loadContributionsTask&&t.loadContributionsTask.perform(this.nostrAuth.pubkey)}deactivate(){this.contributions.stop()}},IH=a({default:()=>MH}),MH=Op(ig({id:null,block:'[[[46,[28,[31,1],null,null],null,null,null]],[],["component","-outlet"]]',moduleName:"(unknown template module)",isStrictMode:!0}),pV()),AH=a({default:()=>OH}),OH=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");activate(){this.mapUi.showSidebar()}},NH=class extends Wq{static{hF(this.prototype,"title",[Wr],function(){return""})}#ce=void pF(this,"title");static{hF(this.prototype,"description",[Wr],function(){return""})}#ue=void pF(this,"description");constructor(){super(...arguments),this.title=this.args.place?.title||"",this.description=this.args.place?.description||""}get shouldAutofocus(){return"undefined"!=typeof window&&window.innerWidth>768}handleSubmit(t){t.preventDefault(),this.args.onSave&&this.args.onSave({title:this.title,description:this.description})}static{dF(this.prototype,"handleSubmit",[Vl])}updateTitle(t){this.title=t.target.value}static{dF(this.prototype,"updateTitle",[Vl])}updateDescription(t){this.description=t.target.value}static{dF(this.prototype,"updateDescription",[Vl])}static{Op(ig({id:null,block:'[[[11,"form"],[24,0,"edit-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-title"],[12],[1,"Title"],[13],[1,"\\n"],[1," "],[11,"input"],[24,1,"edit-title"],[16,2,[30,0,["title"]]],[24,0,"form-control"],[24,"placeholder","Name of the place"],[16,"autofocus",[30,0,["shouldAutofocus"]]],[24,4,"text"],[4,[32,0],["input",[30,0,["updateTitle"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-desc"],[12],[1,"Description"],[13],[1,"\\n "],[11,"textarea"],[24,1,"edit-desc"],[16,2,[30,0,["description"]]],[24,0,"form-control"],[24,"rows","3"],[24,"placeholder","Add some details..."],[4,[32,0],["input",[30,0,["updateDescription"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[10,"button"],[14,0,"btn btn-blue"],[14,4,"submit"],[12],[1,"Save"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"Cancel"],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onCancel"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw}),isStrictMode:!0}),this)}},zH=EV((t,[e])=>{const n=n=>{t&&!t.contains(n.target)&&e(n)},r=setTimeout(()=>{document.addEventListener("click",n)},0);return()=>{clearTimeout(r),document.removeEventListener("click",n)}}),FH=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"_forceClear",[Wr],function(){return!1})}#he=void pF(this,"_forceClear");get isSaved(){return this.args.isSaved}get placeListIds(){return this._forceClear?[]:this.args.place._listIds||[]}styleFor(t){return qv(`background-color: ${t}`)}isInList(t){return!!this.placeListIds&&this.placeListIds.includes(t.id)}static{dF(this.prototype,"isInList",[Vl])}async toggleSaved(){if(this.isSaved){const{osmId:t,osmType:e}=this.args.place;if(await this.storage.removePlace(this.args.place),this.args.place&&(this.args.place.id=null,this.args.place.createdAt=null,this.args.place._listIds=[],this._forceClear=!0),t&&e){const t={...this.args.place};delete t.id,delete t.createdAt,delete t._listIds,this.router.transitionTo("place",t)}else this.router.transitionTo("index");this.args.onClose&&this.args.onClose()}else await this.storage.storePlace(this.args.place)}static{dF(this.prototype,"toggleSaved",[Vl])}async toggleList(t){const e=!this.placeListIds.includes(t.id);e&&!this.isSaved&&await this.storage.storePlace(this.args.place);try{await this.storage.togglePlaceList(this.args.place,t.id,e)}catch(n){console.error(n),alert("Failed to update list: "+n.message)}}static{dF(this.prototype,"toggleList",[Vl])}static{Op(ig({id:null,block:'[[[11,0],[24,0,"place-lists-manager"],[4,[32,0],[[30,1]],null],[12],[1,"\\n "],[10,0],[14,0,"list-item master-toggle"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[30,0,["isSaved"]]],[24,4,"checkbox"],[4,[32,1],["change",[30,0,["toggleSaved"]]],null],[12],[13],[1,"\\n "],[10,1],[14,0,"list-color-dot"],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,"Saved places"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"divider"],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"lists-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,0],[14,0,"list-item"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[28,[30,0,["isInList"]],[[30,2]],null]],[16,"disabled",[52,[51,[30,0,["isSaved"]]],true]],[24,4,"checkbox"],[4,[32,1],["change",[28,[32,2],[[30,0,["toggleList"]],[30,2]],null]],null],[12],[13],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,2,["color"]]],null]],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,[30,2,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n"],[13]],["@onClose","list"],["each","-track-array","unless"]]',moduleName:"(unknown template module)",scope:()=>({onClickOutside:zH,on:Hw,fn:uV}),isStrictMode:!0}),this)}},DH=class extends Wq{renderBlurhash=EV((t,[e,n,r])=>{if(!e||!t)return;const i=n||32,s=r||18;t.width=i,t.height=s;const o=t.getContext("2d");if(o)try{const t=((t,e,n)=>{(t=>{if(!t||t.length<6)throw new uq("The blurhash string must be at least 6 characters");let e=sq(t[0]),n=Math.floor(e/9)+1,r=e%9+1;if(t.length!==4+2*r*n)throw new uq(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*r*n}`)})(t);let r=sq(t[0]),i=Math.floor(r/9)+1,s=r%9+1,o=(sq(t[1])+1)/166,a=new Array(s*i);for(let u=0;u({context:this,generator:function*(t){this.error="",this.statusText="Processing";try{const e=yield this.imageProcessor.process(t,1920,.9,!0);this.blurhash=e.blurhash;const n=yield this.imageProcessor.process(t,350,.9,!1);let r,i;const s=cj(),o=t=>{"signing"===t&&(this.statusText="Signing photo upload"),"uploading"===t&&(this.statusText="Uploading photo")},a=t=>{"signing"===t&&(this.statusText="Signing thumbnail upload"),"uploading"===t&&(this.statusText="Uploading thumbnail")};if(s)r=yield this.blossom.upload(e.blob,{sequential:!0,onProgress:o}),i=yield this.blossom.upload(n.blob,{sequential:!0,onProgress:a});else{const t=this.blossom.upload(e.blob,{onProgress:o}),s=this.blossom.upload(n.blob,{onProgress:a});[r,i]=yield Promise.all([t,s])}this.args.onSuccess&&this.args.onSuccess({file:t,url:r.url,fallbackUrls:r.fallbackUrls,thumbUrl:i.url,blurhash:e.blurhash,type:"image/jpeg",dim:e.dim,hash:r.hash,thumbHash:i.hash})}catch(e){this.error=e.message}}}),null,"uploadTask",null);static{Op(ig({id:null,block:'[[[10,0],[15,0,[29,["photo-upload-item\\n ",[52,[30,0,["uploadTask","isRunning"]],"is-uploading"],"\\n ",[52,[30,0,["error"]],"has-error"]]]],[12],[1,"\\n"],[41,[30,0,["blurhash"]],[[[1," "],[8,[32,0],[[24,0,"place-header-photo-blur"]],[["@hash"],[[30,0,["blurhash"]]]],null],[1,"\\n"]],[]],null],[1," "],[10,"img"],[15,"src",[30,0,["thumbnailUrl"]]],[14,"alt","thumbnail"],[12],[13],[1,"\\n\\n"],[41,[30,0,["uploadTask","isRunning"]],[[[1," "],[10,0],[14,0,"overlay"],[12],[1,"\\n "],[8,[32,1],[[24,0,"spin-animation"]],[["@name","@size","@color"],["loading-ring",24,"white"]],null],[1,"\\n"],[41,[30,0,["statusText"]],[[[1," "],[10,1],[14,0,"upload-status-text"],[12],[1,[30,0,["statusText"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["error"]],[[[1," "],[11,"button"],[24,0,"overlay error-overlay"],[16,"title",[30,0,["error"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["showErrorToast"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["alert-circle",24,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[11,"button"],[24,0,"btn-remove-photo"],[24,"title","Remove photo"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",16,"white"]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onRemove","@file"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Blurhash:DH,Icon:Gq,on:Hw,fn:uV}),isStrictMode:!0}),this)}},UH=Eb(function([t]){return KB(t)}),BH=Eb(function([t,e]){return!!Array.isArray(t)&&t.includes(e)}),$H=class extends Wq{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"blossom",[pp])}#de=void pF(this,"blossom");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"file",[Wr],function(){return null})}#ve=void pF(this,"file");static{hF(this.prototype,"uploadedPhoto",[Wr],function(){return null})}#be=void pF(this,"uploadedPhoto");static{hF(this.prototype,"error",[Wr],function(){return""})}#me=void pF(this,"error");static{hF(this.prototype,"isPublishing",[Wr],function(){return!1})}#we=void pF(this,"isPublishing");static{hF(this.prototype,"isDragging",[Wr],function(){return!1})}#_e=void pF(this,"isDragging");static{hF(this.prototype,"selectedTags",[Wr],function(){return[]})}#xe=void pF(this,"selectedTags");static{hF(this.prototype,"altText",[Wr],function(){return""})}#Ce=void pF(this,"altText");get place(){return this.args.place||{}}get title(){return this.place.title||"this place"}get allUploaded(){return this.file&&this.uploadedPhoto&&this.file===this.uploadedPhoto.file}get suggestedTags(){return G$(this.place)}handleFileSelect(t){this.addFile(t.target.files[0]),t.target.value=""}static{dF(this.prototype,"handleFileSelect",[Vl])}handleDragOver(t){t.preventDefault(),this.isDragging=!0}static{dF(this.prototype,"handleDragOver",[Vl])}handleDragLeave(t){t.preventDefault(),this.isDragging=!1}static{dF(this.prototype,"handleDragLeave",[Vl])}handleDrop(t){t.preventDefault(),this.isDragging=!1,t.dataTransfer.files.length>0&&this.addFile(t.dataTransfer.files[0])}static{dF(this.prototype,"handleDrop",[Vl])}addFile(t){t&&t.type.startsWith("image/")?(this.error="",this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=t,this.uploadedPhoto=null,this.args.onUploadStateChange&&this.args.onUploadStateChange(!0)):this.error="Please select a valid image file."}handleUploadSuccess(t){this.uploadedPhoto=t}static{dF(this.prototype,"handleUploadSuccess",[Vl])}removeFile(){this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=null,this.uploadedPhoto=null,this.selectedTags=[],this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1)}static{dF(this.prototype,"removeFile",[Vl])}toggleTag(t){this.selectedTags.includes(t)?this.selectedTags=[]:this.selectedTags=[t]}static{dF(this.prototype,"toggleTag",[Vl])}updateAltText(t){this.altText=t.target.value}static{dF(this.prototype,"updateAltText",[Vl])}deletePhotoTask=vH(()=>({context:this,generator:function*(t){try{t.hash&&(yield this.blossom.delete(t.hash)),t.thumbHash&&(yield this.blossom.delete(t.thumbHash))}catch(e){this.toast.show(`Failed to delete photo from server: ${e.message}`,5e3)}}}),null,"deletePhotoTask",null);async publish(){if(!this.nostrAuth.isConnected)return void(this.error="You must connect Nostr first.");if(!this.allUploaded)return void(this.error="Please wait for all photos to finish uploading.");const{osmId:t,lat:e,lon:n}=this.place,r=this.place.osmType||"node";if(t){this.error="",this.isPublishing=!0;try{const i=[["i",`osm:${r}:${t}`]];for(const t of this.selectedTags)i.push(["t",t]);e&&n&&(i.push(["g",aB.encode(e,n,4)]),i.push(["g",aB.encode(e,n,6)]),i.push(["g",aB.encode(e,n,7)]),i.push(["g",aB.encode(e,n,9)]));const s=this.uploadedPhoto,o=["imeta",`url ${s.url}`];o.push(`m ${s.type}`),s.dim&&o.push(`dim ${s.dim}`);const a=this.altText.trim();if(a&&o.push(`alt ${a}`),s.fallbackUrls&&s.fallbackUrls.length>0)for(const t of s.fallbackUrls)o.push(`fallback ${t}`);s.thumbUrl&&o.push(`thumb ${s.thumbUrl}`),s.blurhash&&o.push(`blurhash ${s.blurhash}`),i.push(o);const l=await oz.fromKind(360).content("").modifyPublicTags(()=>i).as(this.nostrAuth.signer).sign();await this.nostrRelay.publish(this.nostrData.activeWriteRelays,l),this.nostrData.store.add(l),this.toast.show("Photo published successfully"),this.file=null,this.uploadedPhoto=null,this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1),this.args.onClose&&this.args.onClose(l.id)}catch(i){this.error="Failed to publish: "+i.message}finally{this.isPublishing=!1}}else this.error="This place does not have a valid OSM ID."}static{dF(this.prototype,"publish",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"place-photo-upload"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Add Photo for "],[1,[30,0,["title"]]],[13],[1,"\\n\\n"],[41,[30,0,["error"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,"\\n "],[1,[30,0,["error"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["file"]],[[[1," "],[8,[32,0],null,[["@file","@onSuccess","@onRemove"],[[30,0,["file"]],[30,0,["handleUploadSuccess"]],[30,0,["removeFile"]]]],null],[1,"\\n\\n"],[41,[30,0,["suggestedTags","length"]],[[[1," "],[10,0],[14,0,"photo-tag-suggestions"],[12],[1,"\\n "],[10,2],[14,0,"photo-tag-suggestions-title"],[12],[1,"\\n Choose a tag/category (optional):\\n "],[13],[1,"\\n "],[10,0],[14,0,"photo-tag-suggestions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["suggestedTags"]]],null]],null],null,[[[1," "],[11,"button"],[16,0,[29,["photo-tag-chip\\n ",[52,[28,[32,1],[[30,0,["selectedTags"]],[30,1]],null],"is-selected"]]]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["toggleTag"]],[30,1]],null]],null],[12],[1,"\\n "],[1,[28,[32,4],[[30,1]],null]],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photo-alt-input"],[12],[1,"Description (optional):"],[13],[1,"\\n "],[11,"input"],[24,1,"photo-alt-input"],[24,0,"form-control"],[24,"placeholder","Describe this photo"],[16,2,[30,0,["altText"]]],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateAltText"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"btn btn-primary btn-publish"],[16,"disabled",[28,[32,5],[[28,[32,6],[[30,0,["allUploaded"]]],null],[30,0,["isPublishing"]]],null]],[24,4,"button"],[4,[32,2],["click",[30,0,["publish"]]],null],[12],[1,"\\n"],[41,[30,0,["isPublishing"]],[[[1," Publishing...\\n"]],[]],[[[1," Publish Photo\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],[[[1," "],[11,0],[16,0,[29,["dropzone ",[52,[30,0,["isDragging"]],"is-dragging"]]]],[4,[32,2],["dragover",[30,0,["handleDragOver"]]],null],[4,[32,2],["dragleave",[30,0,["handleDragLeave"]]],null],[4,[32,2],["drop",[30,0,["handleDrop"]]],null],[12],[1,"\\n "],[10,"label"],[14,"for","photo-upload-input"],[14,0,"dropzone-label"],[12],[1,"\\n "],[8,[32,7],null,[["@name","@size","@color"],["upload-cloud",48,"#ccc"]],null],[1,"\\n "],[10,2],[12],[1,"Drag and drop a photo here, or click to browse"],[13],[1,"\\n "],[13],[1,"\\n "],[11,"input"],[24,1,"photo-upload-input"],[24,"accept","image/*"],[24,0,"file-input-hidden"],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"file"],[4,[32,2],["change",[30,0,["handleFileSelect"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[13]],["tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({PlacePhotoUploadItem:jH,includes:BH,on:Hw,fn:uV,capitalize:UH,or:CV,not:xV,Icon:Gq}),isStrictMode:!0}),this)}},qH=EV((t,[e])=>{if(!e)return;let n;t.classList.remove("loaded"),t.classList.remove("loaded-instant");const r=()=>{const e=t.parentElement,n=e&&"PICTURE"===e.tagName?e.parentElement:e;if(n&&n.closest(".photo-carousel.gallery-main")){const t=n.querySelector(".place-header-photo-blur");t&&(t.style.opacity="0")}},i=()=>{t.classList.contains("loaded-instant")||t.classList.add("loaded"),r()};return t.addEventListener("load",i),n=new IntersectionObserver((n,i)=>{n.forEach(n=>{if(n.isIntersecting){i.unobserve(t);const n=new Image;n.src=e,n.complete&&(t.classList.add("loaded-instant"),r());const s=t.parentElement;s&&"PICTURE"===s.tagName&&s.querySelectorAll("source").forEach(t=>{t.dataset.srcset&&(t.srcset=t.dataset.srcset)}),t.dataset.src?t.src=t.dataset.src:t.src=e}})},{root:null,rootMargin:"100px 100%",threshold:0}),n.observe(t),()=>{t.removeEventListener("load",i),n&&n.disconnect()}}),VH=class extends Wq{static{hF(this.prototype,"canScrollLeft",[Wr],function(){return!1})}#ke=void pF(this,"canScrollLeft");static{hF(this.prototype,"canScrollRight",[Wr],function(){return!1})}#Se=void pF(this,"canScrollRight");internalEventId=null;carouselElement=null;get photos(){return this.args.photos||[]}get showChevrons(){return this.photos.length>1}get cannotScrollLeft(){return!this.canScrollLeft}get cannotScrollRight(){return!this.canScrollRight}get isGalleryMain(){return"gallery-main"===this.args.variant}get isGalleryThumbnails(){return"gallery-thumbnails"===this.args.variant}get variantClass(){return this.args.variant||"inline"}lastResetKey=null;resetScrollPosition=EV((t,[e])=>{void 0!==e&&e!==this.lastResetKey&&(this.lastResetKey=e,t.scrollLeft=0,setTimeout(()=>this.updateScrollState(),50))});isProgrammaticScroll=!1;scrollToNewPhoto=EV((t,[e])=>{if(e&&e!==this.lastEventId){const n=!this.lastEventId;if(this.lastEventId=e,this.internalEventId===e)return;this.internalEventId=e,this.isProgrammaticScroll=!0;const r=()=>{const r=t.querySelector(`[data-event-id="${e}"]`);if(r)if(n){const e=t.style.scrollBehavior;t.style.scrollBehavior="auto",t.scrollLeft=r.offsetLeft,setTimeout(()=>{t.style.scrollBehavior=e,this.isProgrammaticScroll=!1},50)}else t.scrollLeft=r.offsetLeft,setTimeout(()=>{this.isProgrammaticScroll=!1},500);else this.isProgrammaticScroll=!1};n?r():setTimeout(r,100)}});setupCarousel=EV(t=>{let e,n;return this.carouselElement=t,setTimeout(()=>{this.updateScrollState()},50),window.ResizeObserver&&(e=new ResizeObserver(()=>this.updateScrollState()),e.observe(t)),this.args.onVisiblePhotoChange&&window.IntersectionObserver&&"test"!==ix.environment&&(n=new IntersectionObserver(t=>{if(!this.isProgrammaticScroll)for(let e of t)if(e.isIntersecting&&e.intersectionRatio>=.5){const t=e.target.dataset.eventId;this.internalEventId=t;const n=this.photos.find(e=>e.eventId===t);n&&this.args.onVisiblePhotoChange(n)}},{root:t,threshold:.5}),t.querySelectorAll(".carousel-slide").forEach(t=>n.observe(t))),()=>{e&&e.unobserve(t),n&&n.disconnect()}});updateScrollState(){if(!this.carouselElement)return;const{scrollLeft:t,scrollWidth:e,clientWidth:n}=this.carouselElement;this.canScrollLeft=t>1,this.canScrollRight=t+n({on:Hw,and:_V,eq:dV,fn:uV,Blurhash:DH,fadeInImage:qH,Icon:Gq}),isStrictMode:!0}),this)}},WH=class extends Wq{static{hF(this.prototype,"isOpen",[Wr],function(){return!1})}#Ee=void pF(this,"isOpen");toggleMenu(t){t?.stopPropagation(),this.isOpen=!this.isOpen}static{dF(this.prototype,"toggleMenu",[Vl])}closeMenu(t){t?.stopPropagation(),this.isOpen=!1}static{dF(this.prototype,"closeMenu",[Vl])}get triggerIcon(){return this.args.triggerIcon||"more-vertical"}static{Op(ig({id:null,block:'[[[10,0],[14,0,"dropdown-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"dropdown-trigger-btn btn-press"],[16,"title",[30,1]],[24,4,"button"],[4,[32,0],["click",[30,0,["toggleMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[30,0,["triggerIcon"]],[30,2],[30,3]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["isOpen"]],[[[1," "],[10,0],[15,0,[29,["dropdown-popover ",[30,4]]]],[12],[1,"\\n "],[18,5,[[30,0,["closeMenu"]]]],[1,"\\n "],[13],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,0],["click",[30,0,["closeMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[13]],["@triggerTitle","@iconSize","@iconColor","@popoverClass","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq}),isStrictMode:!0}),this)}},HH=1e5,GH=Math.round((Math.log(100)-Math.log(10))/(Math.log(HH)-Math.log(10))*200),ZH=class extends Wq{static{hF(this.prototype,"nostrZap",[pp])}#Re=void pF(this,"nostrZap");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"step",[Wr],function(){return"select-amount"})}#Le=void pF(this,"step");static{hF(this.prototype,"sliderPosition",[Wr],function(){return GH})}#Te=void pF(this,"sliderPosition");static{hF(this.prototype,"message",[Wr],function(){return""})}#ee=void pF(this,"message");static{hF(this.prototype,"error",[Wr],function(){return null})}#me=void pF(this,"error");static{hF(this.prototype,"invoice",[Wr],function(){return null})}#Pe=void pF(this,"invoice");static{hF(this.prototype,"lightningAddress",[Wr],function(){return null})}#Ie=void pF(this,"lightningAddress");static{hF(this.prototype,"lnurlEndpoint",[Wr],function(){return null})}#Me=void pF(this,"lnurlEndpoint");static{hF(this.prototype,"lnurlLoading",[Wr],function(){return!1})}#Ae=void pF(this,"lnurlLoading");static{hF(this.prototype,"lnurlError",[Wr],function(){return null})}#Oe=void pF(this,"lnurlError");static{hF(this.prototype,"paymentNotDetected",[Wr],function(){return!1})}#Ne=void pF(this,"paymentNotDetected");sliderSteps=200;sliderTicks=["10","100","1k","10k","100k"];_receiptSub=null;_receiptTimeout=null;_zapRequest=null;RECEIPT_TIMEOUT_MS=3e5;constructor(){super(...arguments),this._loadLightningInfo()}get photo(){return this.args.photo}get hasWebLN(){return this.nostrZap.hasWebLN()}get effectiveAmount(){return function(t){const e=t/200;return Math.round(Math.exp(Math.log(10)+(Math.log(HH)-Math.log(10))*e))}(this.sliderPosition)}get amountMsats(){return 1e3*this.effectiveAmount}get formattedAmount(){return this.effectiveAmount.toLocaleString()}get cannotZap(){return!this.canZap}get canZap(){return!!this.lnurlEndpoint&&!this.lnurlError&&!(this.effectiveAmount<=0)&&this.amountMsats>=this.lnurlEndpoint.minSendable&&this.amountMsats<=this.lnurlEndpoint.maxSendable}get minSats(){return this.lnurlEndpoint?Math.ceil(this.lnurlEndpoint.minSendable/1e3):1}get maxSats(){return this.lnurlEndpoint?Math.floor(this.lnurlEndpoint.maxSendable/1e3):HH}get lightningUri(){return this.invoice?`lightning:${this.invoice}`:""}get parsedInvoice(){if(!this.invoice)return null;try{return this.nostrZap.parseInvoice(this.invoice)}catch{return null}}async _loadLightningInfo(){const t=this.photo?.pubkey;if(!t)return;this.nostrZap.loadRecipientRelays(t).catch(()=>{});const e=this.nostrZap.getLightningAddress(t);if(e){this.lightningAddress=e,this.lnurlLoading=!0,this.lnurlError=null;try{this.lnurlEndpoint=await this.nostrZap.resolveLnurl(e)}catch(PD){this.lnurlError=PD instanceof Error?PD.message:"Failed to fetch lightning info"}finally{this.lnurlLoading=!1}}else this.lnurlError="This user has no lightning address set in their profile"}updateSlider(t){this.sliderPosition=Number(t.target.value)}static{dF(this.prototype,"updateSlider",[Vl])}updateMessage(t){this.message=t.target.value}static{dF(this.prototype,"updateMessage",[Vl])}handleClose(){this.args.onClose&&this.args.onClose()}static{dF(this.prototype,"handleClose",[Vl])}resetAndClose(){this._cleanupReceiptSub(),this.step="select-amount",this.error=null,this.invoice=null,this.paymentNotDetected=!1,this.handleClose()}static{dF(this.prototype,"resetAndClose",[Vl])}retry(){this.step="select-amount",this.error=null}static{dF(this.prototype,"retry",[Vl])}showInvoice(){this.step="awaiting-payment",this.error=null}static{dF(this.prototype,"showInvoice",[Vl])}performZap(){this.zapTask.perform()}static{dF(this.prototype,"performZap",[Vl])}performWebLNPay(){this.webLNPayTask.perform()}static{dF(this.prototype,"performWebLNPay",[Vl])}copyInvoice(){if(this.invoice)try{navigator.clipboard.writeText(this.invoice),this.toast.show("Invoice copied to clipboard")}catch{}}static{dF(this.prototype,"copyInvoice",[Vl])}_startReceiptSubscription(t){this._cleanupReceiptSub(),this._zapRequest=t,this.paymentNotDetected=!1,this._receiptSub=this.nostrZap.subscribeForZapReceipt(t,this.photo,()=>{this.step="success",this._cleanupReceiptSub()}),this._receiptTimeout=setTimeout(()=>{this.paymentNotDetected=!0},this.RECEIPT_TIMEOUT_MS)}_cleanupReceiptSub(){this._receiptSub&&(this._receiptSub.unsubscribe(),this._receiptSub=null),this._receiptTimeout&&(clearTimeout(this._receiptTimeout),this._receiptTimeout=null)}zapTask=vH(()=>({context:this,generator:function*(){if(this.canZap){this.step="fetching-invoice",this.error=null;try{const{invoice:t,zapRequest:e}=yield this.nostrZap.zap(this.photo,this.amountMsats,this.message);this.invoice=t,this.step="awaiting-payment",this._startReceiptSubscription(e)}catch(PD){console.error("Zap failed:",PD),this.error=PD instanceof Error?PD.message:"Failed to create zap",this.step="error"}}}}),null,"zapTask",null);webLNPayTask=vH(()=>({context:this,generator:function*(){if(this.invoice){this.step="paying-with-wallet",this.error=null;try{yield this.nostrZap.payWithWebln(this.invoice),this._cleanupReceiptSub(),this.step="success"}catch(PD){console.error("WebLN pay failed:",PD),this.error=PD instanceof Error?PD.message:"Failed to pay with wallet",this.step="wallet-pay-error"}}}}),null,"webLNPayTask",null);willDestroy(){this._cleanupReceiptSub(),super.willDestroy(...arguments)}static{Op(ig({id:null,block:'[[[8,[32,0],null,[["@inline","@onClose"],[true,[30,0,["resetAndClose"]]]],[["default"],[[[[1,"\\n "],[10,0],[14,0,"zap-photo-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Zap Photo"],[13],[1,"\\n\\n"],[1," "],[10,"section"],[14,0,"status"],[12],[1,"\\n"],[41,[30,0,["lnurlLoading"]],[[[1," "],[10,2],[14,0,"meta-info"],[12],[1,"Loading lightning address..."],[13],[1,"\\n"]],[]],[[[41,[30,0,["lightningAddress"]],[[[1," "],[10,0],[14,0,"lightning-address"],[12],[1,"\\n "],[10,1],[14,0,"lightning-badge"],[12],[1,"Lightning"],[13],[1,"\\n "],[10,1],[14,0,"lightning-address-text"],[12],[1,[30,0,["lightningAddress"]]],[13],[1,"\\n "],[13],[1,"\\n "]],[]],null]],[]]],[41,[30,0,["lnurlError"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["lnurlError"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["step"]],"select-amount"],null],[[[1," "],[10,"section"],[14,0,"slider"],[12],[1,"\\n "],[10,0],[14,0,"amount-display"],[12],[1,"\\n "],[10,1],[14,0,"amount-value zap-amount"],[12],[1,[30,0,["formattedAmount"]]],[13],[1,"\\n "],[10,1],[14,0,"amount-unit"],[12],[1,"sats"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"zap-slider"],[24,"min","0"],[16,"max",[30,0,["sliderSteps"]]],[16,2,[30,0,["sliderPosition"]]],[24,"aria-label","Zap amount in sats"],[24,4,"range"],[4,[32,2],["input",[30,0,["updateSlider"]]],null],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"slider-ticks"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["sliderTicks"]]],null]],null],null,[[[1," "],[10,1],[12],[1,[30,1]],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Message (optional)"],[13],[1,"\\n "],[11,"input"],[24,0,"form-control"],[24,"placeholder","Say something nice..."],[24,"aria-label","Zap message"],[16,2,[30,0,["message"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateMessage"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Cancel\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[16,"disabled",[30,0,["cannotZap"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["performZap"]]],null],[12],[1,"\\n Zap\\n "],[1,[30,0,["formattedAmount"]]],[1,"\\n sats\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"fetching-invoice"],null],[[[1," "],[10,0],[14,0,"centered"],[12],[1,"\\n "],[8,[32,3],[[24,0,"spin-animation"]],[["@name","@size"],["loading-ring",32]],null],[1,"\\n "],[10,2],[12],[1,"Creating zap request and fetching invoice..."],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"awaiting-payment"],null],[[[1," "],[10,2],[14,0,"zap-pay-prompt"],[12],[1,"\\n Scan to pay\\n "],[10,"strong"],[12],[1,[30,0,["formattedAmount"]]],[1," sats"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,4],[[30,0,["invoice"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["hasWebLN"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary btn-full webln-pay-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["performWebLNPay"]]],null],[12],[1,"\\n Open in Lightning wallet\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,3],[15,6,[30,0,["lightningUri"]]],[14,0,"btn btn-primary btn-full"],[12],[1,"\\n Open in Lightning wallet\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full copy-invoice-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["copyInvoice"]]],null],[12],[1,"\\n Copy payment request\\n "],[13],[1,"\\n\\n"],[41,[30,0,["paymentNotDetected"]],[[[1," "],[10,2],[14,0,"meta-info"],[12],[1,"\\n Payment not detected yet. Keep the QR code open and try paying\\n again, or use a different Lightning wallet.\\n "],[13],[1,"\\n"]],[]],null]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"paying-with-wallet"],null],[[[1," "],[10,0],[14,0,"centered"],[12],[1,"\\n "],[8,[32,3],[[24,0,"spin-animation"]],[["@name","@size"],["loading-ring",32]],null],[1,"\\n "],[10,2],[12],[1,"Paying invoice with WebLN..."],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"wallet-pay-error"],null],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["error"]]],[13],[1,"\\n "],[10,2],[14,0,"meta-info"],[12],[1,"\\n The WebLN payment failed. You can still scan the QR code with a\\n Lightning wallet.\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Cancel\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["showInvoice"]]],null],[12],[1,"\\n Show Invoice\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"success"],null],[[[1," "],[10,0],[14,0,"success zap-success"],[12],[1,"\\n "],[10,0],[14,0,"success-icon"],[12],[1,"⚡"],[13],[1,"\\n "],[10,"h4"],[12],[1,"Zap Sent!"],[13],[1,"\\n "],[10,2],[12],[1,"\\n You zapped\\n "],[10,"strong"],[12],[1,[30,0,["formattedAmount"]]],[1," sats"],[13],[1,"\\n"],[41,[30,0,["message"]],[[[1," with message: \\""],[1,[30,0,["message"]]],[1,"\\"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Done\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"error"],null],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["error"]]],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Close\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["retry"]]],null],[12],[1,"\\n Try Again\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]]]]]],["label"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({Modal:bV,eq:dV,on:Hw,Icon:Gq,qrCode:nW}),isStrictMode:!0}),this)}},KH=Op(ig({id:null,block:'[[[11,0],[24,0,"photo-gallery-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[4,[30,2],[[30,3]],null],[12],[1,"\\n"],[1," "],[10,0],[14,0,"photo-gallery-content"],[15,"data-current-event-id",[30,4,["eventId"]]],[12],[1,"\\n "],[10,0],[14,0,"photo-gallery-header"],[12],[1,"\\n "],[10,0],[14,0,"actions-btn-container"],[12],[1,"\\n "],[8,[32,1],null,[["@iconSize","@triggerIcon","@iconColor"],[24,[30,5],"white"]],[["default"],[[[[1,"\\n "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,7],[30,6]],null]],null],[12],[1,"Copy Photo Event ID"],[13],[1,"\\n"],[41,[30,8],[[[1," "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,9],[30,6]],null]],null],[12],[1,"Zap this photo"],[13],[1,"\\n"]],[]],null],[41,[30,10],[[[1," "],[11,"button"],[24,0,"dropdown-item text-danger"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,11],[30,6]],null]],null],[12],[1,"Delete Photo"],[13],[1,"\\n"]],[]],null],[1," "]],[6]]]]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,3],[[30,12],[30,13]],null],[[[1," "],[10,0],[14,0,"photo-gallery-uploader-info"],[12],[1,"\\n"],[41,[30,12],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-name"],[12],[1,[30,12]],[13],[1,"\\n"]],[]],null],[41,[30,13],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-date"],[12],[1,"\\n "],[1,[28,[32,4],[[30,13]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"close-btn btn-text"],[24,"aria-label","Close gallery"],[24,"title","Close"],[24,4,"button"],[4,[32,0],["click",[30,14]],null],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["x",24,"white"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"main-photo-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onVisiblePhotoChange","@name"],["gallery-main",[30,15],[30,4,["eventId"]],[30,16],[30,17]]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"thumbnail-strip-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onPhotoClick","@name"],["gallery-thumbnails",[30,15],[30,4,["eventId"]],[30,18],[30,17]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,19],[[[1," "],[8,[32,7],null,[["@photo","@onClose"],[[30,4],[30,20]]],null],[1,"\\n"]],[]],null],[13]],["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@currentPhoto","@triggerIcon","closeMenu","@copyEventId","@canZapPhoto","@openZap","@canDeletePhoto","@deletePhoto","@uploaderName","@photoDate","@handleClose","@photos","@handleVisiblePhotoChange","@placeName","@selectPhoto","@zapModalOpen","@closeZap"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,DropdownMenu:WH,fn:uV,or:CV,formatRelativeDate:gV,Icon:Gq,PhotoCarousel:VH,ZapPhotoModal:ZH}),isStrictMode:!0}),pV()),YH=class extends Wq{get isTesting(){return"test"===ix.environment}get destinationElement(){return document.getElementById("modal-portal")||document.body}static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrZap",[pp])}#Re=void pF(this,"nostrZap");static{hF(this.prototype,"blossom",[pp])}#de=void pF(this,"blossom");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"currentPhoto",[Wr],function(){return this.args.selectedPhoto||this.args.photos?.[0]})}#ze=void pF(this,"currentPhoto");static{hF(this.prototype,"zapModalOpen",[Wr],function(){return!1})}#Fe=void pF(this,"zapModalOpen");get triggerIcon(){return"undefined"!=typeof window&&window.innerWidth<=768?"more-vertical":"more-horizontal"}get isCreator(){return this.currentPhoto?.pubkey&&this.nostrAuth.pubkey&&this.currentPhoto.pubkey===this.nostrAuth.pubkey}get canDeletePhoto(){return this.isCreator&&!0===this.settings.experimentalEnablePhotoDeletion}get canZapPhoto(){return!this.isCreator&&this.nostrAuth.isConnected&&!!this.nostrZap.getLightningAddress(this.currentPhoto?.pubkey)}get uploaderName(){const t=this.currentPhoto?.pubkey;if(!t)return null;const e=this.nostrData.getProfile?.(t);return e&&(e.displayName||e.display_name||e.name)||null}get photoDate(){return this.currentPhoto?.publishedAt||this.currentPhoto?.createdAt||null}bindKeyboard=EV((t,[e])=>(document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)));handleClose(){this.args.onClose&&this.args.onClose()}static{dF(this.prototype,"handleClose",[Vl])}handleBackgroundClick(t){t.target.closest(".thumbnail-strip-container")||t.target.closest(".carousel-nav-btn")||t.target.closest(".close-btn")||t.target.closest(".photo-gallery-header")||t.target.closest(".modal-overlay")||this.handleClose()}static{dF(this.prototype,"handleBackgroundClick",[Vl])}selectPhoto(t){this.currentPhoto=t}static{dF(this.prototype,"selectPhoto",[Vl])}handleVisiblePhotoChange(t){this.currentPhoto!==t&&(this.currentPhoto=t)}static{dF(this.prototype,"handleVisiblePhotoChange",[Vl])}handleKeydown(t){if(!this.args.photos||0===this.args.photos.length)return;if("Escape"===t.key)return void this.handleClose();const e=this.args.photos.indexOf(this.currentPhoto);-1!==e&&("ArrowLeft"===t.key&&e>0?this.currentPhoto=this.args.photos[e-1]:"ArrowRight"===t.key&&e({context:this,generator:function*(){const t=this.currentPhoto.eventId,e=this.args.photos?.indexOf(this.currentPhoto)??-1;try{const r=[["e",t]];this.currentPhoto.placeIdentifier&&r.push(["i",this.currentPhoto.placeIdentifier]);const i=yield oz.fromKind(5).content("Deleted photo").modifyPublicTags(()=>r).as(this.nostrAuth.signer).sign();yield this.nostrRelay.publish(this.nostrData.activeWriteRelays,i),this.nostrData.store.add(i);const s=/[0-9a-f]{64}/i;if(this.currentPhoto.url){const t=this.currentPhoto.url.match(s);if(t)try{yield this.blossom.delete(t[0])}catch(n){console.warn("Failed to delete main image from blossom:",n)}}if(this.currentPhoto.thumbUrl){const t=this.currentPhoto.thumbUrl.match(s);if(t)try{yield this.blossom.delete(t[0])}catch(n){console.warn("Failed to delete thumb image from blossom:",n)}}this.toast.show("Photo deleted successfully");const o=(this.args.photos||[]).filter(e=>e.eventId!==t);0===o.length?this.handleClose():this.currentPhoto=o[Math.min(e,o.length-1)]}catch(n){console.error("Failed to delete photo:",n),this.toast.show("Failed to delete photo: "+n.message)}}}),null,"deletePhotoTask",null);static{Op(ig({id:null,block:'[[[41,[30,0,["isTesting"]],[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhoto","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon","@openZap","@closeZap","@zapModalOpen","@canZapPhoto"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhoto"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]],[30,0,["openZap"]],[30,0,["closeZap"]],[30,0,["zapModalOpen"]],[30,0,["canZapPhoto"]]]],null],[1,"\\n"]],[]],[[[40,[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhoto","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon","@openZap","@closeZap","@zapModalOpen","@canZapPhoto"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhoto"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]],[30,0,["openZap"]],[30,0,["closeZap"]],[30,0,["zapModalOpen"]],[30,0,["canZapPhoto"]]]],null],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]]]],["@photos","@placeName"],["if","in-element","-in-el-null"]]',moduleName:"(unknown template module)",scope:()=>({GalleryContent:KH}),isStrictMode:!0}),this)}},XH=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"isEditing",[Wr],function(){return!1})}#De=void pF(this,"isEditing");static{hF(this.prototype,"showLists",[Wr],function(){return!1})}#je=void pF(this,"showLists");static{hF(this.prototype,"isPhotoUploadActive",[Wr],function(){return!1})}#Ue=void pF(this,"isPhotoUploadActive");static{hF(this.prototype,"isConnectingNostr",[Wr],function(){return!1})}#Be=void pF(this,"isConnectingNostr");static{hF(this.prototype,"isGalleryOpen",[Wr],function(){return!1})}#$e=void pF(this,"isGalleryOpen");static{hF(this.prototype,"selectedGalleryPhoto",[Wr],function(){return null})}#qe=void pF(this,"selectedGalleryPhoto");static{hF(this.prototype,"isPhotoUploadModalOpen",[Wr],function(){return!1})}#Ve=void pF(this,"isPhotoUploadModalOpen");static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");static{hF(this.prototype,"newlyUploadedPhotoId",[Wr],function(){return null})}#We=void pF(this,"newlyUploadedPhotoId");handleUploadStateChange(t){this.isPhotoUploadActive=t}static{dF(this.prototype,"handleUploadStateChange",[Vl])}openPhotoUploadModal(t){t&&t.preventDefault(),this.nostrAuth.isConnected?this.isPhotoUploadModalOpen=!0:this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openPhotoUploadModal",[Vl])}closePhotoUploadModal(t){this.isPhotoUploadActive||(this.isPhotoUploadModalOpen=!1,"string"==typeof t&&(this.newlyUploadedPhotoId=t,setTimeout(()=>{const t=document.querySelector(".sidebar-content");t&&(t.scrollTop=0)},50)))}static{dF(this.prototype,"closePhotoUploadModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.isNostrConnectModalOpen=!1,this.isPhotoUploadModalOpen=!0}static{dF(this.prototype,"onNostrConnected",[Vl])}get isSaved(){return this.storage.isPlaceSaved(this.place.id||this.place.osmId)}get place(){return this.args.place||{}}get saveablePlace(){return this.place.createdAt?this.place:K$(this.place)}get tags(){return this.place.osmTags||{}}get name(){return this.place.title||JB(this.tags)||"Unnamed Place"}get photos(){return sB(this.nostrData.placePhotos).map(t=>({...t,style:qv(`--slide-ratio: ${t.aspectRatio};`)}))}get hasUntrustedContent(){return this.nostrData.untrustedContentCount>0&&!this.nostrData.showUntrustedContent}get hasMultipleUntrusted(){return this.nostrData.untrustedContentCount>1}startEditing(){this.isSaved&&(this.isEditing=!0)}static{dF(this.prototype,"startEditing",[Vl])}cancelEditing(){this.isEditing=!1}static{dF(this.prototype,"cancelEditing",[Vl])}toggleLists(t){t&&t.stopPropagation(),this.showLists=!this.showLists}static{dF(this.prototype,"toggleLists",[Vl])}closeLists(){this.showLists=!1}static{dF(this.prototype,"closeLists",[Vl])}async saveChanges(t){this.args.onSave&&await this.args.onSave({...this.place,...t}),this.isEditing=!1}static{dF(this.prototype,"saveChanges",[Vl])}get type(){return t$(this.tags)}get address(){const t=this.tags,e=[],n=(...e)=>{for(const n of e)if(t[n])return t[n];return null};let r=n("addr:street","street");const i=n("addr:housenumber","housenumber");r&&(i&&(r=`${r} ${i}`),e.push(r));let s=n("addr:city","city");const o=n("addr:postcode","postcode");s&&(o&&(s=`${o} ${s}`),e.push(s));const a=n("addr:state","state"),l=n("addr:country","country");return a&&a!==s&&e.push(a),l&&e.push(l),0===e.length?null:e.join(", ")}formatMultiLine(t,e){if(!t)return null;const n=[...new Set(t.split(";").map(t=>t.trim()).filter(Boolean))];return 0===n.length?null:qv("phone"===e?n.map(t=>`${t}`).join("
"):"email"===e?n.map(t=>`${t}`).join("
"):"whatsapp"===e?n.map(t=>`${t}`).join("
"):"url"===e?n.map(t=>`${this.getDomain(t)}`).join("
"):n.join("
"))}get phone(){const t=[this.tags.phone,this.tags["contact:phone"],this.tags.mobile,this.tags["contact:mobile"]].filter(Boolean);return 0===t.length?null:this.formatMultiLine(t.join(";"),"phone")}get whatsapp(){const t=[this.tags.whatsapp,this.tags["contact:whatsapp"]].filter(Boolean);return 0===t.length?null:this.formatMultiLine(t.join(";"),"whatsapp")}get email(){const t=this.tags.email||this.tags["contact:email"];return this.formatMultiLine(t,"email")}get website(){const t=this.place.url||this.tags.website||this.tags["contact:website"];return this.formatMultiLine(t,"url")}getDomain(t){try{return new URL(t).hostname}catch{return t}}get openingHours(){const t=this.tags.opening_hours;return this.formatMultiLine(t)}get cuisine(){return this.tags.cuisine?this.tags.cuisine.split(";").map(t=>ZB(t)).join(", "):null}get facebook(){return J$(this.tags,"facebook")}get instagram(){return J$(this.tags,"instagram")}get wikipedia(){const t=this.tags.wikipedia;return t?t.split(";").map(t=>t.trim()).filter(Boolean)[0]:null}get geoLink(){const t=this.place.lat,e=this.place.lon;return t&&e?`geo:${t},${e}?q=${t},${e}(${encodeURIComponent(this.name)})`:"#"}get visibleGeoLink(){const t=this.place.lat,e=this.place.lon;return t&&e?`${Number(t).toFixed(6)}, ${Number(e).toFixed(6)}`:""}get osmUrl(){const t=this.place.osmId;if(t)return`https://www.openstreetmap.org/${this.place.osmType||"node"}/${t}`;const e=this.place.lat,n=this.place.lon;if(!e||!n)return null;const r=this.mapUi.currentCenter?.lat??e,i=this.mapUi.currentCenter?.lon??n,s=this.mapUi.currentZoom??17,o=Math.round(s);return`https://www.openstreetmap.org/search?lat=${e}&lon=${n}&zoom=${o}#map=${o}/${Number(r).toFixed(5)}/${Number(i).toFixed(5)}`}get gmapsUrl(){return this.place.gmapsId||this.place.osmId?`https://www.google.com/maps/search/?api=1&query=${this.name}&query=${this.place.lat},${this.place.lon}`:null}get showDescription(){return"photon"!==this.place.source&&!!this.place.description}openGallery(t){this.selectedGalleryPhoto=t,this.isGalleryOpen=!0}static{dF(this.prototype,"openGallery",[Vl])}closeGallery(){this.isGalleryOpen=!1,this.selectedGalleryPhoto=null}static{dF(this.prototype,"closeGallery",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"place-details"],[12],[1,"\\n"],[41,[30,0,["isEditing"]],[[[1," "],[8,[32,0],null,[["@place","@onSave","@onCancel"],[[30,0,["place"]],[30,0,["saveChanges"]],[30,0,["cancelEditing"]]]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@variant","@photos","@name","@resetKey","@scrollToEventId","@onPhotoClick"],["inline",[30,0,["photos"]],[30,0,["name"]],[30,0,["place","osmId"]],[30,0,["newlyUploadedPhotoId"]],[30,0,["openGallery"]]]],null],[1,"\\n "],[10,"h3"],[12],[1,[30,0,["name"]]],[13],[1,"\\n "],[10,2],[14,0,"place-type"],[12],[1,"\\n "],[1,[30,0,["type"]]],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["showDescription"]],[[[1," "],[10,2],[14,0,"place-description"],[12],[1,"\\n "],[1,[30,0,["place","description"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[]]],[1,"\\n "],[10,0],[14,0,"actions"],[12],[1,"\\n "],[10,0],[14,0,"save-button-wrapper"],[12],[1,"\\n "],[11,"button"],[16,0,[52,[30,0,["isSaved"]],"btn btn-secondary","btn btn-outline"]],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleLists"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["bookmark",[52,[30,0,["isSaved"]],"currentColor","var(--link-color)"]]],null],[1,"\\n "],[1,[52,[30,0,["isSaved"]],"Saved","Save"]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showLists"]],[[[1," "],[8,[32,4],null,[["@place","@onClose","@isSaved"],[[30,0,["saveablePlace"]],[30,0,["closeLists"]],[30,0,["isSaved"]]]],null],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isSaved"]],[[[1," "],[11,"button"],[24,0,"btn btn-outline"],[24,"title","Edit"],[16,"disabled",[30,0,["isEditing"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["startEditing"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["edit","var(--link-color)"]],null],[1,"\\n Edit\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["cuisine"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["fork-and-knife","Cuisine"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["cuisine"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["openingHours"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["clock","Opening hours"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["openingHours"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["phone"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["phone","Phone"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["phone"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["whatsapp"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["whatsapp","WhatsApp"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["whatsapp"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["website"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["globe","Website"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["website"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["email"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["mail","Email"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["email"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["facebook"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["facebook","Facebook"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["facebook","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["facebook","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["instagram"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["instagram","Instagram"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["instagram","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["instagram","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["wikipedia"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["wikipedia","Wikipedia"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[29,["https://wikipedia.org/wiki/",[30,0,["wikipedia"]]]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Wikipedia\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["address"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["home","Address"]],null],[1,"\\n "],[10,1],[12],[1,[30,0,["address"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["map-pin","Geo link"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["geoLink"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["visibleGeoLink"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["osmUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["osmUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n OpenStreetMap\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["gmapsUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["gmapsUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Google Maps\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["place","osmId"]],[[[1," "],[10,0],[14,0,"meta-info"],[12],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["feather-camera"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[11,"button"],[24,0,"btn-link"],[24,4,"button"],[4,[32,2],["click",[30,0,["openPhotoUploadModal"]]],null],[12],[1,"\\n Add a photo\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasUntrustedContent"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["shield"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[11,"button"],[24,0,"btn-link"],[24,4,"button"],[4,[32,2],["click",[30,0,["nostrData","toggleShowUntrustedContent"]]],null],[12],[1,"\\n Show\\n "],[1,[30,0,["nostrData","untrustedContentCount"]]],[1,"\\n hidden photo"],[1,[52,[30,0,["hasMultipleUntrusted"]],"s",""]],[1,"\\n (untrusted relays)\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[13],[1,"\\n\\n"],[41,[30,0,["isPhotoUploadModalOpen"]],[[[1," "],[8,[32,5],null,[["@onClose","@disableClose"],[[30,0,["closePhotoUploadModal"]],[30,0,["isPhotoUploadActive"]]]],[["default"],[[[[1,"\\n "],[8,[32,6],null,[["@place","@onClose","@onUploadStateChange"],[[30,0,["saveablePlace"]],[30,0,["closePhotoUploadModal"]],[30,0,["handleUploadStateChange"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,5],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isGalleryOpen"]],[[[1," "],[8,[32,8],null,[["@photos","@selectedPhoto","@placeName","@onClose"],[[30,0,["photos"]],[30,0,["selectedGalleryPhoto"]],[30,0,["name"]],[30,0,["closeGallery"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlaceEditForm:NH,PhotoCarousel:VH,on:Hw,Icon:Gq,PlaceListsManager:FH,Modal:bV,PlacePhotoUpload:$H,NostrConnect:rW,PhotoGallery:YH}),isStrictMode:!0}),this)}},JH=Eb(function([t]){return ZB(t)}),QH=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");createNewPlace(){const t=this.router.currentRoute.queryParams,e=t.lat,n=t.lon;e&&n?this.router.transitionTo("place.new",{queryParams:{lat:e,lon:n}}):this.router.transitionTo("place.new",{queryParams:{lat:0,lon:0}})}static{dF(this.prototype,"createNewPlace",[Vl])}selectPlace(t){this.args.onSelect&&this.args.onSelect(t)}static{dF(this.prototype,"selectPlace",[Vl])}clearSelection(){this.args.onSelect&&this.args.onSelect(null)}static{dF(this.prototype,"clearSelection",[Vl])}async toggleSave(t){if(t)if(t.createdAt)try{if(await this.storage.removePlace(t),console.debug("Place deleted:",t.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate){const e={...t,id:void 0,geohash:void 0,createdAt:void 0};this.args.onUpdate(e)}this.args.onSelect&&this.args.onSelect(null),this.args.onClose&&this.args.onClose()}catch(e){console.error("Failed to delete:",e),alert("Failed to delete: "+e.message)}else{const e={title:JB(t.osmTags,"Untitled Place"),lat:t.lat,lon:t.lon,tags:[],url:t.osmTags.website,osmId:String(t.osmId||t.id),osmType:t.osmType,osmTags:t.osmTags};try{const t=await this.storage.storePlace(e);console.debug("Place saved:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(t),this.args.onSelect&&this.args.onSelect(t)}catch(X8){console.error("Failed to save place:",X8),alert("Failed to save place: "+X8.message)}}}static{dF(this.prototype,"toggleSave",[Vl])}async updateBookmark(t){try{const e=await this.storage.updatePlace(t);console.debug("Place updated:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(e)}catch(e){console.error("Failed to update place:",e),alert("Failed to update place: "+e.message)}}static{dF(this.prototype,"updateBookmark",[Vl])}get isNearbySearch(){const t=this.router.currentRoute.queryParams;return!t.q&&!t.category&&t.lat&&t.lon}get hasHeaderPhoto(){return this.args.selectedPlace&&this.nostrData.placePhotos&&this.nostrData.placePhotos.length>0}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[15,0,[29,["sidebar-header\\n ",[52,[30,0,["hasHeaderPhoto"]],"no-border"],"\\n ",[52,[28,[32,0],[[28,[32,1],[[30,1]],null],[30,2]],null],"has-back-btn"]]]],[12],[1,"\\n"],[41,[30,1],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["clearSelection"]]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],[[[41,[30,2],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],null],[41,[30,2],[[[1," "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["bookmark",20,[28,[32,4],[[30,3],"#898989"],null]]],null],[1,"\\n "],[13],[1,"\\n "],[1,[30,4]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["target",20,"#ea4335"]],null],[1,"\\n Nearby"],[13],[1,"\\n"]],[]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["search",20,"#333"]],null],[1,"\\n Results"],[13],[1,"\\n"]],[]]]],[]]]],[]]],[1," "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,5]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,5],[[30,6]],null],[12],[1,"\\n"],[41,[30,1],[[[1," "],[8,[32,6],null,[["@place","@onToggleSave","@onSave"],[[30,1],[30,0,["toggleSave"]],[30,0,["updateBookmark"]]]],null],[1,"\\n"]],[]],[[[41,[30,7],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,8],[[[1," "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,8]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"place-item"],[24,4,"button"],[4,[32,2],["click",[28,[32,7],[[30,0,["selectPlace"]],[30,9]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"place-name"],[12],[1,[28,[32,4],[[30,9,["title"]],[30,9,["osmTags","name"]],[30,9,["osmTags","name:en"]],"Unnamed Place"],null]],[13],[1,"\\n "],[10,0],[14,0,"place-type"],[12],[1,"\\n"],[41,[28,[32,8],[[30,9,["source"]],"osm"],null],[[[1," "],[1,[28,[32,9],[[30,9,["type"]]],null]],[1,"\\n"]],[]],[[[41,[28,[32,8],[[30,9,["source"]],"photon"],null],[[[1," "],[1,[30,9,["description"]]],[1,"\\n"]],[]],[[[41,[28,[32,10],[[30,9,["osmTags"]]],null],[[[1," "],[1,[28,[32,10],[[30,9,["osmTags"]]],null]],[1,"\\n"]],[]],[[[1," Saved place\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[9]],null],[1," "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No places found nearby."],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No results found."],[13],[1,"\\n"]],[]]]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline create-place"],[24,4,"button"],[4,[32,2],["click",[30,0,["createNewPlace"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["plus",18,"var(--link-color)"]],null],[1,"\\n Create new place\\n "],[13],[1,"\\n"]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13]],["@selectedPlace","@onBack","@color","@title","@onClose","@scrollTop","@isLoading","@places","place"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:_V,not:xV,on:Hw,Icon:Gq,or:CV,restoreScroll:iW,PlaceDetails:XH,fn:uV,eq:dV,humanizeOsmTag:JH,getPlaceType:t$}),isStrictMode:!0}),this)}},tG=a({default:()=>eG}),eG=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@title","@color","@scrollTop","@isLoading","@onSelect","@onClose","@onBack"],[[30,1,["places"]],[30,1,["listTitle"]],[30,1,["listColor"]],[30,1,["scrollTop"]],[30,1,["loadPlacesTask","isRunning"]],[30,1,["selectPlace"]],[30,1,["close"]],[30,1,["backToLists"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:QH}),isStrictMode:!0}),pV()),nG=a({default:()=>lG});function rG(t){const e=t.createdAt;if(!e)return 0;if("number"==typeof e)return e;const n=Date.parse(e);return isNaN(n)?0:n}var iG,sG,oG,aG="saved",lG=class extends eu{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"model",[Wr])}#He=void pF(this,"model");static{hF(this.prototype,"loadedPlaces",[Wr],function(){return[]})}#Ge=void pF(this,"loadedPlaces");get listId(){return this.model?.list_id}loadPlacesTask=vH(()=>({context:this,generator:function*(t){this.loadedPlaces=[];try{this.loadedPlaces=yield this.storage.getPlacesInList(t)}catch(e){console.error("Failed to load places in list",t,e),this.loadedPlaces=[]}}}),{restartable:!0},"loadPlacesTask",null);get scrollTop(){return this.mapUi.getScrollPosition(`list-${this.listId}`)}get listColor(){if(this.listId===aG)return getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim();const t=this.storage.lists.find(t=>t.id===this.listId);return t&&t.color?t.color:getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()}get listTitle(){if(this.listId===aG)return"Saved Places";const t=this.storage.lists.find(t=>t.id===this.listId);return t?t.title:"Collections"}get places(){if(this.listId===aG)return[...this.storage.savedPlaces].sort((t,e)=>rG(e)-rG(t));const t=this.storage.lists.find(t=>t.id===this.listId),e=new Set(t?.placeRefs?.map(t=>t.id)||[]),n=this.storage.savedPlaces.filter(t=>e.has(t.id)),r=[],i=new Set;return n.forEach(t=>{r.push(t),i.add(t.id)}),this.loadedPlaces.forEach(t=>{e.has(t.id)&&!i.has(t.id)&&(r.push(t),i.add(t.id))}),r.sort((t,e)=>rG(e)-rG(t))}selectPlace(t){if(t){const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition(`list-${this.listId}`,e.scrollTop),this.mapUi.returnToRoute={name:"lists.list",model:this.listId},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",t)}}static{dF(this.prototype,"selectPlace",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}backToLists(){this.router.transitionTo("lists.index")}static{dF(this.prototype,"backToLists",[Vl])}},cG=a({default:()=>uG}),uG=class extends Qh{model(t){return{list_id:t.list_id}}setupController(t,e){t.model=e,super.setupController(t,e),"saved"!==e.list_id&&(t&&t.loadPlacesTask?t.loadPlacesTask.perform(e.list_id):console.error("controller.loadPlacesTask is undefined"))}},hG=a({default:()=>dG}),dG=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");savedList={id:"saved",title:"Saved",color:"var(--default-list-color)"};styleFor(t){const e=t||getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim();return qv(`background-color: ${e}`)}selectList(t){this.router.transitionTo("lists.list",t)}static{dF(this.prototype,"selectList",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{dF(this.prototype,"backToMenu",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["backToMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["bookmark",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n Saved Places\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["close"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"lists-index-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,0,["selectList"]],[30,0,["savedList","id"]]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"lists-index-item-left"],[12],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,0,["savedList","color"]]],null]],[12],[13],[1,"\\n "],[10,0],[14,0,"lists-index-name"],[12],[1,[30,0,["savedList","title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"lists-index-count"],[12],[1,"\\n"],[41,[30,0,["storage","savedPlaces","length"]],[[[1," "],[1,[30,0,["storage","savedPlaces","length"]]],[1,"\\n places\\n"]],[]],[[[1," empty\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"lists-index-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,0,["selectList"]],[30,1,["id"]]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"lists-index-item-left"],[12],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,1,["color"]]],null]],[12],[13],[1,"\\n "],[10,0],[14,0,"lists-index-name"],[12],[1,[30,1,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"lists-index-count"],[12],[1,"\\n"],[41,[30,1,["placeRefs","length"]],[[[1," "],[1,[30,1,["placeRefs","length"]]],[1,"\\n places\\n"]],[]],[[[1," empty\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],["list"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq,fn:uV}),isStrictMode:!0}),this)}},pG=a({default:()=>fG}),fG=class extends Qh{},gG=a({default:()=>mG}),mG=class extends Wq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");selectPlace(t){if(t){const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("search",e.scrollTop),this.mapUi.returnToSearch=!0,this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",t)}}static{dF(this.prototype,"selectPlace",[Vl])}close(){this.mapUi.hideSidebar()}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@scrollTop","@onSelect","@onClose"],[[30,0,["mapUi","searchResults"]],[28,[30,0,["mapUi","getScrollPosition"]],["search"],null],[30,0,["selectPlace"]],[30,0,["close"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:QH}),isStrictMode:!0}),this)}},yG=a({default:()=>vG}),vG=class extends eu{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"photon",[pp])}#Ze=void pF(this,"photon");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");queryParams=["lat","lon","q","selected","category"];lat=null;lon=null;q=null;selected=null;category=null;fetchResultsTask=vH(()=>({context:this,generator:function*(t){const e=this.mapUi.currentSearch&&t.q===this.mapUi.currentSearch.q&&t.category===this.mapUi.currentSearch.category&&t.lat===this.mapUi.currentSearch.lat&&t.lon===this.mapUi.currentSearch.lon,n=this.mapUi.searchResults&&this.mapUi.searchResults.length>0;if(e&&n)return void(this.mapUi.isSidebarVisible&&this.mapUi.showSidebar());this.mapUi.hideSidebar(),this.mapUi.clearSearchResults();const r=t.lat?parseFloat(t.lat):null,i=t.lon?parseFloat(t.lon):null;let s=[],o=null,a=null;try{if(t.category&&r&&i){o="category",a=t.category,this.mapUi.startLoading(o,a);let e=this.mapUi.currentBounds;if(!e){const t=.01;e={minLat:r-t,maxLat:r+t,minLon:i-t,maxLon:i+t}}s=yield this.osm.getCategoryPois(e,t.category,r,i),s=s.map(t=>({...t,_distance:M$(r,i,t.lat,t.lon)})).sort((t,e)=>t._distance-e._distance)}else if(t.q){o="text",a=t.q,this.mapUi.startLoading(o,a),s=yield this.photon.search(t.q,r,i);const e=t.q.toLowerCase();let n=[];e.length>=3&&(n=this.storage.savedPlaces.filter(t=>t.title?.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))),n.forEach(t=>{s.find(e=>t.osmId&&e.osmId===t.osmId||e.id&&e.id===t.id)||s.push(t)})}else if(r&&i){const t=50;s=yield this.osm.getNearbyPois(r,i,t),this.storage.savedPlaces.filter(e=>M$(r,i,e.lat,e.lon)<=t).forEach(t=>{s.find(e=>t.osmId&&e.osmId===t.osmId||e.id&&e.id===t.id)||s.push(t)}),s=s.map(t=>({...t,_distance:M$(r,i,t.lat,t.lon)})).sort((t,e)=>t._distance-e._distance)}}catch(X8){return console.error("Search request failed.",X8),this.toast.show("Search request failed. Please try again."),void this.mapUi.stopSearch()}finally{o&&a&&this.mapUi.stopLoading(o,a)}s=s.map(t=>this.storage.findPlaceById(t.osmId)||t);const l=t.selected||t.q;if(l&&s.length>0){let t=s.find(t=>t.osmTags&&(t.osmTags.name===l||t.osmTags["name:en"]===l));if(!t){const e=s[0];e._distance<=10&&(t=e)}if(t)return this.router.replaceWith("place",t),void this.mapUi.stopSearch()}this.mapUi.setSearchResults(s),this.mapUi.showSidebar(),this.mapUi.stopSearch()}}),{restartable:!0},"fetchResultsTask",null)},bG=a({default:()=>wG}),wG=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0},q:{refreshModel:!0},selected:{refreshModel:!0},category:{refreshModel:!0}};model(t){return t}setupController(t,e){super.setupController(t,e),t.fetchResultsTask.perform(e);const{q:n,category:r,lat:i,lon:s}=this.paramsFor("search");this.mapUi.currentSearch={q:n,category:r,lat:i,lon:s}}resetController(t,e){e&&(t.fetchResultsTask.cancelAll(),this.mapUi.stopSearch())}error(t,e){return this.mapUi.stopSearch(),this.toast.show("Search request failed. Please try again."),e&&e.abort(),!1}static{dF(this.prototype,"error",[Vl])}},_G=a({cacheFor:()=>tr,guidFor:()=>ll}),xG=(iG=pp("page-title"),oG=yq((sG=class extends _b{constructor(t){super(t),mq(this,"tokens",oG,this),gq(this,"tokenId",ll(this)),this.tokens.push({id:this.tokenId})}compute(t,e){const n={...e,id:this.tokenId,title:t.join("")};return this.tokens.push(n),this.tokens.scheduleTitleUpdate(),""}willDestroy(){super.willDestroy(),this.tokens.remove(this.tokenId),this.tokens.scheduleTitleUpdate()}}).prototype,"tokens",[iG],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),sG),CG="add",kG="remove",SG="propertychange";function EG(t){for(const e in t)delete t[e]}function RG(t){let e;for(e in t)return!1;return!e}function LG(t,e,n,r,i){if(i){const i=n;n=function(s){return t.removeEventListener(e,n),i.call(r??this,s)}}else r&&r!==t&&(n=n.bind(r));const s={target:t,type:e,listener:n};return t.addEventListener(e,n),s}function TG(t,e,n,r){return LG(t,e,n,r,!0)}function PG(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),EG(t))}var IG="change",MG="contextmenu",AG="click",OG="keydown",NG="keypress",zG="touchmove",FG="wheel",DG=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function jG(t,e){return t>e?1:te?-1:0}function BG(t,e,n){if(t[0]<=e)return 0;const r=t.length;if(e<=t[r-1])return r-1;if("function"==typeof n){for(let i=1;i0?i-1:i}return r-1}if(n>0){for(let n=1;n0)}removeEventListener(t,e){if(!this.listeners_)return;const n=this.listeners_[t];if(!n)return;const r=n.indexOf(e);-1!==r&&(this.pendingRemovals_&&t in this.pendingRemovals_?(n[r]=GG,++this.pendingRemovals_[t]):(n.splice(r,1),0===n.length&&delete this.listeners_[t]))}},JG=class extends XG{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(IG)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const n=t.length,r=new Array(n);for(let i=0;i0;)this.pop()}extend(t){for(let e=0,n=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new sZ(CG,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let n=0,r=e.length;n=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new sZ(kG,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const n=this.array_[t];this.array_[t]=e,this.dispatchEvent(new sZ(kG,n,t)),this.dispatchEvent(new sZ(CG,e,t))}updateLength_(){this.set(iZ,this.array_.length)}assertUnique_(t,e){const n=this.array_;for(let r=0,i=n.length;r{this.clickTimeoutId_=void 0;const e=new lZ(cZ.SINGLECLICK,this.map_,t);this.dispatchEvent(e)},250)}updateActivePointers_(t){const e=t,n=e.pointerId;if(e.type==cZ.POINTERUP||e.type==cZ.POINTERCANCEL){delete this.trackedTouches_[n];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=cZ.POINTERDOWN&&e.type!=cZ.POINTERMOVE||(this.trackedTouches_[n]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new lZ(cZ.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(PG),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new lZ(cZ.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(LG(t,cZ.POINTERMOVE,this.handlePointerMove_,this),LG(t,cZ.POINTERUP,this.handlePointerUp_,this),LG(this.element_,cZ.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(LG(this.element_.getRootNode(),cZ.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new lZ(cZ.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new lZ(cZ.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(PG(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(zG,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(PG(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(PG),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},wZ="postrender",_Z="loadstart",xZ="loadend",CZ="layergroup",kZ="size",SZ="target",EZ="view";function RZ(t,e){if(!t)throw new Error(e)}var LZ=1/0,TZ=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,EG(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,n=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(t){RZ(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,n=this.priorities_,r=e.length,i=e[t],s=n[t],o=t;for(;t>1;){const i=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(r[t]>s))break;n[e]=n[t],r[e]=r[t],e=t}n[e]=i,r[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,n=this.priorities_;let r=0;const i=e.length;let s,o,a;for(o=0;ot.apply(null,e),t=>t[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=e,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(t){const e=super.enqueue(t);return e&&t[0].addEventListener(IG,this.boundHandleTileChange_),e}getTilesLoading(){return this.tilesLoading_}handleTileChange(t){const e=t.target,n=e.getState();if(2===n||3===n||4===n){3!==n&&e.removeEventListener(IG,this.boundHandleTileChange_);const t=e.getKey();t in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[t],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(t,e){let n=0;for(;this.tilesLoading_0;){const t=this.dequeue()[0],e=t.getKey();0!==t.getState()||e in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[e]=!0,++this.tilesLoading_,++n,t.load())}}},IZ={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function MZ(t,e,n){return Math.min(Math.max(t,e),n)}function AZ(t,e,n,r,i,s){const o=i-n,a=s-r;if(0!==o||0!==a){const l=((t-n)*o+(e-r)*a)/(o*o+a*a);l>1?(n=i,r=s):l>0&&(n+=o*l,r+=a*l)}return OZ(t,e,n,r)}function OZ(t,e,n,r){const i=n-t,s=r-e;return i*i+s*s}function NZ(t){return 180*t/Math.PI}function zZ(t){return t*Math.PI/180}function FZ(t,e){const n=t%e;return n*e<0?n+e:n}function DZ(t,e,n){return t+n*(e-t)}function jZ(t,e){const n=Math.pow(10,e);return Math.round(t*n)/n}function UZ(t,e){return Math.floor(jZ(t,e))}function BZ(t,e){return Math.ceil(jZ(t,e))}function $Z(t,e,n){if(t>=e&&tp&&(d=(p+d)/2,p=d),f>g&&(f=(g+f)/2,g=f);let m=MZ(r[0],d,p),y=MZ(r[1],f,g);if(o&&n&&i){const t=30*i;m+=-t*Math.log(1+Math.max(0,d-r[0])/t)+t*Math.log(1+Math.max(0,r[0]-p)/t),y+=-t*Math.log(1+Math.max(0,f-r[1])/t)+t*Math.log(1+Math.max(0,r[1]-g)/t)}return[m,y]}}function VZ(t){return t}function WZ(t){const e=[1/0,1/0,-1/0,-1/0];for(let n=0,r=t.length;ni&&(l|=4),as&&(l|=2),0===l&&(l=1),l}function QZ(t,e,n,r,i){return i?(i[0]=t,i[1]=e,i[2]=n,i[3]=r,i):[t,e,n,r]}function tK(t){return QZ(1/0,1/0,-1/0,-1/0,t)}function eK(t,e){const n=t[0],r=t[1];return QZ(n,r,n,r,e)}function nK(t,e,n,r,i){return oK(tK(i),t,e,n,r)}function rK(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function iK(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function sK(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function oK(t,e,n,r,i){for(;ne[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]n&&u.push([n,r,o,s]),lr&&u.push([o,r,l,a]),c=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function CK(t){return t[2]1){const e=t[2]-t[0],n=t[3]-t[1];for(let s=0;s=n[2])){const e=_K(n),i=Math.floor((r[0]-n[0])/e)*e;t[0]-=i,t[2]-=i}return t}function EK(t,e,n){if(e.canWrapX()){const r=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[r[0],t[1],r[2],t[3]]];SK(t,e);const i=_K(r);if(_K(t)>i&&!n)return[[r[0],t[1],r[2],t[3]]];if(t[0]r[2])return[[t[0],t[1],r[2],t[3]],[r[0],t[1],t[2]-i,t[3]]]}return[t]}function RK(t,e){let n=[t];for(let r=0,i=e.length;r0;++r){const t=[];for(let i=0,s=n.length;i=0;--r)if(t[r]!=e[r]){n=!1;break}return n}function TK(t,e){const n=Math.cos(e),r=Math.sin(e),i=t[0]*n-t[1]*r,s=t[1]*n+t[0]*r;return t[0]=i,t[1]=s,t}function PK(t,e){if(e.canWrapX()){const n=_K(e.getExtent()),r=function(t,e,n){const r=e.getExtent();let i=0;return e.canWrapX()&&(t[0]r[2])&&(n=n||_K(r),i=Math.floor((t[0]-r[0])/n)),i}(t,e,n);r&&(t[0]-=r*n)}return t}function IK(t){return Math.pow(t,3)}function MK(t){return 1-IK(1-t)}function AK(t){return 3*t*t-2*t*t*t}function OK(t){return t}function NK(t,e,n){n=n||6371008.8;const r=zZ(t[1]),i=zZ(e[1]),s=(i-r)/2,o=zZ(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(r)*Math.cos(i);return 2*n*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function zK(t,e,n,r){r=r||6371008.8;const i=zZ(t[1]),s=zZ(t[0]),o=e/r,a=Math.asin(Math.sin(i)*Math.cos(o)+Math.cos(i)*Math.sin(o)*Math.cos(n));return[NZ(s+Math.atan2(Math.sin(n)*Math.sin(o)*Math.cos(i),Math.cos(o)-Math.sin(i)*Math.sin(a))),NZ(a)]}function FK(...t){console.warn(...t)}var DK={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937},jK=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||DK[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}},UK=6378137,BK=Math.PI*UK,$K=[-BK,-BK,BK,BK],qK=[-180,-85,180,85],VK=UK*Math.log(Math.tan(Math.PI/2)),WK=class extends jK{constructor(t){super({code:t,units:"m",extent:$K,global:!0,worldExtent:qK,getPointResolution:function(t,e){return t/Math.cosh(e[1]/UK)}})}},HK=[new WK("EPSG:3857"),new WK("EPSG:102100"),new WK("EPSG:102113"),new WK("EPSG:900913"),new WK("http://www.opengis.net/def/crs/EPSG/0/3857"),new WK("http://www.opengis.net/gml/srs/epsg.xml#3857")],GK=[-180,-90,180,90],ZK=6378137*Math.PI/180,KK=class extends jK{constructor(t,e){super({code:t,units:"degrees",extent:GK,axisOrientation:e,global:!0,metersPerUnit:ZK,worldExtent:GK})}},YK=[new KK("CRS:84"),new KK("EPSG:4326","neu"),new KK("urn:ogc:def:crs:OGC:1.3:CRS84"),new KK("urn:ogc:def:crs:OGC:2:84"),new KK("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new KK("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new KK("http://www.opengis.net/def/crs/EPSG/0/4326","neu")],XK={},JK={};function QK(t,e,n){const r=t.getCode(),i=e.getCode();r in JK||(JK[r]={}),JK[r][i]=n}function tY(t,e){return t in JK&&e in JK[t]?JK[t][e]:null}var eY=.9996,nY=.00669438,rY=nY*nY*nY,iY=nY/.99330562,sY=Math.sqrt(.99330562),oY=(1-sY)/(1+sY),aY=oY*oY,lY=aY*oY,cY=lY*oY,uY=cY*oY,hY=.9983242984503243,dY=35*rY/3072,pY=1.5*oY-27/32*lY+269/512*uY,fY=21/16*aY-55/32*cY,gY=151/96*lY-417/128*uY,mY=1097/512*cY,yY=6378137;function vY(t,e,n){const r=t-5e5,i=(n.north?e:e-1e7)/eY/(yY*hY),s=i+pY*Math.sin(2*i)+fY*Math.sin(4*i)+gY*Math.sin(6*i)+mY*Math.sin(8*i),o=Math.sin(s),a=o*o,l=Math.cos(s),c=o/l,u=c*c,h=u*u,d=1-nY*a,p=Math.sqrt(1-nY*a),f=iY*l**2,g=f*f,m=r/(yY/p*eY),y=m*m,v=y*m,b=v*m,w=b*m,_=s-c/(.99330562/d)*(y/2-b/24*(5+3*u+10*f-4*g-9*iY))+w*m/720*(61+90*u+298*f+45*h-252*iY-3*g);let x=(m-v/6*(1+2*u+f)+w/120*(5-2*f+28*u-3*g+8*iY+24*h))/l;return x=$Z(x+zZ(wY(n.number)),-Math.PI,Math.PI),[NZ(x),NZ(_)]}function bY(t,e,n){t=$Z(t,-180,180),e<-80?e=-80:e>84&&(e=84);const r=zZ(e),i=Math.sin(r),s=Math.cos(r),o=i/s,a=o*o,l=a*a,c=zZ(t),u=zZ(wY(n.number)),h=yY/Math.sqrt(1-nY*i**2),d=iY*s**2,p=s*$Z(c-u,-Math.PI,Math.PI),f=p*p,g=f*p,m=g*p,y=m*p,v=y*p,b=yY*(hY*r-.002514607064228144*Math.sin(2*r)+26390466021299826e-22*Math.sin(4*r)-dY*Math.sin(6*r)),w=eY*h*(p+g/6*(1-a+d)+y/120*(5-18*a+l+72*d-58*iY))+5e5;let _=eY*(b+h*o*(f/2+m/24*(5-a+9*d+4*d**2)+v/720*(61-58*a+l+600*d-330*iY)));return n.north||(_+=1e7),[w,_]}function wY(t){return 6*(t-1)-180+3}var _Y=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function xY(t){let e=0;for(const i of _Y){const n=t.match(i);if(n){e=parseInt(n[1]);break}}if(!e)return null;let n=0,r=!1;return e>32700&&e<32761?n=e-32700:e>32600&&e<32661&&(r=!0,n=e-32600),n?{number:n,north:r}:null}function CY(t,e){return function(n,r,i,s){const o=n.length;i=i>1?i:2,s=s??i,r||(r=i>2?n.slice():new Array(o));for(let a=0;a180)&&(n[0]=FZ(r+180,360)-180),n}function UY(t,e){if(t===e)return!0;const n=t.getUnits()===e.getUnits();return(t.getCode()===e.getCode()||BY(t,e)===IY)&&n}function BY(t,e){const n=t.getCode(),r=e.getCode();let i=tY(n,r);if(i)return i;let s=null,o=null;for(const l of RY)s||(s=l(t)),o||(o=l(e));if(!s&&!o)return null;const a="EPSG:4326";if(o)if(s)i=$Y(s.inverse,o.forward);else{const t=tY(n,a);t&&(i=$Y(t,o.forward))}else{const t=tY(a,r);t&&(i=$Y(s.inverse,t))}return i&&(AY(t),AY(e),QK(t,e,i)),i}function $Y(t,e){return function(n,r,i,s){return r=t(n,r,i,s),e(r,r,i,s)}}function qY(t,e){return BY(OY(t),OY(e))}function VY(t,e,n){const r=qY(e,n);if(!r){const t=OY(e).getCode(),r=OY(n).getCode();throw new Error(`No transform available between ${t} and ${r}`)}return r(t,void 0,t.length)}function WY(t,e,n,r){return kK(t,qY(e,n),void 0,r)}function HY(t){return t}function GY(t){return TY&&!LK(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(TY=!1,FK("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t}function ZY(t){return t}zY(HK),zY(YK),kY=HK,SY=function(t,e,n,r){const i=t.length;n=n>1?n:2,r=r??n,void 0===e&&(e=n>2?t.slice():new Array(i));for(let s=0;sVK?n=VK:n<-VK&&(n=-VK),e[s+1]=n}return e},EY=function(t,e,n,r){const i=t.length;n=n>1?n:2,r=r??n,void 0===e&&(e=n>2?t.slice():new Array(i));for(let s=0;s{if(!n)return this.getSimplifiedGeometry(e);const r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(e)})}simplifyTransformed(t,e){return this.simplifyTransformedInternal(this.getRevision(),t,e)}clone(){return QG()}closestPointXY(t,e,n,r){return QG()}containsXY(t,e){return 0===this.closestPointXY(t,e,uX,Number.MIN_VALUE)}getClosestPoint(t,e){return e=e||[NaN,NaN],this.closestPointXY(t[0],t[1],e,1/0),e}intersectsCoordinate(t){return this.containsXY(t[0],t[1])}computeExtent(t){return QG()}getExtent(t){if(this.extentRevision_!=this.getRevision()){const t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&tK(t),this.extentRevision_=this.getRevision()}return function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)}rotate(t,e){QG()}scale(t,e,n){QG()}simplify(t){return this.getSimplifiedGeometry(t*t)}getSimplifiedGeometry(t){return QG()}getType(){return QG()}applyTransform(t){QG()}intersectsExtent(t){return QG()}translate(t,e){QG()}transform(t,e){const n=OY(t),r="tile-pixels"==n.getUnits()?function(t,r,i){const s=n.getExtent(),o=n.getWorldExtent(),a=mK(o)/mK(s);rX(cX,o[0],o[3],a,-a,0,0,0);const l=aX(t,0,t.length,i,cX,r),c=qY(n,e);return c?c(l,l,i):l}:qY(n,e);return this.applyTransform(r),this}},dX=class extends hX{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(t){return nK(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinates(){return QG()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=this.getSimplifiedGeometryInternal(t);return e.getFlatCoordinates().length1)h=n;else{if(d>0){for(let i=0;ii&&(i=a),s=n,o=r}return i}function bX(t,e,n,r,i){for(let s=0,o=n.length;ss&&(n-a)*(s-l)-(i-a)*(r-l)>0&&o++:r<=s&&(n-a)*(s-l)-(i-a)*(r-l)<0&&o--,a=n,l=r}return 0!==o}function PX(t,e,n,r,i,s){if(0===n.length)return!1;if(!TX(t,e,n[0],r,i,s))return!1;for(let o=1,a=n.length;o=i[0]&&s[2]<=i[2]||s[1]>=i[1]&&s[3]<=i[3]||IX(t,e,n,r,function(t,e){return function(t,e,n){let r=!1;const i=JZ(t,e),s=JZ(t,n);if(1===i||1===s)r=!0;else{const o=t[0],a=t[1],l=t[2],c=t[3],u=e[0],h=e[1],d=n[0],p=n[1],f=(p-h)/(d-u);let g,m;2&s&&!(2&i)&&(g=d-(p-c)/f,r=g>=o&&g<=l),r||!(4&s)||4&i||(m=p-(d-l)*f,r=m>=a&&m<=c),r||!(8&s)||8&i||(g=d-(p-a)/f,r=g>=o&&g<=l),r||!(16&s)||16&i||(m=p-(d-o)*f,r=m>=a&&m<=c)}return r}(i,t,e)}))}function AX(t,e,n,r,i){return!!(MX(t,e,n,r,i)||TX(t,e,n,r,i[0],i[1])||TX(t,e,n,r,i[0],i[3])||TX(t,e,n,r,i[2],i[1])||TX(t,e,n,r,i[2],i[3]))}function OX(t,e,n,r,i){if(!AX(t,e,n[0],r,i))return!1;if(1===n.length)return!0;for(let s=1,o=n.length;s0;){const n=c.pop(),s=c.pop();let o=0;const a=t[s],h=t[s+1],d=t[n],p=t[n+1];for(let e=s+r;eo&&(u=e,o=n)}o>i&&(l[(u-e)/r]=1,s+r0&&f>d)&&(p<0&&g0&&g>p)?(a=n,l=h):(s[o++]=a,s[o++]=l,c=a,u=l,a=n,l=h)}return s[o++]=a,s[o++]=l,o}function jX(t,e,n,r,i,s,o,a){for(let l=0,c=n.length;ly&&(c=(u+h)/2,PX(t,e,n,r,c,f)&&(m=c,y=i)),u=h}return isNaN(m)&&(m=i[s]),o?(o.push(m,f,y),o):[m,f,y]}function qX(t,e,n,r,i){let s=[];for(let o=0,a=n.length;o0}function HX(t,e,n,r,i){i=void 0!==i&&i;for(let s=0,o=n.length;su&&h1&&"function"==typeof arguments[n-1]&&(e=arguments[n-1],--n);let r=0;for(;r0}getInteracting(){return this.hints_[1]>0}cancelAnimations(){let t;this.setHint(0,-this.hints_[0]);for(let e=0,n=this.animations_.length;e=0;--n){const r=this.animations_[n];let i=!0;for(let n=0,s=r.length;n0?o/s.duration:1;a>=1?(s.complete=!0,a=1):i=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],n=s.targetCenter[0],r=s.targetCenter[1];this.nextCenter_=s.targetCenter;const i=t+l*(n-t),o=e+l*(r-e);this.targetCenter_=[i,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),n=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(n,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?FZ(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(i){this.animations_[n]=null,this.setHint(0,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=r[0].callback;t&&sJ(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let n;const r=this.getCenterInternal();var i,s;return void 0!==r&&(n=[r[0]-e[0],r[1]-e[1]],TK(n,t-this.getRotation()),s=e,(i=n)[0]+=+s[0],i[1]+=+s[1]),n}calculateCenterZoom(t,e){let n;const r=this.getCenterInternal(),i=this.getResolution();return void 0!==r&&void 0!==i&&(n=[e[0]-t*(e[0]-r[0])/i,e[1]-t*(e[1]-r[1])/i]),n}getViewportSize_(t){const e=this.viewportSize_;if(t){const n=e[0],r=e[1];return[Math.abs(n*Math.cos(t))+Math.abs(r*Math.sin(t)),Math.abs(n*Math.sin(t))+Math.abs(r*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?HY(t,this.getProjection()):t}getCenterInternal(){return this.get(IZ.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return e=this.calculateExtentInternal(t),this.getProjection(),e;var e}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();RZ(e,"The view center is not defined");const n=this.getResolution();RZ(void 0!==n,"The view resolution is not defined");const r=this.getRotation();return RZ(void 0!==r,"The view rotation is not defined"),fK(e,n,r,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(IZ.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(ZY(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const n=_K(t)/e[0],r=mK(t)/e[1];return Math.max(n,r)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(e/n)/Math.log(t);return function(n){return e/Math.pow(t,n*r)}}getRotation(){return this.get(IZ.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,i=Math.log(n/r)/e;return function(t){return Math.log(n/t)/e/i}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const n=this.padding_;return n&&(e=[e[0]-n[1]-n[3],e[1]-n[0]-n[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),n=this.getRotation();let r=this.getCenterInternal();const i=this.padding_;if(i){const t=this.getViewportSizeMinusPadding_();r=aJ(r,this.getViewportSize_(),[t[0]/2+i[3],t[1]/2+i[0]],e,n)}return{center:r.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,n,r=this.minZoom_||0;if(this.resolutions_){const i=BG(this.resolutions_,t,1);r=i,e=this.resolutions_[i],n=i==this.resolutions_.length-1?2:e/this.resolutions_[i+1]}else e=this.maxResolution_,n=this.zoomFactor_;return r+Math.log(e/t)/Math.log(n)}getResolutionForZoom(t){if(this.resolutions_?.length){if(1===this.resolutions_.length)return this.resolutions_[0];const e=MZ(Math.floor(t),0,this.resolutions_.length-2),n=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(n,MZ(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let n;if(RZ(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t))RZ(!CK(t),"Cannot fit empty extent provided as `geometry`"),n=JX(ZY(t,this.getProjection()));else if("Circle"===t.getType()){const e=ZY(t.getExtent(),this.getProjection());n=JX(e),n.rotate(this.getRotation(),dK(e))}else{const e=null;n=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(n,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),n=Math.cos(e),r=Math.sin(-e),i=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,c=-1/0;for(let u=0,h=i.length;ut.trim().replace(/^['"]|['"]$/g,"")),n};function yJ(t,e,n,r){let i;return i=n&&n.length?n.shift():fZ?new class extends OffscreenCanvas{style={}}(t??300,e??150):document.createElement("canvas"),t&&(i.width=t),e&&(i.height=e),i.getContext("2d",r)}function vJ(){return lJ||(lJ=yJ(1,1)),lJ}function bJ(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function wJ(t){let e=t.offsetWidth;const n=getComputedStyle(t);return e+=parseInt(n.marginLeft,10)+parseInt(n.marginRight,10),e}function _J(t){let e=t.offsetHeight;const n=getComputedStyle(t);return e+=parseInt(n.marginTop,10)+parseInt(n.marginBottom,10),e}function xJ(t,e){const n=e.parentNode;n&&n.replaceChild(t,e)}function CJ(t){for(;t.lastChild;)t.lastChild.remove()}function kJ(){return new Proxy({childNodes:[],appendChild:function(t){return this.childNodes.push(t),t},remove:function(){},removeChild:function(t){const e=this.childNodes.indexOf(t);if(-1===e)throw new Error("Node to remove was not found");return this.childNodes.splice(e,1),t},insertBefore:function(t,e){const n=this.childNodes.indexOf(e);if(-1===n)throw new Error("Reference node not found");return this.childNodes.splice(n,0,t),t},style:{}},{get:(t,e,n)=>"firstElementChild"===e?t.childNodes.length>0?t.childNodes[0]:null:Reflect.get(t,e,n)})}function SJ(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas}var EJ=class extends rZ{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&this.element?.remove();for(let e=0,n=this.listenerKeys.length;ee.getAttributions(t)));if(void 0!==this.attributions_&&(Array.isArray(this.attributions_)?this.attributions_.forEach(t=>n.add(t)):n.add(this.attributions_)),!this.overrideCollapsible_){const t=!e.some(t=>!1===t.getSource()?.getAttributionsCollapsible());this.setCollapsible(t)}return Array.from(n)}async updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=await Promise.all(this.collectSourceAttributions_(t).map(t=>KG(()=>t))),n=e.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!VG(e,this.renderedAttributions_)){CJ(this.ulElement_);for(let t=0,n=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:MK}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const n=e.viewState.rotation;if(n!=this.rotation_){const t="rotate("+n+"rad)";if(this.autoHide_){const t=this.element.classList.contains(cJ);t||0!==n?t&&0!==n&&this.element.classList.remove(cJ):this.element.classList.add(cJ)}this.label_.style.transform=t}this.rotation_=n}},TJ=class extends EJ{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",n=void 0!==t.delta?t.delta:1,r=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",i=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=a,c.appendChild("string"==typeof s?document.createTextNode(s):s),c.addEventListener(AG,this.handleClick_.bind(this,n),!1);const u=document.createElement("button");u.className=i,u.setAttribute("type","button"),u.title=l,u.appendChild("string"==typeof o?document.createTextNode(o):o),u.addEventListener(AG,this.handleClick_.bind(this,-n),!1);const h=e+" "+uJ+" "+hJ,d=this.element;d.className=h,d.appendChild(c),d.appendChild(u),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const n=e.getZoom();if(void 0!==n){const r=e.getConstrainedZoom(n+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:r,duration:this.duration_,easing:MK})):e.setZoom(r)}}};function PJ(t){t=t||{};const e=new oZ;return(void 0===t.zoom||t.zoom)&&e.push(new TJ(t.zoomOptions)),(void 0===t.rotate||t.rotate)&&e.push(new LJ(t.rotateOptions)),(void 0===t.attribution||t.attribution)&&e.push(new RJ(t.attributionOptions)),e}var IJ=class{constructor(t,e,n){this.decay_=t,this.minVelocity_=e,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[n+2]>t;)n-=3;const r=this.points_[e+2]-this.points_[n+2];if(r<1e3/60)return!1;const i=this.points_[e]-this.points_[n],s=this.points_[e+1]-this.points_[n+1];return this.angle_=Math.atan2(s,i),this.initialVelocity_=Math.sqrt(i*i+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},MJ="active",AJ=class extends rZ{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(MJ)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(MJ,t)}setMap(t){this.map_=t}};function OJ(t,e,n,r){const i=t.getZoom();if(void 0===i)return;const s=t.getConstrainedZoom(i+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:n,duration:void 0!==r?r:250,easing:MK})}var NJ=class extends AJ{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==cZ.DBLCLICK){const n=t.originalEvent,r=t.map,i=t.coordinate,s=n.shiftKey?-this.delta_:this.delta_;OJ(r.getView(),s,i,this.duration_),n.preventDefault(),e=!0}return!e}};function zJ(t){const e=arguments;return function(t){let n=!0;for(let r=0,i=e.length;r0}}else if(t.type==cZ.POINTERDOWN){const n=this.handleDownEvent(t);this.handlingDownUpSequence=n,e=this.stopDown(n)}else t.type==cZ.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function GJ(t){const e=t.length;let n=0,r=0;for(let i=0;i0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},KJ=class extends HJ{constructor(t){t=t||{},super({stopDown:HG}),this.condition_=t.condition?t.condition:FJ,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!VJ(t))return;const e=t.map,n=e.getView();if(n.getConstraints().rotation===nJ)return;const r=e.getSize(),i=t.pixel,s=Math.atan2(r[1]/2-i[1],i[0]-r[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;n.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){return!VJ(t)||(t.map.getView().endInteraction(this.duration_),!1)}handleDownEvent(t){return!(!VJ(t)||!UJ(t)||!this.condition_(t)||(t.map.getView().beginInteraction(),this.lastAngle_=void 0,0))}},YJ=class extends DG{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(t[0],e[0])+n,r.top=Math.min(t[1],e[1])+n,r.width=Math.abs(e[0]-t[0])+n,r.height=Math.abs(e[1]-t[1])+n}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;const t=this.startPixel_,e=this.endPixel_,n=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new XX([n])}getGeometry(){return this.geometry_}},XJ="boxcancel",JJ=class extends YG{constructor(t,e,n){super(t),this.coordinate=e,this.mapBrowserEvent=n}},QJ=class extends HJ{constructor(t){super(),this.on,this.once,this.un,t=t??{},this.box_=new YJ(t.className||"ol-dragbox"),this.minArea_=t.minArea??64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition??UJ,this.boxEndCondition_=t.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,n){const r=n[0]-e[0],i=n[1]-e[1];return r*r+i*i>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.startPixel_&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new JJ("boxdrag",t.coordinate,t)))}handleUpEvent(t){if(!this.startPixel_)return!1;const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new JJ(e?"boxend":XJ,t.coordinate,t)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new JJ("boxstart",t.coordinate,t)),!0)}onBoxEnd(t){}setActive(t){t||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new JJ(XJ,this.startPixel_,null)),this.startPixel_=null)),super.setActive(t)}setMap(t){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new JJ(XJ,this.startPixel_,null)),this.startPixel_=null)),super.setMap(t)}},tQ=class extends QJ{constructor(t){super({condition:(t=t||{}).condition?t.condition:$J,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let n=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(n),r=e.getResolutionForExtentInternal(t),i=e.getResolution()/r;n=n.clone(),n.scale(i*i)}e.fitInternal(n,{duration:this.duration_,easing:MK})}},eQ="ArrowLeft",nQ="ArrowRight",rQ="ArrowDown",iQ=class extends AJ{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return BJ(t)&&qJ(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==OG){const n=t.originalEvent,r=n.key;if(this.condition_(t)&&(r==rQ||r==eQ||r==nQ||"ArrowUp"==r)){const i=t.map.getView(),s=i.getResolution()*this.pixelDelta_;let o=0,a=0;r==rQ?a=-s:r==eQ?o=-s:r==nQ?o=s:a=s;const l=[o,a];TK(l,i.getRotation()),function(t,e,n){const r=t.getCenterInternal();if(r){const i=[r[0]+e[0],r[1]+e[1]];t.animateInternal({duration:void 0!==n?n:250,easing:OK,center:t.getConstrainedCenter(i)})}}(i,l,this.duration_),n.preventDefault(),e=!0}}return!e}},sQ=class extends AJ{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!function(t){const e=t.originalEvent;return dZ?e.metaKey:e.ctrlKey}(t)&&qJ(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==OG||t.type==NG){const n=t.originalEvent,r=n.key;if(this.condition_(t)&&("+"===r||"-"===r)){const i=t.map,s="+"===r?this.delta_:-this.delta_;OJ(i.getView(),s,void 0,this.duration_),n.preventDefault(),e=!0}}return!e}},oQ=class extends AJ{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:jJ;this.condition_=t.onFocusOnly?zJ(DJ,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300,this.ctrlKeyPressed_=!1,this.ctrlKeyListenerKeys_=[]}setMap(t){if(this.ctrlKeyListenerKeys_.forEach(PG),this.ctrlKeyListenerKeys_.length=0,this.ctrlKeyPressed_=!1,super.setMap(t),t){const e=t.getOwnerDocument();this.ctrlKeyListenerKeys_.push(LG(e,"keydown",t=>{"Control"===t.key&&(this.ctrlKeyPressed_=!0)}),LG(e,"keyup",t=>{"Control"===t.key&&(this.ctrlKeyPressed_=!1)}))}}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;const e=t.getView(),n=this.lastDelta_?this.lastDelta_>0?1:-1:0;e.endInteraction(this.constrainResolution_||e.getConstrainResolution()?100:void 0,n,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==FG)return!0;const e=t.map,n=t.originalEvent;n.preventDefault();const r=n.ctrlKey&&!this.ctrlKeyPressed_;n.ctrlKey||(this.ctrlKeyPressed_=!1),this.useAnchor_&&(this.lastAnchor_=t.pixel);let i=n.deltaY;switch(n.deltaMode){case WheelEvent.DOM_DELTA_LINE:i*=40;break;case WheelEvent.DOM_DELTA_PAGE:i*=300}if(0===i)return!1;this.lastDelta_=i;const s=Date.now();void 0===this.startTime_&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?"trackpad":"wheel");const o=e.getView();if("trackpad"===this.mode_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),r&&(i*=3),o.adjustZoom(-i/this.deltaPerZoom_,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=i;const a=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),a),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let n=-MZ(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),OJ(e,n,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}},aQ=class extends HJ{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=HG),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const n=this.targetPointers[0],r=this.targetPointers[1],i=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(void 0!==this.lastAngle_){const t=i-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=i;const s=t.map,o=s.getView();o.getConstraints().rotation!==nJ&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(GJ(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){return!(this.targetPointers.length<2&&(t.map.getView().endInteraction(this.duration_),1))}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}},lQ=class extends HJ{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=HG),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const n=this.targetPointers[0],r=this.targetPointers[1],i=n.clientX-r.clientX,s=n.clientY-r.clientY,o=Math.sqrt(i*i+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(GJ(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),n=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,n),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function cQ(t){t=t||{};const e=new oZ,n=new IJ(-.005,.05,100);return(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new KJ),(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new NJ({delta:t.zoomDelta,duration:t.zoomDuration})),(void 0===t.dragPan||t.dragPan)&&e.push(new ZJ({onFocusOnly:t.onFocusOnly,kinetic:n})),(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new aQ),(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new lQ({duration:t.zoomDuration})),(void 0===t.keyboard||t.keyboard)&&(e.push(new iQ),e.push(new sQ({delta:t.zoomDelta,duration:t.zoomDuration}))),(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new oQ({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration})),(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new tQ({duration:t.zoomDuration})),e}var uQ="opacity",hQ="visible",dQ="extent",pQ="zIndex",fQ="maxResolution",gQ="minResolution",mQ="maxZoom",yQ="minZoom",vQ="source",bQ=class extends rZ{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[uQ]=void 0!==t.opacity?t.opacity:1,RZ("number"==typeof e[uQ],"Layer opacity must be a number"),e[hQ]=void 0===t.visible||t.visible,e[pQ]=t.zIndex,e[fQ]=void 0!==t.maxResolution?t.maxResolution:1/0,e[gQ]=void 0!==t.minResolution?t.minResolution:0,e[yQ]=void 0!==t.minZoom?t.minZoom:-1/0,e[mQ]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},n=this.getZIndex();return e.opacity=MZ(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==n||e.managed?n:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return QG()}getLayerStatesArray(t){return QG()}getExtent(){return this.get(dQ)}getMaxResolution(){return this.get(fQ)}getMinResolution(){return this.get(gQ)}getMinZoom(){return this.get(yQ)}getMaxZoom(){return this.get(mQ)}getOpacity(){return this.get(uQ)}getSourceState(){return QG()}getVisible(){return this.get(hQ)}getZIndex(){return this.get(pQ)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(dQ,t)}setMaxResolution(t){this.set(fQ,t)}setMinResolution(t){this.set(gQ,t)}setMaxZoom(t){this.set(mQ,t)}setMinZoom(t){this.set(yQ,t)}setOpacity(t){RZ("number"==typeof t,"Layer opacity must be a number"),this.set(uQ,t)}setVisible(t){this.set(hQ,t)}setZIndex(t){this.set(pQ,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},wQ="addlayer",_Q="removelayer",xQ=class extends YG{constructor(t,e){super(t),this.layer=e}},CQ="layers",kQ=class t extends bQ{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let n=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(CQ,this.handleLayersChanged_),n?Array.isArray(n)?n=new oZ(n.slice(),{unique:!0}):RZ("function"==typeof n.getArray,"Expected `layers` to be an array or a `Collection`"):n=new oZ(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(PG),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(LG(t,CG,this.handleLayersAdd_,this),LG(t,kG,this.handleLayersRemove_,this));for(const n in this.listenerKeys_)this.listenerKeys_[n].forEach(PG);EG(this.listenerKeys_);const e=t.getArray();for(let n=0,r=e.length;n{this.dispatchEvent("sourceready")},0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const n=this.getMapInternal();let r;if(!t&&n&&(t=n.getView()),e=t instanceof iJ?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&n&&(e.layerStatesArray=n.getLayerGroup().getLayerStatesArray()),e.layerStatesArray){if(r=e.layerStatesArray.find(t=>t.layer===this),!r)return!1}else r=this.getLayerState();const i=this.getExtent();return PQ(r,e.viewState)&&(!i||xK(i,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];const e=this.getSource()?.getAttributions();if(!e)return[];let n=e(t instanceof iJ?t.getViewStateAndExtent():t);return Array.isArray(n)||(n=[n]),n}render(t,e){const n=this.getRenderer();return n.prepareFrame(t)?(this.rendered=!0,n.renderFrame(t,e)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(t,e){}renderDeferred(t){const e=this.getRenderer();e&&e.renderDeferred(t)}setMapInternal(t){t||this.unrender(),this.set("map",t)}getMapInternal(){return this.get("map")}setMap(t){this.mapPrecomposeKey_&&(PG(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(PG(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=LG(t,RQ,this.handlePrecompose_,this),this.mapRenderKey_=LG(this,IG,t.render,t),this.changed())}handlePrecompose_(t){const e=t.frameState.layerStatesArray,n=this.getLayerState(!1);RZ(!e.some(t=>t.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),e.push(n)}setSource(t){this.set(vQ,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function PQ(t,e){if(!t.visible)return!1;const n=e.resolution;if(n=t.maxResolution)return!1;const r=e.zoom;return r>t.minZoom&&r<=t.maxZoom}function IQ(t,e,n=0,r=t.length-1,i=AQ){for(;r>n;){if(r-n>600){const s=r-n+1,o=e-n+1,a=Math.log(s),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);IQ(t,e,Math.max(n,Math.floor(e-o*l/s+c)),Math.min(r,Math.floor(e+(s-o)*l/s+c)),i)}const s=t[e];let o=n,a=r;for(MQ(t,n,e),i(t[r],s)>0&&MQ(t,n,r);o0;)a--}0===i(t[n],s)?MQ(t,n,a):(a++,MQ(t,a,r)),a<=e&&(n=a+1),e<=a&&(r=a-1)}}function MQ(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function AQ(t,e){return te?1:0}var OQ=class{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const n=[];if(!HQ(t,e))return n;const r=this.toBBox,i=[];for(;e;){for(let s=0;s=0&&i[e].children.length>this._maxEntries;)this._split(i,e),e--;this._adjustParentBBoxes(r,i,e)}_split(t,e){const n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);const s=this._chooseSplitIndex(n,i,r),o=GQ(n.children.splice(s,n.children.length-s));o.height=n.height,o.leaf=n.leaf,zQ(n,this.toBBox),zQ(o,this.toBBox),e?t[e-1].children.push(o):this._splitRoot(n,o)}_splitRoot(t,e){this.data=GQ([t,e]),this.data.height=t.height+1,this.data.leaf=!1,zQ(this.data,this.toBBox)}_chooseSplitIndex(t,e,n){let r,i=1/0,s=1/0;for(let o=e;o<=n-e;o++){const e=FQ(t,0,o,this.toBBox),a=FQ(t,o,n,this.toBBox),l=VQ(e,a),c=BQ(e)+BQ(a);l=e;l--){const e=t.children[l];DQ(o,t.leaf?i(e):e),a+=$Q(o)}return a}_adjustParentBBoxes(t,e,n){for(let r=n;r>=0;r--)DQ(e[r],t)}_condense(t){for(let e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children,e.splice(e.indexOf(t[n]),1)):this.clear():zQ(t[n],this.toBBox)}};function NQ(t,e,n){if(!n)return e.indexOf(t);for(let r=0;r=t.minX&&e.maxY>=t.minY}function GQ(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function ZQ(t,e,n,r,i){const s=[e,n];for(;s.length;){if((n=s.pop())-(e=s.pop())<=r)continue;const o=e+Math.ceil((n-e)/r/2)*r;IQ(t,o,e,n,i),s.push(e,o,o,n)}}var KQ,YQ=[NaN,NaN,NaN,0],XQ=/^rgba?\(\s*(\d+%?)\s+(\d+%?)\s+(\d+%?)(?:\s*\/\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,JQ=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,QQ=/^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,t0=/^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i;function e0(t,e){return t.endsWith("%")?Number(t.substring(0,t.length-1))/e:Number(t)}function n0(t){throw new Error('failed to parse "'+t+'" as color')}function r0(t){if(t.toLowerCase().startsWith("rgb")){const e=t.match(JQ)||t.match(XQ)||t.match(QQ);if(e){const t=e[4],n=100/255;return[MZ(e0(e[1],n)+.5|0,0,255),MZ(e0(e[2],n)+.5|0,0,255),MZ(e0(e[3],n)+.5|0,0,255),void 0!==t?MZ(e0(t,100),0,1):1]}n0(t)}if(t.startsWith("#")){if(t0.test(t)){const e=t.substring(1),n=e.length<=4?1:2,r=[0,0,0,255];for(let t=0,i=e.length;t.0031308?269.025*Math.pow(t,1/2.4)-14.025:3294.6*t}function l0(t){return t>.2068965?Math.pow(t,3):108/841*(t-4/29)}function c0(t){return t>10.314724?Math.pow((t+14.025)/269.025,2.4):t/3294.6}function u0(t){return t>.0088564?Math.pow(t,1/3):t/(108/841)+4/29}function h0(t){const e=c0(t[0]),n=c0(t[1]),r=c0(t[2]),i=u0(.222488403*e+.716873169*n+.06060791*r),s=500*(u0(.452247074*e+.399439023*n+.148375274*r)-i),o=200*(i-u0(.016863605*e+.117638439*n+.865350722*r)),a=Math.atan2(o,s)*(180/Math.PI);return[116*i-16,Math.sqrt(s*s+o*o),a<0?a+360:a,t[3]]}function d0(t){if("none"===t)return YQ;if(i0.hasOwnProperty(t))return i0[t];if(s0>=1024){let t=0;for(const e in i0)3&t++||(delete i0[e],--s0)}const e=r0(t);4!==e.length&&n0(t);for(const n of e)isNaN(n)&&n0(t);return i0[t]=e,++s0,e}function p0(t){return Array.isArray(t)?t:d0(t)}function f0(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let n=t[1];n!=(0|n)&&(n=n+.5|0);let r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+n+","+r+","+(void 0===t[3]?1:Math.round(1e3*t[3])/1e3)+")"}function g0(t){return t[0]>0&&t[1]>0}function m0(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}var y0=0,v0=1<e)throw new Error(`expected ${e===1/0?`${t} or more`:`${t} to ${e}`} arguments for ${r}, got ${i}`)}}function A1(t,e,n){const r=t.length-1,i=new Array(r);for(let s=0;s{for(let e=0;e{for(let e=0;e{const r=t.args;let i=n.properties[e];for(let t=1,e=r.length;tt.variables[e];case R1:return n=>{const r=t.args;if(!(e in n.properties))return!1;let i=n.properties[e];for(let t=1,e=r.length;tt.featureId;case D0:return t=>t.geometryType;case F0:{const n=t.args.map(t=>U1(t,e));return t=>"".concat(...n.map(e=>e(t).toString()))}case q0:return t=>t.resolution;case U0:case B0:case f1:case v1:case"!":return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{for(let e=0;e{for(let e=0;e{const e=i[0](t),n=i[1](t),r=i[2](t);return e>=n&&e<=r};case v1:return t=>{const e=i[0](t);for(let n=1;n!i[0](t);default:throw new Error(`Unsupported logical operator ${n}`)}}(t,e);case H0:case G0:case"<":case X0:case">":case K0:return function(t,e){const n=t.operator,r=U1(t.args[0],e),i=U1(t.args[1],e);switch(n){case H0:return t=>r(t)===i(t);case G0:return t=>r(t)!==i(t);case"<":return t=>r(t)r(t)<=i(t);case">":return t=>r(t)>i(t);case K0:return t=>r(t)>=i(t);default:throw new Error(`Unsupported comparison operator ${n}`)}}(t,e);case"*":case"/":case"+":case"-":case n1:case"%":case"^":case s1:case o1:case a1:case l1:case c1:case u1:case h1:case d1:return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{let e=1;for(let n=0;ni[0](t)/i[1](t);case"+":return t=>{let e=0;for(let n=0;ni[0](t)-i[1](t);case n1:return t=>{const e=i[0](t),n=i[1](t);if(er?r:e};case"%":return t=>i[0](t)%i[1](t);case"^":return t=>Math.pow(i[0](t),i[1](t));case s1:return t=>Math.abs(i[0](t));case o1:return t=>Math.floor(i[0](t));case a1:return t=>Math.ceil(i[0](t));case l1:return t=>Math.round(i[0](t));case c1:return t=>Math.sin(i[0](t));case u1:return t=>Math.cos(i[0](t));case h1:return 2===r?t=>Math.atan2(i[0](t),i[1](t)):t=>Math.atan(i[0](t));case d1:return t=>Math.sqrt(i[0](t));default:throw new Error(`Unsupported numeric operator ${n}`)}}(t,e);case y1:return function(t,e){const n=t.args.length,r=new Array(n);for(let i=0;i{for(let e=0;e{const e=r[0](t);for(let i=1;i{const e=r[0](t),i=r[1](t);let s,o;for(let a=2;a=i)return 2===a?l:c?$1(e,i,s,o,n,l):B1(e,i,s,o,n,l);s=n,o=l}return o}}(t,e);case E1:return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{const n=i[0](e);return t.args[0].type===_0?f0(n):n.toString()};throw new Error(`Unsupported convert operator ${n}`)}(t,e);default:throw new Error(`Unsupported operator ${n}`)}}function B1(t,e,n,r,i,s){const o=i-n;if(0===o)return r;const a=e-n;return r+(1===t?a/o:(Math.pow(t,a)-1)/(Math.pow(t,o)-1))*(s-r)}function $1(t,e,n,r,i,s){if(i-n===0)return r;const o=h0(r),a=h0(s);let l=a[2]-o[2];return l>180?l-=360:l<-180&&(l+=360),function(t){const e=(t[0]+16)/116,n=t[1],r=t[2]*Math.PI/180,i=l0(e),s=l0(e+n/500*Math.cos(r)),o=l0(e-n/200*Math.sin(r)),a=a0(3.021973625*s-1.617392459*i-.404875592*o),l=a0(-.943766287*s+1.916279586*i+.027607165*o),c=a0(.069407491*s-.22898585*i+1.159737864*o);return[MZ(a+.5|0,0,255),MZ(l+.5|0,0,255),MZ(c+.5|0,0,255),t[3]]}([B1(t,e,n,o[0],i,a[0]),B1(t,e,n,o[1],i,a[1]),o[2]+B1(t,e,n,0,i,l),B1(t,e,n,r[3],i,s[3])])}var q1=class extends XG{constructor(t,e,n,r){super(),this.extent=t,this.pixelRatio_=n,this.resolution=e,this.state="function"==typeof r?0:r,this.image_=null,this.loader="function"==typeof r?r:null}changed(){this.dispatchEvent(IG)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(0==this.state&&this.loader){this.state=1,this.changed();const t=this.getResolution(),e=Array.isArray(t)?t[0]:t;KG(()=>this.loader(this.getExtent(),e,this.getPixelRatio())).then(t=>{"image"in t&&(this.image_=t.image),"extent"in t&&(this.extent=t.extent),"resolution"in t&&(this.resolution=t.resolution),"pixelRatio"in t&&(this.pixelRatio_=t.pixelRatio),(t instanceof HTMLImageElement||mZ&&t instanceof ImageBitmap||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)&&(this.image_=t),this.state=2}).catch(t=>{this.state=3,console.error(t)}).finally(()=>this.changed())}}setImage(t){this.image_=t}setResolution(t){this.resolution=t}};function V1(t,e){return t+":"+(e?p0(e):"null")}var W1=new class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const n=this.cache_[e];3&t++||n.hasListener()||(delete this.cache_[e],delete this.patternCache_[e],--this.cacheSize_)}}}get(t,e){const n=V1(t,e);return n in this.cache_?this.cache_[n]:null}getPattern(t,e){const n=V1(t,e);return n in this.patternCache_?this.patternCache_[n]:null}set(t,e,n,r){const i=V1(t,e),s=i in this.cache_;this.cache_[i]=n,r&&(0===n.getImageState()&&n.load(),1===n.getImageState()?n.ready().then(()=>{this.patternCache_[i]=vJ().createPattern(n.getImage(1),"repeat")}):this.patternCache_[i]=vJ().createPattern(n.getImage(1),"repeat")),s||++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}},H1=null,G1=class extends XG{constructor(t,e,n,r,i){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=n?.crossOrigin,this.referrerPolicy_=n?.referrerPolicy,this.canvas_={},this.color_=i,this.imageState_=void 0===r?0:r,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)}isTainted_(){if(void 0===this.tainted_&&2===this.imageState_){H1||(H1=yJ(1,1,void 0,{willReadFrequently:!0})),H1.drawImage(this.image_,0,0);try{H1.getImageData(0,0,1,1),this.tainted_=!1}catch{H1=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(IG)}handleImageError_(){this.imageState_=3,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=2,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}setImage(t){this.image_=t}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],n=yJ(t,e);n.fillRect(0,0,t,e),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(0===this.imageState_){this.image_||this.initializeImage_(),this.imageState_=1;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&(t=this.image_,e=this.src_,e&&(t.src=e),t.src&&gZ?new Promise((e,n)=>t.decode().then(()=>e(t)).catch(r=>t.complete&&t.width?e(t):n(r))):function(t){return new Promise((e,n)=>{function r(){s(),e(t)}function i(){s(),n(new Error("Image load error"))}function s(){t.removeEventListener("load",r),t.removeEventListener("error",i)}t.addEventListener("load",r),t.addEventListener("error",i)})}(t)).then(t=>{this.image_=t,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}var t,e}replaceColor_(t){if(!this.color_||this.canvas_[t]||2!==this.imageState_)return;const e=this.image_,n=yJ(Math.ceil(e.width*t),Math.ceil(e.height*t)),r=n.canvas;var i;n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle="string"==typeof(i=this.color_)?i:f0(i),n.fillRect(0,0,r.width/t,r.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=r}ready(){return this.ready_||(this.ready_=new Promise(t=>{if(2===this.imageState_||3===this.imageState_)t();else{const e=()=>{2!==this.imageState_&&3!==this.imageState_||(this.removeEventListener(IG,e),t())};this.addEventListener(IG,e)}})),this.ready_}};function Z1(t,e,n,r,i,s){let o=void 0===e?void 0:W1.get(e,i);return o||(o=new G1(t,t&&"src"in t?t.src||void 0:e,n,r,i),W1.set(e,i,o,s)),s&&o&&!W1.getPattern(e,i)&&W1.set(e,i,o,s),o}function K1(t){return t?Array.isArray(t)?f0(t):"object"==typeof t&&"src"in t?function(t){if(!t.offset||!t.size)return W1.getPattern(t.src,t.color);const e=t.src+":"+t.offset,n=W1.getPattern(e,t.color);if(n)return n;const r=W1.get(t.src,null);if(2!==r.getImageState())return null;const i=yJ(t.size[0],t.size[1]);return i.drawImage(r.getImage(1),t.offset[0],t.offset[1],t.size[0],t.size[1],0,0,t.size[0],t.size[1]),Z1(i.canvas,e,void 0,2,t.color,!0),W1.getPattern(e,t.color)}(t):t:null}var Y1,X1="#000",J1="round",Q1=[],t2="round",e2="#000",n2="center",r2=[0,0,0,0],i2=new rZ,s2=null,o2={},a2=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"]);function l2(t,e,n){return`${t} ${e} 16px "${n}"`}var c2=function(){const t=100;let e,n;async function r(t){await n.ready;const e=mJ(t),r=e.families[0].toLowerCase(),i=e.weight,s=[];return n.forEach(t=>{const n=t.family.replace(/^['"]|['"]$/g,"").toLowerCase(),o=gJ[t.weight]||t.weight;n===r&&t.style===e.style&&o==i&&s.push(t)}),0!==s.length&&(await Promise.all(s.map(t=>t.load().then(()=>!0,()=>!1)))).some(t=>t)}async function i(){await n.ready;let s=!0;const o=i2.getProperties(),a=Object.keys(o).filter(e=>o[e]=0;--e){const n=a[e];let i=o[n];iMath.max(e,d2(t,n)),0);return n[e]=r,r}var f2=class t{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=m0(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const e=this.getScale();return new t({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return QG()}getImage(t){return QG()}getHitDetectionImage(){return QG()}getPixelRatio(t){return 1}getImageState(){return QG()}getImageSize(){return QG()}getOrigin(){return QG()}getSize(){return QG()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=m0(t)}listenImageChange(t){QG()}load(){QG()}unlistenImageChange(t){QG()}ready(){return Promise.resolve()}},g2=class t extends f2{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius=t.radius,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?1:2,1===this.imageState_&&this.ready().then(()=>this.imageState_=2),this.render()}clone(){const e=this.getScale(),n=new t({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return n.setOpacity(this.getOpacity()),n}getAnchor(){const t=this.size_,e=this.getDisplacement(),n=this.getScaleArray();return[t[0]/2-e[0]/n[0],t[1]/2+e[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(t){const e=this.fill_?.getKey(),n=`${t},${this.angle_},${this.radius},${this.radius2_},${this.points_},${e}`+Object.values(this.renderOptions_).join(",");let r=W1.get(n,null)?.getImage(1);if(!r){const e=this.renderOptions_,i=Math.ceil(e.size*t),s=yJ(i,i);this.draw_(e,s,t),r=s.canvas;const o=new G1(r,void 0,null,2,null);W1.set(n,null,o),createImageBitmap(r).then(t=>{o.setImage(t)})}return r}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}setRadius(t){this.radius!==t&&(this.radius=t,this.render())}getRadius2(){return this.radius2_}setRadius2(t){this.radius2_!==t&&(this.radius2_=t,this.render())}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,n){if(0===e||this.points_===1/0||"bevel"!==t&&"miter"!==t)return e;let r=this.radius,i=void 0===this.radius2_?r:this.radius2_;if(r{this.patternImage_=null}),0===e.getImageState()&&e.load(),1===e.getImageState()&&(this.patternImage_=e)}this.color_=t}getKey(){const t=this.getColor();return t?t instanceof CanvasPattern||t instanceof CanvasGradient?eZ(t):"object"==typeof t&&"src"in t?t.src+":"+t.offset:p0(t).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}};function v2(t,e,n,r){return void 0!==n&&void 0!==r?[n/t,r/e]:void 0!==n?n/t:void 0!==r?r/e:1}var b2=class t extends f2{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,n=void 0!==t.rotation?t.rotation:0,r=void 0!==t.scale?t.scale:1,i=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:n,scale:r,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:i,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.referrerPolicy_=t.referrerPolicy;const s=void 0!==t.img?t.img:null;let o,a=t.src;if(RZ(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||eZ(s)),RZ(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),RZ(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=0:void 0!==s&&(o="complete"in s?s.complete?s.src?2:0:1:2),this.color_=void 0!==t.color?p0(t.color):null,this.iconImage_=Z1(s,a,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,this.initialOptions_,void 0!==t.width||void 0!==t.height){let e,n;if(t.size)[e,n]=t.size;else{const r=this.getImage(1);if(r.width&&r.height)e=r.width,n=r.height;else if(r instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const n=this.iconImage_.getSize();this.setScale(v2(n[0],n[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(v2(e,n,t.width,t.height))}}clone(){let e,n,r;return this.initialOptions_?(n=this.initialOptions_.width,r=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new t({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:n,height:r,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),n=this.getScaleArray();return[t[0]-e[0]/n[0],t[1]+e[1]/n[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}setColor(t){const e=t?p0(t):null;if(this.color_===e||this.color_&&e&&this.color_.length===e.length&&this.color_.every((t,n)=>t===e[n]))return;this.color_=e;const n=this.getSrc(),r=void 0!==n?null:this.getHitDetectionImage(),i=void 0!==n?0:this.iconImage_.getImageState();this.iconImage_=Z1(r,n,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},i,this.color_)}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),n=this.iconImage_.getSize();if(!e||!n)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=n[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=n[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}setSrc(t){this.iconImage_=Z1(null,t,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},0,this.color_)}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(IG,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(IG,t)}ready(){return this.iconImage_.ready()}},w2=class t{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.offset_=t.offset,this.width_=t.width}clone(){const e=this.getColor();return new t({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),offset:this.getOffset(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getOffset(){return this.offset_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setOffset(t){this.offset_=t}setWidth(t){this.width_=t}},_2=class t{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=k2,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let e=this.getGeometry();return e&&"object"==typeof e&&(e=e.clone()),new t({geometry:e??void 0,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer()??void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=k2,this.geometry_=t}setZIndex(t){this.zIndex_=t}},x2=null;function C2(){if(!x2){const t=new y2({color:"rgba(255,255,255,0.4)"}),e=new w2({color:"#3399CC",width:1.25});x2=[new _2({image:new m2({fill:t,stroke:e,radius:5}),fill:t,stroke:e})]}return x2}function k2(t){return t.getGeometry()}var S2=class t{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.keepUpright_=t.keepUpright,this.scale_=t.scale,this.scaleArray_=m0(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.repeat_=t.repeat,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new y2({color:"#333"}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding,this.declutterMode_=t.declutterMode}clone(){const e=this.getScale();return new t({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),keepUpright:this.getKeepUpright(),scale:Array.isArray(e)?e.slice():e,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()instanceof y2?this.getFill().clone():this.getFill(),stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0,declutterMode:this.getDeclutterMode()})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getKeepUpright(){return this.keepUpright_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}getDeclutterMode(){return this.declutterMode_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRepeat(t){this.repeat_=t}setRotateWithView(t){this.rotateWithView_=t}setKeepUpright(t){this.keepUpright_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=m0(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}};function E2(){return!0}function R2(t,e){e=e??A0();const n=t.length,r=new Array(n);for(let o=0;o0&&"string"==typeof p[0]?g=N2(t,"icon-color",e):f=Z2(p,"icon-color"));const m=function(t,e){const n=t[e];if(void 0!==n){if("string"!=typeof n)throw new Error(`Expected a string for ${e}`);return n}}(t,"icon-cross-origin"),y=function(t,e){const n=t[e];if(void 0!==n)return W2(n,e)}(t,"icon-offset"),v=$2(t,"icon-offset-origin"),b=U2(t,"icon-width"),w={src:r,anchorOrigin:u,anchorXUnits:h,anchorYUnits:d,crossOrigin:m,offset:y,offsetOrigin:v,height:U2(t,"icon-height"),width:b,size:B2(t,"icon-size"),declutterMode:V2(t,"icon-declutter-mode")};let _=null;return function(t){if(_)g&&_.setColor(g(t));else{const e=g?g(t):f;_=new b2(void 0!==e?Object.assign({},w,{color:e}):Object.assign({},w))}return o&&_.setOpacity(o(t)),a&&_.setDisplacement(a(t)),l&&_.setRotation(l(t)),c&&_.setRotateWithView(c(t)),s&&_.setScale(s(t)),i&&_.setAnchor(i(t)),_}}(t,e):"shape-points"in t?function(t,e){const n="shape-",r="shape-points",i="shape-radius",s=G2(t[r],r);if(!(i in t))throw new Error(`Expected a number for ${i}`);const o=M2(t,i,e),a="number"==typeof t[i]?t[i]:5,l="shape-radius2",c=M2(t,l,e),u="number"==typeof t[l]?t[l]:void 0,h=T2(t,n,e),d=P2(t,n,e),p=j2(t,"shape-scale",e),f=F2(t,"shape-displacement",e),g=M2(t,"shape-rotation",e),m=O2(t,"shape-rotate-with-view",e),y=U2(t,"shape-angle"),v=V2(t,"shape-declutter-mode"),b=new g2({points:s,radius:a,radius2:u,angle:y,declutterMode:v});return function(t){return o&&b.setRadius(o(t)),c&&b.setRadius2(c(t)),h&&b.setFill(h(t)),d&&b.setStroke(d(t)),f&&b.setDisplacement(f(t)),g&&b.setRotation(g(t)),m&&b.setRotateWithView(m(t)),p&&b.setScale(p(t)),b}}(t,e):"circle-radius"in t?function(t,e){const n="circle-",r=T2(t,n,e),i=P2(t,n,e),s=M2(t,"circle-radius",e),o=j2(t,"circle-scale",e),a=F2(t,"circle-displacement",e),l=M2(t,"circle-rotation",e),c=O2(t,"circle-rotate-with-view",e),u=V2(t,"circle-declutter-mode"),h=new m2({radius:5,declutterMode:u});return function(t){return s&&h.setRadius(s(t)),r&&h.setFill(r(t)),i&&h.setStroke(i(t)),a&&h.setDisplacement(a(t)),l&&h.setRotation(l(t)),c&&h.setRotateWithView(c(t)),o&&h.setScale(o(t)),h}}(t,e):null}(t,e),o=M2(t,"z-index",e);if(!(n||r||i||s||RG(t)))throw new Error("No fill, stroke, point, or text symbolizer properties in style: "+JSON.stringify(t));const a=new _2;return function(t){let e=!0;if(n){const r=n(t);r&&(e=!1),a.setFill(r)}if(r){const n=r(t);n&&(e=!1),a.setStroke(n)}if(i){const n=i(t);n&&(e=!1),a.setText(n)}if(s){const n=s(t);n&&(e=!1),a.setImage(n)}return o&&a.setZIndex(o(t)),e?null:a}}function T2(t,e,n){let r;if(e+"fill-pattern-src"in t)r=function(t,e,n){const r=A2(t,e+"pattern-src",n),i=D2(t,e+"pattern-offset",n),s=D2(t,e+"pattern-size",n),o=N2(t,e+"color",n);return function(t){return{src:r(t),offset:i&&i(t),size:s&&s(t),color:o&&o(t)}}}(t,e+"fill-",n);else{if("none"===t[e+"fill-color"])return()=>null;r=N2(t,e+"fill-color",n)}if(!r)return null;const i=new y2;return function(t){const e=r(t);return e===YQ?null:(i.setColor(e),i)}}function P2(t,e,n){const r=M2(t,e+"stroke-width",n),i=N2(t,e+"stroke-color",n);if(!r&&!i)return null;const s=A2(t,e+"stroke-line-cap",n),o=A2(t,e+"stroke-line-join",n),a=z2(t,e+"stroke-line-dash",n),l=M2(t,e+"stroke-line-dash-offset",n),c=M2(t,e+"stroke-miter-limit",n),u=M2(t,e+"stroke-offset",n),h=new w2;return function(t){if(i){const e=i(t);if(e===YQ)return null;h.setColor(e)}if(r&&h.setWidth(r(t)),s){const e=s(t);if("butt"!==e&&"round"!==e&&"square"!==e)throw new Error("Expected butt, round, or square line cap");h.setLineCap(e)}if(o){const e=o(t);if("bevel"!==e&&"round"!==e&&"miter"!==e)throw new Error("Expected bevel, round, or miter line join");h.setLineJoin(e)}return a&&h.setLineDash(a(t)),l&&h.setLineDashOffset(l(t)),c&&h.setMiterLimit(c(t)),u&&h.setOffset(u(t)),h}}function I2(t,e){if(!(e in t))return;const n=t[e];return void 0===n?void 0:n}function M2(t,e,n){const r=I2(t,e);if(void 0===r)return;const i=j1(r,b0,n);return function(t){return G2(i(t),e)}}function A2(t,e,n){const r=I2(t,e);if(void 0===r)return null;const i=j1(r,w0,n);return function(t){return H2(i(t),e)}}function O2(t,e,n){const r=I2(t,e);if(void 0===r)return null;const i=j1(r,v0,n);return function(t){const n=i(t);if("boolean"!=typeof n)throw new Error(`Expected a boolean for ${e}`);return n}}function N2(t,e,n){const r=I2(t,e);if(void 0===r)return null;const i=j1(r,_0,n);return function(t){return Z2(i(t),e)}}function z2(t,e,n){const r=I2(t,e);if(void 0===r)return null;if(Array.isArray(r)&&(0===r.length||"string"!=typeof r[0])){const t=r.map((t,r)=>{if("number"==typeof t)return()=>t;const i=j1(t,b0,n);return function(t){return G2(i(t),`${e}[${r}]`)}});return function(e){const n=new Array(t.length);for(let r=0;r4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return n}function K2(t,e){const n=W2(t,e);if(2!==n.length)throw new Error(`Expected an array of two numbers for ${e}`);return n}var Y2="renderOrder",X2=class extends TQ{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=t.declutter?String(t.declutter):void 0,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Y2)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t,e){const n=this.getDeclutter();n in t.declutter==0&&(t.declutter[n]=new OQ(9)),this.getRenderer().renderDeclutter(t,e)}setRenderOrder(t){this.set(Y2,t)}setStyle(t){this.style_=void 0===t?C2:t;const e=function(t){if(void 0===t)return C2;if(!t)return null;if("function"==typeof t)return t;if(t instanceof _2)return t;if(Array.isArray(t)&&0===t.length)return[];if(Array.isArray(t)&&t[0]instanceof _2){const e=t.length,n=new Array(e);for(let r=0;r=0;--r){const i=f[r],s=i.layer;if(s.hasRenderer()&&PQ(i,c)&&o.call(a,s)){const r=s.getRenderer(),o=s.getSource();if(r&&o){const s=o.getWrapX()?d:t,a=u.bind(null,i.managed);y[0]=s[0]+p[b][0],y[1]=s[1]+p[b][1],l=r.forEachFeatureAtCoordinate(y,e,n,a,m)}if(l)return l}}if(0===m.length)return;const v=1/m.length;return m.forEach((t,e)=>t.distanceSq+=e*v),m.sort((t,e)=>t.distanceSq-e.distanceSq),m.some(t=>l=t.callback(t.feature,t.layer,t.geometry)),l}hasFeatureAtCoordinate(t,e,n,r,i,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,n,r,WG,this,i,s)}getMap(){return this.map_}renderFrame(t){QG()}scheduleExpireIconCache(t){W1.canExpireCache()&&t.postRenderFunctions.push(t3)}};function t3(){W1.expire()}var e3=class extends Q2{constructor(t){super(t),this.fontChangeListenerKey_=LG(i2,SG,t.redrawText,t),this.element_=fZ?kJ():document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className=uJ+" ol-layers";const n=t.getViewport();n&&n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(t,e){const n=this.getMap();if(n.hasListener(t)){const r=new J2(t,void 0,e);n.dispatchEvent(r)}}disposeInternal(){PG(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent(RQ,t);const e=t.layerStatesArray.sort((t,e)=>t.zIndex-e.zIndex);e.some(t=>t.layer instanceof X2&&t.layer.getDeclutter())&&(t.declutter={});const n=t.viewState;this.children_.length=0;const r=this.getMap().getTargetElement();let i;SJ(r)&&(i=r.getContext("2d"),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,r.width,r.height));const s=[];let o=i?r:null;for(let a=0,l=e.length;a0)&&(i.fillStyle=e,i.fillRect(0,0,i.canvas.width,i.canvas.height)),!SJ(t)||0===t.width)continue;i.save();const n=a.style.opacity||t.style.opacity;i.globalAlpha=""===n?1:Number(n);const r=t.style.transform;if(r)i.transform(...oX(r));else{const e=parseFloat(t.style.width)/t.width,n=parseFloat(t.style.height)/t.height;i.transform(e,0,0,n,0,0)}i.drawImage(t,0,0),i.restore()}this.dispatchRenderEvent("postcompose",t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}declutter(t,e){if(t.declutter){for(let n=e.length-1;n>=0;--n){const r=e[n],i=r.layer;i.getDeclutter()&&i.renderDeclutter(t,r)}e.forEach(e=>e.layer.renderDeferred(t))}}};function n3(t){t instanceof TQ?t.setMapInternal(null):t instanceof kQ&&t.getLayers().forEach(n3)}function r3(t,e){if(t instanceof TQ)t.setMapInternal(e);else if(t instanceof kQ){const n=t.getLayers().getArray();for(let t=0,r=n.length;tthis.updateSize())),this.controls=e.controls||(fZ?new oZ:PJ()),this.interactions=e.interactions||(fZ?new oZ:cQ({onFocusOnly:!0})),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new PZ(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(CZ,this.handleLayerGroupChanged_),this.addChangeListener(EZ,this.handleViewChanged_),this.addChangeListener(kZ,this.handleSizeChanged_),this.addChangeListener(SZ,this.handleTargetChanged_),this.setProperties(e.values);const n=this;!t.view||t.view instanceof iJ||t.view.then(function(t){n.setView(new iJ(t))}),this.controls.addEventListener(CG,t=>{t.element.setMap(this)}),this.controls.addEventListener(kG,t=>{t.element.setMap(null)}),this.interactions.addEventListener(CG,t=>{t.element.setMap(this)}),this.interactions.addEventListener(kG,t=>{t.element.setMap(null)}),this.overlays_.addEventListener(CG,t=>{this.addOverlayInternal_(t.element)}),this.overlays_.addEventListener(kG,t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}),this.controls.forEach(t=>{t.setMap(this)}),this.interactions.forEach(t=>{t.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){r3(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_?.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,n){if(!this.frameState_||!this.renderer_)return;const r=this.getCoordinateFromPixelInternal(t),i=void 0!==(n=void 0!==n?n:{}).hitTolerance?n.hitTolerance:0,s=void 0!==n.layerFilter?n.layerFilter:WG,o=!1!==n.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,i,o,e,null,s,null)}getFeaturesAtPixel(t,e){const n=[];return this.forEachFeatureAtPixel(t,function(t){n.push(t)},e),n}getAllLayers(){const t=[];return function e(n){n.forEach(function(n){n instanceof kQ?e(n.getLayers()):t.push(n)})}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:WG,i=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,i,s,r,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),n=this.getSize(),r=e.width/n[0],i=e.height/n[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/r,(s.clientY-e.top)/i]}getTarget(){return this.get(SZ)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return HY(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?eX(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(CZ)}setLayers(t){const e=this.getLayerGroup();if(t instanceof oZ)return void e.setLayers(t);const n=e.getLayers();n.clear(),n.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,n=t.length;e=0;n--){const r=e[n];if(r.getMap()===this&&r.getActive()&&this.getTargetElement()&&(!r.handleEvent(t)||t.propagationStopped))break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let n=this.maxTilesLoading_,r=n;const i=t?t.viewHints:void 0,s=!!i&&(i[0]||i[1]);if(s){const e=Date.now()-t.time>8;n=e?0:8,r=e?0:2}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new xQ("removelayer",e)),this.set(CZ,t)}setSize(t){this.set(kZ,t)}setTarget(t){this.set(SZ,t)}setView(t){if(!t||t instanceof iJ)return void this.set(EZ,t);this.set(EZ,new iJ);const e=this;t.then(function(t){e.setView(new iJ(t))})}updateSize(){const t=this.getTargetElement();let e;if(t){let n,r;if(SJ(t)){const e=t.getContext("2d").getTransform();n=t.width/e.a,r=t.height/e.d}else{const e=getComputedStyle(t);n=t.offsetWidth-parseFloat(e.borderLeftWidth)-parseFloat(e.paddingLeft)-parseFloat(e.paddingRight)-parseFloat(e.borderRightWidth),r=t.offsetHeight-parseFloat(e.borderTopWidth)-parseFloat(e.paddingTop)-parseFloat(e.paddingBottom)-parseFloat(e.borderBottomWidth)}isNaN(n)||isNaN(r)||(e=[Math.max(0,n),Math.max(0,r)],!g0(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&FK("No map visible because the map container's width or height are 0."))}const n=this.getSize();!e||n&&VG(e,n)||(this.updateViewportSize_(e),this.setSize(e))}updateViewportSize_(t){const e=this.getView();e&&e.setViewportSize(t)}},s3="element",o3="map",a3="offset",l3="position",c3="positioning",u3=class extends rZ{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(s3,this.handleElementChanged),this.addChangeListener(o3,this.handleMapChanged),this.addChangeListener(a3,this.handleOffsetChanged),this.addChangeListener(l3,this.handlePositionChanged),this.addChangeListener(c3,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(s3)}getId(){return this.id}getMap(){return this.get(o3)||null}getOffset(){return this.get(a3)}getPosition(){return this.get(l3)}getPositioning(){return this.get(c3)}handleElementChanged(){CJ(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),PG(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=LG(t,wZ,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(s3,t)}setMap(t){this.set(o3,t)}setOffset(t){this.set(a3,t)}setPosition(t){this.set(l3,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(l3))return;const n=this.getRect(e.getTargetElement(),e.getSize()),r=this.getElement(),i=this.getRect(r,[wJ(r),_J(r)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!YZ(n,i)){const r=i[0]-n[0],o=n[2]-i[2],a=i[1]-n[1],l=n[3]-i[3],c=[0,0];if(r<0?c[0]=r-s:o<0&&(c[0]=Math.abs(o)+s),a<0?c[1]=a-s:l<0&&(c[1]=Math.abs(l)+s),0!==c[0]||0!==c[1]){const n=e.getView().getCenterInternal(),r=e.getPixelFromCoordinateInternal(n);if(!r)return;const i=[r[0]+c[0],r[1]+c[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(i),duration:s.duration,easing:s.easing})}}}getRect(t,e){const n=t.getBoundingClientRect(),r=n.left+window.pageXOffset,i=n.top+window.pageYOffset;return[r,i,r+e[0],i+e[1]]}setPositioning(t){this.set(c3,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const n=t.getPixelFromCoordinate(e),r=t.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(t,e){const n=this.element.style,r=this.getOffset(),i=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==i||"center-right"==i||"top-right"==i?s="-100%":"bottom-center"!=i&&"center-center"!=i&&"top-center"!=i||(s="-50%"),"bottom-left"==i||"bottom-center"==i||"bottom-right"==i?o="-100%":"center-left"!=i&&"center-center"!=i&&"center-right"!=i||(o="-50%");const a=`translate(${s}, ${o}) translate(${t[0]+r[0]}px, ${t[1]+r[1]}px)`;this.rendered.transform_!=a&&(this.rendered.transform_=a,n.transform=a)}getOptions(){return this.options}},h3=class t extends rZ{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const e=new t,n=this.geometryName_;e.setGeometryName(n);const r=this.getPropertiesInternal();if(r){const t=this.getGeometry();for(const i in r)i===n&&t?e.set(i,t.clone()):e.set(i,r[i],!0)}const i=this.getStyle();return i&&e.setStyle(i),e}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(PG(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=LG(t,IG,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?function(t){if("function"==typeof t)return t;let e;return Array.isArray(t)?e=t:(RZ("function"==typeof t.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`"),e=[t]),function(){return e}}(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){t!==this.geometryName_&&(this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_())}};function d3(t,e,n,r,i,s,o){let a,l;const c=(n-e)/r;if(1===c)a=e;else if(2===c)a=e,l=i;else if(0!==c){let s=t[e],o=t[e+1],c=0;const u=[0];for(let i=e+r;i>1),i=+n(t[r],e),i<0?s=r+1:(o=r,a=!i);return a?s:~s}(u,h);d<0?(l=(h-u[-d-2])/(u[-d-1]-u[-d-2]),a=e+(-d-2)*r):a=e+d*r}o=o>1?o:2,s=s||new Array(o);for(let u=0;u>1;ia&&(this.instructions.push([4,a,c,t,n,SX,i]),this.hitDetectionInstructions.push([4,a,c,t,r||n,SX,i]));break;case"Point":l=t.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([4,a,c,t,n,void 0,i]),this.hitDetectionInstructions.push([4,a,c,t,r||n,void 0,i])}this.endGeometry(e)}beginGeometry(t,e,n){this.beginGeometryInstruction1_=[0,e,0,t,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[0,e,0,t,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const n=t.length;let r,i,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=e.lineWidth,this.bufferedMaxExtent_=null)}else e.strokeStyle=void 0,e.lineCap=void 0,e.lineDash=null,e.lineDashOffset=void 0,e.lineJoin=void 0,e.lineWidth=void 0,e.miterLimit=void 0,e.strokeOffset=void 0;return e}setFillStrokeStyle(t,e){const n=this.state;this.fillStyleToState(t,n),this.strokeStyleToState(e,n)}createFill(t){const e=t.fillStyle,n=[10,e];return"string"!=typeof e&&n.push(t.fillPatternScale),n}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[_3,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,t.lineDash?this.applyPixelRatio(t.lineDash):null,t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const n=t.fillStyle;(void 0!==n&&"string"!=typeof n||t.currentFillStyle!=n)&&(this.instructions.push(e.call(this,t)),t.currentFillStyle=n)}updateStrokeStyle(t,e){const n=t.strokeStyle,r=t.lineCap,i=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit,c=t.strokeOffset;(t.currentStrokeStyle!=n||t.currentLineCap!=r||i!=t.currentLineDash&&!VG(t.currentLineDash,i)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l||t.currentStrokeOffset!=c)&&(e.call(this,t),t.currentStrokeStyle=n,t.currentLineCap=r,t.currentLineDash=i,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l,t.currentStrokeOffset=c)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[7,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=GZ(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;HZ(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},R3=class extends E3{constructor(t,e,n,r){super(t,e,n,r)}drawFlatCoordinatess_(t,e,n,r,i){const s=this.state,o=void 0!==s.fillStyle,a=void 0!==s.strokeStyle,l=n.length;this.instructions.push(k3),this.hitDetectionInstructions.push(k3);for(let c=0;cthis.drawCircle(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,X1]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([_3,e2,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,Q1,0]);const a=t.getFlatCoordinates(),l=t.getStride(),c=this.coordinates.length;this.appendFlatLineCoordinates(a,0,a.length,l,!1,!1);const u=[2,c,o];this.instructions.push(k3,u),this.hitDetectionInstructions.push(k3,u),void 0!==r.fillStyle&&(this.instructions.push(x3),this.hitDetectionInstructions.push(x3)),void 0!==r.strokeStyle&&(this.instructions.push(C3),this.hitDetectionInstructions.push(C3)),this.endGeometry(e)}drawPolygon(t,e,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawPolygon(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,X1]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([_3,e2,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,Q1,0]);const a=t.getEnds(),l=t.getOrientedFlatCoordinates(),c=t.getStride();this.drawFlatCoordinatess_(l,0,a,c,o),this.endGeometry(e)}drawMultiPolygon(t,e,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawMultiPolygon(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,X1]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([_3,e2,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,Q1,0]);const a=t.getEndss(),l=t.getOrientedFlatCoordinates(),c=t.getStride();let u=0;for(let h=0,d=a.length;h0&&void 0!==n&&void 0!==r&&(e.strokeStyle=void 0,e.strokeOffset=0,t(),e.fillStyle=void 0,e.strokeStyle=r,e.strokeOffset=i,t(),e.fillStyle=n,!0)}},L3=0,T3=1;function P3(t,e,n,r,i,s,o,a){const l=o-i,c=a-s;let u=0,h=1;if(0===l){if(in)return!1}else{let e=(t-i)/l,r=(n-i)/l;if(e>r){const t=e;e=r,r=t}if(e>u&&(u=e),rh)return!1}if(0===c){if(sr)return!1}else{let t=(e-s)/c,n=(r-s)/c;if(t>n){const e=t;t=n,n=e}if(t>u&&(u=t),nh)return!1}return L3=u,T3=h,!0}function I3(t,e,n,r,i){const s=[];let o=n,a=0,l=e.slice(n,2);for(;a=t){const e=(t-a+h)/h,d=DZ(n,c,e),p=DZ(r,u,e);l.push(d,p),s.push(l),l=[d,p],a==t&&(o+=i),a=0}else if(a0&&s.push(l),s}function M3(t,e,n,r,i){let s,o,a,l,c,u,h,d,p,f,g=n,m=n,y=0,v=0,b=n;for(o=n;ot&&(v>y&&(y=v,g=b,m=o),v=0,b=o-i)),a=l,h=p,d=f),c=n,u=r}return v+=l,v>y?[b,o]:[g,m]}var A3,O3={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},N3={Circle:R3,Default:E3,Image:class extends E3{constructor(t,e,n,r){super(t,e,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e,n){if(!this.image_||this.maxExtent&&!KZ(this.maxExtent,t.getFlatCoordinates()))return;this.beginGeometry(t,e,n);const r=t.getFlatCoordinates(),i=t.getStride(),s=this.coordinates.length,o=this.appendFlatPointCoordinates(r,i);this.instructions.push([6,s,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([6,s,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e,n){if(!this.image_)return;this.beginGeometry(t,e,n);const r=t.getFlatCoordinates(),i=[];for(let a=0,l=r.length;a{const r=o[2*(t+n)]===c[n*u]&&o[2*(t+n)+1]===c[n*u+1];return r||--t,r})}this.saveTextStates_();const h=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,d=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(t,e,n);let p=s.padding;if(p!=r2&&(s.scale[0]<0||s.scale[1]<0)){let t=s.padding[0],e=s.padding[1],n=s.padding[2],r=s.padding[3];s.scale[0]<0&&(e=-e,r=-r),s.scale[1]<0&&(t=-t,n=-n),p=[t,e,n,r]}const f=this.pixelRatio;this.instructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,p==r2?r2:p.map(function(t){return t*f}),h,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]);const g=1/f,m=h?h.slice(0):null;m&&(m[1]=X1),this.hitDetectionInstructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[g,g],NaN,this.declutterMode_,this.declutterImageWithText_,p,m,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?X1:this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]),this.endGeometry(e)}else{const r=t.getExtent();if(!xK(this.maxExtent,r))return;let i;if(c=t.getFlatCoordinates(),"LineString"==l)i=[c.length];else if("MultiLineString"==l)i=t.getEnds();else if("Polygon"==l)i=t.getEnds().slice(0,1);else if("MultiPolygon"==l){const e=t.getEndss();i=[];for(let t=0,n=e.length;t0?l:2*Math.PI-l}([t,e],[n,r],[i,s]);if(Math.cos(d)>.998)return[t+u*o,e+h*o];const p=Math.cos(d/2),f=Math.sin(d/2);return[t+1/f*(f*a+p*l)*o,e+1/f*(-p*a+f*l)*o]}function j3(t,e,n=!1){for(let r=0,i=t.length-2;rr+e;s-=e){const n=t[r],i=t[r+1],o=t[r+e],a=t[r+e+1],l=t[s],c=t[s+1],u=t[s+e],h=t[s+e+1],d=(h-c)*(o-n)-(u-l)*(a-i);if(0===d)continue;const p=((u-l)*(i-c)-(h-c)*(n-l))/d,f=((o-n)*(i-c)-(a-i)*(n-l))/d;if(p>0&&p<1&&f>0&&f<1){const l=n+p*(o-n),c=i+p*(a-i);t[r+e]=l,t[r+e+1]=c,t.splice(r+2*e,s-r-e);break}}return t}function U3(t,e,n,r,i,s,o,a,l,c,u,h,d=!0){let p=t[e],f=t[e+1],g=0,m=0,y=0,v=0;function b(){g=p,m=f,p=t[e+=r],f=t[e+1],v+=y,y=Math.sqrt((p-g)*(p-g)+(f-m)*(f-m))}do{b()}while(et[2]}else L=_>E;const T=Math.PI,P=[],I=C+r===e;let M;if(y=0,v=k,p=t[e=C],f=t[e+1],I)return b(),M=Math.atan2(f-m,p-g),L&&(M+=M>0?-T:T),P[0]=[(E+_)/2,(R+x)/2,(S-s)/2,M,i],P;i=i.replace(/\n/g," ");const A=Array.from((A3||(A3=new Intl.Segmenter(void 0,{granularity:"grapheme"})),A3).segment(i),t=>t.segment);for(let O=0,N=A.length;O0?-T:T),void 0!==M){let e=t-M;if(e+=e>T?-2*T:e<-T?2*T:0,Math.abs(e)>o)return null}M=t;const i=O;let h=0;for(;O{if("function"==typeof t[e])return this.pendingMethod_=e,this.pushMethodArgs_},set:(t,e,n)=>(this.push_(e,n),!0)})}push_(...t){const e=this.instructions_,n=this.zIndex+this.offset_;e[n]||(e[n]=[]),e[n].push(...t)}pushMethodArgs_=(...t)=>{this.push_(this.pendingMethod_,t)};pushFunction(t){this.push_(t)}getContext(){return this.context_}draw(t){this.instructions_.forEach(e=>{for(let n=0,r=e.length;n0&&t.push("\n",""),t.push(e,""),t}function X3(t,e,n){return n%2==0&&(t+=e),t}var J3=class{constructor(t,e,n,r,i){this.overlaps=n,this.pixelRatio=e,this.resolution=t,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=XY(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=i?new B3:null}getZIndexContext(){return this.zIndexContext_}createLabel(t,e,n,r){const i=t+e+n+r;if(this.labels_[i])return this.labels_[i];const s=r?this.strokeStates[r]:null,o=n?this.fillStates[n]:null,a=this.textStates[e],l=this.pixelRatio,c=[a.scale[0]*l,a.scale[1]*l],u=a.justify?O3[a.justify]:K3(Array.isArray(t)?t[0]:t,a.textAlign||"center"),h=r&&s.lineWidth?s.lineWidth:0,d=Array.isArray(t)?t:String(t).split("\n").reduce(Y3,[]),{width:p,height:f,widths:g,heights:m,lineWidths:y}=function(t,e){const n=[],r=[],i=[];let s=0,o=0,a=0,l=0;for(let c=0,u=e.length;c<=u;c+=2){const h=e[c];if("\n"===h||c===u){s=Math.max(s,o),i.push(o),o=0,a+=l,l=0;continue}const d=e[c+1]||t.font,p=d2(d,h);n.push(p),o+=p;const f=u2(d);r.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:n,heights:r,lineWidths:i}}(a,d),v=p+h,b=[],w=(v+2)*c[0],_=(f+h)*c[1],x={width:w<0?Math.floor(w):Math.ceil(w),height:_<0?Math.floor(_):Math.ceil(_),contextInstructions:b};1==c[0]&&1==c[1]||b.push("scale",c),r&&(b.push("strokeStyle",s.strokeStyle),b.push("lineWidth",h),b.push("lineCap",s.lineCap),b.push("lineJoin",s.lineJoin),b.push("miterLimit",s.miterLimit),b.push("setLineDash",[s.lineDash]),b.push("lineDashOffset",s.lineDashOffset)),n&&b.push("fillStyle",o.fillStyle),b.push("textBaseline","middle"),b.push("textAlign","center");const C=.5-u;let k=u*v+C*h;const S=[],E=[];let R,L=0,T=0,P=0,I=0;for(let M=0,A=d.length;Mt?t-l:i,b=s+c>e?e-c:s,w=p[3]+v*h[0]+p[1],_=p[0]+b*h[1]+p[2],x=m-p[3],C=y-p[0];let k;return(f||0!==u)&&(q3[0]=x,H3[0]=x,q3[1]=C,V3[1]=C,V3[0]=x+w,W3[0]=V3[0],W3[1]=C+_,H3[1]=W3[1]),0!==u?(k=rX(XY(),n,r,1,1,u,-n,-r),eX(k,q3),eX(k,V3),eX(k,W3),eX(k,H3),QZ(Math.min(q3[0],V3[0],W3[0],H3[0]),Math.min(q3[1],V3[1],W3[1],H3[1]),Math.max(q3[0],V3[0],W3[0],H3[0]),Math.max(q3[1],V3[1],W3[1],H3[1]),$3)):QZ(Math.min(x,x+w),Math.min(C,C+_),Math.max(x,x+w),Math.max(C,C+_),$3),d&&(m=Math.round(m),y=Math.round(y)),{drawImageX:m,drawImageY:y,drawImageW:v,drawImageH:b,originX:l,originY:c,declutterBox:{minX:$3[0],minY:$3[1],maxX:$3[2],maxY:$3[3],value:g},canvasTransform:k,scale:h}}replayImageOrLabel_(t,e,n,r,i,s,o){const a=!(!s&&!o),l=r.declutterBox,c=o?o[2]*r.scale[0]/2:0;return l.minX-c<=e[0]&&l.maxX+c>=0&&l.minY-c<=e[1]&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,q3,V3,W3,H3,s,o),function(t,e,n,r,i,s,o,a,l,c,u){t.save(),1!==n&&(void 0===t.globalAlpha?t.globalAlpha=t=>t.globalAlpha*=n:t.globalAlpha*=n),e&&t.transform.apply(t,e),r.contextInstructions?(t.translate(l,c),t.scale(u[0],u[1]),function(t,e){const n=t.contextInstructions;for(let r=0,i=n.length;rz&&(this.fill_(t),P=0),I>z&&(t.stroke(),I=0),P||I||(t.beginPath(),_=NaN,x=NaN),++d;break;case 2:g=n[1],b=n[2]??0;const r=c[g],u=c[g+1],h=c[g+2]-b-r,p=c[g+3]-b-u,B=Math.sqrt(h*h+p*p);t.moveTo(r+B,u),t.arc(r,u,B,0,2*Math.PI,!0),++d;break;case 3:t.closePath(),++d;break;case 4:g=n[1],f=n[2];const $=n[3],q=n[4],V=n[5];N.geometry=$,N.feature=F,d in M||(M[d]=[]);const W=M[d];V?V(c,g,f,2,W):(W[0]=c[g],W[1]=c[g+1],W.length=2),l&&(l.zIndex=n[6]),q(W,N),++d;break;case 6:g=n[1],f=n[2],S=n[3],y=n[4],v=n[5];let H=n[6];const G=n[7],Z=n[8],K=n[9],Y=n[10];let X=n[11];const J=n[12];let Q=n[13];w=n[14]||"declutter";const tt=n[15];if(!S&&n.length>=20){E=n[19],R=n[20],L=n[21],T=n[22];const t=this.drawLabelWithPointPlacement_(E,R,L,T);S=t.label,n[3]=S;const e=n[23];y=(t.anchorX-e)*this.pixelRatio,n[4]=y;const r=n[24];v=(t.anchorY-r)*this.pixelRatio,n[5]=v,H=S.height,n[6]=H,Q=S.width,n[13]=Q}let et,nt,rt,it;n.length>25&&(et=n[25]),n.length>17?(nt=n[16],rt=n[17],it=n[18]):(nt=r2,rt=null,it=null),Y&&O?X+=A:Y||O||(X-=A);let st=0;for(;g!t5.includes(t)),n5=!1,r5=!1,i5=class{constructor(t,e,n,r,i,s,o){this.maxExtent_=t,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=e,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=XY(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(i,o)}clip(t,e){const n=this.getClipCoords(e);t.beginPath(),t.moveTo(n[0],n[1]),t.lineTo(n[2],n[3]),t.lineTo(n[4],n[5]),t.lineTo(n[6],n[7]),t.clip()}createExecutors_(t,e){for(const n in t){let r=this.executorsByZIndex_[n];void 0===r&&(r={},this.executorsByZIndex_[n]=r);const i=t[n];for(const t in i){const n=i[t];r[t]=new J3(this.resolution_,this.pixelRatio_,this.overlaps_,n,e)}}}hasExecutors(t){for(const e in this.executorsByZIndex_){const n=this.executorsByZIndex_[e];for(let e=0,r=t.length;e{const n=yJ(1,1,null,{willReadFrequently:e});let r=0;const i=performance.now();for(;performance.now()-i<50;++r)n.fillStyle=`rgba(255,0,${r%256},1)`,n.fillRect(0,0,1,1),n.getImageData(0,0,1,1);return t=r>t?r:t,r};n5={[e(!0)]:!0,[e(!1)]:!1,[e(void 0)]:void 0}[t],r5=!0}();const o=2*(r=Math.round(r))+1,a=rX(this.hitDetectionTransform_,r+.5,r+.5,1/e,-1/e,-n,-t[0],-t[1]),l=!this.hitDetectionContext_;l&&(this.hitDetectionContext_=yJ(o,o,null,{willReadFrequently:n5}));const c=this.hitDetectionContext_;let u;c.canvas.width!==o||c.canvas.height!==o?(c.canvas.width=o,c.canvas.height=o):l||c.clearRect(0,0,o,o),void 0!==this.renderBuffer_&&(u=[1/0,1/0,-1/0,-1/0],sK(u,t),HZ(u,e*(this.renderBuffer_+r),u));const h=function(t){if(void 0!==s5[t])return s5[t];const e=2*t+1,n=t*t,r=new Array(n+1);for(let s=0;s<=t;++s)for(let i=0;i<=t;++i){const o=s*s+i*i;if(o>n)break;let a=r[o];a||(a=[],r[o]=a),a.push(4*((t+s)*e+(t+i))+3),s>0&&a.push(4*((t-s)*e+(t+i))+3),i>0&&(a.push(4*((t+s)*e+(t-i))+3),s>0&&a.push(4*((t-s)*e+(t-i))+3))}const i=[];for(let s=0,o=r.length;s0){if(!s||"none"===n||"Image"!==d&&"Text"!==d||s.includes(t)){const n=(h[l]-3)/4,s=r-n%o,a=r-(n/o|0),c=i(t,e,s*s+a*a);if(c)return c}c.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let g,m,y,v,b;for(f.sort(jG),g=f.length-1;g>=0;--g){const t=f[g].toString();for(y=this.executorsByZIndex_[t],m=Q3.length-1;m>=0;--m)if(d=Q3[m],v=y[d],void 0!==v&&(b=v.executeHitDetection(c,a,n,p,u),b))return b}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const n=e[0],r=e[1],i=e[2],s=e[3],o=[n,r,n,s,i,s,i,r];return aX(o,0,8,2,t,o),o}isEmpty(){return RG(this.executorsByZIndex_)}execute(t,e,n,r,i,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);a.sort(o?UG:jG),s=s||Q3;const l=Q3.length;for(let c=0,u=a.length;cp.execute(t,e,n,r,i,o)):p.execute(h,e,n,r,i,o),d&&h.restore(),s){s.offset();const t=a[c]*l+Q3.indexOf(u);this.deferredZIndexContexts_[t]||(this.deferredZIndexContexts_[t]=[]),this.deferredZIndexContexts_[t].push(s)}}}}this.renderedContext_=t}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){const t=this.deferredZIndexContexts_,e=Object.keys(t).map(Number).sort(jG);for(let n=0,r=e.length;n{t.draw(this.renderedContext_),t.clear()}),t[e[n]].length=0}},s5={},o5=class extends w3{constructor(t,e,n,r,i,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=n,this.transform_=r,this.transformRotation_=r?jZ(Math.atan2(r[1],r[0]),10):0,this.viewRotation_=i,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=XY()}drawImages_(t,e,n,r){if(!this.image_)return;const i=aX(t,e,n,r,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let c=0,u=i.length;c0){const t=a.length,e=i||Math.abs(a[0]-a[t-2])<1e-6&&Math.abs(a[1]-a[t-1])<1e-6;a=F3(a,0,t,2,s,e,a),j3(a,2,e)}o.moveTo(a[0],a[1]);let l=a.length;i&&(l-=2);for(let c=2;ct*this.pixelRatio_),lineDashOffset:(i||0)*this.pixelRatio_,lineJoin:void 0!==s?s:t2,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:K1(t||e2),strokeOffset:(c??0)*this.pixelRatio_}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const n=t.getPixelRatio(this.pixelRatio_),r=t.getAnchor(),i=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=e[1]*n,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=i[0],this.imageOriginY_=i[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=e[0]*n}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:K1(t||X1)}}else this.textFillState_=null;const n=t.getStroke();if(n){const t=n.getColor(),e=n.getLineCap(),r=n.getLineDash(),i=n.getLineDashOffset(),s=n.getLineJoin(),o=n.getWidth(),a=n.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:J1,lineDash:r||Q1,lineDashOffset:i||0,lineJoin:void 0!==s?s:t2,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:K1(t||e2)}}else this.textStrokeState_=null;const r=t.getFont(),i=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),c=t.getText(),u=t.getTextAlign(),h=t.getTextBaseline();this.textState_={font:void 0!==r?r:"10px sans-serif",textAlign:void 0!==u?u:n2,textBaseline:void 0!==h?h:"middle"},this.text_=void 0!==c?Array.isArray(c)?c.reduce((t,e,n)=>t+(n%2?" ":e),""):c:"",this.textOffsetX_=void 0!==i?this.pixelRatio_*i:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}},a5=.5;function l5(t,e,n,r,i,s,o,a,l){const c=i,u=yJ(t[0]*a5,t[1]*a5);u.imageSmoothingEnabled=!1;const h=u.canvas,d=new o5(u,a5,i,null,o,a,l?BY(null,l):null),p=n.length,f=Math.floor(16777215/p),g={};for(let y=1;y<=p;++y){const t=n[y-1],e=t.getStyleFunction()||r;if(!e)continue;let i=e(t,s);if(!i)continue;Array.isArray(i)||(i=[i]);const o=(y*f).toString(16).padStart(7,"#00000");for(let n=0,r=i.length;n0;return h&&Promise.all(l).then(()=>i(null)),function(t,e,n,r,i,s,o){const a=n.getGeometryFunction()(e);if(!a)return;const l=a.simplifyTransformed(r,i);n.getRenderer()?g5(t,l,n,e,o):(0,u5[l.getType()])(t,l,n,e,o,s)}(t,e,n,r,s,o,a),h}function g5(t,e,n,r,i){if("GeometryCollection"==e.getType()){const s=e.getGeometries();for(let e=0,o=s.length;ethis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}updateStaleKeys(t){this.renderedSourceKey_?this.renderedSourceKey_!==t&&(this.prependStaleKey(this.renderedSourceKey_),this.renderedSourceKey_=t):this.renderedSourceKey_=t}getFeatures(t){return QG()}getData(t){return null}prepareFrame(t){return QG()}renderFrame(t,e){return QG()}forEachFeatureAtCoordinate(t,e,n,r,i){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;2!==e.getState()&&3!==e.getState()||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return 2!=e&&3!=e&&t.addEventListener(IG,this.boundHandleImageChange_),0==e&&(t.load(),e=t.getState()),2==e}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}renderDeferred(t){}disposeInternal(){delete this.layer_,super.disposeInternal()}},y5=[],v5=null,b5=class extends m5{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=XY(),this.pixelTransform=XY(),this.inversePixelTransform=XY(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(t,e,n){let r;v5||(v5=yJ(1,1,void 0,{willReadFrequently:!0})),v5.clearRect(0,0,1,1);try{v5.drawImage(t,e,n,1,1,0,0,1,1),r=v5.getImageData(0,0,1,1).data}catch{return v5=null,null}return r}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,n,r,i){if(SJ(t)&&0===this.pixelTransform[1]&&0===this.pixelTransform[2]&&0===this.pixelTransform[4]&&0===this.pixelTransform[5]&&t.width===r&&t.height===i){const e=t,r=e.getContext("2d");if(r)return this.container=t,this.context=r,this.containerReused=!0,void(n&&(r.fillStyle=n,r.fillRect(0,0,e.width,e.height)))}const s=this.getLayer().getClassName();let o,a;if(t&&t.className===s&&(!n||t&&t.style.backgroundColor&&VG(p0(t.style.backgroundColor),p0(n)))){const e=t.firstElementChild;SJ(e)&&(a=e.getContext("2d"))}if(a&&function(t,e){const n=oX(t),r=oX(e);for(let i=0;i<6;++i)if(0!==Math.round((n[i]-r[i])*sX[i]))return!1;return!0}(a.canvas.style.transform,e)?(this.container=t,this.context=a,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=fZ?kJ():document.createElement("div"),o.className=s;let t=o.style;t.position="absolute",t.width="100%",t.height="100%",a=yJ();const e=a.canvas;o.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=o,this.context=a}this.containerReused||!n||this.container.style.backgroundColor||(this.container.style.backgroundColor=n)}clipUnrotated(t,e,n){const r=bK(n),i=wK(n),s=hK(n),o=uK(n);eX(e.coordinateToPixelTransform,r),eX(e.coordinateToPixelTransform,i),eX(e.coordinateToPixelTransform,s),eX(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;eX(a,r),eX(a,i),eX(a,s),eX(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(i[0]),Math.round(i[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}prepareContainer(t,e){const n=t.extent,r=t.viewState.resolution,i=t.viewState.rotation,s=t.pixelRatio,o=Math.round(_K(n)/r*s),a=Math.round(mK(n)/r*s);rX(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/s,1/s,i,-o/2,-a/2),iX(this.inversePixelTransform,this.pixelTransform);const l="matrix("+this.pixelTransform.join(", ")+")",c=this.getBackground(t);if(this.useContainer(e,l,c,o,a),!this.containerReused){const t=this.context.canvas;t.width!=o||t.height!=a?(t.width=o,t.height=a):this.context.clearRect(0,0,o,a),l!==t.style.transform&&(t.style.transform=l)}}dispatchRenderEvent_(t,e,n){const r=this.getLayer();if(r.hasListener(t)){const i=new J2(t,this.inversePixelTransform,n,e);r.dispatchEvent(i)}}preRender(t,e){this.frameState=e,e.declutter||this.dispatchRenderEvent_(SQ,t,e)}postRender(t,e){e.declutter||this.dispatchRenderEvent_(EQ,t,e)}renderDeferredInternal(t){}getRenderContext(t){return t.declutter&&!this.deferredContext_&&(this.deferredContext_=new B3),t.declutter?this.deferredContext_.getContext():this.context}renderDeferred(t){t.declutter&&(this.dispatchRenderEvent_(SQ,this.context,t),t.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(t),this.dispatchRenderEvent_(EQ,this.context,t))}getRenderTransform(t,e,n,r,i,s,o){const a=i/2,l=s/2,c=r/e,u=-c,h=-t[0]+o,d=-t[1];return rX(this.tempTransform,a,l,c,u,-n,h,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}},w5=class extends b5{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipExtent_=null,this.extendX_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.wrappedRenderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(t,e,n){const r=e.extent,i=e.viewState,s=i.center,o=i.resolution,a=i.projection,l=i.rotation,c=a.getExtent(),u=this.getLayer().getSource(),h=this.getLayer().getDeclutter(),d=e.pixelRatio,p=e.viewHints,f=!(p[0]||p[1]),g=this.context,m=Math.round(_K(r)/o*d),y=Math.round(mK(r)/o*d),v=u.getWrapX()&&a.canWrapX(),b=v?_K(c):null,w=v?Math.ceil((r[2]-c[2])/b)+(this.extendX_?2:1):1;let _=v?Math.floor((r[0]-c[0])/b)-(this.extendX_?1:0):0;do{let r=this.getRenderTransform(s,o,0,d,m,y,_*b);e.declutter&&(r=r.slice(0)),t.execute(g,[g.canvas.width,g.canvas.height],r,l,f,void 0===n?Q3:n?t5:e5,n?h&&e.declutter[h]:void 0)}while(++_{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=this.frameState.size.slice(),e=this.renderedCenter_,n=this.renderedResolution_,r=this.renderedRotation_,i=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*a5,c=t[1]*a5;a.push(this.getRenderTransform(e,n,r,a5,l,c,0).slice());const u=o.getSource(),h=i.getExtent();if(u.getWrapX()&&i.canWrapX()&&!YZ(h,s)){let t=s[0];const i=_K(h);let o,u=0;for(;th[2];)++u,o=i*u,a.push(this.getRenderTransform(e,n,r,a5,l,c,o).slice()),t-=i}const d=null;this.hitDetectionImageData_=l5(t,a,this.renderedFeatures_,o.getStyleFunction(),s,n,r,d5(n,this.renderedPixelRatio_),d?i:null)}e(c5(t,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(t,e,n,r,i){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},c=this.getLayer().getDeclutter();return this.replayGroup_.forEachFeatureAtCoordinate(t,s,o,n,function(t,e,n){const s=eZ(t),o=l[s];if(o){if(!0!==o&&nt.value):null)}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),n=e.getSource();if(!n)return!1;const r=t.viewHints[0],i=t.viewHints[1],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&r||!o&&i)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,c=l.projection,u=l.resolution,h=t.pixelRatio,d=e.getRevision(),p=e.getRenderBuffer();let f=e.getRenderOrder();void 0===f&&(f=h5);const g=l.center.slice(),m=HZ(a,p*u),y=m.slice(),v=[m.slice()],b=c.getExtent(),w=n.getWrapX()&&c.canWrapX();if(this.extendX_=!1,w){const t=n.getExtent();t&&!CK(t)&&(this.extendX_=t[0]b[2])}if(w&&(!YZ(b,t.extent)||this.extendX_)){const t=_K(b),e=Math.max(_K(m)/2,t);let n=b[0],r=b[2];this.extendX_&&(n-=t,r+=t),m[0]=n-e,m[2]=r+e,PK(g,c);const i=SK(v[0],c);i[0]b[0]&&i[2]>b[2]&&v.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedPixelRatio_===h&&this.renderedRevision_==d&&this.renderedRenderOrder_==f&&this.renderedFrameDeclutter_===!!t.declutter&&YZ(this.wrappedRenderedExtent_,m))return VG(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=g,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const _=new z3(p5(u,h),m,u,h);for(let T=0,P=v.length;T{let r;const i=t.getStyleFunction()||e.getStyleFunction();if(i&&(r=i(t,u)),r){const e=this.renderFeature(t,x,r,_,undefined,this.getLayer().getDeclutter(),n);C=C&&!e}},S=m,E=n.getFeaturesInExtent(S);f&&E.sort(f);for(let T=0,P=E.length;T=200&&a.status<300){const t=e.getType();try{let r;"text"==t||"json"==t?r=a.responseText:"xml"==t?r=a.responseXML||a.responseText:"arraybuffer"==t&&(r=a.response),r?s(e.readFeatures(r,{extent:n,featureProjection:i}),e.readProjection(r)):o()}catch{o()}}else o()},a.onerror=o,a.send()}function C5(t,e){return function(n,r,i,s,o){x5(t,e,n,r,i,t=>{this.addFeatures(t),void 0!==s&&s(t)},()=>{this.changed(),void 0!==o&&o()})}}function k5(){return[[-1/0,-1/0,1/0,1/0]]}function S5(t){return[t]}var E5=XY(),R5=class t{constructor(t,e,n,r,i,s){this.styleFunction,this.extent_,this.id_=s,this.type_=t,this.flatCoordinates_=e,this.flatInteriorPoints_=null,this.flatMidpoints_=null,this.ends_=n||null,this.properties_=i,this.squaredTolerance_,this.stride_=r,this.simplifiedGeometry_}get(t){return this.properties_[t]}getExtent(){return this.extent_||(this.extent_="Point"===this.type_?eK(this.flatCoordinates_):nK(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_)),this.extent_}getFlatInteriorPoint(){if(!this.flatInteriorPoints_){const t=dK(this.getExtent());this.flatInteriorPoints_=$X(this.flatCoordinates_,0,this.ends_,this.stride_,t,0)}return this.flatInteriorPoints_}getFlatInteriorPoints(){if(!this.flatInteriorPoints_){const t=YX(this.flatCoordinates_,this.ends_),e=v3(this.flatCoordinates_,0,t,this.stride_);this.flatInteriorPoints_=qX(this.flatCoordinates_,0,t,this.stride_,e)}return this.flatInteriorPoints_}getFlatMidpoint(){return this.flatMidpoints_||(this.flatMidpoints_=d3(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_,.5)),this.flatMidpoints_}getFlatMidpoints(){if(!this.flatMidpoints_){this.flatMidpoints_=[];const t=this.flatCoordinates_;let e=0;const n=this.ends_;for(let r=0,i=n.length;r{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),n&&this.simplifiedGeometry_.applyTransform(n);const r=this.simplifiedGeometry_.getFlatCoordinates();let i;switch(this.type_){case"LineString":r.length=NX(r,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,r,0),i=[r.length];break;case"MultiLineString":i=[],r.length=zX(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,r,0,i);break;case"Polygon":i=[],r.length=jX(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),r,0,i)}return i&&(this.simplifiedGeometry_=new t(this.type_,r,i,this.stride_,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};R5.prototype.getFlatCoordinates=R5.prototype.getOrientedFlatCoordinates;var L5=class{constructor(t){this.rbush_=new OQ(t),this.items_={}}insert(t,e){const n={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(n),this.items_[eZ(e)]=n}load(t,e){const n=new Array(e.length);for(let r=0,i=e.length;r{const n=()=>{const r=this.getState();"ready"===r?(this.un("change",n),t()):"error"===r&&(this.un("change",n),e(new Error("Source failed to load")))};this.on("change",n)})}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=P5(t),this.changed()}setState(t){this.state_=t,this.changed()}};function P5(t){return t?"function"==typeof t?t:(Array.isArray(t)||(t=[t]),()=>t):null}var I5="addfeature",M5="removefeature",A5=class extends YG{constructor(t,e,n){super(t),this.feature=e,this.features=n}},O5=class extends T5{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=GG,this.format_=t.format||null,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(RZ(this.format_,"`format` must be set when `url` is set"),this.loader_=C5(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:k5;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let n,r;this.featuresRtree_=e?new L5:null,this.loadedExtentsRtree_=new L5,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?r=t.features:t.features&&(n=t.features,r=n.getArray()),e||void 0!==n||(n=new oZ(r)),void 0!==r&&this.addFeaturesInternal(r),void 0!==n&&this.bindFeaturesCollection_(n)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=eZ(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const n=t.getGeometry();if(n){const e=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new A5(I5,t))}setupChangeEvents_(t,e){e instanceof R5||(this.featureChangeKeys_[t]=[LG(e,IG,this.handleFeatureChange_,this),LG(e,SG,this.handleFeatureChange_,this)])}addToIndex_(t,e){let n=!0;if(void 0!==e.getId()){const t=String(e.getId());if(t in this.idIndex_)if(e instanceof R5){const r=this.idIndex_[t];r instanceof R5?Array.isArray(r)?r.push(e):this.idIndex_[t]=[r,e]:n=!1}else n=!1;else this.idIndex_[t]=e}return n&&(RZ(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),n}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],n=[],r=[];for(let i=0,s=t.length;i{e||(e=!0,this.addFeature(t.element),e=!1)}),t.addEventListener(kG,t=>{e||(e=!0,this.removeFeature(t.element),e=!1)}),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_)this.featureChangeKeys_[t].forEach(PG);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(t=>{this.removeFeatureInternal(t)});for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new A5("clear");this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const n=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(n,function(n){const r=n.getGeometry();if(r instanceof R5||r.intersectsCoordinate(t))return e(n)})}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,function(n){const r=n.getGeometry();if(r instanceof R5||r.intersectsExtent(t)){const t=e(n);if(t)return t}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),RG(this.nullGeometryFeatures_)||qG(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,function(t){e.push(t)}),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const n=EK(t,e);return[].concat(...n.map(t=>this.featuresRtree_.getInExtent(t)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const n=t[0],r=t[1];let i=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||WG,this.featuresRtree_.forEachInExtent(a,function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e instanceof R5?0:e.closestPointXY(n,r,s,o),o{this.loading=Number(this.loading)-1,this.dispatchEvent(new A5("featuresloadend",void 0,t))},s=()=>{this.changed(),this.loading=Number(this.loading)-1,this.dispatchEvent(new A5("featuresloaderror"))};let o=!1;const a=this.loader_.call(this,t,e,n,t=>o||i(t),()=>o||s());a instanceof Promise?(o=!0,a.then(t=>{this.addFeatures(t),i(t)}).catch(s)):this.loader_.length<4&&(this.loading=!1),r.insert(t,{extent:t.slice()})}}}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_,n=[];e.forEachInExtent(t,function(t){n.push(t)}),n.forEach(n=>{e.remove(n);const r=vK(n.extent,t);for(const t of r)e.insert(t,{extent:t})})}removeFeatures(t){let e=!1;for(let n=0,r=t.length;nt.clone())}var F5=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=h3,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let n=e.dataProjection?OY(e.dataProjection):this.readProjection(t);e.extent&&n&&"tile-pixels"===n.getUnits()&&(n=OY(n),n.setWorldExtent(e.extent)),e={dataProjection:n,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},t)}getType(){return QG()}readFeature(t,e){return QG()}readFeatures(t,e){return QG()}readGeometry(t,e){return QG()}readProjection(t){return QG()}writeFeature(t,e){return QG()}writeFeatures(t,e){return QG()}writeGeometry(t,e){return QG()}};function D5(t,e,n){const r=n?OY(n.featureProjection):null,i=n?OY(n.dataProjection):null;let s=t;if(r&&i&&!UY(r,i)){e&&(s=t.clone());const n=e?r:i,o=e?i:r;"tile-pixels"===n.getUnits()?s.transform(n,o):s.applyTransform(qY(n,o))}if(e&&n&&void 0!==n.decimals){const e=Math.pow(10,n.decimals),r=function(t){for(let n=0,r=t.length;nU5({...t,geometry:e})).flat();const r="MultiPolygon"===n.type?"Polygon":n.type;if("GeometryCollection"===r||"Circle"===r)throw new Error("Unsupported geometry type: "+r);const i=n.layout.length;return D5(new R5(r,"Polygon"===r?function(t,e,n){return Array.isArray(e[0])?(GX(t,0,e,n)||KX(t=t.slice(),0,e,n),t):(HX(t,0,e,n)||ZX(t=t.slice(),0,e,n),t)}(n.flatCoordinates,n.ends,i):n.flatCoordinates,n.ends?.flat(),i,t.properties||{},t.id).enableSimplifyTransformed(),!1,e)}function B5(t,e){if(!t)return null;if(Array.isArray(t)){const n=t.map(t=>B5(t,e));return new N5(n)}return D5(new(0,j5[t.type])(t.flatCoordinates,t.layout||"XY",t.ends),!1,e)}var $5=class extends F5{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(q5(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(q5(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return QG()}readFeaturesFromObject(t,e){return QG()}readGeometry(t,e){return this.readGeometryFromObject(q5(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return QG()}readProjection(t){return this.readProjectionFromObject(q5(t))}readProjectionFromObject(t){return QG()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return QG()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return QG()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return QG()}};function q5(t){return"string"==typeof t?JSON.parse(t)||null:null!==t?t:null}var V5=class extends $5{constructor(t){t=t||{},super(),this.dataProjection=OY(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=OY(t.featureProjection)),t.featureClass&&(this.featureClass=t.featureClass),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let n=null;n="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const r=W5(n.geometry);if(this.featureClass===R5)return U5({geometry:r,id:n.id,properties:n.properties},e);const i=new(0,this.featureClass);return this.geometryName_?i.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&i.setGeometryName(n.geometry_name),i.setGeometry(B5(r,e)),"id"in n&&i.setId(n.id),n.properties&&i.setProperties(n.properties,!0),i}readFeaturesFromObject(t,e){let n=null;if("FeatureCollection"===t.type){n=[];const r=t.features;for(let t=0,i=r.length;t":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"expression_name",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}},o4=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function a4(t,e){const n={};for(const r in t)"ref"!==r&&(n[r]=t[r]);return o4.forEach(t=>{t in e&&(n[t]=e[t])}),n}function l4(t){t=t.slice();const e=Object.create(null);for(let n=0;n`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}var P4=[p4,f4,g4,m4,y4,v4,x4,b4,L4(w4),C4,S4,k4,E4,R4];function I4(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!I4(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of P4)if(!I4(t,e))return null}return`Expected ${T4(t)} but found ${T4(e)} instead.`}function M4(t,e){return e.some(e=>e.kind===t.kind)}function A4(t,e){return e.some(e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t)}function O4(t,e){return"array"===t.kind&&"array"===e.kind?t.itemType.kind===e.itemType.kind&&"number"==typeof t.N:t.kind===e.kind}var N4=.96422,z4=.82521,F4=4/29,D4=6/29,j4=3*D4*D4,U4=D4*D4*D4,B4=Math.PI/180,$4=180/Math.PI;function q4(t){return(t%=360)<0&&(t+=360),t}function V4([t,e,n,r]){let i,s;const o=H4((.2225045*(t=W4(t))+.7168786*(e=W4(e))+.0606169*(n=W4(n)))/1);t===e&&e===n?i=s=o:(i=H4((.4360747*t+.3850649*e+.1430804*n)/N4),s=H4((.0139322*t+.0971045*e+.7141733*n)/z4));const a=116*o-16;return[a<0?0:a,500*(i-o),200*(o-s),r]}function W4(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function H4(t){return t>U4?Math.pow(t,1/3):t/j4+F4}function G4([t,e,n,r]){let i=(t+16)/116,s=isNaN(e)?i:i+e/500,o=isNaN(n)?i:i-n/200;return i=1*K4(i),s=N4*K4(s),o=z4*K4(o),[Z4(3.1338561*s-1.6168667*i-.4906146*o),Z4(-.9787684*s+1.9161415*i+.033454*o),Z4(.0719453*s-.2289914*i+1.4052427*o),r]}function Z4(t){return(t=t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055)<0?0:t>1?1:t}function K4(t){return t>D4?t*t*t:j4*(t-F4)}var Y4=Object.hasOwn||function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};function X4(t,e){return Y4(t,e)?t[e]:void 0}function J4(t){return parseInt(t.padEnd(2,t),16)/255}function Q4(t,e){return t6(e?t/100:t,0,1)}function t6(t,e,n){return Math.min(Math.max(e,t),n)}function e6(t){return!t.some(Number.isNaN)}var n6={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function r6(t,e,n){return t+n*(e-t)}function i6(t,e,n){return t.map((t,r)=>r6(t,e[r],n))}var s6=class t{constructor(t,e,n,r=1,i=!0){this.r=t,this.g=e,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter("rgb",[t,e,n,r]))}static{this.black=new t(0,0,0,1)}static{this.white=new t(1,1,1,1)}static{this.transparent=new t(0,0,0,0)}static{this.red=new t(1,0,0,1)}static parse(e){if(e instanceof t)return e;if("string"!=typeof e)return;const n=function(t){if("transparent"===(t=t.toLowerCase().trim()))return[0,0,0,0];const e=X4(n6,t);if(e){const[t,n,r]=e;return[t/255,n/255,r/255,1]}if(t.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t)){const e=t.length<6?1:2;let n=1;return[J4(t.slice(n,n+=e)),J4(t.slice(n,n+=e)),J4(t.slice(n,n+=e)),J4(t.slice(n,n+e)||"ff")]}if(t.startsWith("rgb")){const e=t.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(e){const[t,n,r,i,s,o,a,l,c,u,h,d]=e,p=[i||" ",a||" ",u].join("");if(" "===p||" /"===p||",,"===p||",,,"===p){const t=[r,o,c].join(""),e="%%%"===t?100:""===t?255:0;if(e){const t=[t6(+n/e,0,1),t6(+s/e,0,1),t6(+l/e,0,1),h?Q4(+h,d):1];if(e6(t))return t}}return}}const n=t.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){const[t,e,r,i,s,o,a,l,c]=n,u=[r||" ",s||" ",a].join("");if(" "===u||" /"===u||",,"===u||",,,"===u){const t=[+e,t6(+i,0,100),t6(+o,0,100),l?Q4(+l,c):1];if(e6(t))return function([t,e,n,r]){function i(r){const i=(r+t/30)%12,s=e*Math.min(n,1-n);return n-s*Math.max(-1,Math.min(i-3,9-i,1))}return t=q4(t),e/=100,n/=100,[i(0),i(8),i(4),r]}(t)}}}(e);return n?new t(...n,!1):void 0}get rgb(){const{r:t,g:e,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter("rgb",[t/i,e/i,n/i,r])}get hcl(){return this.overwriteGetter("hcl",function(t){const[e,n,r,i]=V4(t),s=Math.sqrt(n*n+r*r);return[Math.round(1e4*s)?q4(Math.atan2(r,n)*$4):NaN,s,e,i]}(this.rgb))}get lab(){return this.overwriteGetter("lab",V4(this.rgb))}overwriteGetter(t,e){return Object.defineProperty(this,t,{value:e}),e}toString(){const[t,e,n,r]=this.rgb;return`rgba(${[t,e,n].map(t=>Math.round(255*t)).join(",")},${r})`}static interpolate(e,n,r,i="rgb"){switch(i){case"rgb":{const[i,s,o,a]=i6(e.rgb,n.rgb,r);return new t(i,s,o,a,!1)}case"hcl":{const[i,s,o,a]=e.hcl,[l,c,u,h]=n.hcl;let d,p;if(isNaN(i)||isNaN(l))isNaN(i)?isNaN(l)?d=NaN:(d=l,1!==o&&0!==o||(p=c)):(d=i,1!==u&&0!==u||(p=s));else{let t=l-i;l>i&&t>180?t-=360:l180&&(t+=360),d=i+r*t}const[f,g,m,y]=function([t,e,n,r]){return t=isNaN(t)?0:t*B4,G4([n,Math.cos(t)*e,Math.sin(t)*e,r])}([d,p??r6(s,c,r),r6(o,u,r),r6(a,h,r)]);return new t(f,g,m,y,!1)}case"lab":{const[i,s,o,a]=G4(i6(e.lab,n.lab,r));return new t(i,s,o,a,!1)}}}},o6=class{constructor(t,e,n){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}},a6=["bottom","center","top"],l6=class{constructor(t,e,n,r,i,s){this.text=t,this.image=e,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=s}},c6=class t{constructor(t){this.sections=t}static fromString(e){return new t([new l6(e,null,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(e){return e instanceof t?e:t.fromString(e)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}},u6=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("number"==typeof e)return new t([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const t of e)if("number"!=typeof t)return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new t(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r){return new t(i6(e.values,n.values,r))}},h6=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("number"==typeof e)return new t([e]);if(Array.isArray(e)){for(const t of e)if("number"!=typeof t)return;return new t(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r){return new t(i6(e.values,n.values,r))}},d6=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("string"==typeof e){const n=s6.parse(e);if(!n)return;return new t([n])}if(!Array.isArray(e))return;const n=[];for(const t of e){if("string"!=typeof t)return;const e=s6.parse(t);if(!e)return;n.push(e)}return new t(n)}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r,i="rgb"){const s=[];if(e.values.length!=n.values.length)throw new Error(`colorArray: Arrays have mismatched length (${e.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let t=0;t=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof n&&n>=0&&n<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,e,n,r].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,e,n,r]:[t,e,n]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function b6(t){if(null===t||"string"==typeof t||"boolean"==typeof t||"number"==typeof t||t instanceof y6||t instanceof s6||t instanceof o6||t instanceof c6||t instanceof u6||t instanceof h6||t instanceof d6||t instanceof g6||t instanceof m6)return!0;if(Array.isArray(t)){for(const e of t)if(!b6(e))return!1;return!0}if("object"==typeof t){for(const e in t)if(!b6(t[e]))return!1;return!0}return!1}function w6(t){if(null===t)return p4;if("string"==typeof t)return g4;if("boolean"==typeof t)return m4;if("number"==typeof t)return f4;if(t instanceof s6)return y4;if(t instanceof y6)return v4;if(t instanceof o6)return _4;if(t instanceof c6)return x4;if(t instanceof u6)return C4;if(t instanceof h6)return S4;if(t instanceof d6)return k4;if(t instanceof g6)return R4;if(t instanceof m6)return E4;if(Array.isArray(t)){const e=t.length;let n;for(const r of t){const t=w6(r);if(n){if(n===t)continue;n=w4;break}n=t}return L4(n||w4,e)}return b4}function _6(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof s6||t instanceof y6||t instanceof c6||t instanceof u6||t instanceof h6||t instanceof d6||t instanceof g6||t instanceof m6?t.toString():JSON.stringify(t)}var x6=class t{constructor(t,e){this.type=t,this.value=e}static parse(e,n){if(2!==e.length)return n.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!b6(e[1]))return n.error("invalid value");const r=e[1];let i=w6(r);const s=n.expectedType;return"array"!==i.kind||0!==i.N||!s||"array"!==s.kind||"number"==typeof s.N&&0!==s.N||(i=s),new t(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}},C6={string:g4,number:f4,boolean:m4,object:b4},k6=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");let r,i=1;const s=e[0];if("array"===s){let t,s;if(e.length>2){const r=e[1];if("string"!=typeof r||!(r in C6)||"object"===r)return n.error('The item type argument of "array" must be one of string, number, boolean',1);t=C6[r],i++}else t=w4;if(e.length>3){if(null!==e[2]&&("number"!=typeof e[2]||e[2]<0||e[2]!==Math.floor(e[2])))return n.error('The length argument to "array" must be a positive integer literal',2);s=e[2],i++}r=L4(t,s)}else{if(!C6[s])throw new Error(`Types doesn't contain name = ${s}`);r=C6[s]}const o=[];for(;it.outputDefined())}},S6={"to-boolean":m4,"to-color":y4,"to-number":f4,"to-string":g4},E6=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");const r=e[0];if(!S6[r])throw new Error(`Can't parse ${r} as it is not part of the known types`);if(("to-boolean"===r||"to-string"===r)&&2!==e.length)return n.error("Expected one argument.");const i=S6[r],s=[];for(let t=1;t4?`Invalid rgba value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:v6(e[0],e[1],e[2],e[3]),!n))return new s6(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new p6(n||`Could not parse color from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"padding":{let e;for(const n of this.args){e=n.evaluate(t);const r=u6.parse(e);if(r)return r}throw new p6(`Could not parse padding from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"numberArray":{let e;for(const n of this.args){e=n.evaluate(t);const r=h6.parse(e);if(r)return r}throw new p6(`Could not parse numberArray from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"colorArray":{let e;for(const n of this.args){e=n.evaluate(t);const r=d6.parse(e);if(r)return r}throw new p6(`Could not parse colorArray from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"variableAnchorOffsetCollection":{let e;for(const n of this.args){e=n.evaluate(t);const r=g6.parse(e);if(r)return r}throw new p6(`Could not parse variableAnchorOffsetCollection from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"number":{let e=null;for(const n of this.args){if(e=n.evaluate(t),null===e)return 0;const r=Number(e);if(!isNaN(r))return r}throw new p6(`Could not convert ${JSON.stringify(e)} to number.`)}case"formatted":return c6.fromString(_6(this.args[0].evaluate(t)));case"resolvedImage":return m6.fromString(_6(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return _6(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}},R6=["Unknown","Point","LineString","Polygon"],L6=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?R6[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache.get(t);return e||(e=s6.parse(t),this._parseColorCache.set(t,e)),e}},T6=class t{constructor(t,e,n=[],r,i=new d4,s=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=i,this.errors=s,this.expectedType=r,this._isConstant=e}parse(t,e,n,r,i={}){return e?this.concat(e,n,r)._parse(t,i):this._parse(t,i)}_parse(t,e){function n(t,e,n){return"assert"===n?new k6(e,[t]):"coerce"===n?new E6(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const i=t[0];if("string"!=typeof i)return this.error(`Expression name must be a string, but found ${typeof i} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const s=this.registry[i];if(s){let i=s.parse(t,this);if(!i)return null;if(this.expectedType){const t=this.expectedType,r=i.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==r.kind){if("projectionDefinition"===t.kind&&["string","array"].includes(r.kind)||["color","formatted","resolvedImage"].includes(t.kind)&&["value","string"].includes(r.kind)||["padding","numberArray"].includes(t.kind)&&["value","number","array"].includes(r.kind)||"colorArray"===t.kind&&["value","string","array"].includes(r.kind)||"variableAnchorOffsetCollection"===t.kind&&["value","array"].includes(r.kind))i=n(i,t,e.typeAnnotation||"coerce");else if(this.checkSubtype(t,r))return null}else i=n(i,t,e.typeAnnotation||"assert")}if(!(i instanceof x6)&&"resolvedImage"!==i.type.kind&&this._isConstant(i)){const t=new L6;try{i=new x6(i.type,i.evaluate(t))}catch(r){return this.error(r.message),null}}return i}return this.error(`Unknown expression "${i}". If you wanted a literal array, use ["literal", [...]].`,0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error(`Expected an array, but found ${typeof t} instead.`)}concat(e,n,r){const i="number"==typeof e?this.path.concat(e):this.path,s=r?this.scope.concat(r):this.scope;return new t(this.registry,this._isConstant,i,n||null,s,this.errors)}error(t,...e){const n=`${this.key}${e.map(t=>`[${t}]`).join("")}`;this.errors.push(new h4(n,t))}checkSubtype(t,e){const n=I4(t,e);return n&&this.error(n),n}},P6=class t{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result)}static parse(e,n){if(e.length<4)return n.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const r=[];for(let t=1;te))throw new p6("Input is not a number.");o=a-1}return 0}var A6=class t{constructor(t,e,n){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[r,i]of n)this.labels.push(r),this.outputs.push(i)}static parse(e,n){if(e.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return n.error("Expected an even number of arguments.");const r=n.parse(e[1],1,f4);if(!r)return null;const i=[];let s=null;n.expectedType&&"value"!==n.expectedType.kind&&(s=n.expectedType);for(let t=1;t=r)return n.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',a);const c=n.parse(o,l,s);if(!c)return null;s=s||c.type,i.push([r,c])}return new t(s,r,i)}evaluate(t){const e=this.labels,n=this.outputs;if(1===e.length)return n[0].evaluate(t);const r=this.input.evaluate(t);if(r<=e[0])return n[0].evaluate(t);const i=e.length;return r>=e[i-1]?n[i-1].evaluate(t):n[M6(e,r)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}},O6=class t{constructor(t,e,n,r,i){this.type=t,this.operator=e,this.interpolation=n,this.input=r,this.labels=[],this.outputs=[];for(const[s,o]of i)this.labels.push(s),this.outputs.push(o)}static interpolationFactor(t,e,n,r){let i=0;if("exponential"===t.name)i=N6(e,t.base,n,r);else if("linear"===t.name)i=N6(e,1,n,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=function(t,e,n,r){const i=3*t,s=3*(n-t)-i,o=1-i-s,a=3*e,l=3*(r-e)-a,c=1-a-l;return function(t,e=1e-6){if(t<=0)return 0;if(t>=1)return 1;let n=t;for(let h=0;h<8;h++){const r=((o*n+s)*n+i)*n-t;if(Math.abs(r)a?r=n:u=n,n=.5*(r+u)}return((c*n+l)*n+a)*n}}(s[0],s[1],s[2],s[3])(N6(e,1,n,r))}return i}static parse(e,n){let[r,i,s,...o]=e;if(!Array.isArray(i)||0===i.length)return n.error("Expected an interpolation type expression.",1);if("linear"===i[0])i={name:"linear"};else if("exponential"===i[0]){const t=i[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);i={name:"exponential",base:t}}else{if("cubic-bezier"!==i[0])return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);{const t=i.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);i={name:"cubic-bezier",controlPoints:t}}}if(e.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(s=n.parse(s,2,f4),!s)return null;const a=[];let l=null;"interpolate-hcl"!==r&&"interpolate-lab"!==r||n.expectedType==k4?n.expectedType&&"value"!==n.expectedType.kind&&(l=n.expectedType):l=y4;for(let t=0;t=e)return n.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const c=n.parse(r,s,l);if(!c)return null;l=l||c.type,a.push([e,c])}return O4(l,f4)||O4(l,v4)||O4(l,y4)||O4(l,C4)||O4(l,S4)||O4(l,k4)||O4(l,R4)||O4(l,L4(f4))?new t(l,r,i,s,a):n.error(`Type ${T4(l)} is not interpolatable.`)}evaluate(e){const n=this.labels,r=this.outputs;if(1===n.length)return r[0].evaluate(e);const i=this.input.evaluate(e);if(i<=n[0])return r[0].evaluate(e);const s=n.length;if(i>=n[s-1])return r[s-1].evaluate(e);const o=M6(n,i),a=n[o],l=n[o+1],c=t.interpolationFactor(this.interpolation,i,a,l),u=r[o].evaluate(e),h=r[o+1].evaluate(e);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return r6(u,h,c);case"color":return s6.interpolate(u,h,c);case"padding":return u6.interpolate(u,h,c);case"colorArray":return d6.interpolate(u,h,c);case"numberArray":return h6.interpolate(u,h,c);case"variableAnchorOffsetCollection":return g6.interpolate(u,h,c);case"array":return i6(u,h,c);case"projectionDefinition":return y6.interpolate(u,h,c)}case"interpolate-hcl":switch(this.type.kind){case"color":return s6.interpolate(u,h,c,"hcl");case"colorArray":return d6.interpolate(u,h,c,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return s6.interpolate(u,h,c,"lab");case"colorArray":return d6.interpolate(u,h,c,"lab")}}}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}};function N6(t,e,n,r){const i=r-n,s=t-n;return 0===i?0:1===e?s/i:(Math.pow(e,s)-1)/(Math.pow(e,i)-1)}s6.interpolate,u6.interpolate,h6.interpolate,d6.interpolate,g6.interpolate;var z6=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");let r=null;const i=n.expectedType;i&&"value"!==i.kind&&(r=i);const s=[];for(const t of e.slice(1)){const e=n.parse(t,1+s.length,r,void 0,{typeAnnotation:"omit"});if(!e)return null;r=r||e.type,s.push(e)}if(!r)throw new Error("No output type");return i&&s.some(t=>I4(i,t.type))?new t(w4,s):new t(r,s)}evaluate(t){let e,n=null,r=0;for(const i of this.args)if(r++,n=i.evaluate(t),n&&n instanceof m6&&!n.available&&(e||(e=n.name),n=null,r===this.args.length&&(n=e)),null!==n)break;return n}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}};function F6(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function D6(t,e,n,r){return 0===r.compare(e,n)}function j6(t,e,n){const r="=="!==t&&"!="!==t;return class i{constructor(t,e,n){this.type=m4,this.lhs=t,this.rhs=e,this.collator=n,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const n=t[0];let s=e.parse(t[1],1,w4);if(!s)return null;if(!F6(n,s.type))return e.concat(1).error(`"${n}" comparisons are not supported for type '${T4(s.type)}'.`);let o=e.parse(t[2],2,w4);if(!o)return null;if(!F6(n,o.type))return e.concat(2).error(`"${n}" comparisons are not supported for type '${T4(o.type)}'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error(`Cannot compare types '${T4(s.type)}' and '${T4(o.type)}'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new k6(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new k6(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(a=e.parse(t[3],3,_4),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const e=w6(s),n=w6(o);if(e.kind!==n.kind||"string"!==e.kind&&"number"!==e.kind)throw new p6(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${n.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=w6(s),n=w6(o);if("string"!==t.kind||"string"!==n.kind)return e(i,s,o)}return this.collator?n(i,s,o,this.collator.evaluate(i)):e(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}}}var U6=j6("==",function(t,e,n){return e===n},D6),B6=j6("!=",function(t,e,n){return e!==n},function(t,e,n,r){return!D6(0,e,n,r)}),$6=j6("<",function(t,e,n){return e",function(t,e,n){return e>n},function(t,e,n,r){return r.compare(e,n)>0}),V6=j6("<=",function(t,e,n){return e<=n},function(t,e,n,r){return r.compare(e,n)<=0}),W6=j6(">=",function(t,e,n){return e>=n},function(t,e,n,r){return r.compare(e,n)>=0}),H6=class t{constructor(t,e,n){this.type=_4,this.locale=n,this.caseSensitive=t,this.diacriticSensitive=e}static parse(e,n){if(2!==e.length)return n.error("Expected one argument.");const r=e[1];if("object"!=typeof r||Array.isArray(r))return n.error("Collator options argument must be an object.");const i=n.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,m4);if(!i)return null;const s=n.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,m4);if(!s)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,g4),!o)?null:new t(i,s,o)}evaluate(t){return new o6(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}},G6=8192;function Z6(t,e){const n=(180+t[0])/360,r=(i=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360);var i;const s=Math.pow(2,e.z);return[Math.round(n*s*G6),Math.round(r*s*G6)]}function K6(t,e){const n=Math.pow(2,e.z);return[(i=(t[0]/G6+e.x)/n,360*i-180),(r=(t[1]/G6+e.y)/n,360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90)];var r,i}function Y6(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1])}function X6(t,e){return!(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function J6(t,e,n){return e[1]>t[1]!=n[1]>t[1]&&t[0]<(n[0]-e[0])*(t[1]-e[1])/(n[1]-e[1])+e[0]}function Q6(t,e,n){const r=t[0]-e[0],i=t[1]-e[1],s=t[0]-n[0],o=t[1]-n[1];return r*o-s*i===0&&r*s<=0&&i*o<=0}function t8(t,e,n,r){const i=[e[0]-t[0],e[1]-t[1]];return 0!==function(t,e){return t[0]*e[1]-t[1]*e[0]}([r[0]-n[0],r[1]-n[1]],i)&&!(!o8(t,e,n,r)||!o8(n,r,t,e))}function e8(t,e,n){for(const r of n)for(let n=0;n0&&h<0||u<0&&h>0}function a8(t,e,n){const r=[];for(let i=0;in[2]){const e=.5*r;let i=t[0]-n[0]>e?-r:n[0]-t[0]>e?r:0;0===i&&(i=t[0]-n[2]>e?-r:n[2]-t[0]>e?r:0),t[0]+=i}Y6(e,t)}function u8(t,e,n,r){const i=Math.pow(2,r.z)*G6,s=[r.x*G6,r.y*G6],o=[];for(const a of t)for(const t of a){const r=[t.x+s[0],t.y+s[1]];c8(r,e,n,i),o.push(r)}return o}function h8(t,e,n,r){const i=Math.pow(2,r.z)*G6,s=[r.x*G6,r.y*G6],o=[];for(const a of t){const t=[];for(const n of a){const r=[n.x+s[0],n.y+s[1]];Y6(e,r),t.push(r)}o.push(t)}if(e[2]-e[0]<=i/2){!function(t){t[0]=t[1]=1/0,t[2]=t[3]=-1/0}(e);for(const t of o)for(const r of t)c8(r,e,n,i)}return o}var d8=class t{constructor(t,e){this.type=m4,this.geojson=t,this.geometries=e}static parse(e,n){if(2!==e.length)return n.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(b6(e[1])){const n=e[1];if("FeatureCollection"===n.type){const e=[];for(const t of n.features){const{type:n,coordinates:r}=t.geometry;"Polygon"===n&&e.push(r),"MultiPolygon"===n&&e.push(...r)}if(e.length)return new t(n,{type:"MultiPolygon",coordinates:e})}else if("Feature"===n.type){const e=n.geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new t(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new t(n,n)}return n.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){const s=a8(e.coordinates,r,i),o=u8(t.geometry(),n,r,i);if(!X6(n,r))return!1;for(const t of o)if(!n8(t,s))return!1}if("MultiPolygon"===e.type){const s=l8(e.coordinates,r,i),o=u8(t.geometry(),n,r,i);if(!X6(n,r))return!1;for(const t of o)if(!r8(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){const s=a8(e.coordinates,r,i),o=h8(t.geometry(),n,r,i);if(!X6(n,r))return!1;for(const t of o)if(!i8(t,s))return!1}if("MultiPolygon"===e.type){const s=l8(e.coordinates,r,i),o=h8(t.geometry(),n,r,i);if(!X6(n,r))return!1;for(const t of o)if(!s8(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}},p8=class{constructor(t=[],e=(t,e)=>te?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:n}=this,r=e[t];for(;t>0;){const i=t-1>>1,s=e[i];if(n(r,s)>=0)break;e[t]=s,t=i}e[t]=r}_down(t){const{data:e,compare:n}=this,r=this.length>>1,i=e[t];for(;t=0)break;e[t]=e[r],t=r}e[t]=i}};function f8(t){let e=0;for(let n,r,i=0,s=t.length,o=s-1;i1?(l=t[a+1][0],c=t[a+1][1]):d>0&&(l+=u/this.kx*d,c+=h/this.ky*d)),u=this.wrap(e[0]-l)*this.kx,h=(e[1]-c)*this.ky;const p=u*u+h*h;p180;)t-=360;return t}};function y8(t,e){return e[0]-t[0]}function v8(t){return t[1]-t[0]+1}function b8(t,e){return t[1]>=t[0]&&t[1]t[1])return[null,null];const n=v8(t);if(e){if(2===n)return[t,null];const e=Math.floor(n/2);return[[t[0],t[0]+e],[t[0]+e,t[1]]]}if(1===n)return[t,null];const r=Math.floor(n/2)-1;return[[t[0],t[0]+r],[t[0]+r+1,t[1]]]}function _8(t,e){if(!b8(e,t.length))return[1/0,1/0,-1/0,-1/0];const n=[1/0,1/0,-1/0,-1/0];for(let r=e[0];r<=e[1];++r)Y6(n,t[r]);return n}function x8(t){const e=[1/0,1/0,-1/0,-1/0];for(const n of t)for(const t of n)Y6(e,t);return e}function C8(t){return t[0]!==-1/0&&t[1]!==-1/0&&t[2]!==1/0&&t[3]!==1/0}function k8(t,e,n){if(!C8(t)||!C8(e))return NaN;let r=0,i=0;return t[2]e[2]&&(r=t[0]-e[2]),t[1]>e[3]&&(i=t[1]-e[3]),t[3]=r)return r;if(X6(i,s)){if(I8(t,e))return 0}else if(I8(e,t))return 0;let o=1/0;for(const a of t)for(let t=0,r=a.length,i=r-1;t0;){const i=o.pop();if(i[0]>=s)continue;const l=i[1],c=e?50:100;if(v8(l)<=c){if(!b8(l,t.length))return NaN;if(e){const e=P8(t,l,n,r);if(isNaN(e)||0===e)return e;s=Math.min(s,e)}else for(let e=l[0];e<=l[1];++e){const i=T8(t[e],n,r);if(s=Math.min(s,i),0===s)return 0}}else{const n=w8(l,e);A8(o,s,r,t,a,n[0]),A8(o,s,r,t,a,n[1])}}return s}function z8(t,e,n,r,i,s=1/0){let o=Math.min(s,i.distance(t[0],n[0]));if(0===o)return o;const a=new p8([[0,[0,t.length-1],[0,n.length-1]]],y8);for(;a.length>0;){const s=a.pop();if(s[0]>=o)continue;const l=s[1],c=s[2],u=e?50:100,h=r?50:100;if(v8(l)<=u&&v8(c)<=h){if(!b8(l,t.length)&&b8(c,n.length))return NaN;let s;if(e&&r)s=R8(t,l,n,c,i),o=Math.min(o,s);else if(e&&!r){const e=t.slice(l[0],l[1]+1);for(let t=c[0];t<=c[1];++t)if(s=S8(n[t],e,i),o=Math.min(o,s),0===o)return o}else if(!e&&r){const e=n.slice(c[0],c[1]+1);for(let n=l[0];n<=l[1];++n)if(s=S8(t[n],e,i),o=Math.min(o,s),0===o)return o}else s=L8(t,l,n,c,i),o=Math.min(o,s)}else{const s=w8(l,e),u=w8(c,r);O8(a,o,i,t,n,s[0],u[0]),O8(a,o,i,t,n,s[0],u[1]),O8(a,o,i,t,n,s[1],u[0]),O8(a,o,i,t,n,s[1],u[1])}}return o}function F8(t){return"MultiPolygon"===t.type?t.coordinates.map(t=>({type:"Polygon",coordinates:t})):"MultiLineString"===t.type?t.coordinates.map(t=>({type:"LineString",coordinates:t})):"MultiPoint"===t.type?t.coordinates.map(t=>({type:"Point",coordinates:t})):[t]}var D8=class t{constructor(t,e){this.type=f4,this.geojson=t,this.geometries=e}static parse(e,n){if(2!==e.length)return n.error(`'distance' expression requires exactly one argument, but found ${e.length-1} instead.`);if(b6(e[1])){const n=e[1];if("FeatureCollection"===n.type)return new t(n,n.features.map(t=>F8(t.geometry)).flat());if("Feature"===n.type)return new t(n,F8(n.geometry));if("type"in n&&"coordinates"in n)return new t(n,F8(n))}return n.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const n=t.geometry(),r=n.flat().map(e=>K6([e.x,e.y],t.canonical));if(0===n.length)return NaN;const i=new m8(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,z8(r,!1,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,z8(r,!1,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,N8(r,!1,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const n=t.geometry(),r=n.flat().map(e=>K6([e.x,e.y],t.canonical));if(0===n.length)return NaN;const i=new m8(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,z8(r,!0,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,z8(r,!0,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,N8(r,!0,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries);if("Polygon"===t.geometryType())return function(t,e){const n=t.geometry();if(0===n.length||0===n[0].length)return NaN;const r=function(t){if(t.length<=1)return[t];const e=[];let n,r;for(const i of t){const t=f8(i);0!==t&&(i.area=Math.abs(t),void 0===r&&(r=t<0),r===t<0?(n&&e.push(n),n=[i]):n.push(i))}return n&&e.push(n),e}(n).map(e=>e.map(e=>e.map(e=>K6([e.x,e.y],t.canonical)))),i=new m8(r[0][0][0][1]);let s=1/0;for(const o of e)for(const t of r){switch(o.type){case"Point":s=Math.min(s,N8([o.coordinates],!1,t,i,s));break;case"LineString":s=Math.min(s,N8(o.coordinates,!0,t,i,s));break;case"Polygon":s=Math.min(s,M8(t,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}},j8=class t{constructor(t){this.type=w4,this.key=t}static parse(e,n){if(2!==e.length)return n.error(`Expected 1 argument, but found ${e.length-1} instead.`);const r=e[1];return null==r?n.error("Global state property must be defined."):"string"!=typeof r?n.error(`Global state property must be string, but found ${typeof e[1]} instead.`):new t(r)}evaluate(t){const e=t.globals?.globalState;return e&&0!==Object.keys(e).length?X4(e,this.key)??null:null}eachChild(){}outputDefined(){return!1}},U8={"==":U6,"!=":B6,">":q6,"<":$6,">=":W6,"<=":V6,array:k6,at:class t{constructor(t,e,n){this.type=t,this.index=e,this.input=n}static parse(e,n){if(3!==e.length)return n.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,f4),i=n.parse(e[2],2,L4(n.expectedType||w4));if(!r||!i)return null;const s=i.type;return new t(s.itemType,r,i)}evaluate(t){const e=this.index.evaluate(t),n=this.input.evaluate(t);if(e<0)throw new p6(`Array index out of bounds: ${e} < 0.`);if(e>=n.length)throw new p6(`Array index out of bounds: ${e} > ${n.length-1}.`);if(e!==Math.floor(e))throw new p6(`Array index must be an integer, but found ${e} instead.`);return n[e]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}},boolean:k6,case:class t{constructor(t,e,n){this.type=t,this.branches=e,this.otherwise=n}static parse(e,n){if(e.length<4)return n.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return n.error("Expected an odd number of arguments.");let r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i=[];for(let t=1;te.outputDefined())&&this.otherwise.outputDefined()}},coalesce:z6,collator:H6,format:class t{constructor(t){this.type=x4,this.sections=t}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");const r=e[1];if(!Array.isArray(r)&&"object"==typeof r)return n.error("First argument must be an image or text section.");const i=[];let s=!1;for(let t=1;t<=e.length-1;++t){const r=e[t];if(s&&"object"==typeof r&&!Array.isArray(r)){s=!1;let t=null;if(r["font-scale"]&&(t=n.parse(r["font-scale"],1,f4),!t))return null;let e=null;if(r["text-font"]&&(e=n.parse(r["text-font"],1,L4(g4)),!e))return null;let o=null;if(r["text-color"]&&(o=n.parse(r["text-color"],1,y4),!o))return null;let a=null;if(r["vertical-align"]){if("string"==typeof r["vertical-align"]&&!a6.includes(r["vertical-align"]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r["vertical-align"]}' instead.`);if(a=n.parse(r["vertical-align"],1,g4),!a)return null}const l=i[i.length-1];l.scale=t,l.font=e,l.textColor=o,l.verticalAlign=a}else{const r=n.parse(e[t],1,w4);if(!r)return null;const o=r.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");s=!0,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null})}}return new t(i)}evaluate(t){return new c6(this.sections.map(e=>{const n=e.content.evaluate(t);return w6(n)===E4?new l6("",n,null,null,null,e.verticalAlign?e.verticalAlign.evaluate(t):null):new l6(_6(n),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null,e.verticalAlign?e.verticalAlign.evaluate(t):null)}))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor),e.verticalAlign&&t(e.verticalAlign)}outputDefined(){return!1}},image:class t{constructor(t){this.type=E4,this.input=t}static parse(e,n){if(2!==e.length)return n.error("Expected two arguments.");const r=n.parse(e[1],1,g4);return r?new t(r):n.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),n=m6.fromString(e);return n&&t.availableImages&&(n.available=t.availableImages.indexOf(e)>-1),n}eachChild(t){t(this.input)}outputDefined(){return!1}},in:class t{constructor(t,e){this.type=m4,this.needle=t,this.haystack=e}static parse(e,n){if(3!==e.length)return n.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,w4),i=n.parse(e[2],2,w4);return r&&i?M4(r.type,[m4,g4,f4,p4,w4])?new t(r,i):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${T4(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),n=this.haystack.evaluate(t);if(!n)return!1;if(!A4(e,["boolean","string","number","null"]))throw new p6(`Expected first argument to be of type boolean, string, number or null, but found ${T4(w6(e))} instead.`);if(!A4(n,["string","array"]))throw new p6(`Expected second argument to be of type array or string, but found ${T4(w6(n))} instead.`);return n.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}},"index-of":class t{constructor(t,e,n){this.type=f4,this.needle=t,this.haystack=e,this.fromIndex=n}static parse(e,n){if(e.length<=2||e.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,w4),i=n.parse(e[2],2,w4);if(!r||!i)return null;if(!M4(r.type,[m4,g4,f4,p4,w4]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${T4(r.type)} instead`);if(4===e.length){const s=n.parse(e[3],3,f4);return s?new t(r,i,s):null}return new t(r,i)}evaluate(t){const e=this.needle.evaluate(t),n=this.haystack.evaluate(t);if(!A4(e,["boolean","string","number","null"]))throw new p6(`Expected first argument to be of type boolean, string, number or null, but found ${T4(w6(e))} instead.`);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(t)),A4(n,["string"])){const t=n.indexOf(e,r);return-1===t?-1:[...n.slice(0,t)].length}if(A4(n,["array"]))return n.indexOf(e,r);throw new p6(`Expected second argument to be of type array or string, but found ${T4(w6(n))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}},interpolate:O6,"interpolate-hcl":O6,"interpolate-lab":O6,length:class t{constructor(t){this.type=f4,this.input=t}static parse(e,n){if(2!==e.length)return n.error(`Expected 1 argument, but found ${e.length-1} instead.`);const r=n.parse(e[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?n.error(`Expected argument of type string or array, but found ${T4(r.type)} instead.`):new t(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return[...e].length;if(Array.isArray(e))return e.length;throw new p6(`Expected value to be of type string or array, but found ${T4(w6(e))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}},let:P6,literal:x6,match:class t{constructor(t,e,n,r,i,s){this.inputType=t,this.type=e,this.input=n,this.cases=r,this.outputs=i,this.otherwise=s}static parse(e,n){if(e.length<5)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return n.error("Expected an even number of arguments.");let r,i;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);const s={},o=[];for(let t=2;tNumber.MAX_SAFE_INTEGER)return c.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,w6(t)))return null}else r=w6(t);if(void 0!==s[String(t)])return c.error("Branch labels must be unique.");s[String(t)]=o.length}const u=n.parse(l,t,i);if(!u)return null;i=i||u.type,o.push(u)}const a=n.parse(e[1],1,w4);if(!a)return null;const l=n.parse(e[e.length-1],e.length-1,i);return l?"value"!==a.type.kind&&n.concat(1).checkSubtype(r,a.type)?null:new t(r,i,a,s,o,l):null}evaluate(t){const e=this.input.evaluate(t);return(w6(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}},number:k6,"number-format":class t{constructor(t,e,n,r,i,s){this.type=g4,this.number=t,this.locale=e,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(e,n){if(3!==e.length)return n.error("Expected two arguments.");const r=n.parse(e[1],1,f4);if(!r)return null;const i=e[2];if("object"!=typeof i||Array.isArray(i))return n.error("NumberFormat options argument must be an object.");let s=null;if(i.locale&&(s=n.parse(i.locale,1,g4),!s))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,g4),!o))return null;let a=null;if(i.unit&&(a=n.parse(i.unit,1,g4),!a))return null;if(o&&a)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let l=null;if(i["min-fraction-digits"]&&(l=n.parse(i["min-fraction-digits"],1,f4),!l))return null;let c=null;return i["max-fraction-digits"]&&(c=n.parse(i["max-fraction-digits"],1,f4),!c)?null:new t(r,s,o,a,l,c)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":this.unit?"unit":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}},object:k6,slice:class t{constructor(t,e,n,r){this.type=t,this.input=e,this.beginIndex=n,this.endIndex=r}static parse(e,n){if(e.length<=2||e.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,w4),i=n.parse(e[2],2,f4);if(!r||!i)return null;if(!M4(r.type,[L4(w4),g4,w4]))return n.error(`Expected first argument to be of type array or string, but found ${T4(r.type)} instead`);if(4===e.length){const s=n.parse(e[3],3,f4);return s?new t(r.type,r,i,s):null}return new t(r.type,r,i)}evaluate(t){const e=this.input.evaluate(t),n=this.beginIndex.evaluate(t);let r;if(this.endIndex&&(r=this.endIndex.evaluate(t)),A4(e,["string"]))return[...e].slice(n,r).join("");if(A4(e,["array"]))return e.slice(n,r);throw new p6(`Expected first argument to be of type array or string, but found ${T4(w6(e))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}},step:A6,string:k6,"to-boolean":E6,"to-color":E6,"to-number":E6,"to-string":E6,var:I6,within:d8,distance:D8,"global-state":j8},B8=class t{constructor(t,e,n,r){this.name=t,this.type=e,this._evaluate=n,this.args=r}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(e,n){const r=e[0],i=t.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const s=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,a=o.filter(([t])=>!Array.isArray(t)||t.length===e.length-1);let l=null;for(const[c,u]of a){l=new T6(n.registry,H8,n.path,null,n.scope);const i=[];let o=!1;for(let t=1;t{return e=t,Array.isArray(e)?`(${e.map(T4).join(", ")})`:`(${T4(e.type)}...)`;var e}).join(" | "),r=[];for(let i=1;i{n=e?n&&H8(t):n&&t instanceof x6}),!!n&&G8(t)&&K8(t,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function G8(t){if(t instanceof B8){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof d8)return!1;if(t instanceof D8)return!1;let e=!0;return t.eachChild(t=>{e&&!G8(t)&&(e=!1)}),e}function Z8(t){if(t instanceof B8&&"feature-state"===t.name)return!1;let e=!0;return t.eachChild(t=>{e&&!Z8(t)&&(e=!1)}),e}function K8(t,e){if(t instanceof B8&&e.indexOf(t.name)>=0)return!1;let n=!0;return t.eachChild(t=>{n&&!K8(t,e)&&(n=!1)}),n}function Y8(t){return{result:"success",value:t}}function X8(t){return{result:"error",value:t}}function J8(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Q8(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function t7(t){return!!t.expression&&t.expression.interpolated}function e7(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function n7(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)&&w6(t)===b4}B8.register(U8,{error:[{kind:"error"},[g4],(t,[e])=>{throw new p6(e.evaluate(t))}],typeof:[g4,[w4],(t,[e])=>T4(w6(e.evaluate(t)))],"to-rgba":[L4(f4,4),[y4],(t,[e])=>{const[n,r,i,s]=e.evaluate(t).rgb;return[255*n,255*r,255*i,s]}],rgb:[y4,[f4,f4,f4],$8],rgba:[y4,[f4,f4,f4,f4],$8],has:{type:m4,overloads:[[[g4],(t,[e])=>q8(e.evaluate(t),t.properties())],[[g4,b4],(t,[e,n])=>q8(e.evaluate(t),n.evaluate(t))]]},get:{type:w4,overloads:[[[g4],(t,[e])=>V8(e.evaluate(t),t.properties())],[[g4,b4],(t,[e,n])=>V8(e.evaluate(t),n.evaluate(t))]]},"feature-state":[w4,[g4],(t,[e])=>V8(e.evaluate(t),t.featureState||{})],properties:[b4,[],t=>t.properties()],"geometry-type":[g4,[],t=>t.geometryType()],id:[w4,[],t=>t.id()],zoom:[f4,[],t=>t.globals.zoom],"heatmap-density":[f4,[],t=>t.globals.heatmapDensity||0],elevation:[f4,[],t=>t.globals.elevation||0],"line-progress":[f4,[],t=>t.globals.lineProgress||0],accumulated:[w4,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[f4,W8(f4),(t,e)=>{let n=0;for(const r of e)n+=r.evaluate(t);return n}],"*":[f4,W8(f4),(t,e)=>{let n=1;for(const r of e)n*=r.evaluate(t);return n}],"-":{type:f4,overloads:[[[f4,f4],(t,[e,n])=>e.evaluate(t)-n.evaluate(t)],[[f4],(t,[e])=>-e.evaluate(t)]]},"/":[f4,[f4,f4],(t,[e,n])=>e.evaluate(t)/n.evaluate(t)],"%":[f4,[f4,f4],(t,[e,n])=>e.evaluate(t)%n.evaluate(t)],ln2:[f4,[],()=>Math.LN2],pi:[f4,[],()=>Math.PI],e:[f4,[],()=>Math.E],"^":[f4,[f4,f4],(t,[e,n])=>Math.pow(e.evaluate(t),n.evaluate(t))],sqrt:[f4,[f4],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[f4,[f4],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[f4,[f4],(t,[e])=>Math.log(e.evaluate(t))],log2:[f4,[f4],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[f4,[f4],(t,[e])=>Math.sin(e.evaluate(t))],cos:[f4,[f4],(t,[e])=>Math.cos(e.evaluate(t))],tan:[f4,[f4],(t,[e])=>Math.tan(e.evaluate(t))],asin:[f4,[f4],(t,[e])=>Math.asin(e.evaluate(t))],acos:[f4,[f4],(t,[e])=>Math.acos(e.evaluate(t))],atan:[f4,[f4],(t,[e])=>Math.atan(e.evaluate(t))],min:[f4,W8(f4),(t,e)=>Math.min(...e.map(e=>e.evaluate(t)))],max:[f4,W8(f4),(t,e)=>Math.max(...e.map(e=>e.evaluate(t)))],abs:[f4,[f4],(t,[e])=>Math.abs(e.evaluate(t))],round:[f4,[f4],(t,[e])=>{const n=e.evaluate(t);return n<0?-Math.round(-n):Math.round(n)}],floor:[f4,[f4],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[f4,[f4],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[m4,[g4,w4],(t,[e,n])=>t.properties()[e.value]===n.value],"filter-id-==":[m4,[w4],(t,[e])=>t.id()===e.value],"filter-type-==":[m4,[g4],(t,[e])=>t.geometryType()===e.value],"filter-<":[m4,[g4,w4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r{const n=t.id(),r=e.value;return typeof n==typeof r&&n":[m4,[g4,w4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[m4,[w4],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n>r}],"filter-<=":[m4,[g4,w4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[m4,[w4],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n<=r}],"filter->=":[m4,[g4,w4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[m4,[w4],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n>=r}],"filter-has":[m4,[w4],(t,[e])=>e.value in t.properties()],"filter-has-id":[m4,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[m4,[L4(g4)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[m4,[L4(w4)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[m4,[g4,L4(w4)],(t,[e,n])=>n.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[m4,[g4,L4(w4)],(t,[e,n])=>function(t,e,n,r){for(;n<=r;){const i=n+r>>1;if(e[i]===t)return!0;e[i]>t?r=i-1:n=i+1}return!1}(t.properties()[e.value],n.value,0,n.value.length-1)],all:{type:m4,overloads:[[[m4,m4],(t,[e,n])=>e.evaluate(t)&&n.evaluate(t)],[W8(m4),(t,e)=>{for(const n of e)if(!n.evaluate(t))return!1;return!0}]]},any:{type:m4,overloads:[[[m4,m4],(t,[e,n])=>e.evaluate(t)||n.evaluate(t)],[W8(m4),(t,e)=>{for(const n of e)if(n.evaluate(t))return!0;return!1}]]},"!":[m4,[m4],(t,[e])=>!e.evaluate(t)],"is-supported-script":[m4,[g4],(t,[e])=>{const n=t.globals&&t.globals.isSupportedScript;return!n||n(e.evaluate(t))}],upcase:[g4,[g4],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[g4,[g4],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[g4,W8(w4),(t,e)=>e.map(e=>_6(e.evaluate(t))).join("")],split:[L4(g4),[g4,g4],(t,[e,n])=>e.evaluate(t).split(n.evaluate(t))],join:[g4,[L4(g4),g4],(t,[e,n])=>e.evaluate(t).join(n.evaluate(t))],"resolved-locale":[g4,[_4],(t,[e])=>e.evaluate(t).resolvedLocale()]});var r7=class{constructor(t,e,n){this.expression=t,this._warningHistory={},this._evaluator=new L6,this._defaultValue=e?function(t){if("color"===t.type&&n7(t.default))return new s6(0,0,0,0);switch(t.type){case"color":return s6.parse(t.default)||null;case"padding":return u6.parse(t.default)||null;case"numberArray":return h6.parse(t.default)||null;case"colorArray":return d6.parse(t.default)||null;case"variableAnchorOffsetCollection":return g6.parse(t.default)||null;case"projectionDefinition":return y6.parse(t.default)||null;default:return void 0===t.default?null:t.default}}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null,this._globalState=n}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=h7(t,this._globalState)),this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s,this.expression.evaluate(this._evaluator)}evaluate(t,e,n,r,i,s){this._globalState&&(t=h7(t,this._globalState)),this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new p6(`Expected value to be one of ${Object.keys(this._enumValues).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(o){return this._warningHistory[o.message]||(this._warningHistory[o.message]=!0,"undefined"!=typeof console&&console.warn(o.message)),this._defaultValue}}};function i7(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in U8}function s7(t,e,n){const r=new T6(U8,H8,[],e?function(t){const e={color:y4,string:g4,number:f4,enum:g4,boolean:m4,formatted:x4,padding:C4,numberArray:S4,colorArray:k4,projectionDefinition:v4,resolvedImage:E4,variableAnchorOffsetCollection:R4};return"array"===t.type?L4(e[t.value]||w4,t.length):e[t.type]}(e):void 0),i=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return i?Y8(new r7(i,e,n)):X8(r.errors)}var o7=class{constructor(t,e,n){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Z8(e.expression),this.globalStateRefs=u7(e.expression),this._globalState=n}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=h7(t,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(t,e,n,r,i,s)}evaluate(t,e,n,r,i,s){return this._globalState&&(t=h7(t,this._globalState)),this._styleExpression.evaluate(t,e,n,r,i,s)}},a7=class{constructor(t,e,n,r,i){this.kind=t,this.zoomStops=n,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Z8(e.expression),this.globalStateRefs=u7(e.expression),this.interpolationType=r,this._globalState=i}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=h7(t,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(t,e,n,r,i,s)}evaluate(t,e,n,r,i,s){return this._globalState&&(t=h7(t,this._globalState)),this._styleExpression.evaluate(t,e,n,r,i,s)}interpolationFactor(t,e,n){return this.interpolationType?O6.interpolationFactor(this.interpolationType,t,e,n):0}};function l7(t,e,n){const r=s7(t,e,n);if("error"===r.result)return r;const i=r.value.expression,s=G8(i);if(!s&&!J8(e))return X8([new h4("","data expressions not supported")]);const o=K8(i,["zoom"]);if(!o&&!Q8(e))return X8([new h4("","zoom expressions not supported")]);const a=c7(i);if(!a&&!o)return X8([new h4("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof h4)return X8([a]);if(a instanceof O6&&!t7(e))return X8([new h4("",'"interpolate" expressions cannot be used with this property')]);if(!a)return Y8(new o7(s?"constant":"source",r.value,n));const l=a instanceof O6?a.interpolation:void 0;return Y8(new a7(s?"camera":"composite",r.value,a.labels,l,n))}function c7(t){let e=null;if(t instanceof P6)e=c7(t.result);else if(t instanceof z6){for(const n of t.args)if(e=c7(n),e)break}else(t instanceof A6||t instanceof O6)&&t.input instanceof B8&&"zoom"===t.input.name&&(e=t);return e instanceof h4||t.eachChild(t=>{const n=c7(t);n instanceof h4?e=n:!e&&n?e=new h4("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&n&&e!==n&&(e=new h4("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function u7(t,e=new Set){return t instanceof j8&&e.add(t.key),t.eachChild(t=>{u7(t,e)}),e}function h7(t,e){const{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a}=t??{};return{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a,globalState:e}}function d7(t){if(!0===t||!1===t)return!0;if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!d7(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}}var p7={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function f7(t,e){return te?1:0}function g7(t){if(!Array.isArray(t))return!1;if("within"===t[0]||"distance"===t[0])return!0;for(let e=1;e"===e||"<="===e||">="===e?y7(t[1],t[2],e):"any"===e?(n=t.slice(1),["any"].concat(n.map(m7))):"all"===e?["all"].concat(t.slice(1).map(m7)):"none"===e?["all"].concat(t.slice(1).map(m7).map(w7)):"in"===e?v7(t[1],t.slice(2)):"!in"===e?w7(v7(t[1],t.slice(2))):"has"===e?b7(t[1]):"!has"!==e||w7(b7(t[1]));var n}function y7(t,e,n){switch(t){case"$type":return[`filter-type-${n}`,e];case"$id":return[`filter-id-${n}`,e];default:return[`filter-${n}`,t,e]}}function v7(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(t=>typeof t!=typeof e[0])?["filter-in-large",t,["literal",e.sort(f7)]]:["filter-in-small",t,["literal",e]]}}function b7(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function w7(t){return["!",t]}function _7(t){return"object"==typeof t?["literal",t]:t}function x7(t,e){let n=t.stops;if(!n)return function(t,e){const n=["get",t.property];if(void 0===t.default)return"string"===e.type?["string",n]:n;if("enum"===e.type)return["match",n,Object.keys(e.values),n,t.default];{const r=["color"===e.type?"to-color":e.type,n,_7(t.default)];return"array"===e.type&&r.splice(1,0,e.value,e.length||null),r}}(t,e);const r=n&&"object"==typeof n[0][0],i=r||void 0!==t.property,s=r||!i;return n=n.map(t=>!i&&e.tokens&&"string"==typeof t[1]?[t[0],T7(t[1])]:[t[0],_7(t[1])]),r?function(t,e,n){const r={},i={},s=[];for(let o=0;o3&&e===t[t.length-2]||(r&&2===t.length||t.push(e),t.push(n))}function L7(t,e){return t.type?t.type:e.expression.interpolated?"exponential":"interval"}function T7(t){const e=["concat"],n=/{([^{}]+)}/g;let r=0;for(let i=n.exec(t);null!==i;i=n.exec(t)){const s=t.slice(r,n.lastIndex-i[0].length);r=n.lastIndex,s.length>0&&e.push(s),e.push(["get",i[1]])}if(1===e.length)return t;if(rr.maximum?[new c4(e,n,`${n} is greater than the maximum value ${r.maximum}`)]:[]}function z7(t){const e=t.valueSpec,n=I7(t.value.type);let r,i,s,o={};const a="categorical"!==n&&void 0===t.value.property,l=!a,c="array"===e7(t.value.stops)&&"array"===e7(t.value.stops[0])&&"object"===e7(t.value.stops[0][0]),u=A7({key:t.key,value:t.value,valueSpec:t.styleSpec.function,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===n)return[new c4(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const r=t.value;return e=e.concat(O7({key:t.key,value:r,valueSpec:t.valueSpec,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===e7(r)&&0===r.length&&e.push(new c4(t.key,r,"array must have at least one stop")),e},default:function(t){return t.validateSpec({key:t.key,value:t.value,valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===n&&a&&u.push(new c4(t.key,t.value,'missing required property "property"')),"identity"===n||t.value.stops||u.push(new c4(t.key,t.value,'missing required property "stops"')),"exponential"===n&&t.valueSpec.expression&&!t7(t.valueSpec)&&u.push(new c4(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!J8(t.valueSpec)?u.push(new c4(t.key,t.value,"property functions not supported")):a&&!Q8(t.valueSpec)&&u.push(new c4(t.key,t.value,"zoom functions not supported"))),"categorical"!==n&&!c||void 0!==t.value.property||u.push(new c4(t.key,t.value,'"property" property is required')),u;function h(t){let n=[];const r=t.value,a=t.key;if("array"!==e7(r))return[new c4(a,r,`array expected, ${e7(r)} found`)];if(2!==r.length)return[new c4(a,r,`array length 2 expected, length ${r.length} found`)];if(c){if("object"!==e7(r[0]))return[new c4(a,r,`object expected, ${e7(r[0])} found`)];if(void 0===r[0].zoom)return[new c4(a,r,"object stop key must have zoom")];if(void 0===r[0].value)return[new c4(a,r,"object stop key must have value")];if(s&&s>I7(r[0].zoom))return[new c4(a,r[0].zoom,"stop zoom values must appear in ascending order")];I7(r[0].zoom)!==s&&(s=I7(r[0].zoom),i=void 0,o={}),n=n.concat(A7({key:`${a}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:N7,value:d}}))}else n=n.concat(d({key:`${a}[0]`,value:r[0],valueSpec:{},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec},r));return i7(M7(r[1]))?n.concat([new c4(`${a}[1]`,r[1],"expressions are not allowed in function stops.")]):n.concat(t.validateSpec({key:`${a}[1]`,value:r[1],valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec}))}function d(t,s){const a=e7(t.value),l=I7(t.value),c=null!==t.value?t.value:s;if(r){if(a!==r)return[new c4(t.key,c,`${a} stop domain type must match previous stop domain type ${r}`)]}else r=a;if("number"!==a&&"string"!==a&&"boolean"!==a)return[new c4(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==a&&"categorical"!==n){let r=`number expected, ${a} found`;return J8(e)&&void 0===n&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new c4(t.key,c,r)]}return"categorical"!==n||"number"!==a||isFinite(l)&&Math.floor(l)===l?"categorical"!==n&&"number"===a&&void 0!==i&&lnew c4(`${t.key}${e.key}`,t.value,e.message));const n=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!n.outputDefined())return[new c4(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!Z8(n))return[new c4(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!Z8(n))return[new c4(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!K8(n,["zoom","feature-state"]))return[new c4(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!G8(n))return[new c4(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function D7(t){const e=t.key,n=t.value,r=e7(n);return"string"!==r?[new c4(e,n,`color expected, ${r} found`)]:s6.parse(String(n))?[]:[new c4(e,n,`color expected, "${n}" found`)]}function j7(t){const e=t.key,n=t.value,r=t.valueSpec,i=[];return Array.isArray(r.values)?-1===r.values.indexOf(I7(n))&&i.push(new c4(e,n,`expected one of [${r.values.join(", ")}], ${JSON.stringify(n)} found`)):-1===Object.keys(r.values).indexOf(I7(n))&&i.push(new c4(e,n,`expected one of [${Object.keys(r.values).join(", ")}], ${JSON.stringify(n)} found`)),i}function U7(t){return d7(M7(t.value))?F7(u4({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):B7(t)}function B7(t){const e=t.value,n=t.key;if("array"!==e7(e))return[new c4(n,e,`array expected, ${e7(e)} found`)];const r=t.styleSpec;let i,s=[];if(e.length<1)return[new c4(n,e,"filter array must have at least 1 element")];switch(s=s.concat(j7({key:`${n}[0]`,value:e[0],valueSpec:r.filter_operator,style:t.style,styleSpec:t.styleSpec})),I7(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===I7(e[1])&&s.push(new c4(n,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&s.push(new c4(n,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(i=e7(e[1]),"string"!==i&&s.push(new c4(`${n}[1]`,e[1],`string expected, ${i} found`)));for(let o=2;o{t in n&&e.push(new c4(r,n[t],`"${t}" is prohibited for ref layers`))}),i.layers.forEach(e=>{I7(e.id)===a&&(t=e)}),t?t.ref?e.push(new c4(r,n.ref,"ref cannot reference another ref layer")):o=I7(t.type):e.push(new c4(r,n.ref,`ref layer "${a}" not found`))}else if("background"!==o)if(n.source){const t=i.sources&&i.sources[n.source],s=t&&I7(t.type);t?"vector"===s&&"raster"===o?e.push(new c4(r,n.source,`layer "${n.id}" requires a raster source`)):"raster-dem"!==s&&"hillshade"===o||"raster-dem"!==s&&"color-relief"===o?e.push(new c4(r,n.source,`layer "${n.id}" requires a raster-dem source`)):"raster"===s&&"raster"!==o?e.push(new c4(r,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==s||n["source-layer"]?"raster-dem"===s&&"hillshade"!==o&&"color-relief"!==o?e.push(new c4(r,n.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):"line"!==o||!n.paint||!n.paint["line-gradient"]||"geojson"===s&&t.lineMetrics||e.push(new c4(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new c4(r,n,`layer "${n.id}" must specify a "source-layer"`)):e.push(new c4(r,n.source,`source "${n.source}" not found`))}else e.push(new c4(r,n,'missing required property "source"'));return"raster"===o&&n.paint?.resampling&&n.paint?.["raster-resampling"]&&e.push(new c4(r,n.paint,`layer "${n.id}" redundantly specifies "resampling" and "raster-resampling" paint properties, but only one is allowed. It is advised to use "resampling".`)),e=e.concat(A7({key:r,value:n,valueSpec:s.layer,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":()=>[],type:()=>t.validateSpec({key:`${r}.type`,value:n.type,valueSpec:s.layer.type,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,object:n,objectKey:"type"}),filter:U7,layout:t=>A7({layer:n,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>V7(u4({layerType:o},t))}}),paint:t=>A7({layer:n,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>q7(u4({layerType:o},t))}})}})),e}function H7(t){const e=t.value,n=t.key,r=e7(e);return"string"!==r?[new c4(n,e,`string expected, ${r} found`)]:[]}var G7={promoteId:function({key:t,value:e}){if("string"===e7(e))return H7({key:t,value:e});{const n=[];for(const r in e)n.push(...H7({key:`${t}.${r}`,value:e[r]}));return n}}};function Z7(t){const e=t.value,n=t.key,r=t.styleSpec,i=t.style,s=t.validateSpec;if(!e.type)return[new c4(n,e,'"type" is required')];const o=I7(e.type);let a;switch(o){case"vector":case"raster":return a=A7({key:n,value:e,valueSpec:r[`source_${o.replace("-","_")}`],style:t.style,styleSpec:r,objectElementValidators:G7,validateSpec:s}),a;case"raster-dem":return a=function(t){const e=t.sourceName??"",n=t.value,r=t.styleSpec,i=r.source_raster_dem,s=t.style;let o=[];const a=e7(n);if(void 0===n)return o;if("object"!==a)return o.push(new c4("source_raster_dem",n,`object expected, ${a} found`)),o;const l="custom"===I7(n.encoding),c=["redFactor","greenFactor","blueFactor","baseShift"],u=t.value.encoding?`"${t.value.encoding}"`:"Default";for(const h in n)!l&&c.includes(h)?o.push(new c4(h,n[h],`In "${e}": "${h}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):i[h]?o=o.concat(t.validateSpec({key:h,value:n[h],valueSpec:i[h],validateSpec:t.validateSpec,style:s,styleSpec:r})):o.push(new c4(h,n[h],`unknown property "${h}"`));return o}({sourceName:n,value:e,style:t.style,styleSpec:r,validateSpec:s}),a;case"geojson":if(a=A7({key:n,value:e,valueSpec:r.source_geojson,style:i,styleSpec:r,validateSpec:s,objectElementValidators:G7}),e.cluster)for(const t in e.clusterProperties){const[r,i]=e.clusterProperties[t],o="string"==typeof r?[r,["accumulated"],["get",t]]:r;a.push(...F7({key:`${n}.${t}.map`,value:i,validateSpec:s,expressionContext:"cluster-map"})),a.push(...F7({key:`${n}.${t}.reduce`,value:o,validateSpec:s,expressionContext:"cluster-reduce"}))}return a;case"video":return A7({key:n,value:e,valueSpec:r.source_video,style:i,validateSpec:s,styleSpec:r});case"image":return A7({key:n,value:e,valueSpec:r.source_image,style:i,validateSpec:s,styleSpec:r});case"canvas":return[new c4(n,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return j7({key:`${n}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,validateSpec:s,styleSpec:r})}}function K7(t){const e=t.value,n=t.styleSpec,r=n.light,i=t.style;let s=[];const o=e7(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new c4("light",e,`object expected, ${o} found`)]),s;for(const a in e){const o=a.match(/^(.*)-transition$/);s=o&&r[o[1]]&&r[o[1]].transition?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:n.transition,validateSpec:t.validateSpec,style:i,styleSpec:n})):r[a]?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:i,styleSpec:n})):s.concat([new c4(a,e[a],`unknown property "${a}"`)])}return s}function Y7(t){const e=t.value,n=t.styleSpec,r=n.sky,i=t.style,s=e7(e);if(void 0===e)return[];if("object"!==s)return[new c4("sky",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=r[a]?o.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new c4(a,e[a],`unknown property "${a}"`)]);return o}function X7(t){const e=t.value,n=t.styleSpec,r=n.terrain,i=t.style;let s=[];const o=e7(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new c4("terrain",e,`object expected, ${o} found`)]),s;for(const a in e)s=r[a]?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:i,styleSpec:n})):s.concat([new c4(a,e[a],`unknown property "${a}"`)]);return s}function J7(t){let e=[];const n=t.value,r=t.key;if(Array.isArray(n)){const i=[],s=[];for(const o in n)n[o].id&&i.includes(n[o].id)&&e.push(new c4(r,n,`all the sprites' ids must be unique, but ${n[o].id} is duplicated`)),i.push(n[o].id),n[o].url&&s.includes(n[o].url)&&e.push(new c4(r,n,`all the sprites' URLs must be unique, but ${n[o].url} is duplicated`)),s.push(n[o].url),e=e.concat(A7({key:`${r}[${o}]`,value:n[o],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:t.validateSpec}));return e}return H7({key:r,value:n})}function Q7(t){return Boolean(t)&&t.constructor===Object}function t9(t){return Q7(t.value)?[]:[new c4(t.key,t.value,`object expected, ${e7(t.value)} found`)]}var e9={"*":()=>[],array:O7,boolean:function(t){const e=t.value,n=t.key,r=e7(e);return"boolean"!==r?[new c4(n,e,`boolean expected, ${r} found`)]:[]},number:N7,color:D7,constants:P7,enum:j7,filter:U7,function:z7,layer:W7,object:A7,source:Z7,light:K7,sky:Y7,terrain:X7,projection:function(t){const e=t.value,n=t.styleSpec,r=n.projection,i=t.style,s=e7(e);if(void 0===e)return[];if("object"!==s)return[new c4("projection",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=r[a]?o.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new c4(a,e[a],`unknown property "${a}"`)]);return o},projectionDefinition:function(t){const e=t.key;let n=t.value;n=n instanceof String?n.valueOf():n;const r=e7(n);return"array"!==r||function(t){return Array.isArray(t)&&3===t.length&&"string"==typeof t[0]&&"string"==typeof t[1]&&"number"==typeof t[2]}(n)||function(t){return!!["interpolate","step","literal"].includes(t[0])}(n)?["array","string"].includes(r)?[]:[new c4(e,n,`projection expected, invalid type "${r}" found`)]:[new c4(e,n,`projection expected, invalid array ${JSON.stringify(n)} found`)]},string:H7,formatted:function(t){return 0===H7(t).length?[]:F7(t)},resolvedImage:function(t){return 0===H7(t).length?[]:F7(t)},padding:function(t){const e=t.key,n=t.value;if("array"===e7(n)){if(n.length<1||n.length>4)return[new c4(e,n,`padding requires 1 to 4 values; ${n.length} values found`)];const r={type:"number"};let i=[];for(let s=0;s[]}})),t.constants&&(n=n.concat(P7({key:"constants",value:t.constants,style:t,styleSpec:e,validateSpec:n9}))),o9(n)}function s9(t){return function(e){return t(Object.assign({},e,{validateSpec:n9}))}}function o9(t){return[].concat(t).sort((t,e)=>t.line-e.line)}function a9(t){return function(...e){return o9(t.apply(this,e))}}i9.source=a9(s9(Z7)),i9.sprite=a9(s9(J7)),i9.glyphs=a9(s9(r9)),i9.light=a9(s9(K7)),i9.sky=a9(s9(Y7)),i9.terrain=a9(s9(X7)),i9.state=a9(s9(t9)),i9.layer=a9(s9(W7)),i9.filter=a9(s9(U7)),i9.paintProperty=a9(s9(q7)),i9.layoutProperty=a9(s9(V7));var l9=s4,c9=4294967296,u9="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8"),h9=class{constructor(t){this.buf=ArrayBuffer.isView(t)?t:new Uint8Array(t),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length}readFields(t,e,n=this.length){let r;for(;r=this.nextField(n);)t(r,e,this);return e}readMessage(t,e){return this.readFields(t,e,this.readVarint()+this.pos)}readFixed32(){const t=this.dataView.getUint32(this.pos,!0);return this.pos+=4,t}readSFixed32(){const t=this.dataView.getInt32(this.pos,!0);return this.pos+=4,t}readFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*c9;return this.pos+=8,t}readSFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*c9;return this.pos+=8,t}readFloat(){const t=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,t}readDouble(){const t=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,t}readVarint(t){const e=this.buf,n=e[this.pos++];if(n<128)return n;let r,i=127&n;return r=e[this.pos++],i|=(127&r)<<7,r<128?i:(r=e[this.pos++],i|=(127&r)<<14,r<128?i:(r=e[this.pos++],i|=(127&r)<<21,r<128?i:(r=e[this.pos],i|=(15&r)<<28,function(t,e,n){const r=n.buf;let i,s;if(s=r[n.pos++],i=(112&s)>>4,s<128)return d9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<3,s<128)return d9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<10,s<128)return d9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<17,s<128)return d9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<24,s<128)return d9(t,i,e);if(s=r[n.pos++],i|=(1&s)<<31,s<128)return d9(t,i,e);throw new Error("Expected varint not more than 10 bytes")}(i,t,this))))}readSVarint(){const t=this.readVarint();return t%2==1?(t+1)/-2:t/2}readBoolean(){return Boolean(this.readVarint())}readString(){const t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&u9?u9.decode(this.buf.subarray(e,t)):function(t,e,n){let r="",i=e;for(;i239?4:e>223?3:e>191?2:1;if(i+c>n)break;1===c?e<128&&(l=e):2===c?(s=t[i+1],128==(192&s)&&(l=(31&e)<<6|63&s,l<=127&&(l=null))):3===c?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&(l=(15&e)<<12|(63&s)<<6|63&o,(l<=2047||l>=55296&&l<=57343)&&(l=null))):4===c&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(l=(15&e)<<18|(63&s)<<12|(63&o)<<6|63&a,(l<=65535||l>=1114112)&&(l=null))),null===l?(l=65533,c=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=c}return r}(this.buf,e,t)}readBytes(){const t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e}readPackedVarint(t=[],e){const n=this.readPackedEnd();for(;this.pos=t)return 0;const e=this.readVarint();return this.type=7&e,this._valueStart=this.pos,e>>>3}skip(t){const e=7&t;if(0===e)for(;this.buf[this.pos++]>127;);else if(2===e)this.pos=this.readVarint()+this.pos;else if(5===e)this.pos+=4;else{if(1!==e)throw new Error(`Unimplemented type: ${e}`);this.pos+=8}}};function d9(t,e,n){return n?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}var p9=class extends F5{constructor(t){super(),t=t||{},this.dataProjection=new jK({code:"",units:"tile-pixels"}),this.featureClass=t.featureClass?t.featureClass:R5,this.geometryName_=t.geometryName,this.layerName_=t.layerName?t.layerName:"layer",this.layers_=t.layers?t.layers:null,this.idProperty_=t.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(t,e,n,r){t.pos=e.geometry;const i=t.readVarint()+t.pos;let s=1,o=0,a=0,l=0,c=0,u=0;for(;t.pos>3}if(o--,1===s||2===s)a+=t.readSVarint(),l+=t.readSVarint(),1===s&&c>u&&(r.push(c),u=c),n.push(a,l),c+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");c>u&&(n.push(n[u],n[u+1]),c+=2)}}c>u&&(r.push(c),u=c)}createFeature_(t,e,n){const r=e.type;if(0===r)return null;let i;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const c=function(t,e){let n;return 1===t?n=1===e?"Point":"MultiPoint":2===t?n=1===e?"LineString":"MultiLineString":3===t&&(n="Polygon"),n}(r,l.length);if(this.featureClass===R5)i=new this.featureClass(c,a,l,2,s,o),i.transform(n.dataProjection);else{let t;if("Polygon"==c){const e=YX(a,l);t=e.length>1?new b3(a,"XY",e):new XX(a,"XY",l)}else t="Point"===c?new BX(a,"XY"):"LineString"===c?new g3(a,"XY"):"MultiPoint"===c?new y3(a,"XY"):"MultiLineString"===c?new m3(a,"XY",l):null;i=new(0,this.featureClass),this.geometryName_&&i.setGeometryName(this.geometryName_);const e=D5(t,!1,n);i.setGeometry(e),void 0!==o&&i.setId(o),i.setProperties(s,!0)}return i}getType(){return"arraybuffer"}readFeatures(t,e){const n=this.layers_,r=OY((e=this.adaptOptions(e)).dataProjection);r.setWorldExtent(e.extent),e.dataProjection=r;const i=new h9(t),s=i.readFields(f9,{}),o=[];for(const a in s){if(n&&!n.includes(a))continue;const t=s[a],l=t?[0,0,t.extent,t.extent]:null;r.setExtent(l);for(let n=0,r=t.length;n>3)?n.readString():2===t?n.readFloat():3===t?n.readDouble():4===t?n.readVarint(!0):5===t?n.readVarint():6===t?n.readSVarint():7===t?n.readBoolean():null;e.values.push(r)}}function m9(t,e,n){if(1==t)e.id=n.readVarint();else if(2==t){const t=n.readVarint()+n.pos;for(;n.post)throw new Error("Tile load sequence violation");this.state=t,this.changed()}}load(){QG()}getAlpha(t,e){if(!this.transition_)return 1;let n=this.transitionStarts_[t];if(n){if(-1===n)return 1}else n=e,this.transitionStarts_[t]=n;const r=e-n+1e3/60;return r>=this.transition_?1:IK(r/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}disposeInternal(){this.release(),super.disposeInternal()}};function b9(t){return t instanceof Image||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageBitmap?t:null}var w9,_9=new Error("disposed"),x9=[256,256],C9=class extends v9{constructor(t){super(t.tileCoord,0,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||null,this.controller_=t.controller||null}getSize(){if(this.size_)return this.size_;const t=b9(this.data_);return t?[t.width,t.height]:x9}getData(){return this.data_}getError(){return this.error_}load(){if(0!==this.state&&3!==this.state)return;this.state=1,this.changed();const t=this;this.loader_().then(function(e){t.data_=e,t.state=2,t.changed()}).catch(function(e){t.error_=e,t.state=3,t.changed()})}disposeInternal(){this.controller_&&(this.controller_.abort(_9),this.controller_=null),super.disposeInternal()}},k9=class extends v9{constructor(t,e,n,r,i,s){super(t,e,s),this.crossOrigin_=r?.crossOrigin,this.referrerPolicy_=r?.referrerPolicy,this.src_=n,this.key=n,this.image_,fZ?this.image_=new OffscreenCanvas(1,1):(this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),this.unlisten_=null,this.tileLoadFunction_=i}getImage(){return this.image_}setImage(t){this.image_=t,this.state=2,this.unlistenImage_(),this.changed()}getCrossOrigin(){return this.crossOrigin_}getReferrerPolicy(){return this.referrerPolicy_}handleImageError_(){this.state=3,this.unlistenImage_(),this.image_=function(){const t=yJ(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){if(fZ)this.state=2;else{const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=2:this.state=4}this.unlistenImage_(),this.changed()}load(){3==this.state&&(this.state=0,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),0==this.state&&(this.state=1,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=function(t,e,n){const r=t;let i=!0,s=!1,o=!1;const a=[TG(r,"load",function(){o=!0,s||e()})];return r.src&&gZ?(s=!0,r.decode().then(function(){i&&e()}).catch(function(){i&&(o?e():n())})):a.push(TG(r,"error",n)),function(){i=!1,a.forEach(PG)}}(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}},S9=class{constructor(t,e,n,r){this.minX=t,this.maxX=e,this.minY=n,this.maxY=r}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}};function E9(t,e,n,r,i){return void 0!==i?(i.minX=t,i.maxX=e,i.minY=n,i.maxY=r,i):new S9(t,e,n,r)}var R9=[];function L9(t,e,n,r,i){t.beginPath(),t.moveTo(0,0),t.lineTo(e,n),t.lineTo(r,i),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,r)+1,Math.max(n,i)),t.restore()}function T9(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function P9(t,e,n,r){const i=VY(n,e,t);let s=NY(e,r,n);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||KZ(l,i)){const e=NY(t,s,i)/s;isFinite(e)&&e>0&&(s/=e)}return s}function I9(t,e,n,r,i,s,o,a,l,c,u,h,d,p){const f=yJ(Math.round(n*t),Math.round(n*e),R9);if(h||(f.imageSmoothingEnabled=!1),0===l.length)return f.canvas;function g(t){return Math.round(t*n)/n}f.scale(n,n),f.globalCompositeOperation="lighter";const m=[1/0,1/0,-1/0,-1/0];let y;l.forEach(function(t){iK(m,t.extent)});const v=n/r,b=(h?1:1+Math.pow(2,-24))/v;if(!d||1!==l.length||0!==c){if(y=yJ(Math.round(_K(m)*v),Math.round(mK(m)*v),R9),h||(y.imageSmoothingEnabled=!1),i&&p){const t=(i[0]-m[0])*v,e=-(i[3]-m[3])*v,n=_K(i)*v,r=mK(i)*v;y.rect(t,e,n,r),y.clip()}l.forEach(function(t){if(t.image.width>0&&t.image.height>0){if(t.clipExtent){y.save();const e=(t.clipExtent[0]-m[0])*v,n=-(t.clipExtent[3]-m[3])*v,r=_K(t.clipExtent)*v,i=mK(t.clipExtent)*v;y.rect(h?e:Math.round(e),h?n:Math.round(n),h?r:Math.round(e+r)-Math.round(e),h?i:Math.round(n+i)-Math.round(n)),y.clip()}const e=(t.extent[0]-m[0])*v,n=-(t.extent[3]-m[3])*v,r=_K(t.extent)*v,i=mK(t.extent)*v;y.drawImage(t.image,c,c,t.image.width-2*c,t.image.height-2*c,h?e:Math.round(e),h?n:Math.round(n),h?r:Math.round(e+r)-Math.round(e),h?i:Math.round(n+i)-Math.round(n)),t.clipExtent&&y.restore()}})}const w=bK(o);return a.getTriangles().forEach(function(t){const e=t.source,n=t.target;let r=e[0][0],i=e[0][1],o=e[1][0],a=e[1][1],c=e[2][0],u=e[2][1];const d=g((n[0][0]-w[0])/s),p=g(-(n[0][1]-w[1])/s),v=g((n[1][0]-w[0])/s),_=g(-(n[1][1]-w[1])/s),x=g((n[2][0]-w[0])/s),C=g(-(n[2][1]-w[1])/s),k=r,S=i;r=0,i=0,o-=k,a-=S,c-=k,u-=S;const E=function(t){const e=t.length;for(let r=0;ri&&(i=e,n=o)}if(0===i)return null;const s=t[n];t[n]=t[r],t[r]=s;for(let o=r+1;o=0;r--){n[r]=t[r][e]/t[r][r];for(let i=r-1;i>=0;i--)t[i][e]-=t[i][r]*n[r]}return n}([[o,a,0,0,v-d],[c,u,0,0,x-d],[0,0,o,a,_-p],[0,0,c,u,C-p]]);if(!E)return;if(f.save(),f.beginPath(),function(){if(void 0===w9){const t=yJ(6,6,R9);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",L9(t,4,5,4,0),L9(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;w9=T9(e,0)||T9(e,4)||T9(e,8),bJ(t),R9.push(t.canvas)}return w9}()||!h){f.moveTo(v,_);const t=4,e=d-v,n=p-_;for(let r=0;reX(o,VY(t,this.targetProj_,this.sourceProj_)),function(t,e,n,r){const i=t.length;n=void 0!==n?n:2,r=r??n,e=void 0!==e?e:new Array(i);for(let s=0;s=o?t[s+n]:i[n]}return e}):qY(this.targetProj_,this.sourceProj_);var c;this.transformInv_=function(t){const e=t[0]+"/"+t[1];return a[e]||(a[e]=l(t)),a[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=i*i,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&_K(r)>=_K(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?_K(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?_K(this.targetProj_.getExtent()):null;const u=bK(n),h=wK(n),d=hK(n),p=uK(n),f=this.transformInv_(u),g=this.transformInv_(h),m=this.transformInv_(d),y=this.transformInv_(p),v=10+(s?Math.max(0,Math.ceil(Math.log2(cK(n)/(s*s*256*256)))):0);if(this.addQuad_(u,h,d,p,f,g,m,y,v),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach(function(e){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])}),this.triangles_.forEach(e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const n=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];n[0][0]-t>this.sourceWorldWidth_/2&&(n[0][0]-=this.sourceWorldWidth_),n[1][0]-t>this.sourceWorldWidth_/2&&(n[1][0]-=this.sourceWorldWidth_),n[2][0]-t>this.sourceWorldWidth_/2&&(n[2][0]-=this.sourceWorldWidth_);const r=Math.min(n[0][0],n[1][0],n[2][0]);Math.max(n[0][0],n[1][0],n[2][0])-r.5&&u<1;let p=!1;if(l>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(p=_K(WZ([t,e,n,r]))/this.targetWorldWidth_>.25||p),!d&&this.sourceProj_.isGlobal()&&u&&(p=u>.25||p)),!p&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!xK(c,this.maxSourceExtent_))return;let f=0;if(!(p||isFinite(i[0])&&isFinite(i[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)p=!0;else if(f=(isFinite(i[0])&&isFinite(i[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!p){const e=[(t[0]+n[0])/2,(t[1]+n[1])/2],r=this.transformInv_(e);let s;s=d?(FZ(i[0],h)+FZ(o[0],h))/2-FZ(r[0],h):(i[0]+o[0])/2-r[0];const a=(i[1]+o[1])/2-r[1];p=s*s+a*a>this.errorThresholdSquared_}if(p){if(Math.abs(t[0]-n[0])<=Math.abs(t[1]-n[1])){const c=[(e[0]+n[0])/2,(e[1]+n[1])/2],u=this.transformInv_(c),h=[(r[0]+t[0])/2,(r[1]+t[1])/2],d=this.transformInv_(h);this.addQuad_(t,e,c,h,i,s,u,d,l-1),this.addQuad_(h,c,n,r,d,u,o,a,l-1)}else{const c=[(t[0]+e[0])/2,(t[1]+e[1])/2],u=this.transformInv_(c),h=[(n[0]+r[0])/2,(n[1]+r[1])/2],d=this.transformInv_(h);this.addQuad_(t,c,h,r,i,u,d,a,l-1),this.addQuad_(c,e,n,h,u,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}11&f||this.addTriangle_(t,n,r,i,o,a),14&f||this.addTriangle_(t,n,e,i,o,s),f&&(13&f||this.addTriangle_(e,r,t,s,a,i),7&f||this.addTriangle_(e,r,n,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e){const n=e.source;sK(t,n[0]),sK(t,n[1]),sK(t,n[2])}),t}getTriangles(){return this.triangles_}},A9=class extends v9{constructor(t,e,n,r,i,s,o,a,l,c,u,h){super(i,0,h),this.renderEdges_=void 0!==u&&u,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=r,this.wrappedTileCoord_=s||i,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=t.canWrapX()?t.getExtent():void 0;const d=r.getTileCoordExtent(this.wrappedTileCoord_),p=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const g=p?yK(d,p):d;if(0===cK(g))return void(this.state=4);const m=t.getExtent();m&&(f=f?yK(f,m):m);const y=r.getResolution(this.wrappedTileCoord_[0]),v=function(t,e,n,r){let i=P9(t,e,dK(n),r);return(!isFinite(i)||i<=0)&&lK(n,function(n){return i=P9(t,e,n,r),isFinite(i)&&i>0}),i}(t,n,g,y);if(!isFinite(v)||v<=0)return void(this.state=4);const b=void 0!==c?c:.5;if(this.triangulation_=new M9(t,n,g,f,v*b,y),0===this.triangulation_.getTriangles().length)return void(this.state=4);this.sourceZ_=e.getZForResolution(v);let w=this.triangulation_.calculateSourceExtent();if(f&&(t.canWrapX()?(w[1]=MZ(w[1],f[1],f[3]),w[3]=MZ(w[3],f[1],f[3])):w=yK(w,f)),cK(w)){let n=0,r=0;t.canWrapX()&&(n=_K(m),r=Math.floor((w[0]-m[0])/n)),EK(w.slice(),t,!0).forEach(t=>{const i=e.getTileRangeForExtentAndZ(t,this.sourceZ_);for(let e=i.minX;e<=i.maxX;e++)for(let t=i.minY;t<=i.maxY;t++){const i=r*n;this.sourceTiles_.push({getTile:()=>l(this.sourceZ_,e,t,o),offset:i})}++r}),0===this.sourceTiles_.length&&(this.state=4)}else this.state=4}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach(e=>{const n=e.tile;if(n&&2==n.getState()){const r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=e.offset,r[2]+=e.offset;const i=this.clipExtent_?.slice();i&&(i[0]+=e.offset,i[2]+=e.offset),t.push({extent:r,clipExtent:i,image:n.getImage()})}}),this.sourceTiles_.length=0,0===t.length)this.state=3;else{const e=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(e),r="number"==typeof n?n:n[0],i="number"==typeof n?n:n[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=I9(r,i,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=2}this.changed()}load(){for(const t of this.sourceTiles_)t.tile=t.getTile();if(0==this.state){this.state=1,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:e})=>{const n=e.getState();if(0==n||1==n){t++;const n=LG(e,IG,()=>{const r=e.getState();2!=r&&3!=r&&4!=r||(PG(n),t--,0===t&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(n)}}),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){0==t.getState()&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(PG),this.sourcesListenerKeys_=null}release(){this.canvas_&&(bJ(this.canvas_.getContext("2d")),R9.push(this.canvas_),this.canvas_=null),this.sourceTiles_.length=0,super.release()}},O9=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){const t=this.pop();t instanceof DG&&t.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const n=this.entries_[t];return RZ(void 0!==n,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(t){const e=this.entries_[t];return RZ(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,n=0;for(e=this.newest_;e;e=e.older)t[n++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,n=0;for(e=this.newest_;e;e=e.older)t[n++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){return this.entries_[t]?.value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){RZ(!(t in this.entries_),"Tried to set a value for a key that is used already");const n={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[t]=n,++this.count_}setSize(t){this.highWaterMark=t}};function N9(t,e,n,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=n,r):[t,e,n]}function z9(t,e,n,r,i){return`${eZ(t)},${e},${function(t,e,n){return t+"/"+e+"/"+n}(n,r,i)}`}function F9(t,e,n){if(!(n in t))return t[n]=new Set([e]),!0;const r=t[n],i=r.has(e);return i||r.add(e),!i}function D9(t,e,n){const r=t[n];return!!r&&r.delete(e)}function j9(t,e){const n=t.layerStatesArray[t.layerIndex];n.extent&&(e=yK(e,ZY(n.extent,t.viewState.projection)));const r=n.layer.getRenderSource();if(!r.getWrapX()){const n=r.getTileGridForProjection(t.viewState.projection).getExtent();n&&(e=yK(e,n))}return e}var U9=class extends b5{constructor(t,e){super(t),e=e||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedTiles=[],this.renderedSourceRevision_,this.tempExtent=[1/0,1/0,-1/0,-1/0],this.tempTileRange_=new S9(0,0,0,0),this.tempTileCoord_=N9(0,0,0);const n=void 0!==e.cacheSize?e.cacheSize:512;this.tileCache_=new O9(n),this.sourceTileCache_=null,this.layerExtent=null,this.maxStaleKeys=.5*n}getTileCache(){return this.tileCache_}getSourceTileCache(){return this.sourceTileCache_||(this.sourceTileCache_=new O9(512)),this.sourceTileCache_}getOrCreateTile(t,e,n,r){const i=this.tileCache_,s=this.getLayer().getSource(),o=z9(s,s.getKey(),t,e,n);let a;if(i.containsKey(o))a=i.get(o);else{const l=r.viewState.projection,c=s.getProjection();if(a=s.getTile(t,e,n,r.pixelRatio,l,!c||UY(c,l)?void 0:this.getSourceTileCache()),!a)return null;i.set(o,a)}return a}getTile(t,e,n,r){return this.getOrCreateTile(t,e,n,r)||null}getData(t){const e=this.frameState;if(!e)return null;const n=this.getLayer(),r=eX(e.pixelToCoordinateTransform,t.slice()),i=n.getExtent();if(i&&!KZ(i,r))return null;const s=e.viewState,o=n.getRenderSource(),a=o.getTileGridForProjection(s.projection),l=o.getTilePixelRatio(e.pixelRatio);for(let c=a.getZForResolution(s.resolution);c>=a.getMinZoom();--c){const t=a.getTileCoordForCoordAndZ(r,c),n=this.getTile(c,t[1],t[2],e);if(!n||2!==n.getState())continue;const i=a.getOrigin(c),u=m0(a.getTileSize(c)),h=a.getResolution(c);let d;if(n instanceof k9||n instanceof A9)d=n.getImage();else{if(!(n instanceof C9))continue;if(d=b9(n.getData()),!d)continue}const p=Math.floor(l*((r[0]-i[0])/h-t[1]*u[0])),f=Math.floor(l*((i[1]-r[1])/h-t[2]*u[1])),g=Math.round(l*o.getGutterForProjection(s.projection));return this.getImageData(d,p+g,f+g)}return null}prepareFrame(t){this.renderedProjection?t.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=t.viewState.projection):this.renderedProjection=t.viewState.projection;const e=this.getLayer().getSource();if(!e)return!1;const n=e.getRevision();return this.renderedSourceRevision_?this.renderedSourceRevision_!==n&&(this.renderedSourceRevision_=n,this.renderedSourceKey_===e.getKey()&&(this.tileCache_.clear(),this.sourceTileCache_?.clear())):this.renderedSourceRevision_=n,!0}enqueueTilesForNextExtent(){return!0}enqueueTiles(t,e,n,r,i){const s=t.viewState,o=this.getLayer(),a=o.getRenderSource(),l=a.getTileGridForProjection(s.projection),c=eZ(a);c in t.wantedTiles||(t.wantedTiles[c]={});const u=t.wantedTiles[c],h=o.getMapInternal(),d=Math.max(n-i,l.getMinZoom(),l.getZForResolution(Math.min(o.getMaxResolution(),h?h.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):l.getResolution(0)),a.zDirection)),p=s.rotation,f=p?gK(s.center,s.resolution,p,t.size):void 0;for(let g=n;g>=d;--g){const n=l.getTileRangeForExtentAndZ(e,g,this.tempTileRange_),i=l.getResolution(g);for(let e=n.minX;e<=n.maxX;++e)for(let s=n.minY;s<=n.maxY;++s){if(p&&!l.tileCoordIntersectsViewport([g,e,s],f))continue;const n=this.getTile(g,e,s,t);if(!n)continue;if(!F9(r,n,g))continue;const o=n.getKey();if(u[o]=!0,0===n.getState()&&!t.tileQueue.isKeyQueued(o)){const r=N9(g,e,s,this.tempTileCoord_);t.tileQueue.enqueue([n,c,l.getTileCoordCenter(r),i])}}}}findStaleTile_(t,e){const n=this.tileCache_,r=t[0],i=t[1],s=t[2],o=this.getStaleKeys();for(let a=0;a0&&setTimeout(()=>{this.enqueueTiles(t,x,h-1,w,_-1)},0),!(h in w))return this.container;const C=eZ(this),k=t.time;for(const I of w[h]){const e=I.getState();if(4===e)continue;const n=I.tileCoord;if(2===e&&1===I.getAlpha(C,k)){I.endTransition(C);continue}if(3!==e&&(this.renderComplete=!1),this.findStaleTile_(n,w)){D9(w,I,h),t.animate=!0;continue}if(this.findAltTiles_(u,n,h+1,w))continue;const r=u.getMinZoom();for(let t=h-1;t>=r&&!this.findAltTiles_(u,n,t,w);--t);}const S=d/s*a/f,E=this.getRenderContext(t);rX(this.tempTransform,g/2,m/2,S,S,0,-g/2,-m/2),this.layerExtent&&this.clipUnrotated(E,t,this.layerExtent),c.getInterpolate()||(E.imageSmoothingEnabled=!1),this.preRender(E,t);const R=Object.keys(w).map(Number);R.sort(jG);const L=[],T=[],P=[];for(let I=R.length-1;I>=0;--I){const e=R[I],n=c.getTilePixelSize(e,a,i),r=u.getResolution(e)/d,s=n[0]*r*S,o=n[1]*r*S,l=u.getTileCoordForCoordAndZ(bK(b),e),p=u.getTileCoordExtent(l),g=eX(this.tempTransform,[f*(p[0]-b[0])/d,f*(b[3]-p[3])/d]),m=f*c.getGutterForProjection(i);for(const i of w[e]){if(2!==i.getState())continue;const n=i.tileCoord,r=l[1]-n[1],a=Math.round(g[0]-(r-1)*s),u=l[2]-n[2],d=Math.round(g[1]-(u-1)*o),p=Math.round(g[0]-r*s),f=Math.round(g[1]-u*o),y=a-p,v=d-f,b=e===h;if(b&&i.inTransition(C)){P.push({tile:i,x:p,y:f,w:y,h:v,gutter:m}),this.renderedTiles.unshift(i),this.updateUsedTiles(t.usedTiles,c,i);continue}const w=[p,f,p+y,f+v],_=[];for(let t=0,i=L.length;t0&&(x=RK(w,_)),L.push(w),T.push(e),this.drawTile(i,t,p,f,y,v,m,b,x),this.renderedTiles.unshift(i),this.updateUsedTiles(t.usedTiles,c,i)}}for(let I=0,M=P.length;I{const n=eZ(c),r=e.wantedTiles[n],i=r?Object.keys(r).length:0;this.updateCacheSize(i),this.tileCache_.expireCache(),this.sourceTileCache_?.expireCache()};t.postRenderFunctions.push(e)}return this.container}updateCacheSize(t){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,2*t)}drawTile(t,e,n,r,i,s,o,a,l){let c;if(t instanceof C9){if(c=b9(t.getData()),!c)throw new Error("Rendering array data is not yet supported")}else c=this.getTileImage(t);if(!c)return;const u=this.getRenderContext(e),h=eZ(this),d=e.layerStatesArray[e.layerIndex],p=d.opacity*(a?t.getAlpha(h,e.time):1),f=p!==u.globalAlpha;f&&(u.save(),u.globalAlpha=p);const g=c.width-2*o,m=c.height-2*o;if(l){const t=g/i,e=m/s;for(let i=0,s=l.length;it.value):null;let y;t:for(let v=p.length-1;v>=0;--v){const e=p[v];if(!xK(l.getTileCoordExtent(e.wrappedTileCoord),u))continue;const r=e.executorGroups[f];for(let i=0,a=r.length;i{const n=this.getLayer(),r=n.getSource(),i=this.renderedProjection,s=i.getExtent(),o=this.renderedResolution,a=r.getTileGridForProjection(i),l=eX(this.renderedPixelToCoordinateTransform_,t.slice()),c=a.getTileCoordForCoordAndResolution(l,o).toString(),u=this.renderedTiles.find(t=>t.tileCoord.toString()===c&&2===t.getState());if(!u||u.loadingSourceTiles>0)return void e([]);r.getWrapX()&&i.canWrapX()&&!YZ(s,a.getTileCoordExtent(u.tileCoord))&&PK(l,i);const h=eZ(n),d=bK(a.getTileCoordExtent(u.wrappedTileCoord)),p=[(l[0]-d[0])/o,(d[1]-l[1])/o],f=u.getSourceTiles().reduce((t,e)=>t.concat(e.getFeatures()),[]);let g=u.hitDetectionImageData[h];if(!g){const t=m0(a.getTileSize(a.getZForResolution(o,r.zDirection))),e=this.renderedRotation_;g=l5(t,[this.getRenderTransform(a.getTileCoordCenter(u.wrappedTileCoord),o,0,a5,t[0]*a5,t[1]*a5,0)],f,n.getStyleFunction(),a.getTileCoordExtent(u.wrappedTileCoord),u.getReplayState(n).renderedResolution,e),u.hitDetectionImageData[h]=g}e(c5(p,f,g))})}getFeaturesInExtent(t){const e=[],n=this.getTileCache();if(0===n.getCount())return e;const r=this.getLayer().getSource().getTileGridForProjection(this.frameState.viewState.projection),i=r.getZForResolution(this.renderedResolution),s={};return n.forEach(n=>{if(n.tileCoord[0]!==i||2!==n.getState())return;const o=n.getSourceTiles();for(let i=0,a=o.length;i=0;--r)n[r].execute(this.context,o,this.getTileRenderTransform(e,t),t.viewState.rotation,s,t5,l)}n.globalAlpha=r}renderDeferredInternal(t){const e=this.renderedTiles,n=eZ(this.getLayer()),r=e.reduce((t,e,r)=>(e.executorGroups[n].forEach(e=>t.push({executorGroup:e,index:r})),t),[]),i=r.map(({executorGroup:t})=>t.getDeferredZIndexContexts()),s={};for(let a=0,l=r.length;a{i.forEach((e,n)=>{e[t]&&(e[t].forEach(t=>{const{executorGroup:e,index:i}=r[n],s=e.getRenderedContext(),o=s.globalAlpha;s.globalAlpha=this.renderedOpacity_;const a=this.tileClipContexts_[i];a&&a.draw(s),t.draw(s),a&&s.restore(),s.globalAlpha=o,t.clear()}),e[t].length=0)})}),this.layerExtent&&this.context.restore()}getTileRenderTransform(t,e){const n=e.pixelRatio,r=e.viewState,i=r.center,s=r.resolution,o=r.rotation,a=e.size,l=Math.round(a[0]*n),c=Math.round(a[1]*n),u=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),h=t.tileCoord,d=u.getTileCoordExtent(t.wrappedTileCoord),p=u.getTileCoordExtent(h,this.tempExtent)[0]-d[0];return QY(nX(this.inversePixelTransform.slice(),1/n,1/n),this.getRenderTransform(i,s,o,n,l,c,p))}clipTileContext_(t,e,n,r,i,s){const o=[];for(let l=0,c=n.length;l!t5.includes(t)):H9[s],c=e.viewState,u=c.rotation;this.layerExtent&&this.clipUnrotated(t,e,this.layerExtent);const h=i.getSource(),d=h.getTileGridForProjection(c.projection).getZForResolution(c.resolution,h.zDirection),p=this.renderedTiles,f=[],g=[],m=[],y=eZ(i);let v=!0;for(let b=p.length-1;b>=0;--b){const n=p[b];v=v&&!n.getReplayState(i).dirty;const s=n.executorGroups[y].filter(t=>t.hasExecutors(l));if(0===s.length)continue;const o=this.getTileRenderTransform(n,e),c=n.tileCoord[0];let h=!1;const w=s[0].getClipCoords(KY);let _,x=t;if(w){const t=[w[0],w[1],w[4],w[5]];_=new B3,x=_.getContext(),d!==c&&(h=this.clipTileContext_(x,t,f,g,c,o)),f.push(t),g.push(c)}for(let i=0,d=s.length;ivoid 0!==t)),this.minZoom=void 0!==e?e:0,this.resolutions_=n,RZ(function(t){const e=((t,e)=>e-t)||jG;return t.every(function(n,r){if(0===r)return!0;const i=e(t[r-1],n);return!(i>0||0===i)})}(this.resolutions_),"`resolutions` must be sorted in descending order"),!t.origins)for(let s=0,o=this.resolutions_.length-1;s{const n=new S9(Math.min(0,t[0]),Math.max(t[0]-1,-1),Math.min(0,t[1]),Math.max(t[1]-1,-1));if(i){const t=this.getTileRangeForExtentAndZ(i,e);n.minX=Math.max(t.minX,n.minX),n.maxX=Math.min(t.maxX,n.maxX),n.minY=Math.max(t.minY,n.minY),n.maxY=Math.min(t.maxY,n.maxY)}return n}):i&&this.calculateTileRanges_(i)}forEachTileCoord(t,e,n){const r=this.getTileRangeForExtentAndZ(t,e);for(let i=r.minX,s=r.maxX;i<=s;++i)for(let t=r.minY,o=r.maxY;t<=o;++t)n([e,i,t])}forEachTileCoordParentTileRange(t,e,n,r){let i,s,o,a=null,l=t[0]-1;for(2===this.zoomFactor_?(s=t[1],o=t[2]):a=this.getTileCoordExtent(t,r);l>=this.minZoom;){if(void 0!==s&&void 0!==o?(s=Math.floor(s/2),o=Math.floor(o/2),i=E9(s,s,o,o,n)):i=this.getTileRangeForExtentAndZ(a,l,n),e(l,i))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getOrigins(){return this.origins_}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,n){if(t[0]this.maxZoom||e0?r:Math.max(s/n[0],i/n[1]);const o=e+1,a=new Array(o);for(let l=0;ln||n>e.getMaxZoom())return!1;const s=e.getFullTileRange(n);return!s||s.containsXY(r,i)}(t,r)?t:null}clear(){}refresh(){this.clear(),super.refresh()}},ltt=class extends YG{constructor(t,e){super(t),this.tile=e}},ctt=class t extends att{constructor(e){super({attributions:e.attributions,cacheSize:e.cacheSize,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===t.prototype.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,e.tileUrlFunction&&(this.tileUrlFunction=e.tileUrlFunction),this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(t){const e=t.target,n=eZ(e),r=e.getState();let i;1==r?(this.tileLoadingKeys_[n]=!0,i="tileloadstart"):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],i=3==r?"tileloaderror":2==r?"tileloadend":void 0),null!=i&&this.dispatchEvent(new ltt(i,e))}setTileLoadFunction(t){this.tileLoadFunction=t,this.changed()}setTileUrlFunction(t,e){this.tileUrlFunction=t,void 0!==e?this.setKey(e):this.changed()}setUrl(t){const e=function(t){const e=[];let n=/\{([a-z])-([a-z])\}/.exec(t);if(n){const r=n[1].charCodeAt(0),i=n[2].charCodeAt(0);let s;for(s=r;s<=i;++s)e.push(t.replace(n[0],String.fromCharCode(s)));return e}if(n=/\{(\d+)-(\d+)\}/.exec(t),n){const r=parseInt(n[2],10);for(let i=parseInt(n[1],10);i<=r;i++)e.push(t.replace(n[0],i.toString()));return e}return e.push(t),e}(t);this.urls=e,this.setUrls(e)}setUrls(t){this.urls=t;const e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(ott(t,this.tileGrid),e):this.setKey(e)}tileUrlFunction(t,e,n){}},utt=class extends ctt{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:htt,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:t.wrapX,transition:t.transition,interpolate:void 0===t.interpolate||t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.crossOrigin=void 0!==t.crossOrigin?t.crossOrigin:null,this.referrerPolicy=t.referrerPolicy,this.tileClass=void 0!==t.tileClass?t.tileClass:k9,this.tileGridForProjection={},this.reprojectionErrorThreshold_=t.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}getGutterForProjection(t){return this.getProjection()&&t&&!UY(this.getProjection(),t)?0:this.getGutter()}getGutter(){return 0}getKey(){let t=super.getKey();return this.getInterpolate()||(t+=":disable-interpolation"),t}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||UY(e,t)))return this.tileGrid;const n=eZ(t);return n in this.tileGridForProjection||(this.tileGridForProjection[n]=X9(t)),this.tileGridForProjection[n]}createTile_(t,e,n,r,i,s){const o=[t,e,n],a=this.getTileCoordForTileUrlFunction(o,i),l=a?this.tileUrlFunction(a,r,i):void 0,c=new this.tileClass(o,void 0!==l?0:4,void 0!==l?l:"",{crossOrigin:this.crossOrigin,referrerPolicy:this.referrerPolicy},this.tileLoadFunction,this.tileOptions);return c.key=s,c.addEventListener(IG,this.handleTileChange.bind(this)),c}getTile(t,e,n,r,i,s){const o=this.getProjection();if(!o||!i||UY(o,i))return this.getTileInternal(t,e,n,r,o||i);const a=[t,e,n],l=this.getKey(),c=this.getTileGridForProjection(o),u=this.getTileGridForProjection(i),h=this.getTileCoordForTileUrlFunction(a,i),d=new A9(o,c,i,u,a,h,this.getTilePixelRatio(r),this.getGutter(),(t,e,n,r)=>this.getTileInternal(t,e,n,r,o,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return d.key=l,d}getTileInternal(t,e,n,r,i,s){const o=this.getKey(),a=z9(this,o,t,e,n);if(s&&s.containsKey(a))return s.get(a);const l=this.createTile_(t,e,n,r,i,o);return s?.set(a,l),l}setRenderReprojectionEdges(t){this.renderReprojectionEdges_!=t&&(this.renderReprojectionEdges_=t,this.changed())}setTileGridForProjection(t,e){const n=OY(t);if(n){const t=eZ(n);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}};function htt(t,e){if(fZ){const n=t.getCrossOrigin();let r="same-origin",i="same-origin";"anonymous"===n||""===n?(r="cors",i="omit"):"use-credentials"===n&&(r="cors",i="include");const s={mode:r,credentials:i,referrerPolicy:t.getReferrerPolicy()};return void fetch(e,s).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.blob()}).then(t=>createImageBitmap(t)).then(e=>{const n=t.getImage();n.width=e.width,n.height=e.height,n.getContext("2d").drawImage(e,0,0),e.close?.(),n.dispatchEvent(new Event("load"))}).catch(()=>{t.getImage().dispatchEvent(new Event("error"))})}t.getImage().src=e}var dtt=class extends utt{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:OY("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)!function(t,e,n){const r=document.createElement("script"),i="olc_"+eZ(e);function s(){delete window[i],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+"callback="+i;const o=setTimeout(function(){s(),n&&n()},1e4);window[i]=function(t){clearTimeout(o),s(),e(t)},document.head.appendChild(r)}(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch{return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=OY("EPSG:4326"),n=this.getProjection();let r;if(void 0!==t.bounds){const i=BY(e,n);r=kK(t.bounds,i)}const i=ttt(n),s=t.minzoom||0,o=J9({extent:i,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=ott(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==r?r:i;this.setAttributions(function(n){return xK(e,n.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}},ptt=[],ftt=class extends v9{constructor(t,e,n,r,i){super(t,e,{transition:0}),this.context_=null,this.executorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.removeSourceTiles_=i,this.wrappedTileCoord=n}getContext(){return this.context_||(this.context_=yJ(1,1,ptt)),this.context_}hasContext(){return!!this.context_}getImage(){return this.hasContext()?this.getContext().canvas:null}getReplayState(t){const e=eZ(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedPixelRatio:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){this.context_&&(bJ(this.context_),ptt.push(this.context_.canvas),this.context_=null),this.removeSourceTiles_(this),this.sourceTiles.length=0,super.release()}},gtt=class extends v9{constructor(t,e,n,r,i,s){super(t,e,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=i,this.url_=n,this.key=n}getTileUrl(){return this.url_}getFormat(){return this.format_}getFeatures(){return this.features_}load(){0==this.state&&(this.setState(1),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(3)}setFeatures(t){this.features_=t,this.setState(2)}setLoader(t){this.loader_=t}},mtt=class extends ctt{constructor(t){const e=t.projection||"EPSG:3857",n=t.extent||ttt(e),r=t.tileGrid||J9({extent:n,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,projection:e,state:t.state,tileGrid:r,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:ytt,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.tileKeysBySourceTileUrl_={},this.sourceTiles_={},this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:gtt,this.tileGrids_={}}getOverlaps(){return this.overlaps_}getSourceZ_(t,e,n){const r=this.projection,i=e&&r&&!UY(e,r)?t/r.getMetersPerUnit()*e.getMetersPerUnit():t;return this.tileGrid.getZForResolution(i,n)}getSourceTiles(t,e,n,r){if(0===n.getState()){n.setState(1);const i=n.wrappedTileCoord,s=this.getTileGridForProjection(e);let o=s.getTileCoordExtent(i);const a=i[0],l=s.getResolution(a);HZ(o,-l,o);const c=this.projection;e&&this.projection&&!UY(e,c)&&(o=WY(o,e,c));const u=this.tileGrid,h=u.getExtent();h&&yK(o,h,o);const d=this.getSourceZ_(l,e,this.zDirection),p=r||this.tileUrlFunction;u.forEachTileCoord(o,d,r=>{const i=p(r,t,e);this.sourceTiles_[i]||(this.sourceTiles_[i]=new this.tileClass(r,i?0:4,i,this.format_,this.tileLoadFunction));const s=this.sourceTiles_[i];n.sourceTiles.push(s),this.tileKeysBySourceTileUrl_[i]||(this.tileKeysBySourceTileUrl_[i]=[]),this.tileKeysBySourceTileUrl_[i].push(n.getKey());const o=s.getState();if(o<2){const t=e=>{this.handleTileChange(e);const r=s.getState();if(2===r||3===r){const e=s.getKey();e in n.errorTileKeys?2===s.getState()&&delete n.errorTileKeys[e]:n.loadingSourceTiles--,3===r?n.errorTileKeys[e]=!0:s.removeEventListener(IG,t),0===n.loadingSourceTiles&&n.setState(RG(n.errorTileKeys)?2:3)}};s.addEventListener(IG,t),n.loadingSourceTiles++}0===o&&(s.extent=u.getTileCoordExtent(r),s.projection=this.projection,s.resolution=u.getResolution(r[0]),s.load())}),n.loadingSourceTiles||n.setState(n.sourceTiles.some(t=>3===t.getState())?3:2)}return n.sourceTiles}removeSourceTiles(t){const e=t.getKey(),n=t.sourceTiles;for(let r=0,i=n.length;r{u=u&&!this.tileUrlFunction(t,r,l)})}const h=this.tileUrlFunction,d=new ftt(s,u?4:0,o,t=>this.getSourceTiles(r,i,t,h),this.removeSourceTiles.bind(this));return d.key=this.getKey(),d}getTileGridForProjection(t){const e=t.getCode();let n=this.tileGrids_[e];if(!n){const r=this.projection;if(null!==r&&!UY(r,t))return X9(t);const i=this.tileGrid,s=i.getResolutions().slice(),o=s.map(function(t,e){return i.getOrigin(e)}),a=s.map(function(t,e){return i.getTileSize(e)}),l=43;for(let t=s.length;t_tt.pitch||0],"distance-from-center":[{kind:"number"},[],()=>_tt.distanceFromCenter||0],"to-hsla":[{kind:"array",itemType:{kind:"number"},N:4},[{kind:"string"}],(t,[e])=>function(t){const e=t[0]/255,n=t[1]/255,r=t[2]/255,i=t[3],s=Math.max(e,n,r),o=Math.min(e,n,r),a=(s+o)/2;let l,c;if(s===o)l=0,c=0;else{const t=s-o;switch(c=a>.5?t/(2-s-o):t/(s+o),s){case e:l=(n-r)/t+(ne.evaluate(t)],"measure-light":[{kind:"number"},[{kind:"value"}],()=>1],config:[{kind:"value"},[{kind:"string"}],(t,[e])=>{const n=wtt[e.evaluate(t)];return void 0===n?{}:n}]});var xtt="https://api.mapbox.com";function Ctt(t){return 0!==t.indexOf("mapbox://")?"":t.slice(9)}function ktt(t,e,n){const r=Ctt(t);if(!e||!r)return decodeURI(new URL(t,n).href);if(0!==r.indexOf("sprites/"))throw new Error(`unexpected sprites url: ${t}`);const i=r.slice(8);return`${xtt}/styles/v1/${i}/sprite?access_token=${e}`}function Stt(t,e){const n=Ctt(t);if(!n||!e)return decodeURI(new URL(t,location.href).href);if(0!==n.indexOf("styles/"))throw new Error(`unexpected style url: ${t}`);const r=n.slice(7);return`${xtt}/styles/v1/${r}?&access_token=${e}`}var Ett=["a","b","c","d"];function Rtt(t,e,n,r){const i=new URL(t,r||location.href),s=Ctt(t);return s?"mapbox.satellite"===s?[`https://api.mapbox.com/v4/${s}/{z}/{x}/{y}${window.devicePixelRatio>=1.5?"@2x":""}.webp?access_token=${e}`]:Ett.map(t=>`https://${t}.tiles.mapbox.com/v4/${s}/{z}/{x}/{y}.vector.pbf?access_token=${e}`):e?(i.searchParams.has(n)||i.searchParams.set(n,e),[decodeURI(i.href)]):[decodeURI(i.href)]}var Ltt=class extends b5{constructor(t){super(t),this.image=null,this.renderedSourceRevision_=0}getImage(){return this.image?this.image.getImage():null}prepareFrame(t){const e=t.layerStatesArray[t.layerIndex],n=t.pixelRatio,r=t.viewState,i=r.resolution,s=this.getLayer().getSource(),o=t.viewHints;let a=t.extent;if(void 0!==e.extent&&(a=yK(a,ZY(e.extent,r.projection))),!o[0]&&!o[1]&&!CK(a))if(s){this.getLayer().rendered||this.renderedSourceRevision_===s.getRevision()||(this.image=null),this.renderedSourceRevision_=s.getRevision();const t=r.projection,e=s.getImage(a,i,n,t);e&&(this.loadImage(e)?this.image=e:4===e.getState()&&(this.image=null))}else this.image=null;return!!this.image}getData(t){const e=this.frameState;if(!e)return null;const n=this.getLayer(),r=eX(e.pixelToCoordinateTransform,t.slice()),i=n.getExtent();if(i&&!KZ(i,r))return null;const s=this.image.getExtent(),o=this.image.getImage(),a=_K(s),l=Math.floor(o.width*((r[0]-s[0])/a));if(l<0||l>=o.width)return null;const c=mK(s),u=Math.floor(o.height*((s[3]-r[1])/c));return u<0||u>=o.height?null:this.getImageData(o,l,u)}renderFrame(t,e){const n=this.image,r=n.getExtent(),i=n.getResolution(),[s,o]=Array.isArray(i)?i:[i,i],a=n.getPixelRatio(),l=t.layerStatesArray[t.layerIndex],c=t.pixelRatio,u=t.viewState,h=u.center,d=u.resolution,p=c*s/(d*a),f=c*o/(d*a);this.prepareContainer(t,e);const g=this.context.canvas.width,m=this.context.canvas.height,y=this.getRenderContext(t);let v=!1,b=!0;if(l.extent){const e=ZY(l.extent,u.projection);b=xK(e,t.extent),v=b&&!YZ(e,t.extent),v&&this.clipUnrotated(y,t,e)}const w=n.getImage(),_=rX(this.tempTransform,g/2,m/2,p,f,0,a*(r[0]-h[0])/s,a*(h[1]-r[3])/o);this.renderedResolution=o*c/a;const x=w.width*_[0],C=w.height*_[3];if(this.getLayer().getSource().getInterpolate()||(y.imageSmoothingEnabled=!1),this.preRender(y,t),b&&x>=.5&&C>=.5){const t=_[4],e=_[5],n=l.opacity;1!==n&&(y.save(),y.globalAlpha=n),y.drawImage(w,0,0,+w.width,+w.height,t,e,x,C),1!==n&&y.restore()}return this.postRender(this.context,t),v&&y.restore(),y.imageSmoothingEnabled=!0,this.container}},Ttt=class extends TQ{constructor(t){super(t=t||{})}},Ptt=class extends Ttt{constructor(t){super(t)}createRenderer(){return new Ltt(this)}getData(t){return super.getData(t)}},Itt=class extends q1{constructor(t,e,n,r,i){super(t,e,n,void 0!==i?0:2),this.loader_=void 0!==i?i:null,this.canvas_=r,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=3):this.state=2,this.changed()}load(){0==this.state&&(this.state=1,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};function Mtt(t){return Array.isArray(t)?Math.min(...t):t}var Att=class extends q1{constructor(t,e,n,r,i,s,o){let a=t.getExtent();a&&t.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=e.getExtent();l&&e.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const c=l?yK(n,l):n,u=P9(t,e,dK(c),r),h=new M9(t,e,c,a,.5*u,r),d=h.calculateSourceExtent(),p=CK(d)?null:s(d,u,i),f=p?0:4,g=p?p.getPixelRatio():1;super(n,r,g,f),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=h,this.targetResolution_=r,this.targetExtent_=n,this.sourceImage_=p,this.sourcePixelRatio_=g,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){1==this.state&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(2==t){const t=_K(this.targetExtent_)/this.targetResolution_,e=mK(this.targetExtent_)/this.targetResolution_;this.canvas_=I9(t,e,this.sourcePixelRatio_,Mtt(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_,!0)}this.state=t,this.changed()}load(){if(0==this.state){this.state=1,this.changed();const t=this.sourceImage_.getState();2==t||3==t?this.reproject_():(this.sourceListenerKey_=LG(this.sourceImage_,IG,()=>{const t=this.sourceImage_.getState();2!=t&&3!=t||(this.unlistenSource_(),this.reproject_())}),this.sourceImage_.load())}}unlistenSource_(){PG(this.sourceListenerKey_),this.sourceListenerKey_=null}},Ott=class extends YG{constructor(t,e){super(t),this.image=e}},Ntt=class extends T5{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.loader=t.loader||null,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!t.loader&&0===t.loader.length,this.wantedProjection_=null}getResolutions(){return this.resolutions_}setResolutions(t){this.resolutions_=t}findNearestResolution(t){const e=this.getResolutions();return e&&(t=e[BG(e,t,0)]),t}getImage(t,e,n,r){const i=this.getProjection();if(!i||!r||UY(i,r))return i&&(r=i),this.getImageInternal(t,e,n,r);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&UY(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&rK(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new Att(i,r,t,e,n,(t,e,n)=>this.getImageInternal(t,e,n,i),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,n,r){if(this.loader){const i=function(t,e,n){const r=e/n,i=dK(t),s=BZ(_K(t)/r,4),o=BZ(mK(t)/r,4);return fK(i,r,0,[s+2*BZ(0*s/2,4),o+2*BZ(0*o/2,4)])}(t,e,n),s=this.findNearestResolution(e);if(this.image&&(this.static_||this.wantedProjection_===r&&(this.wantedExtent_&&YZ(this.wantedExtent_,i)||YZ(this.image.getExtent(),i))&&(this.wantedResolution_&&Mtt(this.wantedResolution_)===s||Mtt(this.image.getResolution())===s)))return this.image;this.wantedProjection_=r,this.wantedExtent_=i,this.wantedResolution_=s,this.image=new q1(i,s,n,this.loader),this.image.addEventListener(IG,this.handleImageChange.bind(this))}return this.image}handleImageChange(t){const e=t.target;let n;switch(e.getState()){case 1:this.loading=!0,n="imageloadstart";break;case 2:this.loading=!1,n="imageloadend";break;case 3:this.loading=!1,n="imageloaderror";break;default:return}this.hasListener(n)&&this.dispatchEvent(new Ott(n,e))}};function ztt(t){return function(e){const n=e.buffers,r=e.meta,i=e.imageOps,s=e.width,o=e.height,a=n.length,l=n[0].byteLength;if(i){const e=new Array(a);for(let t=0;tthis.maxQueueLength_;)this.queue_.shift().callback(null,null)}dispatch_(){if(this.running_||0===this.queue_.length)return;const t=this.queue_.shift();this.job_=t;const e=t.inputs[0].width,n=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),i=this.workers_.length;if(this.running_=i,1===i)return void this.workers_[0].postMessage({buffers:r,meta:t.meta,imageOps:this.imageOps_,width:e,height:n},r);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/i);for(let a=0;at*h/180),w=(e.altitudes||[45]).map(t=>t*h/180),_=Math.min(b.length,w.length,y.length,v.length,4),x=f<2?.4:f<4.5?.35:.3,C=f<15?Math.pow(2,(15-f)*x):1;function k(t,e="mapbox"){return"mapbox"===e?.1*(256*t[0]*256+256*t[1]+t[2])-1e4:"terrarium"===e?256*t[0]+t[1]+t[2]/256-32768:0}function S(t,e){return 0!==t?Math.atan2(e,-t):h/2*(e>0?1:-1)}const E="igor"===g?function(t,e){const n=S(t*=2*p,e*=2*p),r=b[0]+h,i=Math.atan(Math.sqrt(t*t+e*e))*(2/h);let s=(n+r)/h+.5;s%=2,s<0&&(s+=2);const o=1-Math.abs(s-1),a=i*o,l=i*(1-o),c=y[0],u=v[0];return[c.r*a+u.r*l,c.g*a+u.g*l,c.b*a+u.b*l,c.a*a+u.a*l]}:"basic"===g?function(t,e){t*=2*p,e*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=(Math.sin(w[0])-(e*r*s-t*i*s))/Math.sqrt(1+t*t+e*e),a=Math.max(0,Math.min(1,o));if(a>.5){const t=2*a-1,e=v[0];return[e.r*t,e.g*t,e.b*t,e.a*t]}const l=1-2*a,c=y[0];return[c.r*l,c.g*l,c.b*l,c.a*l]}:"combined"===g?function(t,e){t*=2*p,e*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=Math.sin(w[0]);let a=Math.acos((o-(e*r*s-t*i*s))/Math.sqrt(1+t*t+e*e));a=Math.max(0,Math.min(h/2,a));const l=Math.atan(Math.sqrt(t*t+e*e))*(4/h/h),c=a*l,u=(h/2-a)*l,d=y[0],f=v[0];return[d.r*c+f.r*u,d.g*c+f.g*u,d.b*c+f.b*u,d.a*c+f.a*u]}:"multidirectional"===g?function(t,e){const n=(t*=2*p)*t+(e*=2*p)*e,r=Math.sqrt(1+n);let i=0,s=0,o=0,a=0;for(let l=0;l<_;l++){const n=Math.cos(w[l]),c=(Math.sin(w[l])-(e*-Math.cos(b[l])*n-t*-Math.sin(b[l])*n))/r,u=Math.max(0,Math.min(1,c)),h=y[Math.min(l,y.length-1)],d=v[Math.min(l,v.length-1)];if(u>.5){const t=(2*u-1)/_;i+=d.r*t,s+=d.g*t,o+=d.b*t,a+=d.a*t}else{const t=(1-2*u)/_;i+=h.r*t,s+=h.g*t,o+=h.b*t,a+=h.a*t}}return[i,s,o,a]}:function(t,e){const n=b[0]+h,r=Math.atan(.625*Math.sqrt(t*t+e*e)),i=S(t,e),s=1.875-1.75*p,o=.5*h,a=.5!==p?(Math.pow(s,r)-1)/(Math.pow(s,o)-1)*o:r,l=Math.cos(a),c=Math.min(Math.max(2*p,0),1),u=(1-l)*c,d=m,f=d.r*u,g=d.g*u,w=d.b*u,_=d.a*u;let x=(i+n)/h+.5;x%=2,x<0&&(x+=2);const C=Math.abs(x-1),k=Math.sin(a)*c,E=y[0],R=v[0],L=(E.r*(1-C)+R.r*C)*k,T=(E.g*(1-C)+R.g*C)*k,P=(E.b*(1-C)+R.b*C)*k,I=(E.a*(1-C)+R.a*C)*k;return[f*(1-I)+L,g*(1-I)+T,w*(1-I)+P,_*(1-I)+I]};let R,L,T,P,I,M,A,O,N,z,F;for(L=0;L<=c;++L)for(I=0===L?0:L-1,M=L===c?c:L+1,R=0;R<=l;++R){T=0===R?0:R-1,P=R===l?l:R+1,A=4*(L*r+T),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=k(u,d),A=4*(L*r+P),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=k(u,d),z=(N-O)/a*C,A=4*(I*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=k(u,d),A=4*(M*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=k(u,d),F=(N-O)/a*C;const t=E(z,F),e=t[3];A=4*(L*r+R),e>0&&(o[A]=t[0]/e*255,o[A+1]=t[1]/e*255,o[A+2]=t[2]/e*255),o[A+3]=255*e}return new ImageData(o,r,i)}function Wtt(t,e){const n=t[0],r=n.width,i=n.height,s=n.data,o=new Uint8ClampedArray(s.length),a=r-1,l=i-1,c=[0,0,0,0];let u,h,d;const p=(f=e.saturation)>0?1-1/(1.001-f):-f;var f;const g=(m=e.contrast)>0?1/(1-m):1+m;var m;const y=function(t){t*=Math.PI/180;const e=Math.sin(t),n=Math.cos(t);return[(2*n+1)/3,(-Math.sqrt(3)*e-n+1)/3,(Math.sqrt(3)*e-n+1)/3]}(e.hueRotate),v=y,b=[y[2],y[0],y[1]],w=[y[1],y[2],y[0]],_=e.brightnessLow,x=e.brightnessHigh;for(h=0;h<=l;++h)for(u=0;u<=a;++u){d=4*(h*r+u),c[0]=s[d],c[1]=s[d+1],c[2]=s[d+2],c[3]=s[d+3];const t=c[0],e=c[1],n=c[2],i=(t,e)=>{let n=0;for(let r=0;r1?h[h.length-2].toLowerCase():"";if(d==p||d==p.replace("-","")||f+"-"+d==p){o=i?o:Htt[p],h.pop(),f&&p.startsWith(f)&&h.pop();break}}i||"number"!=typeof d||(o=d,i=!0);var g=h.join(Gtt).replace("Klokantech Noto Sans","Noto Sans").replace("DIN Pro","Barlow").replace("Arial Unicode MS","Arial");-1!==g.indexOf(Gtt)&&(g='"'+g+'"'),l.push(g)}r=Ktt[t]=[a,o,l]}return r[0]+Gtt+r[1]+Gtt+e+"px"+(n?"/"+n:"")+Gtt+r[2]}var Xtt=Object.freeze({}),Jtt={},Qtt={},tet=0;function eet(t){return t.id||(t.id=tet++),t.id}function net(t){let e=Jtt[t.id];return e||(e={},Jtt[eet(t)]=e),e}function ret(t){return t*Math.PI/180}var iet=function(){const t=[];for(let e=78271.51696402048;t.length<=24;e/=2)t.push(e);return t}();function set(t,e){if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(t,e);const n=document.createElement("canvas");return n.width=t,n.height=e,n}function oet(t,e){let n=0;const r=e.length;for(;ni).then(t=>t instanceof Response?(r&&(r.url=t.url),o(t)):(t instanceof Request||(t=new Request(t)),t.headers.get("Accept")||t.headers.set("Accept","application/json"),r&&(r.url=t.url),fetch(t).then(o).catch(s))).catch(s);return cet[e]=[i,a],a}function het(t,e){if("string"!=typeof t)return Promise.resolve(t);if(!t.trim().startsWith("{"))return uet("Style",t=Stt(t,e.accessToken),e);try{const e=JSON.parse(t);return Promise.resolve(e)}catch(X8){return Promise.reject(X8)}}var det={};function pet(t,e,n={}){const r=[e,JSON.stringify(t)].toString();let i=det[r];if(!i||n.transformRequest){let s;n.transformRequest&&(s=(t,e)=>{const r=n.transformRequest&&n.transformRequest(e,"Tiles")||e;if(t instanceof gtt)t.setLoader((e,n,i)=>{const s=function(n){n.arrayBuffer().then(n=>{const r=t.getFormat().readFeatures(n,{extent:e,featureProjection:i});t.setFeatures(r)})};KG(()=>r).then(e=>{if(e instanceof Response)return s(e);fetch(e).then(s).catch(()=>t.setState(3))}).catch(()=>t.setState(3))});else{const e=t.getImage();KG(()=>r).then(n=>{if("string"==typeof n)return void(e.src=n);const r=t=>t.blob().then(t=>{const n=URL.createObjectURL(t);e.addEventListener("load",()=>URL.revokeObjectURL(n)),e.addEventListener("error",()=>URL.revokeObjectURL(n)),e.src=n});if(n instanceof Response)return r(n);fetch(n).then(r).catch(()=>t.setState(3))}).catch(()=>t.setState(3))}});const o=t.url;if(o&&!t.tiles){const r=Rtt(o,n.accessToken,n.accessTokenParam||"access_token",e||location.href);if(o.startsWith("mapbox://"))i=Promise.resolve({tileJson:Object.assign({},t,{url:void 0,tiles:r}),tileLoadFunction:s});else{const t={};i=uet("Source",r[0],n,t).then(function(e){return e.tiles=e.tiles.map(function(r){return"tms"===e.scheme&&(r=r.replace("{y}","{-y}")),Rtt(r,n.accessToken,n.accessTokenParam||"access_token",t.url)[0]}),Promise.resolve({tileJson:e,tileLoadFunction:s})})}}else t.tiles?(t=Object.assign({},t,{tiles:t.tiles.map(function(r){return"tms"===t.scheme&&(r=r.replace("{y}","{-y}")),Rtt(r,n.accessToken,n.accessTokenParam||"access_token",e||location.href)[0]})}),i=Promise.resolve({tileJson:Object.assign({},t),tileLoadFunction:s})):i=Promise.reject(new Error("source has no `tiles` nor `url`"));det[r]=i}return i}function fet(t,e,n,r){const i=[2*n*e.pixelRatio+e.width,2*n*e.pixelRatio+e.height],s=set(i[0],i[1]),o=s.getContext("2d");o.drawImage(t,e.x,e.y,e.width,e.height,n*e.pixelRatio,n*e.pixelRatio,e.width,e.height);const a=o.getImageData(0,0,i[0],i[1]);o.globalCompositeOperation="destination-over",o.fillStyle=`rgba(${255*r.r},${255*r.g},${255*r.b},${r.a})`;const l=a.data;for(let c=0,u=a.width;c0&&o.arc(c,t,n*e.pixelRatio,0,2*Math.PI);return o.fill(),s}function get(t,e,n){const r=Math.max(0,Math.min(1,(n-t)/(e-t)));return r*r*(3-2*r)}function met(t,e,n){const r=set(e.width,e.height),i=r.getContext("2d");i.drawImage(t,e.x,e.y,e.width,e.height,0,0,e.width,e.height);const s=i.getImageData(0,0,e.width,e.height),o=s.data;for(let a=0,l=s.width;a0?(o[e+0]=Math.round(255*n.r*r),o[e+1]=Math.round(255*n.g*r),o[e+2]=Math.round(255*n.b*r),o[e+3]=Math.round(255*r)):o[e+3]=0}return i.putImageData(s,0,0),r}var yet,vet=Array(256).join(" ");function bet(t,e){if(e>=.05){let n="";const r=t.split("\n"),i=vet.slice(0,Math.round(e/.1));for(let t=0,e=r.length;t0&&(n+="\n"),n+=r[t].split("").join(i);return n}return t}function wet(){return yet||(yet=set(1,1).getContext("2d")),yet}function _et(t,e){if(/\d+ \d+/.test(t)){const[n,r]=t.split(" ").map(Number);return n<=e&&e<=r}return t==e}function xet(t,e){return wet().measureText(t).width+(t.length-1)*e}var Cet={};function ket(t,e,n,r){if(-1!==t.indexOf("\n")){const i=t.split("\n"),s=[];for(let t=0,o=i.length;t1){const t=wet();t.font=e;const i=t.measureText("M").width*n;let a="";const l=[];for(let e=0,n=o.length;e1;++e){const t=l[e];if(xet(t,r)<.35*i){const i=e>0?xet(l[e-1],r):1/0,s=e.7*i&&xet(s,r)<.6*i){const o=t.split(" "),a=o.pop();xet(a,r)<.2*i&&(l[e]=o.join(" "),l[e+1]=a+" "+s),n-=1}}s=l.join("\n")}else s=t;s=bet(s,r),Cet[i]=s}return s}i2.on("propertychange",()=>{for(const t in Cet)delete Cet[t]});var Eet,Ret,Let=["Arial","Courier New","Times New Roman","Verdana","sans-serif","serif","monospace","cursive","fantasy"],Tet={},Pet={Point:1,MultiPoint:1,LineString:2,MultiLineString:2,Polygon:3,MultiPolygon:3},Iet={center:[.5,.5],left:[0,.5],right:[1,.5],top:[.5,0],bottom:[.5,1],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},Met=function(t,e){let n=l7(t,e);if("error"===n.result){const r=btt(t);r!==t&&(n=l7(r,e))}if("error"===n.result){const r=n.value[0];return console.error("Error parsing expression:",t,r.key,r.message),{evaluate:()=>e.default}}return n.value};function Aet(t,e,n,r,i,s){const o=t.id;i||(i={},console.warn("No functionCache provided to getValue()")),i[o]||(i[o]={});const a=i[o];if(!a[n]){let r=(t[e]||Xtt)[n];const i=l9[`${e}_${t.type}`]&&l9[`${e}_${t.type}`][n];void 0===r&&i&&(r=i.default);let s=i7(r);if(!s&&n7(r)&&(r=x7(r,i),s=!0),s){const t=Met(r,i);a[n]=t.evaluate.bind(t)}else{const t=i?i.type:typeof r;"color"!==t&&"colorArray"!==t||(r=s6.parse(r));let e=!1;if("array"===t)for(let n=0;n!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};d7(t)||(t=m7(t));const e=s7(t,p7,void 0);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return{filter:(t,n,r)=>e.value.evaluate(t,n,{},r),needGeometry:g7(t),getGlobalStateRefs:()=>u7(e.value.expression)}}(e).filter}catch(i){console.warn("Filter will evaluate to false: "+i.message),r[t]=function(){return!1}}return r[t](_tt,n)}function zet(t,e){if(t){if(0===t.a||0===e)return;const n=t.a;return e=void 0===e?1:e,0===n?"transparent":"rgba("+Math.round(255*t.r/n)+","+Math.round(255*t.g/n)+","+Math.round(255*t.b/n)+","+n*e+")"}return t}var Fet=/\{[^{}}]*\}/g;function Det(t,e){return t.replace(Fet,function(t){return e[t.slice(1,-1)]||""})}function jet(t,e){let n=t.split(":")[0];return n===t&&(n="default"),e[n]}var Uet={},Bet=s6.parse("#000000"),$et=s6.parse("#FFFFFF"),qet=s6.parse("#000000"),Vet=["raster-saturation","raster-contrast","raster-brightness-max","raster-brightness-min","raster-hue-rotate"],Wet=["background","circle","fill","fill-extrusion","line","symbol","raster","hillshade"];function Het(t,e=512){return t.getExtent()?J9({extent:t.getExtent(),tileSize:e,maxZoom:22}).getResolutions():iet}function Get(t,e){return e.accessToken||(e=Object.assign({},e),new URL(t).searchParams.forEach((t,n)=>{e.accessToken=t,e.accessTokenParam=n})),e}var Zet=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function Ket(t,e){if(!e.ref)return e;const n=t.find(t=>t.id===e.ref);if(!n)return e;const r=Object.assign({},e);for(const i of Zet)!(i in r)&&i in n&&(r[i]=n[i]);return r}function Yet(t,e,n){const r=new dtt({tileJSON:e,tileSize:t.tileSize||e.tileSize||512}),i=r.getTileJSON(),s=r.getTileGrid(),o=OY(n.projection||"EPSG:3857"),a=function(t,e){const n=t.bounds;if(n){const t=DY([n[0],n[1]],e),r=DY([n[2],n[3]],e);return[t[0],t[1],r[0],r[1]]}return OY(e).getExtent()}(i,o),l=o.getExtent(),c=i.minzoom||0,u=i.maxzoom||22,h={attributions:r.getAttributions(),projection:o,tileGrid:new Y9({origin:l?bK(l):s.getOrigin(0),extent:a||s.getExtent(),minZoom:c,resolutions:Het(o,e.tileSize).slice(0,u+1),tileSize:s.getTileSize(0)})};return Array.isArray(i.tiles)?h.urls=i.tiles:h.url=i.tiles,h}function Xet(t,e,n){return new Promise(function(r,i){pet(t,e,n).then(function({tileJson:e,tileLoadFunction:i}){const s=Yet(t,e,n);s.tileLoadFunction=i,s.format=new p9({layerName:"mvt:layer"});const o=new mtt(s);o.set("mapbox-source",t),r(o)}).catch(i)})}function Jet(t){return`{bbox-${(t?t.getCode():"EPSG:3857").toLowerCase().replace(/[^a-z0-9]/g,"-")}}`}function Qet(t,e,n){const r=new V9;return function(t,e,n){return new Promise(function(r,i){pet(t,e,n).then(function({tileJson:e,tileLoadFunction:i}){const s=new dtt({interpolate:void 0===n.interpolate||n.interpolate,transition:0,crossOrigin:"anonymous",tileJSON:e});s.tileGrid=Yet(t,e,n).tileGrid,n.projection&&(s.projection=OY(n.projection));const o=s.getTileUrlFunction();i&&s.setTileLoadFunction(i),s.setTileUrlFunction(function(t,e,n){const r=Jet(n);let i=o(t,e,n);if(-1!=i.indexOf(r)){const e=s.getTileGrid().getTileCoordExtent(t);i=i.replace(r,e.toString())}return i}),s.set("mapbox-source",t),r(s)}).catch(function(t){i(t)})})}(t,e,n).then(function(t){r.setSource(t)}).catch(function(){r.setSource(void 0)}),r}function tnt(t,e,n){const r=n.projection?new V5({dataProjection:n.projection}):new V5,i=t.data,s={};if("string"==typeof i){const[s]=Rtt(i,n.accessToken,n.accessTokenParam||"access_token",e||location.href);if(/\{bbox-[0-9a-z-]+\}/.test(s)){const e=(t,e,n)=>{const r=Jet(n);return s.replace(r,`${t.join(",")}`)},i=new O5({attributions:t.attribution,format:r,loader:(t,r,s,o,a)=>{uet("GeoJSON","function"==typeof e?e(t,r,s):e,n).then(t=>{const e=i.getFormat().readFeatures(t,{featureProjection:s});i.addFeatures(e),o(e)}).catch(()=>{i.removeLoadedExtent(t),a()})},strategy:S5});return i.set("mapbox-source",t),i}const o=new O5({attributions:t.attribution,format:r,url:s,loader:(t,e,r,i,a)=>{uet("GeoJSON",s,n).then(t=>{const e=o.getFormat().readFeatures(t,{featureProjection:r});o.addFeatures(e),i(e)}).catch(()=>{o.removeLoadedExtent(t),a()})}});return o}s.features=r.readFeatures(i,{featureProjection:"EPSG:3857"});const o=new O5(Object.assign({attributions:t.attribution,format:r},s));return o.set("mapbox-source",t),o}function ent(t,e,n,r){n=Ket(t.layers,n);const i=net(t),s=n.type;let o=n.source;const a=t.sources[o];let l;var c;return"background"==s?(l=function(t,e,n){const r=fZ?{style:{}}:document.createElement("div");return r.className="ol-mapbox-style-background",r.style.position="absolute",r.style.width="100%",r.style.height="100%",new TQ({source:new T5({}),render(i){const s=function(t,e,n,r){const i={id:t.id,type:t.type},s=t.paint||{};let o;i.paint=s,_tt.zoom=oet(e,n.resolutions||iet),_tt.distanceFromCenter=0;const a=Aet(i,"paint","background-color",Xtt,r);return void 0!==s["background-opacity"]&&(o=Aet(i,"paint","background-opacity",Xtt,r)),"none"===Aet(i,"layout","visibility",Xtt,r)?void 0:zet(a,o)}(t,i.viewState.resolution,e,n);return r.style.backgroundColor=s,r}})}(n,r,i),o=void 0):"vector"==a.type?l=function(t,e,n){const r=new Z9({declutter:!0,visible:!1});return Xet(t,e,n).then(function(t){r.setSource(t)}).catch(function(){r.setSource(void 0)}),r}(a,e,r):"raster"==a.type?(Object.keys(n.paint||{}).find(t=>Vet.includes(t))?(c=Qet(a,e,r),l=new Ptt({source:new Utt({operationType:"image",operation:Wtt,sources:[c]})}),function(t,e,n,r){t.getSource().on("beforeoperations",function(t){_tt.zoom=oet(t.resolution,n.resolutions||iet),_tt.distanceFromCenter=0;const i=t.data;i.saturation=Aet(e,"paint","raster-saturation",Xtt,r),i.contrast=Aet(e,"paint","raster-contrast",Xtt,r),i.brightnessHigh=Aet(e,"paint","raster-brightness-max",Xtt,r),i.brightnessLow=Aet(e,"paint","raster-brightness-min",Xtt,r),i.hueRotate=Aet(e,"paint","raster-hue-rotate",Xtt,r)})}(l,n,r,i)):l=Qet(a,e,r),l.setVisible(!n.layout||"none"!==Aet(n,"layout","visibility",Xtt,i)),l.on("prerender",function(t,e,n){let r=null;return function(i){t.paint&&"raster-opacity"in t.paint&&i.frameState.viewState.zoom!==r&&(r=i.frameState.viewState.zoom,delete n[t.id],function(t,e,n,r){_tt.zoom=n,_tt.distanceFromCenter=0;const i=Aet(t,"paint","raster-opacity",Xtt,r);e.setOpacity(i)}(t,e,r,n))}}(n,l,i))):"geojson"==a.type?l=function(t,e,n){return new _5({declutter:!0,source:tnt(t,e,n),visible:!1})}(a,e,r):"raster-dem"==a.type&&"hillshade"==n.type&&(l=function(t){return new Ptt({source:new Utt({operationType:"image",operation:Vtt,sources:[t]})})}(Qet(a,e,r)),function(t,e,n,r,i){t.getSource().on("beforeoperations",function(t){const s=t.data;s.resolution=NY(r.projection||"EPSG:3857",t.resolution,dK(t.extent),"m");const o=oet(t.resolution,r.resolutions||iet);_tt.zoom=o,_tt.distanceFromCenter=0,s.zoom=o,s.encoding=e.encoding,s.method=Aet(n,"paint","hillshade-method",Xtt,i)||"standard",s.exaggeration=Aet(n,"paint","hillshade-exaggeration",Xtt,i);let a=Aet(n,"paint","hillshade-illumination-direction",Xtt,i);null==a&&(a=335),s.azimuths=Array.isArray(a)?a:[a],s.sunAz=s.azimuths[0];let l=Aet(n,"paint","hillshade-illumination-altitude",Xtt,i);function c(t){return t&&t.values?t.values[0]:t}function u(t){const e=n.paint?.[t];if(Array.isArray(e)&&e.length>0&&"string"==typeof e[0]&&void 0!==s6.parse(e[0]))return e.map(t=>s6.parse(t));let r=Aet(n,"paint",t,Xtt,i);return r=c(r),r?[r]:void 0}null==l&&(l=45),s.altitudes=Array.isArray(l)?l:[l],s.highlightColors=u("hillshade-highlight-color"),s.highlightColor=s.highlightColors?.[0]||$et,s.highlightColors||(s.highlightColors=[s.highlightColor]),s.shadowColors=u("hillshade-shadow-color"),s.shadowColor=s.shadowColors?.[0]||Bet,s.shadowColors||(s.shadowColors=[s.shadowColor]),s.accentColor=c(Aet(n,"paint","hillshade-accent-color",Xtt,i))||qet})}(l,a,n,r,i),l.setVisible(!n.layout||"none"!==Aet(n,"layout","visibility",Xtt,i))),l&&l.set("mapbox-source",o),l}function nnt(t,e,n,r){t.schema&&Object.assign(wtt,Object.keys(t.schema).reduce((e,n)=>(e[n]=t.schema[n]?.default,e),{}));const i=[];let s=null;if(e instanceof i3){if(s=e.getView(),!s.isDef()&&!s.getRotation()&&!s.getResolutions()){const t=r.projection?OY(r.projection):s.getProjection();s=new iJ(Object.assign(s.getProperties(),{maxResolution:iet[0]/DK[t.getUnits()],projection:r.projection||s.getProjection()})),e.setView(s)}"center"in t&&!s.getCenter()&&s.setCenter(DY(t.center,s.getProjection())),"zoom"in t&&void 0===s.getZoom()&&s.setResolution(iet[0]/DK[s.getProjection().getUnits()]/Math.pow(2,t.zoom)),s.getCenter()&&void 0!==s.getZoom()||s.fit(s.getProjection().getExtent(),{nearest:!0,size:e.getSize()})}e.set("mapbox-style",t),e.set("mapbox-metadata",{styleUrl:n,options:r});const o=t.layers;let a,l,c,u=[];for(let h=0,d=o.length;h0||n>0)&&t.setMaxResolution(Math.min(aet(Math.max(0,o-1e-12),iet),aet(Math.max(0,n-1e-12),e.getResolutions()))),a<24&&t.setMinResolution(aet(a,iet))}}else o>0&&t.setMaxResolution(aet(Math.max(0,o-1e-12),iet));u instanceof O5||u instanceof mtt?function(t,e,n="",r={},i){let s,o,a,l,c=!0;return"string"==typeof n||Array.isArray(n)?l=n:(a=n,l=a.source||a.layers,r=a),"string"==typeof r?(s=r,a={}):(s=r.styleUrl,a=r),!1===a.updateSource&&(c=!1),i||(i=a.resolutions),s||"string"!=typeof e||e.trim().startsWith("{")||(s=e),s&&(s=s.startsWith("data:")?location.href:Stt(s,a.accessToken),a=Get(s,a)),new Promise(function(n,r){het(e,a).then(function(e){if(8!=e.version)return r(new Error("glStyle version 8 required."));if(!(t instanceof _5||t instanceof Z9))return r(new Error("Can only apply to VectorLayer or VectorTileLayer"));const u=t instanceof Z9?"vector":"geojson";if(l?o=Array.isArray(l)?e.layers.find(function(t){return t.id===l[0]}).source:l:(o=e.layers.find(function(t){return t.source&&e.sources[t.source].type===u}).source,l=o),!o)return r(new Error(`No ${u} source found in the glStyle.`));function h(){if(!c)return Promise.resolve();if(t instanceof Z9)return Xet(e.sources[o],s,a).then(function(e){const n=t.getSource();n?e!==n&&(n.setTileUrlFunction(e.getTileUrlFunction()),"function"==typeof n.setUrls&&"function"==typeof e.getUrls&&n.setUrls(e.getUrls()),n.format_||(n.format_=e.format_),n.getAttributions()||n.setAttributions(e.getAttributions()),n.getTileLoadFunction()===ytt&&n.setTileLoadFunction(e.getTileLoadFunction()),UY(n.getProjection(),e.getProjection())&&(n.tileGrid=e.getTileGrid())):t.setSource(e);const r=t.getSource().getTileGrid();!isFinite(t.getMaxResolution())&&!isFinite(t.getMinZoom())&&r.getMinZoom()>0&&t.setMaxResolution(aet(Math.max(0,r.getMinZoom()-1e-12),r.getResolutions()))});const n=e.sources[o];let r=t.getSource();r&&r.get("mapbox-source")===n||(r=tnt(n,s,a));const i=t.getSource();return i?r!==i&&(i.getAttributions()||i.setAttributions(r.getAttributions()),i.format_||(i.format_=r.getFormat()),i.url_=r.getUrl()):t.setSource(r),Promise.resolve()}let d,p;const f={},g={};function m(){if(p||e.sprite&&!f)p?(t.setStyle(p),h().then(n).catch(r)):r(new Error("Something went wrong trying to apply style."));else{if(a.projection&&!i){const t=OY(a.projection).getUnits();"m"!==t&&(i=iet.map(e=>e/DK[t]))}let s;const c=t.getSource();c instanceof mtt&&c.format_ instanceof p9&&(s=c.format_.layerName_),p=function(t,e,n,r=iet,i,s,o,a){if("string"==typeof e&&(e=JSON.parse(e)),e.schema)for(const b in e.schema){const t=e.schema[b];"default"in t&&(wtt[b]=t.default)}if(8!=e.version)throw new Error("glStyle version 8 required.");Uet[function(t,e){return eet(t)+"."+eZ(e)}(e,t)]=Array.from(arguments);const l={};("string"==typeof s||s instanceof Request||s instanceof Response||s instanceof Promise)&&(s={default:s});for(const b in s){const e=s[b];KG(()=>e).then(async e=>{let n;if("undefined"!=typeof Image){const r=new Image;if("string"==typeof e)r.crossOrigin="anonymous",r.src=e;else{let t;e instanceof Request?t=await fetch(e):e instanceof Response&&(t=e);const i=await t.blob();n=URL.createObjectURL(i),r.src=n}r.addEventListener("load",function e(){r.removeEventListener("load",e),l[b]={image:r,size:[r.width,r.height]},t.changed(),n&&URL.revokeObjectURL(n)}),r.addEventListener("error",function t(){URL.revokeObjectURL(n),r.removeEventListener("error",t)})}else if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope){const t=self;t.postMessage({action:"loadImage",src:e}),t.addEventListener("message",function(t){"imageLoaded"===t.data.action&&t.data.src===e&&(l[b]={image:t.data.image,size:[t.data.image.width,t.data.image.height]})})}})}const c=l4(e.layers),u={},h=[],d={},p={},f=net(e),g=function(t){let e=Qtt[t.id];return e||(e={},Qtt[eet(t)]=e),e}(e);let m;for(let b=0,w=c.length;b=h.maxzoom)continue;const k=h.filter;if(!k||Net(w,k,S,g)){let r,c,g,v,b,w;R=h;const k=u.index;if(3==_&&("fill"==h.type||"fill-extrusion"==h.type))if(c=Aet(h,"paint",h.type+"-opacity",S,f,E),h.type+"-pattern"in C){const t=Aet(h,"paint",h.type+"-pattern",S,f,E);if(t){const e="string"==typeof t?Det(t,m):t.toString(),n=jet(e,l);if(i&&i[e]&&n){++L,w=y[L],w&&w.getFill()&&!w.getStroke()&&!w.getText()||(w=new _2({fill:new y2}),y[L]=w),g=w.getFill(),w.setZIndex(k);const t=e+"."+c;let r=p[t];if(!r){const s=i[e],o=set(s.width,s.height),a=o.getContext("2d");a.globalAlpha=c,a.drawImage(n.image,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r=a.createPattern(o,"repeat"),p[t]=r}g.setColor(r)}}}else if(r=zet(Aet(h,"paint",h.type+"-color",S,f,E),c),h.type+"-outline-color"in C&&(b=zet(Aet(h,"paint",h.type+"-outline-color",S,f,E),c)),b||(b=r),r||b){if(++L,w=y[L],(!w||r&&!w.getFill()||!r&&w.getFill()||b&&!w.getStroke()||!b&&w.getStroke()||w.getText())&&(w=new _2({fill:r?new y2:void 0,stroke:b?new w2:void 0}),y[L]=w),r&&(g=w.getFill(),g.setColor(r)),"fill-extrusion"===h.type){const t=Aet(h,"paint","fill-extrusion-height",S,f,E);if(t>0){const e=Math.max(.1,.9-Math.min(t,225)/280);if(b&&"transparent"!==b){const t=s6.parse(b);b=`rgba(${Math.round(255*t.r*e)},${Math.round(255*t.g*e)},${Math.round(255*t.b*e)},${t.a})`}}}b&&(v=w.getStroke(),v.setColor(b),v.setWidth(.5)),w.setZIndex(k)}if(1!=_&&"line"==h.type){r="line-pattern"in C?void 0:zet(Aet(h,"paint","line-color",S,f,E),Aet(h,"paint","line-opacity",S,f,E));const t=Aet(h,"paint","line-width",S,f,E);r&&t>0&&(++L,w=y[L],w&&w.getStroke()&&!w.getFill()&&!w.getText()||(w=new _2({stroke:new w2}),y[L]=w),v=w.getStroke(),v.setLineCap(Aet(h,"layout","line-cap",S,f,E)),v.setLineJoin(Aet(h,"layout","line-join",S,f,E)),v.setMiterLimit(Aet(h,"layout","line-miter-limit",S,f,E)),v.setColor(r),v.setWidth(t),v.setLineDash(C["line-dasharray"]?Aet(h,"paint","line-dasharray",S,f,E).map(function(e){return e*t}):null),"function"==typeof v.setOffset&&v.setOffset(Aet(h,"paint","line-offset",S,f,E)),w.setZIndex(k))}let T,P,I,M,A,O,N,z,F,D=!1,j=null,U=0;if((1==_||2==_)&&"icon-image"in x){const e=Aet(h,"layout","icon-image",S,f,E);if(e){let r;T="string"==typeof e?Det(e,m):e.toString();const o=a?a(t,T):void 0,c=jet(T,l);if(i&&i[T]&&c||o){const t=Aet(h,"layout","icon-rotation-alignment",S,f,E);if(2==_){const e=n.getGeometry();if(e.getFlatMidpoint||e.getFlatMidpoints){const n=e.getExtent();if(Math.sqrt(Math.max(Math.pow((n[2]-n[0])/s,2),Math.pow((n[3]-n[1])/s,2)))>150){const n="MultiLineString"===e.getType()?e.getFlatMidpoints():e.getFlatMidpoint();if(Ret||(Ret=new R5("Point",Eet=[NaN,NaN],[],2,{},void 0)),r=Ret,Eet[0]=n[0],Eet[1]=n[1],"line"===Aet(h,"layout","symbol-placement",S,f,E)&&"map"===t){const t=e.getStride(),r=e.getFlatCoordinates();for(let e=0,i=r.length-t;e=l){U=Math.atan2(s-a,o-i);break}}}}}}if(2!==_||r){const e=Aet(h,"layout","icon-size",S,f,E),n=void 0!==C["icon-color"]?Aet(h,"paint","icon-color",S,f,E):null;if(!n||0!==n.a){const r=Aet(h,"paint","icon-halo-color",S,f,E),s=Aet(h,"paint","icon-halo-width",S,f,E);let a=`${T}.${e}.${s}.${r}`;if(null!==n&&(a+=`.${n}`),P=d[a],!P){const l=Oet(h,S,"icon",f);let u;"icon-offset"in x&&(u=Aet(h,"layout","icon-offset",S,f,E).slice(0),u[0]*=e,u[1]*=-e);let p=n?[255*n.r,255*n.g,255*n.b,n.a]:void 0;if(o){const n={color:p,rotateWithView:"map"===t,displacement:u,declutterMode:l,scale:e};"string"==typeof o?n.src=o:(n.img=o,n.imgSize=[o.width,o.height]),P=new b2(n)}else{const o=i[T];let a,h,d;s?o.sdf?(a=fet(met(c.image,o,n||[0,0,0,1]),{x:0,y:0,width:o.width,height:o.height,pixelRatio:o.pixelRatio},s,r),p=void 0):a=fet(c.image,o,s,r):(o.sdf&&(c.unSDFed||(c.image=met(c.image,{x:0,y:0,width:c.size[0],height:c.size[1]},{r:1,g:1,b:1,a:1}),c.unSDFed=!0)),a=c.image,h=[o.width,o.height],d=[o.x,o.y]),P=new b2({color:p,img:a,imgSize:c.size,size:h,offset:d,rotateWithView:"map"===t,scale:e/o.pixelRatio,displacement:u,declutterMode:l})}d[a]=P}}P&&(++L,w=y[L],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new _2,y[L]=w),w.setGeometry(r),P.setRotation(U+ret(Aet(h,"layout","icon-rotate",S,f,E))),P.setOpacity(Aet(h,"paint","icon-opacity",S,f,E)),P.setAnchor(Iet[Aet(h,"layout","icon-anchor",S,f,E)]),w.setImage(P),j=w.getText(),w.setText(void 0),w.setZIndex(k),D=!0,I=!1)}else I=!0}}}if(1==_&&"circle"===h.type){++L,w=y[L],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new _2,y[L]=w);const t="circle-radius"in C?Aet(h,"paint","circle-radius",S,f,E):5,e=zet(Aet(h,"paint","circle-stroke-color",S,f,E),Aet(h,"paint","circle-stroke-opacity",S,f,E)),n=Aet(h,"paint","circle-translate",S,f,E),r=zet(Aet(h,"paint","circle-color",S,f,E),Aet(h,"paint","circle-opacity",S,f,E)),i=Aet(h,"paint","circle-stroke-width",S,f,E),s=t+"."+e+"."+r+"."+i+"."+n[0]+"."+n[1];P=d[s],P||(P=new m2({radius:t,displacement:[n[0],-n[1]],stroke:e&&i>0?new w2({width:i,color:e}):void 0,fill:r?new y2({color:r}):void 0,declutterMode:"none"}),d[s]=P),w.setImage(P),j=w.getText(),w.setText(void 0),w.setGeometry(void 0),w.setZIndex(k),D=!0}if("text-field"in x){N=Math.round(Aet(h,"layout","text-size",S,f,E));const t=Aet(h,"layout","text-font",S,f,E);O=Aet(h,"layout","text-line-height",S,f,E),A=Ytt(o?o(t,e.metadata?e.metadata["ol:webfonts"]:void 0):t,N,O),A.includes("sans-serif")||(A+=",sans-serif"),z=Aet(h,"layout","text-letter-spacing",S,f,E),F=Aet(h,"layout","text-max-width",S,f,E);const n=Aet(h,"layout","text-field",S,f,E);M="object"==typeof n&&n.sections?1===n.sections.length?n.toString():n.sections.reduce((e,n)=>{const r=n.fontStack?n.fontStack.split(","):t,i=Ytt(o?o(r):r,N*(n.scale||1),O);let s=n.text;if("\n"===s)return e.push("\n",""),e;if(2==_)return e.push(bet(s,z),i),e;s=ket(s,i,F,z).split("\n");for(let t=0,o=s.length;t0&&e.push("\n",""),e.push(s[t],i);return e},[]):Det(n,m).trim(),c=Aet(h,"paint","text-opacity",S,f,E)}if(M&&c&&!I){D||(++L,w=y[L],w&&w.getText()&&!w.getFill()&&!w.getStroke()||(w=new _2,y[L]=w),w.setImage(void 0),w.setGeometry(void 0));const t=Oet(h,S,"text",f);w.getText()||w.setText(j),j=w.getText(),(!j||"getDeclutterMode"in j&&j.getDeclutterMode()!==t)&&(j=new S2({padding:[2,2,2,2],declutterMode:t}),w.setText(j));const e=Aet(h,"layout","text-transform",S,f,E);"uppercase"==e?M=Array.isArray(M)?M.map((t,e)=>e%2?t:t.toUpperCase()):M.toUpperCase():"lowercase"==e&&(M=Array.isArray(M)?M.map((t,e)=>e%2?t:t.toLowerCase()):M.toLowerCase());const n=Array.isArray(M)?M:2==_?bet(M,z):ket(M,A,F,z);if(j.setText(n),j.setFont(A),j.setRotation(ret(Aet(h,"layout","text-rotate",S,f,E))),"function"==typeof j.setKeepUpright){const t=Aet(h,"layout","text-keep-upright",S,f,E);j.setKeepUpright(t)}const r=Aet(h,"layout","text-anchor",S,f,E),i=D||1==_?"point":Aet(h,"layout","symbol-placement",S,f,E);let s;if("line-center"===i?(j.setPlacement("line"),s="center"):j.setPlacement(i),"line"===i&&"function"==typeof j.setRepeat){const t=Aet(h,"layout","symbol-spacing",S,f,E);j.setRepeat(2*t)}j.setOverflow("point"===i);let o=Aet(h,"paint","text-halo-width",S,f,E);const a=Aet(h,"layout","text-offset",S,f,E),l=Aet(h,"paint","text-translate",S,f,E);let u=0,d=0;if("point"==i){s="center",-1!==r.indexOf("left")?(s="left",d=o):-1!==r.indexOf("right")&&(s="right",d=-o);const t=Aet(h,"layout","text-rotation-alignment",S,f,E);j.setRotateWithView("map"==t)}else j.setMaxAngle(ret(Aet(h,"layout","text-max-angle",S,f,E))*M.length/n.length),j.setRotateWithView(!1);j.setTextAlign(s);let p="middle";0==r.indexOf("bottom")?(p="bottom",u=-o-.5*(O-1)*N):0==r.indexOf("top")&&(p="top",u=o+.5*(O-1)*N),j.setTextBaseline(p);const g=Aet(h,"layout","text-justify",S,f,E);j.setJustify("auto"===g?void 0:g),j.setOffsetX(a[0]*N+d+l[0]),j.setOffsetY(a[1]*N+u+l[1]);const m=j.getFill()||new y2;m.setColor(zet(Aet(h,"paint","text-color",S,f,E),c)),j.setFill(m);const v=zet(Aet(h,"paint","text-halo-color",S,f,E),c);if(v&&o>0){const t=j.getStroke()||new w2;t.setColor(v),o*=2;const e=.5*N;t.setWidth(o<=e?o:e),j.setStroke(t)}else j.setStroke(void 0);const b=Aet(h,"layout","text-padding",S,f,E),x=j.getPadding();b!==x[0]&&(x[0]=b,x[1]=b,x[2]=b,x[3]=b),w.setZIndex(k)}}}return L>-1?(y.length=L+1,y):void 0};return t.setStyle(v),t.set("mapbox-layers",h),t.set("mapbox-source",m),t.set("mapbox-featurestate",t.get("mapbox-featurestate")||{}),v}(t,e,l,i,f,g,(t,e=a.webfonts)=>function(t,e="https://cdn.jsdelivr.net/npm/@fontsource/{font-family}/{fontweight}{-fontstyle}.css"){if(fZ)return t;let n;for(let r=0,i=t.length;r{await document.fonts.ready;for(let t=0,r=n.length;tt.family.replace(/^['"]|['"]$/g,"").toLowerCase()===i.toLowerCase()&&_et(t.weight,s)&&t.style===o)){const t=e.replace("{font-family}",i.replace(/ /g,"-").toLowerCase()).replace("{Font+Family}",i.replace(/ /g,"+")).replace("{fontweight}",s).replace("{-fontstyle}",o.replace("normal","").replace(/(.+)/,"-$1")).replace("{fontstyle}",o);if(!document.querySelector('link[href="'+t+'"]')){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}}}})(),t):t}(t,e),a.getImage,s),t.getStyle()?h().then(n).catch(r):r(new Error(`Nothing to show for source [${o}]`))}}if(e.sprite){const t=function(t,e,n){if("string"==typeof t)return[{id:"default",url:ktt(t,e,n)}];for(const r of t)r.url=ktt(r.url,e,n);return t}(e.sprite,a.accessToken,s||location.href);d=fZ?1:window.devicePixelRatio>=1.5?.5:1;const n=.5==d?"@2x":"";Promise.all(t.map(function(t){const e=new URL(t.url);let i=e.origin+e.pathname+n+".json"+e.search;return new Promise(function(t,n){uet("Sprite",i,a).then(t).catch(function(){i=e.origin+e.pathname+".json"+e.search,uet("Sprite",i,a).then(t).catch(n)})}).then(function(i){let s;if(void 0===i&&r(new Error("No sprites found.")),s=e.origin+e.pathname+n+".png"+e.search,a.transformRequest){const t=a.transformRequest(s,"SpriteImage")||s;(t instanceof Request||t instanceof Promise)&&(s=t)}g[t.id]=s;for(const e in i){const n="default"==t.id?e:`${t.id}:${e}`;f[n]=i[e]}}).catch(function(t){r(new Error(`Sprites cannot be loaded: ${i}: ${t.message}`))})})).then(m).catch(r)}else m()}).catch(r)})}(t,n,e,Object.assign({styleUrl:r},s)).then(function(){!function(t,e,n){function r(){const r=e.get("mapbox-style");if(!r)return;const i=l4(r.layers),s=t.get("mapbox-layers"),o=i.filter(function(t){return s.includes(t.id)}).some(function(t){return!t.layout||"visible"===Aet(t,"layout","visibility",Xtt,n)});t.get("visible")!==o&&t.setVisible(o)}t.on("change",r),r()}(t,i,net(n)),l()}).catch(c):l()}else c(new Error("Error accessing data for source "+t.get("mapbox-source")))};t.set("mapbox-layers",e);const h=i.getLayers();-1===h.getArray().indexOf(t)&&h.push(t),t.getSource()?u():t.once("change:source",u)})}var int=class extends Wq{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");mapInstance;bookmarkSource;searchResultsSource;selectedShapeSource;searchOverlay;searchOverlayElement;selectedPinOverlay;selectedPinElement;crosshairElement;crosshairOverlay;ignoreNextMapClick=!1;setupMap=EV(t=>{if(this.mapInstance)return;const e=new kQ;this.selectedShapeSource=new O5;const n=new _5({source:this.selectedShapeSource,style:new _2({stroke:new w2({color:"#3388ff",width:4}),fill:new y2({color:"rgba(51, 136, 255, 0.1)"})}),zIndex:5});this.bookmarkSource=new O5;const r=new _5({source:this.bookmarkSource,style:t=>{const e=t.get("originalPlace");let n=getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()||"#000000";if(e&&e._listIds&&e._listIds.length>0){const t=e._listIds[0],r=this.storage.lists.find(e=>e.id===t);r&&r.color&&(n=r.color)}return[new _2({image:new m2({radius:10,fill:new y2({color:"rgba(0, 0, 0, 0.2)"}),displacement:[0,-2]})}),new _2({image:new m2({radius:9,fill:new y2({color:n}),stroke:new w2({color:"#fff",width:2})})})]},zIndex:10});this.searchResultsSource=new O5;const i=new Map,s=new _5({source:this.searchResultsSource,style:t=>{const e=t.get("originalPlace"),n=this.mapUi.selectedPlace;if(n){const t=e.osmId&&n.osmId&&e.osmId===n.osmId,r=e.id&&n.id&&e.id===n.id,i=e.lat===n.lat&&e.lon===n.lon;if(t||r||i)return new _2({})}const r=U$(e.osmTags||e),s=r||"default";if(!i.has(s)){const t=getComputedStyle(document.documentElement).getPropertyValue("--marker-color-primary").trim()||"#ea4335";let e=``;if(r){const n=z$(r);if(n){let r=n.trim();const i=r.indexOf("",i)+1,o=r.lastIndexOf("");-1!==i&&-1!==o&&(r=r.substring(s,o)),e=`\n \n \n ${r}\n \n `}}const n=`\n \n \n \n \n \n \n \n ${e}\n \n `;i.set(s,"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n.trim()))}return new _2({image:new b2({src:i.get(s),anchor:[.5,.65],scale:1})})},zIndex:11});let o=[14.21683569,27.060114248],a=2.661,l=!1;try{const t=localStorage.getItem("marco:map-view");if(t){const e=JSON.parse(t);e.center&&Array.isArray(e.center)&&2===e.center.length&&"number"==typeof e.zoom&&(o=e.center,a=e.zoom,l=!0)}}catch(S){console.warn("Failed to restore map view:",S)}const c=new iJ({center:DY(o),zoom:a,projection:"EPSG:3857"});this.mapInstance=new i3({target:t,layers:[e,n,s,r],view:c,controls:PJ({zoom:!0,rotate:!0,attribution:!0}),interactions:cQ({dragPan:!1})});const u=jY(c.getCenter());this.mapUi.updateCenter(u[1],u[0]),this.mapUi.updateZoom(c.getZoom()),function(t,e,n={}){let r,i;if(fZ){if(!(t instanceof i3||t instanceof kQ))throw new Error("ol-mapbox-style in a web worker requires a Map or a LayerGroup as first argument");i=t}else i="string"==typeof t||t instanceof HTMLElement?new i3({target:t}):t;if("string"==typeof e){const t=e.startsWith("data:")?location.href:Stt(e,n.accessToken);n=Get(t,n),r=new Promise(function(r,s){het(e,n).then(function(e){nnt(e,i,t,n).then(function(){r(i)}).catch(s)}).catch(function(t){s(new Error(`Could not load ${e}: ${t.message}`))})})}else r=new Promise(function(t,r){nnt(e,i,!n.styleUrl||n.styleUrl.startsWith("data:")?location.href:Stt(n.styleUrl,n.accessToken),n).then(function(){t(i)}).catch(r)})}(this.mapInstance,"https://tiles.openfreemap.org/styles/liberty",{webfonts:"data:text/css,"}),this.searchOverlayElement=document.createElement("div"),this.searchOverlayElement.className="search-pulse",this.searchOverlay=new u3({element:this.searchOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.searchOverlay),this.selectedPinElement=document.createElement("div"),this.selectedPinElement.className="selected-pin-container";const h=document.createElement("div");h.className="selected-pin",h.innerHTML='';const d=document.createElement("div");d.className="selected-pin-shadow",this.selectedPinElement.appendChild(h),this.selectedPinElement.appendChild(d),this.selectedPinOverlay=new u3({element:this.selectedPinElement,positioning:"bottom-center",stopEvent:!1}),this.mapInstance.addOverlay(this.selectedPinOverlay),this.crosshairElement=document.createElement("div"),this.crosshairElement.className="map-crosshair",this.crosshairElement.innerHTML='\n \n \n \n \n ',t.appendChild(this.crosshairElement),this.locationOverlayElement=document.createElement("div"),this.locationOverlayElement.className="search-pulse blue",this.locationOverlay=new u3({element:this.locationOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.locationOverlay),t.addEventListener("pointerdown",()=>{this.mapUi.searchBoxHasFocus&&(this.ignoreNextMapClick=!0)},!0);const p=new i4({trackingOptions:{enableHighAccuracy:!0},projection:c.getProjection()}),f=new h3;f.setStyle(new _2({image:new m2({radius:6,fill:new y2({color:"#3399CC"}),stroke:new w2({color:"#fff",width:2})})}));const g=new O5({features:[f]}),m=new _5({source:g,zIndex:15});p.on("change:position",function(){const t=p.getPosition();f.setGeometry(t?new BX(t):null)});const y=document.createElement("div");y.className="ol-control ol-locate";const v=document.createElement("button");let b,w;v.style.display="flex",v.style.alignItems="center",v.style.justifyContent="center",v.innerHTML=`${z$("navigation")}`,v.title="Locate Me",y.appendChild(v);const _=()=>{b&&(clearTimeout(b),b=null);try{w&&(p.un("change:position",x),w=null)}catch{}this.locationOverlayElement&&this.locationOverlayElement.classList.remove("active")},x=()=>{const t=p.getPosition(),e=p.getAccuracyGeometry(),n=p.getAccuracy();if(console.debug("Geolocation change:",{coordinates:t,accuracy:n}),!t)return;const r=this.mapInstance.getSize(),i=this.mapInstance.getView();let s=null;if(this.locationOverlayElement){const e=i.getResolution(),r=2*(n||50)/NY(i.getProjection(),e,t);this.locationOverlayElement.style.width=`${r}px`,this.locationOverlayElement.style.height=`${r}px`,this.locationOverlay.setPosition(t)}if(n&&n<=20&&_(),e){const t=e.getExtent();s=3.162*i.getResolutionForExtent(t,r)}else n&&(s=6.325*n/Math.min(r[0],r[1])/NY(i.getProjection(),1,t));let o={center:t,duration:1e3};if(s){const t=i.getResolutionForZoom(17);o.resolution=Math.max(s,t)}else o.zoom=16;this.mapInstance.getView().animate(o)},C=()=>{console.debug("Getting current geolocation..."),_(),p.setTracking(!0);const t=p.getPosition();this.locationOverlayElement&&this.locationOverlayElement.classList.add("active"),t&&x(),w=p.on("change:position",x),b=setTimeout(()=>{_()},1e4)};v.addEventListener("click",C);const k=new EJ({element:y});this.mapInstance.addLayer(m),this.mapInstance.addControl(k),l||"index"!==this.router.currentRouteName||C(),this.mapInstance.on("singleclick",this.handleMapClick),this.mapInstance.on("moveend",this.handleMapMove),this.mapInstance.on("pointermove",t=>{const e=this.mapInstance.getEventPixel(t.originalEvent),n=this.mapInstance.hasFeatureAtPixel(e,{hitTolerance:10});this.mapInstance.getTarget().style.cursor=n?"pointer":""}),this.storage.rs.on("ready",()=>{this.handleMapMove()})});updateInteractions=EV(()=>{if(!this.mapInstance)return;this.mapInstance.getInteractions().getArray().slice().forEach(t=>{t instanceof ZJ&&this.mapInstance.removeInteraction(t)});const t=!!this.settings.mapKinetic&&new IJ(-.005,.05,100);this.settings.mapKinetic&&window.innerWidth<=768&&(t.minVelocity_=.25),this.mapInstance.addInteraction(new ZJ({kinetic:t}))});updateSearchResults=EV(()=>{if(!this.searchResultsSource)return;this.searchResultsSource.clear();const t=this.mapUi.searchResults;if(!t||0===t.length)return;const e=[];t.forEach(t=>{if(t.lat&&t.lon){const n=new h3({geometry:new BX(DY([t.lon,t.lat])),name:t.title,id:t.id,isSearchResult:!0,originalPlace:t});e.push(n)}}),e.length>0&&this.searchResultsSource.addFeatures(e)});updateSelectedPin=EV(()=>{const t=this.mapUi.selectedPlace,e=this.mapUi.selectionOptions||{};if(this.searchResultsSource&&this.searchResultsSource.changed(),this.selectedPinOverlay&&this.selectedPinElement)if(this.selectedShapeSource&&this.selectedShapeSource.clear(),t&&t.lat&&t.lon){const r=DY([t.lon,t.lat]);if(this.selectedPinOverlay.setPosition(r),this.selectedPinElement.classList.remove("active"),this.selectedPinElement.offsetWidth,this.selectedPinElement.classList.add("active"),t.geojson&&this.selectedShapeSource)try{const e=(new V5).readFeature(t.geojson,{featureProjection:"EPSG:3857"});this.selectedShapeSource.addFeature(e)}catch(n){console.warn("Failed to render selected place shape:",n)}e.preventZoom?t.bbox&&!this.bboxFitsInView(t.bbox)?this.zoomToBbox(t.bbox):this.handlePinVisibility(r,{maintainZoom:!0}):t.bbox?this.zoomToBbox(t.bbox):this.handlePinVisibility(r)}else this.selectedPinElement.classList.remove("active"),this.selectedPinOverlay.setPosition(void 0)});bboxFitsInView(t){if(!this.mapInstance||!t)return!0;const e=this.mapInstance.getView(),n=this.mapInstance.getSize();return YZ(e.calculateExtent(n),[...DY([t.minLon,t.minLat]),...DY([t.maxLon,t.maxLat])])}zoomToBbox(t){if(!this.mapInstance||!t)return;const e=this.mapInstance.getView(),n=this.mapInstance.getSize(),r=[...DY([t.minLon,t.minLat]),...DY([t.maxLon,t.maxLat])];let i=[.15*n[1],.15*n[0],.15*n[1],.15*n[0]];if(n[0]<=768){const t=.5*n[1],e=.15*t,r=.5*n[1]+.15*t;i[0]=e,i[2]=r}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),e=parseInt(t,10)||360,r=n[0]-e;i[3]=e+.15*r,i[1]=.15*r}const s=e.getZoom();e.fit(r,{padding:i,duration:1e3,easing:t=>t*(2-t),maxZoom:Math.max(s,18)})}handlePinVisibility(t,e={}){if(!this.mapInstance)return;const n=this.mapInstance.getView().getZoom();if(!e.maintainZoom&&n<16)return void this.animateToSmartCenter(t,16);const r=this.mapInstance.getPixelFromCoordinate(t),i=this.mapInstance.getSize();if(!r||r[0]<0||r[0]>i[0]||r[1]<0||r[1]>i[1]){const n=e.maintainZoom?null:16;this.animateToSmartCenter(t,n)}else this.panIfObscured(t)}animateToSmartCenter(t,e=null){if(!this.mapInstance)return;const n=this.mapInstance.getSize(),r=this.mapInstance.getView();let i=r.getResolution();null!==e&&(i=r.getResolutionForZoom(e));let s=t;if(n[0]<=768){const e=n[1],r=document.querySelector(".app-header"),o=r?r.offsetHeight:60,a=(e/2-(o+(e/2-o)/2))*i;s=[t[0],t[1]-a]}else if(this.args.isSidebarOpen){const e=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),n=(parseInt(e,10)||360)/2*i;s=[t[0]-n,t[1]]}const o={center:s,duration:1e3,easing:t=>t*(2-t)};null!==e&&(o.zoom=e),r.animate(o)}panIfObscured(t){if(!this.mapInstance)return;const e=this.mapInstance.getSize(),n=this.mapInstance.getPixelFromCoordinate(t);if(!n)return;const r=this.mapInstance.getView(),i=r.getCenter(),s=r.getResolution();let o=n[0],a=n[1],l=!1;const c=document.querySelector(".app-header"),u=c?c.offsetHeight:60;if(e[0]<=768){const t=e[1],r=t/2;n[1]>r&&(a=u+(t/2-u)/2,l=!0)}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),r=parseInt(t,10)||360;n[0]t*(2-t)})}}updateBookmarks=EV(()=>{const t=this.storage.placesInView;this.loadBookmarks(t)});async loadBookmarks(t=[]){try{if(!this.bookmarkSource)return;t&&0!==t.length||(t=this.storage.placesInView),this.bookmarkSource.clear(),t&&Array.isArray(t)&&t.forEach(t=>{if(t.lat&&t.lon){const e=new h3({geometry:new BX(DY([t.lon,t.lat])),name:t.title,id:t.id,isBookmark:!0,originalPlace:t});this.bookmarkSource.addFeature(e)}})}catch(e){console.error("Failed to load bookmarks:",e)}}syncPulse=EV(()=>{this.searchOverlayElement&&(this.mapUi.isSearching?this.searchOverlayElement.classList.add("active"):this.searchOverlayElement.classList.remove("active"))});syncCreationMode=EV(()=>{if(this.crosshairElement&&this.mapInstance)if(this.mapUi.isCreating){this.crosshairElement.classList.add("visible");const t=this.mapUi.creationCoordinates;if(t&&t.lat&&t.lon){const e=DY([t.lon,t.lat]);this.animateToCrosshair(e)}}else this.crosshairElement.classList.remove("visible")});decodeVectorTileOsmFeature(t){if(!t?.getId||!t?.get)return{decoded:null,reason:"feature does not expose get()/getId()"};const e=t.get("mvt:layer")||t.get("layer");if("poi"!==e)return{decoded:null,reason:`unsupported source layer: ${e||"unknown"}`};const n=t.getId(),r=Number(n);if(!Number.isSafeInteger(r)||r<=0)return{decoded:null,reason:`feature id is not a positive safe integer: ${n}`};const i={1:"node",2:"way",3:"relation"}[r%10];if(!i)return{decoded:null,reason:`feature id suffix ${r%10} is not an OSM type`};const s=Math.floor(r/10);return s<=0?{decoded:null,reason:`decoded OSM id is invalid: ${s}`}:{decoded:{osmId:String(s),osmType:i},reason:null}}animateToCrosshair(t){if(!this.mapInstance||!this.crosshairElement)return;const e=this.mapInstance.getTargetElement().getBoundingClientRect(),n=this.crosshairElement.getBoundingClientRect(),r=n.left+n.width/2-e.left,i=n.top+n.height/2-e.top,s=this.mapInstance.getSize(),o=r-s[0]/2,a=i-s[1]/2,l=this.mapInstance.getView(),c=l.getResolution(),u=o*c,h=-a*c,d=t[0]-u,p=t[1]-h,f=l.getCenter();Math.sqrt(Math.pow(f[0]-d,2)+Math.pow(f[1]-p,2))>5*c&&l.animate({center:[d,p],duration:800,easing:t=>t*(2-t)})}handleMapMove=async()=>{if(!this.mapInstance||this.isDestroying||this.isDestroyed)return;const t=this.mapInstance.getView(),e=jY(t.getCenter());if(this.mapUi.updateCenter(e[1],e[0]),this.mapUi.updateZoom(t.getZoom()),this.mapUi.isCreating){const t=this.mapInstance.getTargetElement().getBoundingClientRect(),e=this.crosshairElement.getBoundingClientRect(),n=e.left+e.width/2-t.left,r=e.top+e.height/2-t.top,i=jY(this.mapInstance.getCoordinateFromPixel([n,r])),s=parseFloat(i[1].toFixed(6)),o=parseFloat(i[0].toFixed(6));this.mapUi.updateCreationCoordinates(s,o),this.router.replaceWith("place.new",{queryParams:{lat:s,lon:o}})}const n=this.mapInstance.getSize(),r=this.mapInstance.getView().calculateExtent(n),[i,s]=jY([r[0],r[1]]),[o,a]=jY([r[2],r[3]]),l={minLat:s,minLon:i,maxLat:a,maxLon:o};if(this.mapUi.updateBounds(l),await this.storage.loadPlacesInBounds(l),!this.isDestroying&&!this.isDestroyed){this.nostrData.loadPlacesInBounds(l),this.loadBookmarks(this.storage.placesInView);try{const t=this.mapInstance.getView(),e={center:jY(t.getCenter()),zoom:t.getZoom()};localStorage.setItem("marco:map-view",JSON.stringify(e))}catch(c){console.warn("Failed to save map view:",c)}}};handleMapClick=async t=>{if(this.ignoreNextMapClick)return void(this.ignoreNextMapClick=!1);const e=this.mapInstance.getFeaturesAtPixel(t.pixel,{hitTolerance:10});let n=null,r=null,i=null,s=null;if(e&&e.length>0){console.debug(`Found ${e.length} features in map layer:`);for(const n of e)console.debug(n);const t=e.find(t=>t.get("isBookmark")),o=e.find(t=>t.get("isSearchResult"));if(t)n=t.get("originalPlace");else if(o)r=o.get("originalPlace");else for(const n of e){const t=n.get?.("mvt:layer")||n.get?.("layer"),e=n.get?.("name"),r=n.getId?.(),{decoded:s,reason:o}=this.decodeVectorTileOsmFeature(n);if(s){console.debug("Decoded vector tile feature to explicit OSM place:",{sourceLayer:t,featureName:e,featureId:r,decoded:s}),i=s;break}console.debug("Vector tile feature could not be decoded directly:",{sourceLayer:t,featureName:e,featureId:r,reason:o})}const a=e[0].getProperties();a.name&&(s=a.name)}const o=t=>{("search"===this.router.currentRouteName||this.mapUi.currentSearch&&this.mapUi.searchResults.length>0)&&(this.mapUi.returnToSearch=!0),this.mapUi.preventNextZoom=!0,this.mapUi.selectPlace(t,{preventZoom:!0}),this.mapUi.showSidebar(),this.router.transitionTo("place",t)},a=({osmId:t,osmType:e})=>{("search"===this.router.currentRouteName||this.mapUi.currentSearch&&this.mapUi.searchResults.length>0)&&(this.mapUi.returnToSearch=!0),this.mapUi.preventNextZoom=!0,this.mapUi.showSidebar(),this.router.transitionTo("place",`osm:${e}:${t}`)};if(this.args.isSidebarOpen){const t=n||r;return t?(console.debug("Clicked feature while sidebar open (switching):",t),void o(t)):i?(console.debug("Clicked vector tile POI while sidebar open (switching):",i),void a(i)):void(this.args.onOutsideClick&&this.args.onOutsideClick())}if(n)return console.debug("Clicked bookmark:",n),void o(n);if(r)return console.debug("Clicked search result:",r),void o(r);if(i)return console.debug("Clicked vector tile POI:",i),void a(i);if(this.mapUi.searchResults&&this.mapUi.searchResults.length>0)return console.debug("Clearing active search and markers on map click"),void this.router.transitionTo("index");if(this.mapInstance.getView().getZoom()<16)return;const[l,c]=jY(t.coordinate),u=s?30:50;if(this.searchOverlayElement){const e=this.mapInstance.getView(),n=2*u/NY(e.getProjection(),e.getResolution(),t.coordinate);this.searchOverlayElement.style.width=`${n}px`,this.searchOverlayElement.style.height=`${n}px`,this.searchOverlay.setPosition(t.coordinate)}this.mapUi.startSearch();const h={lat:c.toFixed(6),lon:l.toFixed(6),q:null,category:null,selected:s||null};this.router.transitionTo("search",{queryParams:h})};static{Op(ig({id:null,block:'[[[11,0],[16,0,[29,["map-container ",[52,[30,1],"sidebar-open"]]]],[4,[30,0,["setupMap"]],null,null],[4,[30,0,["updateInteractions"]],null,null],[4,[30,0,["updateBookmarks"]],null,null],[4,[30,0,["updateSearchResults"]],null,null],[4,[30,0,["updateSelectedPin"]],null,null],[4,[30,0,["syncPulse"]],null,null],[4,[30,0,["syncCreationMode"]],null,null],[12],[13]],["@isSidebarOpen"],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},snt=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"osmAuth",[pp])}#Ke=void pF(this,"osmAuth");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");connectRS(){this.args.onClose(),this.args.storage.showConnectWidget()}static{dF(this.prototype,"connectRS",[Vl])}disconnectRS(){this.args.storage.disconnect()}static{dF(this.prototype,"disconnectRS",[Vl])}connectOsm(){this.args.onClose(),this.osmAuth.login()}static{dF(this.prototype,"connectOsm",[Vl])}disconnectOsm(){this.osmAuth.logout()}static{dF(this.prototype,"disconnectOsm",[Vl])}openNostrConnectModal(){this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}disconnectNostr(){this.nostrAuth.disconnect()}static{dF(this.prototype,"disconnectNostr",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"user-menu-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"account-list"],[12],[1,"\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["remotestorage",18]],null],[1,"\\n "],[10,1],[12],[1,"RemoteStorage"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectRS"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectRS"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[10,"strong"],[12],[1,[30,1,["userAddress"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",18]],null],[1,"\\n "],[10,1],[12],[1,"OpenStreetMap"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectOsm"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectOsm"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[10,"strong"],[12],[1,[30,0,["osmAuth","userDisplayName"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",18]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectNostr"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[10,"strong"],[15,"title",[30,0,["nostrAuth","pubkey"]]],[12],[1,"\\n "],[1,[30,0,["nostrData","userDisplayName"]]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,2],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,3],null,[["@onConnect"],[[30,0,["closeNostrConnectModal"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@storage"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Gq,on:Hw,Modal:bV,NostrConnect:rW}),isStrictMode:!0}),this)}};function ont(t){return t}function ant(t){return Object.keys(t).map(e=>t[e])}function lnt(t){if(t)if(t instanceof fH)t.executor.asyncErrorsHandled=!0;else if(t instanceof ZW)return t._toPromise();return t}function cnt(t,e,n){return function(r){let i=function(t,e){if(Array.isArray(t))return t.map(e);if("object"==typeof t&&null!==t){let n={};return Object.keys(t).forEach(r=>{n[r]=e(t[r])}),n}return t}(r,lnt),s=n(i);Array.isArray(s);let o=Ba.defer();t[e](i).then(o.resolve,o.reject);let a=!1,l=()=>{a||(a=!0,s.forEach(t=>{t&&(t instanceof fH?t.cancel():"function"==typeof t.__ec_cancel__&&t[BW]())}))},c=o.promise.finally(l);return c[BW]=l,c}}cnt(Ba.Promise,"all",ont),cnt(Ba,"allSettled",ont),cnt(ia,"race",ont),cnt(Ba,"hash",ant),cnt(Ba,"hashSettled",ant);var unt=class extends ZW{_deferable(){return uH.defer()}},hnt=class extends unt{constructor(t){super(),this.ms=t}onYield(t){let e=Ts(()=>t.next(),this.ms);return()=>As(e)}},dnt=class extends Wq{static{hF(this.prototype,"photon",[pp])}#Ze=void pF(this,"photon");static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"map",[pp])}#Ye=void pF(this,"map");static{hF(this.prototype,"_internalQuery",[Wr],function(){return""})}#Xe=void pF(this,"_internalQuery");static{hF(this.prototype,"results",[Wr],function(){return[]})}#Je=void pF(this,"results");static{hF(this.prototype,"isFocused",[Wr],function(){return!1})}#Qe=void pF(this,"isFocused");static{hF(this.prototype,"isLoading",[Wr],function(){return!1})}#W=void pF(this,"isLoading");get query(){return this.args.query??this._internalQuery}set query(t){this._internalQuery=t}get showPopover(){return this.isFocused&&this.results.length>0}handleInput(t){const e=t.target.value;this.query=e,this.args.onQueryChange&&this.args.onQueryChange(e),e.length<2?this.results=[]:this.searchTask.perform(e)}static{dF(this.prototype,"handleInput",[Vl])}formatSavedPlace(t){const e=(t._listIds||[]).map(t=>this.storage.lists?.find(e=>e.id===t)?.title).filter(Boolean).join(", "),n=e?`Saved place (${e})`:"Saved place";return{source:"saved",id:t.id,title:t.title,icon:"bookmark",description:n,osmId:t.osmId,osmType:t.osmType,lat:t.lat,lon:t.lon}}searchTask=vH(()=>({context:this,generator:function*(t){yield new hnt(300);const e="string"==typeof t?t:this.query;if(!(e.length<2)){this.isLoading=!0;try{let t,n;this.mapUi.currentCenter&&({lat:t,lon:n}=this.mapUi.currentCenter);const r=e.toLowerCase(),i=n$.filter(t=>t.label.toLowerCase().includes(r)).map(t=>({source:"category",title:t.label,id:t.id,icon:"search"}));let s=[];r.length>=3&&(s=this.storage.savedPlaces.filter(t=>t.title&&t.title.toLowerCase().includes(r)).map(t=>this.formatSavedPlace(t)));const o=yield this.photon.search(e,t,n),a=new Set(s.map(t=>t.osmId).filter(Boolean)),l=o.filter(t=>!a.has(t.osmId));this.results=[...i,...s,...l]}catch(n){console.error("Search failed",n),this.results=[]}finally{this.isLoading=!1}}}}),{restartable:!0},"searchTask",null);handleFocus(){this.isFocused=!0,this.mapUi.setSearchBoxFocus(!0),this.query.length>=2&&0===this.results.length&&this.searchTask.perform()}static{dF(this.prototype,"handleFocus",[Vl])}handleBlur(){setTimeout(()=>{this.isFocused=!1,this.mapUi.setSearchBoxFocus(!1)},300)}static{dF(this.prototype,"handleBlur",[Vl])}handleSubmit(t){if(t.preventDefault(),!this.query)return;let e={q:this.query,selected:null,category:null};if(this.mapUi.currentCenter){const{lat:t,lon:n}=this.mapUi.currentCenter;e.lat=parseFloat(t).toFixed(4),e.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:e}),this.isFocused=!1}static{dF(this.prototype,"handleSubmit",[Vl])}selectResult(t){if("category"===t.source){this.query=t.title,this.args.onQueryChange&&this.args.onQueryChange(t.title),this.results=[];let e=null,n=null;return this.mapUi.currentCenter&&(({lat:e,lon:n}=this.mapUi.currentCenter),e=e?.toString(),n=n?.toString()),void this.router.transitionTo("search",{queryParams:{q:t.title,category:t.id,selected:null,lat:e,lon:n}})}if(this.query=t.title,this.args.onQueryChange&&this.args.onQueryChange(t.title),this.results=[],"saved"===t.source&&t.id&&!t.osmId)this.router.transitionTo("place",t.id);else if(t.osmId){const e=`osm:${t.osmType}:${t.osmId}`;this.router.transitionTo("place",e)}else this.router.transitionTo("search",{queryParams:{q:t.title,lat:t.lat,lon:t.lon,selected:null,category:null}})}static{dF(this.prototype,"selectResult",[Vl])}clear(){this.searchTask.cancelAll(),this.mapUi.stopLoading(),this.osm.cancelAll(),this.photon.cancelAll(),this.query="",this.results=[],this.args.onQueryChange&&this.args.onQueryChange(""),this.router.transitionTo("index")}static{dF(this.prototype,"clear",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"search-box"],[12],[1,"\\n "],[11,"form"],[24,0,"search-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[11,"button"],[24,0,"menu-btn-integrated"],[24,"aria-label","Menu"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["menu",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"search-input"],[24,"placeholder","Search places..."],[24,"aria-label","Search places"],[16,2,[30,0,["query"]]],[24,"autocomplete","off"],[24,4,"search"],[4,[32,0],["input",[30,0,["handleInput"]]],null],[4,[32,0],["focus",[30,0,["handleFocus"]]],null],[4,[32,0],["blur",[30,0,["handleBlur"]]],null],[12],[13],[1,"\\n\\n "],[10,"button"],[14,0,"search-submit-btn"],[14,"aria-label","Search"],[14,4,"submit"],[12],[1,"\\n"],[41,[28,[32,2],[[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"text"],null],[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"category"],null]],null],[[[1," "],[8,[32,1],null,[["@name","@size"],["loading-ring",20]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@name","@size","@color"],["search",20,"#5f6368"]],null],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["query"]],[[[1," "],[11,"button"],[24,0,"search-clear-btn"],[24,"aria-label","Clear"],[24,4,"button"],[4,[32,0],["click",[30,0,["clear"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["showPopover"]],[[[1," "],[10,0],[14,0,"search-results-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"search-results-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["results"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"search-result-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,4],[[30,0,["selectResult"]],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"result-icon"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[52,[30,2,["icon"]],[30,2,["icon"]],"map-pin"],16,"#666"]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"result-info"],[12],[1,"\\n "],[10,1],[14,0,"result-title"],[12],[1,[30,2,["title"]]],[13],[1,"\\n"],[41,[28,[32,3],[[30,2,["source"]],"osm"],null],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[28,[32,5],[[30,2,["type"]]],null]],[13],[1,"\\n"]],[]],[[[41,[30,2,["description"]],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[30,2,["description"]]],[13],[1,"\\n"]],[]],null]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[13]],["@onToggleMenu","result"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq,or:CV,eq:dV,fn:uV,humanizeOsmTag:JH}),isStrictMode:!0}),this)}},pnt=class extends Wq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");get categories(){return n$}searchCategory(t){this.args.onSelect&&this.args.onSelect(t);let e={category:t.id,q:null};if(this.mapUi.currentCenter){const{lat:t,lon:n}=this.mapUi.currentCenter;e.lat=parseFloat(t).toFixed(4),e.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:e})}static{dF(this.prototype,"searchCategory",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"category-chips-scroll"],[12],[1,"\\n "],[10,0],[14,0,"category-chips-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["categories"]]],null]],null],null,[[[1," "],[11,"button"],[24,0,"category-chip"],[16,"aria-label",[30,1,["label"]]],[16,"disabled",[28,[32,0],[[28,[32,1],[[30,0,["mapUi","loadingState","type"]],"category"],null],[28,[32,1],[[30,0,["mapUi","loadingState","value"]],[30,1,["id"]]],null]],null]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["searchCategory"]],[30,1]],null]],null],[12],[1,"\\n "],[8,[32,4],null,[["@name","@size"],[[30,1,["icon"]],16]],null],[1,"\\n "],[10,1],[12],[1,[30,1,["label"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n"],[13]],["category"],["each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:_V,eq:dV,on:Hw,fn:uV,Icon:Gq}),isStrictMode:!0}),this)}},fnt=EV((t,[e])=>{let n=null;return async function(){if(e)try{const r=await caches.open("nostr-image-cache-v1"),i=await r.match(e);if(i){const e=await i.blob();return n=URL.createObjectURL(e),void(t.src=n)}const s=await fetch(e,{mode:"cors",credentials:"omit"});if(s.ok){const i=s.clone();await r.put(e,i);const o=await s.blob();n=URL.createObjectURL(o),t.src=n}else t.src=e}catch(X8){console.warn(`Failed to cache image ${e}, falling back to standard src`,X8),t.src=e}else t.src=""}(),()=>{n&&(URL.revokeObjectURL(n),n=null)}}),gnt=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"isUserMenuOpen",[Wr],function(){return!1})}#tn=void pF(this,"isUserMenuOpen");static{hF(this.prototype,"searchQuery",[Wr],function(){return""})}#en=void pF(this,"searchQuery");constructor(){super(...arguments),this.router&&"function"==typeof this.router.on&&this.router.on("routeDidChange",this.syncSearchQuery),this.syncSearchQuery()}willDestroy(){this.router&&"function"==typeof this.router.off&&this.router.off("routeDidChange",this.syncSearchQuery),super.willDestroy(...arguments)}syncSearchQuery(){const t=this.mapUi.currentSearch||this.router?.currentRoute?.queryParams;if(t?.q)this.searchQuery=t.q;else if(t?.category){const e=n$.find(e=>e.id===t.category);this.searchQuery=e?e.label:t.category}else this.searchQuery=""}static{dF(this.prototype,"syncSearchQuery",[Vl])}get isSearching(){return!(!this.mapUi.searchBoxHasFocus||!this.searchQuery)||("search"===this.router?.currentRouteName?!this.mapUi.loadingState&&this.mapUi.searchResults&&this.mapUi.searchResults.length>0:!("search"===this.router?.currentRouteName||!this.searchQuery))}get showQuickSearch(){const t=this.mapUi.currentZoom??13;return this.settings.showQuickSearchButtons&&t>=12}toggleUserMenu(){this.isUserMenuOpen=!this.isUserMenuOpen}static{dF(this.prototype,"toggleUserMenu",[Vl])}closeUserMenu(){this.isUserMenuOpen=!1}static{dF(this.prototype,"closeUserMenu",[Vl])}handleQueryChange(t){this.searchQuery=t}static{dF(this.prototype,"handleQueryChange",[Vl])}handleChipSelect(t){this.searchQuery=t.label}static{dF(this.prototype,"handleChipSelect",[Vl])}static{Op(ig({id:null,block:'[[[10,"header"],[14,0,"app-header"],[12],[1,"\\n "],[10,0],[14,0,"header-left"],[12],[1,"\\n "],[8,[32,0],null,[["@query","@onToggleMenu","@onQueryChange"],[[30,0,["searchQuery"]],[30,1],[30,0,["handleQueryChange"]]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showQuickSearch"]],[[[1," "],[10,0],[15,0,[29,["header-center ",[52,[30,0,["isSearching"]],"searching"]]]],[12],[1,"\\n "],[8,[32,1],null,[["@onSelect"],[[30,0,["handleChipSelect"]]]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"header-right"],[12],[1,"\\n "],[10,0],[14,0,"user-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"user-btn btn-press"],[24,"aria-label","User Menu"],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleUserMenu"]]],null],[12],[1,"\\n"],[41,[28,[32,3],[[30,0,["nostrAuth","isConnected"]],[30,0,["nostrData","profile","picture"]]],null],[[[1," "],[11,"img"],[24,0,"user-avatar"],[24,"alt","User Avatar"],[4,[32,4],[[30,0,["nostrData","profile","picture"]]],null],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"user-avatar-placeholder"],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["user",20,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isUserMenuOpen"]],[[[1," "],[8,[32,6],null,[["@storage","@onClose"],[[30,0,["storage"]],[30,0,["closeUserMenu"]]]],null],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["closeUserMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onToggleMenu"],["if"]]',moduleName:"(unknown template module)",scope:()=>({SearchBox:dnt,CategoryChips:pnt,on:Hw,and:_V,cachedImage:fnt,Icon:Gq,UserMenu:snt}),isStrictMode:!0}),this)}},mnt=class extends Wq{static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{Op(ig({id:null,block:'[[[41,[30,0,["toast","isVisible"]],[[[1," "],[10,0],[14,0,"toast-notification"],[12],[1,"\\n "],[1,[30,0,["toast","message"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},ynt=a({default:()=>vnt}),vnt=class extends Wq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");get isSidebarOpen(){const t=this.router.currentRouteName;return this.mapUi.isSidebarVisible&&("place"===t||"place.new"===t||"search"===t||"menu"===t||"contributions"===t||"activity"===t||t.startsWith("lists"))}constructor(){super(...arguments),console.debug("Application component constructed"),this.storage}toggleAppMenu(){"menu"===this.router.currentRouteName?this.router.transitionTo("index"):this.router.transitionTo("menu")}static{dF(this.prototype,"toggleAppMenu",[Vl])}handleOutsideClick(){const t=this.router.currentRouteName;("search"===t||"place"===t||"menu"===t||"contributions"===t||"activity"===t||t.startsWith("lists"))&&(this.mapUi.clearSelection(),this.mapUi.hideSidebar(),"menu"===t||"contributions"===t||"activity"===t||t.startsWith("lists")?this.router.transitionTo("index"):"place"===t&&(this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")))}static{dF(this.prototype,"handleOutsideClick",[Vl])}refreshBookmarks(){this.storage.notifyChange()}static{dF(this.prototype,"refreshBookmarks",[Vl])}static{Op(ig({id:null,block:'[[[1,[28,[32,0],["Marco"],null]],[1,"\\n\\n"],[10,0],[15,0,[52,[30,0,["mapUi","isSidebarOpening"]],"sidebar-opening"]],[12],[1,"\\n "],[8,[32,1],null,[["@onToggleMenu"],[[30,0,["toggleAppMenu"]]]],null],[1,"\\n\\n "],[10,0],[14,1,"rs-widget-container"],[15,0,[52,[30,0,["storage","isWidgetOpen"]],"visible"]],[12],[13],[1,"\\n\\n"],[41,[30,0,["storage","isWidgetOpen"]],[[[1," "],[11,0],[24,0,"rs-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["storage","closeWidget"]]],null],[12],[13],[1,"\\n"]],[]],null],[1,"\\n "],[8,[32,3],null,[["@isSidebarOpen","@onOutsideClick"],[[30,0,["isSidebarOpen"]],[30,0,["handleOutsideClick"]]]],null],[1,"\\n\\n "],[8,[32,4],null,null,null],[1,"\\n\\n "],[46,[28,[31,2],null,null],null,null,null],[1,"\\n"],[13]],[],["if","component","-outlet"]]',moduleName:"(unknown template module)",scope:()=>({pageTitle:xG,AppHeader:gnt,on:Hw,Map:int,Toast:mnt}),isStrictMode:!0}),this)}},bnt=a({default:()=>wnt}),wnt=class extends Qh{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage")},_nt=a({default:()=>xnt}),xnt=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");activate(){this.mapUi.clearSearchResults(),this.mapUi.hideSidebar()}},Cnt=Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[1,"\\n "],[10,1],[14,0,"app-logo-icon"],[12],[1,"\\n "],[1,[28,[32,0],[[32,1]],null]],[1,"\\n "],[13],[1,"\\n Marco\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"app-menu"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["bookmark",20]],null],[1,"\\n "],[10,1],[12],[1,"Saved Places"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,3]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["activity",20]],null],[1,"\\n "],[10,1],[12],[1,"Activity"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,4]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["user-check",20]],null],[1,"\\n "],[10,1],[12],[1,"My Contributions"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,5],"settings"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["settings",20]],null],[1,"\\n "],[10,1],[12],[1,"Settings"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,5],"about"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["info",20]],null],[1,"\\n "],[10,1],[12],[1,"About"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onClose","@onSavedPlaces","@onActivity","@onContributions","@onNavigate"],[]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:qv,iconRounded:'\n \x3c!-- Background --\x3e\n \n\n \x3c!-- Subtle map grid (kept well outside safe zone) --\x3e\n \n \n \n \n\n \n \n \n \n\n \x3c!-- Location pin (exact app shape, larger, centered, safe-zone compliant) --\x3e\n \x3c!-- Safe zone target: ~680px diameter --\x3e\n \n \n \n \n\n',on:Hw,Icon:Gq,fn:uV}),isStrictMode:!0}),pV()),knt=class extends Wq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",20]],null],[1,"\\n "],[10,1],[12],[1,"Map & UI"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","show-quick-search"],[12],[1,"Quick search buttons visible"],[13],[1,"\\n "],[11,"select"],[24,1,"show-quick-search"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"showQuickSearchButtons"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","showQuickSearchButtons"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","showQuickSearchButtons"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","map-kinetic"],[12],[1,"Map Inertia (Kinetic Panning)"],[13],[1,"\\n "],[11,"select"],[24,1,"map-kinetic"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"mapKinetic"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","mapKinetic"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","mapKinetic"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Gq,on:Hw,fn:uV}),isStrictMode:!0}),this)}},Snt=class extends Wq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["server",20]],null],[1,"\\n "],[10,1],[12],[1,"API Providers"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","overpass-api"],[12],[1,"Overpass API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"overpass-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"overpassApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","overpassApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,2,["url"]]],[15,"selected",[52,[28,[32,3],[[30,2,["url"]],[30,0,["settings","overpassApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,2,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photon-api"],[12],[1,"Photon API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"photon-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"photonApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","photonApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,3,["url"]]],[15,"selected",[52,[28,[32,3],[[30,3,["url"]],[30,0,["settings","photonApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,3,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange","api","api"],["each","-track-array","if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Gq,on:Hw,fn:uV,eq:dV}),isStrictMode:!0}),this)}},Ent=EV(t=>{let e=null;const n=document.getElementById("modal-portal")||document.body,r=()=>{const r=t.getAttribute("aria-description");if(!r||e)return;e=document.createElement("div"),e.className="tooltip",e.setAttribute("role","tooltip"),e.textContent=r,n.appendChild(e);const i=t.getBoundingClientRect(),s=e.getBoundingClientRect();let o=i.top-s.height-6;o<6&&(o=i.bottom+6);let a=i.left+i.width/2-s.width/2;a=Math.max(6,Math.min(a,window.innerWidth-s.width-6)),e.style.top=`${o}px`,e.style.left=`${a}px`},i=()=>{e?.remove(),e=null};return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",i),t.addEventListener("focus",r),t.addEventListener("blur",i),()=>{t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",i),t.removeEventListener("focus",r),t.removeEventListener("blur",i),i()}}),Rnt=t=>t?t.replace(/^wss?:\/\//,""):"",Lnt=class extends Wq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"newReadRelay",[Wr],function(){return""})}#nn=void pF(this,"newReadRelay");static{hF(this.prototype,"newWriteRelay",[Wr],function(){return""})}#rn=void pF(this,"newWriteRelay");get customReadRelays(){return rB(this.settings.nostrReadRelays||[],this.nostrData.requiredReadRelays)}get customWriteRelays(){return rB(this.settings.nostrWriteRelays||[],this.nostrData.requiredWriteRelays)}get readRelayExclusions(){return this.settings.nostrReadRelayExclusions||[]}get writeRelayExclusions(){return this.settings.nostrWriteRelayExclusions||[]}get requiredReadRelaySet(){return new Set(this.nostrData.requiredReadRelays.filter(Boolean))}get trustedRelaySet(){return new Set(this.nostrData.trustedRelays.filter(Boolean))}get requiredWriteRelaySet(){return new Set(this.nostrData.requiredWriteRelays.filter(Boolean))}get mailboxReadRelaySet(){return new Set(this.nostrData.mailboxReadRelays)}get mailboxWriteRelaySet(){return new Set(this.nostrData.mailboxWriteRelays)}get hasReadOverrides(){return this.customReadRelays.length>0||this.readRelayExclusions.length>0}get hasWriteOverrides(){return this.customWriteRelays.length>0||this.writeRelayExclusions.length>0}get readRelaysForDisplay(){return this.nostrData.activeReadRelays.map(t=>({url:t,isRequired:this.requiredReadRelaySet.has(t),isTrusted:this.trustedRelaySet.has(t)}))}get writeRelaysForDisplay(){return this.nostrData.activeWriteRelays.map(t=>({url:t,isRequired:this.requiredWriteRelaySet.has(t)}))}get mediaServerOptions(){const t=this.nostrData.blossomServers;return t.length?t:[JF]}get hasMultipleMediaServers(){return this.mediaServerOptions.length>1}updateNewReadRelay(t){this.newReadRelay=t.target.value}static{dF(this.prototype,"updateNewReadRelay",[Vl])}updateNewWriteRelay(t){this.newWriteRelay=t.target.value}static{dF(this.prototype,"updateNewWriteRelay",[Vl])}addReadRelay(){const t=tB(this.newReadRelay);if(!t)return;const e=rB(nB(this.nostrData.requiredReadRelays,[...this.customReadRelays,t]),this.nostrData.requiredReadRelays),n=this.readRelayExclusions.filter(e=>tB(e)!==t);this.settings.update("nostrReadRelays",e.length>0?e:null),this.settings.update("nostrReadRelayExclusions",n.length>0?n:null),this.newReadRelay=""}static{dF(this.prototype,"addReadRelay",[Vl])}removeReadRelay(t){if(this.requiredReadRelaySet.has(t))return;const e=tB(t),n=this.customReadRelays.filter(t=>tB(t)!==e),r=this.mailboxReadRelaySet.has(e)?Array.from(new Set([...this.readRelayExclusions,e])):this.readRelayExclusions;this.settings.update("nostrReadRelays",n.length>0?n:null),this.settings.update("nostrReadRelayExclusions",r.length>0?r:null)}static{dF(this.prototype,"removeReadRelay",[Vl])}handleReadRelayKeydown(t){"Enter"===t.key&&this.addReadRelay()}static{dF(this.prototype,"handleReadRelayKeydown",[Vl])}handleWriteRelayKeydown(t){"Enter"===t.key&&this.addWriteRelay()}static{dF(this.prototype,"handleWriteRelayKeydown",[Vl])}resetReadRelays(){this.settings.update("nostrReadRelays",null),this.settings.update("nostrReadRelayExclusions",null)}static{dF(this.prototype,"resetReadRelays",[Vl])}toggleRelayTrust(t){const e=tB(t);if(!e)return;if(this.requiredReadRelaySet.has(e))return;const n=eB(this.settings.nostrTrustedRelays||[]);let r;r=n.indexOf(e)>=0?n.filter(t=>t!==e):[...n,e],this.settings.update("nostrTrustedRelays",r.length>0?r:null)}static{dF(this.prototype,"toggleRelayTrust",[Vl])}addWriteRelay(){const t=tB(this.newWriteRelay);if(!t)return;const e=rB(nB(this.nostrData.requiredWriteRelays,[...this.customWriteRelays,t]),this.nostrData.requiredWriteRelays),n=this.writeRelayExclusions.filter(e=>tB(e)!==t);this.settings.update("nostrWriteRelays",e.length>0?e:null),this.settings.update("nostrWriteRelayExclusions",n.length>0?n:null),this.newWriteRelay=""}static{dF(this.prototype,"addWriteRelay",[Vl])}removeWriteRelay(t){if(this.requiredWriteRelaySet.has(t))return;const e=tB(t),n=this.customWriteRelays.filter(t=>tB(t)!==e),r=this.mailboxWriteRelaySet.has(e)?Array.from(new Set([...this.writeRelayExclusions,e])):this.writeRelayExclusions;this.settings.update("nostrWriteRelays",n.length>0?n:null),this.settings.update("nostrWriteRelayExclusions",r.length>0?r:null)}static{dF(this.prototype,"removeWriteRelay",[Vl])}resetWriteRelays(){this.settings.update("nostrWriteRelays",null),this.settings.update("nostrWriteRelayExclusions",null)}static{dF(this.prototype,"resetWriteRelays",[Vl])}async clearCache(){try{await this.nostrData.clearCache(),this.toast.show("Nostr cache cleared")}catch(t){this.toast.show(`Failed to clear Nostr cache: ${t.message}`)}}static{dF(this.prototype,"clearCache",[Vl])}static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",20]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-read-relay"],[12],[1,"Read Relays"],[13],[1,"\\n "],[10,2],[14,0,"relay-list-hint"],[12],[1,"\\n Mark relays as trusted to show\\n "],[10,"strong"],[12],[1,"all"],[13],[1,"\\n photos and reviews from them by default (risk of spam).\\n "],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["readRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,1,["url"]]],null]],[13],[1,"\\n "],[10,0],[14,0,"relay-actions"],[12],[1,"\\n "],[11,"button"],[16,0,[29,["btn-trust-relay ",[52,[30,1,["isTrusted"]],"is-trusted"]]]],[24,"aria-label","Toggle trust"],[16,"aria-description",[52,[30,1,["isRequired"]],"Required relay — always trusted",[52,[30,1,["isTrusted"]],"Trusted: show all content from this relay","Untrusted: hide content from outside of my circles"]]],[16,"disabled",[30,1,["isRequired"]]],[24,4,"button"],[4,[32,2],null,null],[4,[32,3],["click",[28,[32,4],[[30,0,["toggleRelayTrust"]],[30,1,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color","@filled"],["shield",14,"currentColor",[30,1,["isTrusted"]]]],null],[1,"\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn-remove-relay"],[24,"aria-label","Remove"],[16,"aria-description",[52,[30,1,["isRequired"]],"Required relays cannot be removed","Remove relay"]],[16,"disabled",[30,1,["isRequired"]]],[24,4,"button"],[4,[32,2],null,null],[4,[32,3],["click",[28,[32,4],[[30,0,["removeReadRelay"]],[30,1,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-read-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newReadRelay"]]],[24,4,"text"],[4,[32,3],["input",[30,0,["updateNewReadRelay"]]],null],[4,[32,3],["keydown",[30,0,["handleReadRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,3],["click",[30,0,["addReadRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasReadOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,3],["click",[30,0,["resetReadRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-write-relay"],[12],[1,"Write Relays"],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["writeRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,2,["url"]]],null]],[13],[1,"\\n "],[10,0],[14,0,"relay-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn-remove-relay"],[24,"aria-label","Remove"],[16,"aria-description",[52,[30,2,["isRequired"]],"Required relays cannot be removed","Remove relay"]],[16,"disabled",[30,2,["isRequired"]]],[24,4,"button"],[4,[32,2],null,null],[4,[32,3],["click",[28,[32,4],[[30,0,["removeWriteRelay"]],[30,2,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-write-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newWriteRelay"]]],[24,4,"text"],[4,[32,3],["input",[30,0,["updateNewWriteRelay"]]],null],[4,[32,3],["keydown",[30,0,["handleWriteRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,3],["click",[30,0,["addWriteRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasWriteOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,3],["click",[30,0,["resetWriteRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","nostr-media-server"],[12],[1,"Media server"],[13],[1,"\\n "],[11,"select"],[24,1,"nostr-media-server"],[24,0,"form-control"],[4,[32,3],["change",[28,[32,4],[[30,3],"nostrMediaServer"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["mediaServerOptions"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,4]],[15,"selected",[52,[28,[32,5],[[30,4],[30,0,["settings","nostrMediaServer"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,4]],[1,"\\n "],[13],[1,"\\n"]],[4]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["hasMultipleMediaServers"]],[[[1," "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","nostr-photo-fallback-uploads"],[12],[1,"Upload photos to fallback\\n servers"],[13],[1,"\\n "],[11,"select"],[24,1,"nostr-photo-fallback-uploads"],[24,0,"form-control"],[4,[32,3],["change",[28,[32,4],[[30,3],"nostrPhotoFallbackUploads"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","nostrPhotoFallbackUploads"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","nostrPhotoFallbackUploads"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Cached data"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full"],[24,4,"button"],[4,[32,3],["click",[30,0,["clearCache"]]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["database",18,"var(--danger-color)"]],null],[1,"\\n Clear profiles, photos, and reviews\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["relay","relay","@onChange","server"],["each","-track-array","if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Gq,stripProtocol:Rnt,tooltip:Ent,on:Hw,fn:uV,eq:dV}),isStrictMode:!0}),this)}},Tnt=class extends Wq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["alert-triangle",20]],null],[1,"\\n "],[10,1],[12],[1,"Experimental"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","experimental-enable-photo-deletion"],[12],[1,"Enable photo deletion\\n (own photos)"],[13],[1,"\\n "],[11,"select"],[24,1,"experimental-enable-photo-deletion"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"experimentalEnablePhotoDeletion"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","experimentalEnablePhotoDeletion"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","experimentalEnablePhotoDeletion"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Gq,on:Hw,fn:uV}),isStrictMode:!0}),this)}},Pnt=class extends Wq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");updateSetting(t,e){let n=e.target.value;"true"===n&&(n=!0),"false"===n&&(n=!1),this.settings.update(t,n)}static{dF(this.prototype,"updateSetting",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"Settings"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"settings-section"],[12],[1,"\\n "],[8,[32,2],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,3],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,4],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,5],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq,AppMenuSettingsMapUi:knt,AppMenuSettingsApis:Snt,AppMenuSettingsNostr:Lnt,AppMenuSettingsExperimental:Tnt}),isStrictMode:!0}),this)}},Int=Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"About"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"about-section"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Marco"],[13],[1,"\\n (as in\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/Marco_Polo"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Marco Polo"],[13],[1,") is an unhosted maps application that respects your\\n privacy and choices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your own\\n "],[10,3],[14,6,"https://remotestorage.io/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"remote storage"],[13],[1,"\\n to sync place bookmarks across apps and devices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your\\n "],[10,3],[14,6,"https://start.nostr.net"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Nostr"],[13],[1,"\\n identity to publish photos of places.\\n "],[13],[1,"\\n\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size"],["gift",20]],null],[1,"\\n "],[10,1],[12],[1,"Open Source"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,"table"],[12],[1,"\\n "],[10,"thead"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"th"],[12],[1,"Source"],[13],[1,"\\n "],[10,"th"],[12],[1,"License"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tbody"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://gitea.kosmos.org/raucao/marco"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Marco App\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","GNU Affero General Public License"],[12],[1,"AGPL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openstreetmap.org/copyright"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map Data\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://opendatacommons.org/licenses/odbl/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","Open Data Commons Open Database License"],[12],[1,"ODbL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openfreemap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map tiles\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/feathericons/feather"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Feather Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/MIT_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","MIT License"],[12],[1,"MIT"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://pinhead.ink/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Pinhead Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/waysidemapping/pinhead?tab=readme-ov-file#where-the-icons-are-from"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["heart",20,"#e5533d"]],null],[1,"\\n "],[10,1],[12],[1,"Contribute"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most impactful:"],[13],[1,"\\n "],[13],[1,"\\n "],[10,"ul"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n Add and improve data for points of interest in\\n "],[10,3],[14,6,"https://www.openstreetmap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"OpenStreetMap"],[13],[1,".\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n Add place photos with your Nostr account.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most appreciated:"],[13],[1,"\\n Use this app as much as you can and\\n "],[10,3],[14,6,"https://community.remotestorage.io/t/marco-an-unhosted-maps-app/941"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"submit feedback"],[13],[1,"\\n about your experience, problems, feature wishes, etc.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most supportive:"],[13],[1,"\\n Tell others about this app, on social media, in blog posts,\\n educational videos, etc.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Gq}),isStrictMode:!0}),pV()),Mnt=class extends Wq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"currentView",[Wr],function(){return"menu"})}#in=void pF(this,"currentView");setView(t){this.currentView=t}static{dF(this.prototype,"setView",[Vl])}goToSavedPlaces(){this.router.transitionTo("lists.index")}static{dF(this.prototype,"goToSavedPlaces",[Vl])}goToContributions(){this.router.transitionTo("contributions")}static{dF(this.prototype,"goToContributions",[Vl])}goToActivity(){this.router.transitionTo("activity")}static{dF(this.prototype,"goToActivity",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar app-menu-pane"],[12],[1,"\\n"],[41,[28,[32,0],[[30,0,["currentView"]],"menu"],null],[[[1," "],[8,[32,1],null,[["@onNavigate","@onClose","@onSavedPlaces","@onContributions","@onActivity"],[[30,0,["setView"]],[30,1],[30,0,["goToSavedPlaces"]],[30,0,["goToContributions"]],[30,0,["goToActivity"]]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"settings"],null],[[[1," "],[8,[32,2],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"about"],null],[[[1," "],[8,[32,4],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n "]],[]],null]],[]]]],[]]],[13]],["@onClose"],["if"]]',moduleName:"(unknown template module)",scope:()=>({eq:dV,AppMenuHome:Cnt,AppMenuSettings:Pnt,fn:uV,AppMenuAbout:Int}),isStrictMode:!0}),this)}},Ant=a({default:()=>Ont}),Ont=class extends Wq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[8,[32,0],null,[["@onClose"],[[30,0,["close"]]]],null]],[],[]]',moduleName:"(unknown template module)",scope:()=>({AppMenu:Mnt}),isStrictMode:!0}),this)}},Nnt=a({default:()=>znt}),znt=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");activate(){this.mapUi.showSidebar()}},Fnt=a({default:()=>Dnt}),Dnt=class extends Qh{static{hF(this.prototype,"osmAuth",[pp])}#Ke=void pF(this,"osmAuth");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");async model(){try{await this.osmAuth.handleCallback()}catch(t){console.error("Failed to handle OSM OAuth callback",t)}finally{this.router.transitionTo("index")}}},jnt=a({default:()=>Unt}),Unt=class extends Wq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"localPlace",[Wr],function(){return null})}#sn=void pF(this,"localPlace");constructor(){super(...arguments),this.localPlace=this.args.model}get place(){const t=this.args.model,e=t.osmId||t.id;return this.storage.findPlaceById(e)||(!this.localPlace||this.localPlace.osmId!==e&&this.localPlace.id!==e?t.createdAt?{...t,id:void 0,createdAt:void 0,geohash:void 0}:t:this.localPlace)}handleUpdate(t){console.debug("Updating local place state:",t),this.localPlace=t,this.storage.notifyChange()}static{dF(this.prototype,"handleUpdate",[Vl])}refreshMap(){this.storage.notifyChange()}static{dF(this.prototype,"refreshMap",[Vl])}navigateBack(t){if(null===t)if(this.mapUi.returnToRoute){this.mapUi.showSidebar();const{name:t,model:e}=this.mapUi.returnToRoute;void 0!==e?this.router.transitionTo(t,e):this.router.transitionTo(t)}else this.mapUi.returnToSearch&&this.mapUi.currentSearch?(this.mapUi.showSidebar(),this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch})):this.router.transitionTo("index");else this.mapUi.showSidebar(),this.router.transitionTo("place",t)}static{dF(this.prototype,"navigateBack",[Vl])}close(){this.mapUi.clearSelection(),this.mapUi.hideSidebar(),this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@selectedPlace","@onClose","@onSelect","@onBookmarkChange","@onUpdate"],[[30,0,["place"]],[30,0,["close"]],[30,0,["navigateBack"]],[30,0,["refreshMap"]],[30,0,["handleUpdate"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:QH}),isStrictMode:!0}),this)}},Bnt=a({default:()=>$nt}),$nt=class extends Qh{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");async model(t){const e=t.place_id;let n,r,i=!1;(e.startsWith("osm:node:")||e.startsWith("osm:way:")||e.startsWith("osm:relation:"))&&(i=!0,[,n,r]=e.split(":"),console.debug(`Fetching explicit OSM ${n}:`,r));let s=null;i&&(s=this.loadOsmPlace(r,n)),await this.waitForSync();let o=i?r:e,a=this.storage.findPlaceById(o);return a&&i&&a.osmType!==n&&(a=null),a?(console.debug("Found in bookmarks:",a.title),a):i?(console.debug(`Not in bookmarks, using explicitly fetched OSM ${n}:`,r),await s):(console.warn("Not in bookmarks:",e),null)}async waitForSync(){if(this.storage.initialSyncDone)return;console.debug("Waiting for initial storage sync...");const t=Date.now();for(;!this.storage.initialSyncDone;){if(Date.now()-t>5e3){console.warn("Timed out waiting for initial sync");break}await new Promise(t=>setTimeout(t,100))}}async afterModel(t){if(t&&t.osmId&&t.osmType&&"node"!==t.osmType&&!t.geojson){console.debug("Model missing geometry, fetching full OSM details...");const e=await this.loadOsmPlace(t.osmId,t.osmType);e&&(Object.assign(t,e),console.debug("Enriched model with full OSM details",t))}if(t){const e={preventZoom:this.mapUi.preventNextZoom};this.mapUi.selectPlace(t,e),this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!1}this.mapUi.stopSearch()}deactivate(){this.mapUi.clearSelection(),this.mapUi.returnToSearch=!1,this.mapUi.returnToRoute=null}async loadOsmPlace(t,e=null){try{const n=await this.osm.fetchOsmObject(t,e);if(n)return console.debug("Found OSM POI:",n),n}catch(n){console.error("Failed to fetch POI",n)}return null}setupController(t,e){super.setupController(t,e),this.checkUpdates(e)}async checkUpdates(t){if(t&&t.osmId&&t.osmType){if(t.id){const e=await this.storage.refreshPlace(t);return void(e&&this.mapUi.selectPlace(e,{preventZoom:!0}))}try{const e=await this.osm.fetchOsmObject(t.osmId,t.osmType,{forceFresh:!0});e&&function(t,e){const n=Math.abs((t.lat??0)-(e.lat??0)),r=Math.abs((t.lon??0)-(e.lon??0));if(n>1e-5||r>1e-5)return!0;const i=t.osmTags||{},s=e.osmTags||{},o=new Set([...Object.keys(i),...Object.keys(s)]);for(const a of o)if(i[a]!==s[a])return!0;return!1}(t,e)&&(Object.assign(t,e),this.mapUi.selectPlace(t,{preventZoom:!0}))}catch(e){console.debug("[place] Fresh fetch failed for",t.osmId,e)}}}serialize(t){return t.osmId&&t.osmType?{place_id:`osm:${t.osmType}:${t.osmId}`}:t.id?{place_id:t.id}:{place_id:t.osmId}}},qnt=a({default:()=>Vnt}),Vnt=class extends Wq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");get initialPlace(){return{title:"",description:""}}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}async savePlace(t){try{const e=this.mapUi.creationCoordinates||{lat:this.args.model.lat,lon:this.args.model.lon},n=parseFloat(e.lat.toFixed(6)),r=parseFloat(e.lon.toFixed(6)),i={title:t.title||"Untitled Place",description:t.description,lat:n,lon:r,tags:[],osmTags:{}},s=await this.storage.storePlace(i);console.debug("Created private place:",s.title),this.router.replaceWith("place",s)}catch(e){console.error("Failed to create place:",e),alert("Failed to create place: "+e.message)}}static{dF(this.prototype,"savePlace",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[8,[32,0],null,[["@name","@size","@color"],["plus-circle",20,"#ea4335"]],null],[1,"\\n New Place"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,1],["click",[30,0,["close"]]],null],[12],[8,[32,0],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,2],[14,0,"helper-text"],[12],[1,"\\n Drag the map to position the crosshair.\\n "],[13],[1,"\\n\\n "],[8,[32,2],null,[["@place","@onSave","@onCancel"],[[30,0,["initialPlace"]],[30,0,["savePlace"]],[30,0,["close"]]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Gq,on:Hw,PlaceEditForm:NH}),isStrictMode:!0}),this)}},Wnt=a({default:()=>Hnt}),Hnt=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0}};model(t){return{lat:parseFloat(t.lat),lon:parseFloat(t.lon)}}setupController(t,e){super.setupController(t,e),e.lat&&e.lon&&this.mapUi.updateCreationCoordinates(e.lat,e.lon),this.mapUi.startCreating(),this.mapUi.showSidebar()}deactivate(){this.mapUi.stopCreating()}},Gnt=Object.assign({},Q_,{"marco/config/environment":rx,"marco/deprecation-workflow":xx,"marco/router":Px,"marco/services/activity":LF,"marco/services/blossom":XF,"marco/services/contributions":eD,"marco/services/image-processor":iD,"marco/services/local-forage":aD,"marco/services/map-ui":uD,"marco/services/nostr-auth":hj,"marco/services/nostr-data":uB,"marco/services/nostr-relay":vB,"marco/services/nostr-zap":_B,"marco/services/osm-auth":VB,"marco/services/osm":s$,"marco/services/photon":a$,"marco/services/place-name-resolver":c$,"marco/services/settings":d$,"marco/services/storage":R$,"marco/services/toast":T$,"marco/utils/activity":_F,"marco/utils/contributions":fF,"marco/utils/device":lj,"marco/utils/format-text":GB,"marco/utils/geo":I$,"marco/utils/geohash-coverage":lB,"marco/utils/icons":A$,"marco/utils/nostr":QU,"marco/utils/osm-icons":D$,"marco/utils/osm":XB,"marco/utils/photo-tag-suggestions":W$,"marco/utils/place-mapping":Z$,"marco/utils/poi-categories":e$,"marco/utils/poi-category-matcher":$$,"marco/utils/social-links":Y$,"marco/workers/image-processor":fq,"marco/services/page-title":xq,"marco/templates/activity":aW,"marco/controllers/activity":bH,"marco/routes/activity":_H,"marco/templates/contributions":SH,"marco/controllers/contributions":RH,"marco/routes/contributions":TH,"marco/templates/lists":IH,"marco/routes/lists":AH,"marco/templates/lists/list":tG,"marco/controllers/lists/list":nG,"marco/routes/lists/list":cG,"marco/templates/lists/index":hG,"marco/routes/lists/index":pG,"marco/templates/search":gG,"marco/controllers/search":yG,"marco/routes/search":bG,"marco/templates/application":ynt,"marco/routes/application":bnt,"marco/routes/index":_nt,"marco/templates/menu":Ant,"marco/routes/menu":Nnt,"marco/routes/oauth/osm-callback":Fnt,"marco/templates/place":jnt,"marco/routes/place":Bnt,"marco/templates/place/new":qnt,"marco/routes/place/new":Wnt},{}),Znt=class{constructor(t,e,n){this.limit=t,this.func=e,this.store=n,this.size=0,this.misses=0,this.hits=0,this.store=n||new Map}get(t){let e=this.store.get(t);return this.store.has(t)?(this.hits++,this.store.get(t)):(this.misses++,e=this.set(t,this.func(t)),e)}set(t,e){return this.limit>this.size&&(this.size++,this.store.set(t,e)),e}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},Knt=/[ _]/g,Ynt=new Znt(1e3,t=>function(t){return srt.get(t)}(t).replace(Knt,"-")),Xnt=/^(\-|_)+(.)?/,Jnt=/(.)(\-|\_|\.|\s)+(.)?/g,Qnt=/(^|\/|\.)([a-z])/g,trt=new Znt(1e3,t=>{const e=(t,e,n)=>n?`_${n.toUpperCase()}`:"",n=(t,e,n,r)=>e+(r?r.toUpperCase():""),r=t.split("/");for(let i=0;it.toUpperCase())}),ert=/([a-z\d])([A-Z]+)/g,nrt=/\-|\s+/g,rrt=new Znt(1e3,t=>t.replace(ert,"$1_$2").replace(nrt,"_").toLowerCase()),irt=/([a-z\d])([A-Z])/g,srt=new Znt(1e3,t=>t.replace(irt,"$1_$2").toLowerCase());function ort(t){return trt.get(t)}var art=class{constructor(t){this._entries=t||globalThis.requirejs.entries}moduleNames(){return Object.keys(this._entries)}has(t){return t in this._entries}get(...t){return globalThis.require(...t)}},lrt=class{static moduleBasedResolver=!0;moduleBasedResolver=!0;_deprecatedPodModulePrefix=!1;_normalizeCache=Object.create(null);static create(t){return new this(t)}moduleNameLookupPatterns=[this.podBasedModuleName,this.podBasedComponentsInSubdir,this.mainModuleName,this.defaultModuleName,this.nestedColocationComponentModuleName];static withModules(t){return class extends(this){static explicitModules=t}}constructor(t){if(Object.assign(this,t),!this._moduleRegistry){let t=this.constructor.explicitModules;t?this._moduleRegistry={moduleNames:()=>Object.keys(t),has:e=>Boolean(t[e]),get:e=>t[e],addModules(e){t=Object.assign({},t,e)}}:(void 0===globalThis.requirejs.entries&&(globalThis.requirejs.entries=globalThis.requirejs._eak_seen),this._moduleRegistry=new art)}this.pluralizedTypes=this.pluralizedTypes||Object.create(null),this.pluralizedTypes.config||(this.pluralizedTypes.config="config")}makeToString(t,e){return this.namespace.modulePrefix+"@"+e+":"}shouldWrapInClassFactory(){return!1}parseName(t){if(!0===t.parsedName)return t;let e,n,r,i=t.split("@");if(3===i.length){if(0===i[0].length){e=`@${i[1]}`;let t=i[2].split(":");n=t[0],r=t[1]}else e=`@${i[1]}`,n=i[0].slice(0,-1),r=i[2];"template:components"===n&&(r=`components/${r}`,n="template")}else if(2===i.length){let t=i[0].split(":");if(2===t.length)0===t[1].length?(n=t[0],r=`@${i[1]}`):(e=t[1],n=t[0],r=i[1]);else{let t=i[1].split(":");e=i[0],n=t[0],r=t[1]}"template"===n&&0===e.lastIndexOf("components/",0)&&(r=`components/${r}`,e=e.slice(11))}else i=t.split(":"),n=i[0],r=i[1];let s=r,o=this.namespace;return{parsedName:!0,fullName:t,prefix:e||this.prefix({type:n}),type:n,fullNameWithoutType:s,name:r,root:o,resolveMethodName:"resolve"+ort(n)}}resolveOther(t){crt("`modulePrefix` must be defined",this.namespace.modulePrefix);let e=this.findModuleName(t);if(e){let r=this._extractDefaultExport(e,t);if(void 0===r)throw new Error(` Expected to find: '${t.fullName}' within '${e}' but got 'undefined'. Did you forget to 'export default' within '${e}'?`);return this.shouldWrapInClassFactory(r,t)&&(n=r,r={create:t=>"function"==typeof n.extend?n.extend(t):n}),r}var n}normalize(t){return this._normalizeCache[t]||(this._normalizeCache[t]=this._normalize(t))}resolve(t){if("resolver:current"===t)return{create:()=>this};let e,n=this.parseName(t),r=n.resolveMethodName;return"function"==typeof this[r]&&(e=this[r](n)),null==e&&(e=this.resolveOther(n)),e}addModules(t){if(!this._moduleRegistry.addModules)throw new Error("addModules is only supported when your Resolver has been configured to use static modules via Resolver.withModules()");this._moduleRegistry.addModules(t)}_normalize(t){let e=t.split(":");if(e.length>1){let t=e[0];return"component"===t||"helper"===t||"modifier"===t||"template"===t&&0===e[1].indexOf("components/")?t+":"+e[1].replace(/_/g,"-"):t+":"+function(t){return Ynt.get(t)}(e[1].replace(/\./g,"/"))}return t}pluralize(t){return this.pluralizedTypes[t]||(this.pluralizedTypes[t]=t+"s")}podBasedLookupWithPrefix(t,e){let n=e.fullNameWithoutType;return"template"===e.type&&(n=n.replace(/^components\//,"")),t+"/"+n+"/"+e.type}podBasedModuleName(t){let e=this.namespace.podModulePrefix||this.namespace.modulePrefix;return this.podBasedLookupWithPrefix(e,t)}podBasedComponentsInSubdir(t){let e=this.namespace.podModulePrefix||this.namespace.modulePrefix;if(e+="/components","component"===t.type||/^components/.test(t.fullNameWithoutType))return this.podBasedLookupWithPrefix(e,t)}resolveEngine(t){let e=t.fullNameWithoutType+"/engine";if(this._moduleRegistry.has(e))return this._extractDefaultExport(e)}resolveRouteMap(t){let e=t.fullNameWithoutType,n=e+"/routes";if(this._moduleRegistry.has(n)){let t=this._extractDefaultExport(n);return crt(`The route map for ${e} should be wrapped by 'buildRoutes' before exporting.`,t.isRouteMap),t}}resolveTemplate(t){return this.resolveOther(t)}mainModuleName(t){if("main"===t.fullNameWithoutType)return t.prefix+"/"+t.type}defaultModuleName(t){return t.prefix+"/"+this.pluralize(t.type)+"/"+t.fullNameWithoutType}nestedColocationComponentModuleName(t){if("component"===t.type)return t.prefix+"/"+this.pluralize(t.type)+"/"+t.fullNameWithoutType+"/index"}prefix(t){let e=this.namespace.modulePrefix;return this.namespace[t.type+"Prefix"]&&(e=this.namespace[t.type+"Prefix"]),e}findModuleName(t){let e,n=this.moduleNameLookupPatterns;for(let r=0,i=n.length;rr.length+i.length)return t+":"+e.slice(s+r.length,o);let a=n+"/"+this.pluralize(t)+"/";return 0===e.indexOf(a)&&e.length>a.length?t+":"+e.slice(a.length):void 0}_extractDefaultExport(t){let e=this._moduleRegistry.get(t,null,null,!0);return e&&e.default&&(e=e.default),e}};function crt(t,e){if(!e)throw new Error(t)}(class extends J_{modulePrefix=ix.modulePrefix;podModulePrefix=ix.podModulePrefix;Resolver=lrt.withModules(Gnt);inspector=function(t){!function(t){globalThis.emberInspectorApps||(globalThis.emberInspectorApps=[]),globalThis.emberInspectorApps.push({app:t,name:`app-${globalThis.emberInspectorApps.length}`,loadCompatInspector:()=>Uj(()=>import("./modules-4-12-BlEegdLz.js"),[])}),globalThis.dispatchEvent&&globalThis.dispatchEvent(new Event("Ember"))}(t)}(this)}).create(ix.APP);export{Hv as $,al as $n,it as $r,jp as $t,cx as A,dc as An,Xe as Ar,cm as At,fb as B,cc as Bn,ee as Br,gg as Bt,Tk as C,Xc as Cn,or as Cr,oy as Ct,wC as D,xc as Dn,Xn as Dr,ty as Dt,xC as E,Ec as En,Bn as Er,xm as Et,O_ as F,sc as Fn,Oe as Fr,Wg as Ft,sb as G,ec as Gn,Yt as Gr,Bp as Gt,vb as H,Kl as Hn,re as Hr,Up as Ht,Uw as I,Jl as In,Ee as Ir,sm as It,ab as J,Dl as Jn,zt as Jr,Wp as Jt,ob as K,Bl as Kn,Kt as Kr,Hp as Kt,db as L,Zl as Ln,Re as Lr,$g as Lt,S_ as M,nc as Mn,Je as Mr,tm as Mt,x_ as N,rc as Nn,en as Nr,nm as Nt,hC as O,_c as On,He as Or,Jm as Ot,C_ as P,Gl as Pn,Me as Pr,rm as Pt,Wv as Q,ol as Qn,st as Qr,Dp as Qt,gb as R,uc as Rn,se as Rr,kg as Rt,pN as S,Jc as Sn,hr as Sr,ly as St,KC as T,Mc as Tn,rr as Tr,Xm as Tt,yb as U,Hl as Un,ie as Ur,qp as Ut,mb as V,Ql as Vn,te as Vr,vg as Vt,eb as W,tc as Wn,Qt as Wr,$p as Wt,Kv as X,Sl as Xn,ct as Xr,Gp as Xt,nb as Y,Ll as Yn,ut as Yr,Zp as Yt,Yv as Z,_l as Zn,nt as Zr,zp as Zt,kq as _,mu as _n,kr as _r,By as _t,Qq as a,w as ai,Fu as an,Mo as ar,Ey as at,KN as b,cu as bn,br,cy as bt,nV as c,xu as cn,gs as cr,Ty as ct,iV as d,Uu as dn,ni as dr,Vy as dt,et as ei,Fp as en,ll as er,Gv as et,Yq as f,_u as fn,Kr as fr,Iy as ft,Pq as g,Iu as gn,Sr as gr,nv as gt,Iq as h,Au as hn,Ir as hr,rv as ht,Xq as i,_ as ii,Cu as in,$a as ir,sv as it,K_ as j,oc as jn,Qe as jr,Vg as jt,Ex as k,vc as kn,Ve as kr,Qm as kt,Jq as l,Du as ln,Ci as lr,qy as lt,Mq as m,zu as mn,Ar as mr,iv as mt,cH as n,p as ni,Op as nn,tl as nr,Dv as nt,tV as o,b as oi,Nu as on,Po as or,Sy as ot,Fq as p,wu as pn,Dr as pr,ky as pt,ib as q,Ul as qn,Ct as qr,Vp as qt,rV as r,h as ri,hp as rn,qa as rr,mv as rt,eV as s,a as si,Mu as sn,Gs as sr,_y as st,_G as t,m as ti,Np as tn,nl as tr,Uv as tt,sV as u,ju as un,ri as ur,xy as ut,Cq as v,bu as vn,Mr as vr,Py as vt,rk as w,Gc as wn,nr as wr,ay as wt,_N as x,lu as xn,gr as xr,wm as xt,YF as y,vu as yn,Rr as yr,Uy as yt,cb as z,ac as zn,ne as zr,mg as zt}; \ No newline at end of file +var t=Object.create,e=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,o=(t,e)=>()=>(e||(t((e={exports:{}}).exports,e),t=null),e.exports),a=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:"Module"}),r},l=(t,i,o,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(var l,c=r(i),u=0,h=c.length;ui[t]).bind(null,l),enumerable:!(a=n(i,l))||a.enumerable});return t},c=(n,r,o)=>(o=null!=n?t(i(n)):{},l(!r&&n&&n.__esModule&&s.call(n,"default")?o:e(o,"default",{value:n,enumerable:!0}),n)),u=(t=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(t,{get:(t,e)=>("undefined"!=typeof require?require:t)[e]}):t)(function(t){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Calling `require` for "'+t+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});!function(){const t=document.createElement("link").relList;if(!(t&&t.supports&&t.supports("modulepreload"))){for(const t of document.querySelectorAll('link[rel="modulepreload"]'))e(t);new MutationObserver(t=>{for(const n of t)if("childList"===n.type)for(const t of n.addedNodes)"LINK"===t.tagName&&"modulepreload"===t.rel&&e(t)}).observe(document,{childList:!0,subtree:!0})}function e(t){if(t.ep)return;t.ep=!0;const e=function(t){const e={};return t.integrity&&(e.integrity=t.integrity),t.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),"use-credentials"===t.crossOrigin?e.credentials="include":"anonymous"===t.crossOrigin?e.credentials="omit":e.credentials="same-origin",e}(t);fetch(t.href,e)}}();var h,d=Object.prototype,p=Symbol("undefined"),f=function(t){return t[t.ADD=0]="ADD",t[t.ONCE=1]="ONCE",t[t.REMOVE=2]="REMOVE",t}(f||{}),g=1,m=class{_descriptors;_mixins;_isInit;_lazyChains;_values;_revisions;source;proto;_parent;_listeners;_listenersVersion=1;_inheritedEnd=-1;_flattenedVersion=0;constructor(t){this._parent=void 0,this._descriptors=void 0,this._mixins=void 0,this._lazyChains=void 0,this._values=void 0,this._revisions=void 0,this._isInit=!1,this.source=t,this.proto=void 0===t.constructor?void 0:t.constructor.prototype,this._listeners=void 0}get parent(){let t=this._parent;if(void 0===t){let e=y(this.source);this._parent=t=null===e||e===d?null:_(e)}return t}setInitializing(){this._isInit=!0}unsetInitializing(){this._isInit=!1}isInitializing(){return this._isInit}isPrototypeMeta(t){return this.proto===this.source&&this.source===t}_getOrCreateOwnMap(t){return this[t]||(this[t]=Object.create(null))}_getOrCreateOwnSet(t){return this[t]||(this[t]=new Set)}_findInheritedMap(t,e){let n=this;for(;null!==n;){let r=n[t];if(void 0!==r){let t=r.get(e);if(void 0!==t)return t}n=n.parent}}_hasInInheritedSet(t,e){let n=this;for(;null!==n;){let r=n[t];if(void 0!==r&&r.has(e))return!0;n=n.parent}return!1}valueFor(t){let e=this._values;return void 0!==e?e[t]:void 0}setValueFor(t,e){this._getOrCreateOwnMap("_values")[t]=e}revisionFor(t){let e=this._revisions;return void 0!==e?e[t]:void 0}setRevisionFor(t,e){this._getOrCreateOwnMap("_revisions")[t]=e}writableLazyChainsFor(t){let e=this._getOrCreateOwnMap("_lazyChains"),n=e[t];return void 0===n&&(n=e[t]=[]),n}readableLazyChainsFor(t){let e=this._lazyChains;if(void 0!==e)return e[t]}addMixin(t){this._getOrCreateOwnSet("_mixins").add(t)}hasMixin(t){return this._hasInInheritedSet("_mixins",t)}forEachMixins(t){let e,n=this;for(;null!==n;){let r=n._mixins;void 0!==r&&(e=void 0===e?new Set:e,r.forEach(n=>{e.has(n)||(e.add(n),t(n))})),n=n.parent}}writeDescriptors(t,e){(this._descriptors||(this._descriptors=new Map)).set(t,e)}peekDescriptors(t){let e=this._findInheritedMap("_descriptors",t);return e===p?void 0:e}removeDescriptors(t){this.writeDescriptors(t,p)}forEachDescriptors(t){let e,n=this;for(;null!==n;){let r=n._descriptors;void 0!==r&&(e=void 0===e?new Set:e,r.forEach((n,r)=>{e.has(r)||(e.add(r),n!==p&&t(r,n))})),n=n.parent}}addToListeners(t,e,n,r,i){this.pushListener(t,e,n,r?f.ONCE:f.ADD,i)}removeFromListeners(t,e,n){this.pushListener(t,e,n,f.REMOVE)}pushListener(t,e,n,r,i=!1){let s=this.writableListeners(),o=x(s,t,e,n);if(-1!==o&&o0&&(t.splice(0,this._inheritedEnd),this._inheritedEnd=0);for(let n of e)-1===x(t,n.event,n.target,n.method)&&(t.unshift(n),this._inheritedEnd++)}}this._flattenedVersion=g}return this._listeners}matchingListeners(t){let e,n=this.flattenedListeners();if(void 0!==n)for(let r of n)r.event!==t||r.kind!==f.ADD&&r.kind!==f.ONCE||(void 0===e&&(e=[]),e.push(r.target,r.method,r.kind===f.ONCE));return e}observerEvents(){let t,e=this.flattenedListeners();if(void 0!==e)for(let n of e)n.kind!==f.ADD&&n.kind!==f.ONCE||-1===n.event.indexOf(":change")||(void 0===t&&(t=[]),t.push(n));return t}},y=Object.getPrototypeOf,v=new WeakMap;function b(t,e){v.set(t,e)}function w(t){let e=v.get(t);if(void 0!==e)return e;let n=y(t);for(;null!==n;){if(e=v.get(n),void 0!==e)return e.proto!==n&&(e.proto=n),e;n=y(n)}return null}var _=function(t){let e=w(t);if(null!==e&&e.source===t)return e;let n=new m(t);return b(t,n),n};function x(t,e,n,r){for(let i=t.length-1;i>=0;i--){let s=t[i];if(s.event===e&&s.target===n&&s.method===r)return i}return-1}function C(t){let[e,n,r]=t;return 3===t.length&&("function"==typeof e||"object"==typeof e&&null!==e)&&"string"==typeof n&&("object"==typeof r&&null!==r||void 0===r)}function k(t){let e=function(){return t};return O(e),e}var S=class{enumerable=!0;configurable=!0;_dependentKeys=void 0;_meta=void 0;setup(t,e,n,r){r.writeDescriptors(e,this)}teardown(t,e,n){n.removeDescriptors(e)}};function E(t,e){return function(){return e.get(this,t)}}function R(t,e){let n=function(n){return e.set(this,t,n)};return L.add(n),n}var L=new WeakSet;function T(t,e){let n=function(e,n,r,i){let s=3===arguments.length?_(e):i;return t.setup(e,n,r,s),{enumerable:t.enumerable,configurable:t.configurable,get:E(n,t),set:R(n,t)}};return O(n,t),Object.setPrototypeOf(n,e.prototype),n}var P=new WeakMap;function I(t,e,n){let r=void 0===n?w(t):n;if(null!==r)return r.peekDescriptors(e)}function M(t){return P.get(t)}function A(t){return"function"==typeof t&&P.has(t)}function O(t,e=!0){P.set(t,e)}var N={ENABLE_OPTIONAL_FEATURES:!1,EXTEND_PROTOTYPES:{Array:!1},LOG_STACKTRACE_ON_DEPRECATION:!0,LOG_VERSION:!0,LOG_INSPECTOR_HINT:!0,RAISE_ON_DEPRECATION:!1,STRUCTURED_PROFILE:!1,_DEBUG_RENDER_TREE:!1,_ALL_DEPRECATIONS_ENABLED:!1,_OVERRIDE_DEPRECATION_VERSION:null,_DEFAULT_ASYNC_OBSERVERS:!1,_RERENDER_LOOP_LIMIT:1e3,FEATURES:{}},z=globalThis.EmberENV;if("object"==typeof z&&null!==z){for(let e in z){if(!Object.prototype.hasOwnProperty.call(z,e)||"EXTEND_PROTOTYPES"===e||"EMBER_LOAD_HOOKS"===e)continue;let t=N[e];N[e]=!0===t?!1!==z[e]:!1===t?!0===z[e]:z[e]}let{FEATURES:t}=z;if("object"==typeof t&&null!==t)for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(N.FEATURES[e]=!0===t[e])}function F(){return N}var D,j,U,B,$,q,V,W,H=()=>{},G=new WeakMap,Z=Symbol("BrandedArray");function K(t){return Array.isArray(t)&&Z in t}function Y(t,e){if(null===t)return e;if(K(t))return t.push(e),t;{const n=[t,e];return n[Z]=!0,n}}function X(t,e){K(t)?t.forEach(e):null!==t&&e(t)}function J(t,e){if(K(t)&&t.length>1){let n=t.indexOf(e),r=t.length-1;return n!==r&&(t[n]=t[r]),t.length=r,t}return null}function Q(t){let e=G.get(t);return void 0===e&&(e={parents:null,children:null,eagerDestructors:null,destructors:null,state:0},G.set(t,e)),e}function tt(t,e){let n=Q(t),r=Q(e);return n.children=Y(n.children,e),r.parents=Y(r.parents,t),e}function et(t,e,n=!1){let r=Q(t),i=n?"eagerDestructors":"destructors";return r[i]=Y(r[i],e),e}function nt(t){let e=Q(t);if(e.state>=1)return;let{parents:n,children:r,eagerDestructors:i,destructors:s}=e;e.state=1,X(r,nt),X(i,e=>{e(t)}),X(s,e=>{D(t,e)}),j(()=>{X(n,e=>{!function(t,e){let n=Q(e);2!==n.state&&(n.children=J(n.children,t))}(t,e)}),e.state=2})}function rt(t){let e=G.get(t);return void 0!==e&&null!==e.children}function it(t){let e=G.get(t);return void 0!==e&&e.state>=1}function st(t){let e=G.get(t);return void 0!==e&&e.state>=2}var ot=1;function at(){ot++}var lt=Symbol("TAG_COMPUTE");function ct(t){return t[lt]()}function ut(t,e){return e>=t[lt]()}var ht=Symbol("TAG_TYPE"),dt=class t{static combine(e){switch(e.length){case 0:return yt;case 1:return e[0];default:{let n=new t(2);return n.subtag=e,n}}}revision=1;lastChecked=1;lastValue=1;isUpdating=!1;subtag=null;subtagBufferCache=null;constructor(t){this[ht]=t}[lt](){let{lastChecked:t}=this;if(this.isUpdating)this.lastChecked=++ot;else if(t!==ot){this.isUpdating=!0,this.lastChecked=ot;try{let{subtag:t,revision:e}=this;if(null!==t)if(Array.isArray(t))for(const n of t){let t=n[lt]();e=Math.max(t,e)}else{let n=t[lt]();n===this.subtagBufferCache?e=Math.max(e,this.lastValue):(this.subtagBufferCache=null,e=Math.max(e,n))}this.lastValue=e}finally{this.isUpdating=!1}}return this.lastValue}static updateTag(t,e){let n=t,r=e;r===yt?n.subtag=null:(n.subtagBufferCache=r[lt](),n.subtag=r)}static dirtyTag(t,e){t.revision=++ot,H()}},pt=dt.dirtyTag,ft=dt.updateTag;function gt(){return new dt(0)}function mt(){return new dt(1)}var yt=new dt(3);function vt(t){return t===yt}var bt=class{[ht]=100;[lt](){return NaN}},wt=new bt,_t=class{[ht]=101;[lt](){return ot}},xt=new _t,Ct=dt.combine,kt=mt(),St=mt(),Et=mt();ct(kt),pt(kt),ct(kt),ft(kt,Ct([St,Et])),ct(kt),pt(St),ct(kt),pt(Et),ct(kt),ft(kt,Et),ct(kt),pt(Et),ct(kt);var Rt=class{tags=new Set;last=null;add(t){t!==yt&&(this.tags.add(t),this.last=t)}combine(){let{tags:t}=this;return 0===t.size?yt:1===t.size?this.last:Ct(Array.from(this.tags))}},Lt=null,Tt=[];function Pt(){Tt.push(Lt),Lt=new Rt}function It(){let t=Lt;return Lt=Tt.pop()||null,function(t){if(null==t)throw new Error("Expected value to be present");return t}(t).combine()}function Mt(){Tt.push(Lt),Lt=null}function At(){Lt=Tt.pop()||null}function Ot(){for(;Tt.length>0;)Tt.pop();Lt=null}function Nt(){return null!==Lt}function zt(t){null!==Lt&&Lt.add(t)}var Ft=Symbol("FN"),Dt=Symbol("LAST_VALUE"),jt=Symbol("TAG"),Ut=Symbol("SNAPSHOT");function Bt(t){return{[Ft]:t,[Dt]:void 0,[jt]:void 0,[Ut]:-1}}function $t(t){let e=t[Ft],n=t[jt],r=t[Ut];if(void 0!==n&&ut(n,r))zt(n);else{Pt();try{t[Dt]=e()}finally{n=It(),t[jt]=n,t[Ut]=ct(n),zt(n)}}return t[Dt]}function qt(t){return vt(t[jt])}function Vt(t){let e;Pt();try{t()}finally{e=It()}return e}function Wt(t){Mt();try{return t()}finally{At()}}var Ht=new WeakMap;function Gt(t,e,n){let r=void 0===n?Ht.get(t):n;if(void 0===r)return;let i=r.get(e);void 0!==i&&pt(i,!0)}function Zt(t){let e=Ht.get(t);return void 0===e&&(e=new Map,Ht.set(t,e)),e}function Kt(t,e,n){let r=void 0===n?Zt(t):n,i=r.get(e);return void 0===i&&(i=mt(),r.set(e,i)),i}function Yt(t){return null!==t&&("object"==typeof t||"function"==typeof t)}function Xt(t){return t}function Jt(t){return t}function Qt(t){return!!t&&t.length>0}function te(t){return 0===t.length?void 0:t[t.length-1]}function ee(t){return 0===t.length?void 0:t[0]}function ne(){return Object.create(null)}function re(t){return null!=t}function ie(t){return"function"==typeof t||"object"==typeof t&&null!==t}var se=class{stack;current=null;constructor(t=[]){this.stack=t}get size(){return this.stack.length}push(t){this.current=t,this.stack.push(t)}pop(){let t=this.stack.pop();return this.current=te(this.stack)??null,void 0===t?null:t}nth(t){let e=this.stack.length;return e_e(t),null,t.debugLabel):t}function ye(t){return 3===t[oe]}function ve(t){const e=ge(()=>_e(t),e=>xe(t,e));return e.debugLabel=t.debugLabel,e[oe]=3,e}function be(t){return t.tag===yt}function we(t){return null!==t.update}function _e(t){const e=t;let{tag:n}=e;if(n===yt)return e.lastValue;const{lastRevision:r}=e;let i;if(null!==n&&ut(n,r))i=e.lastValue;else{const{compute:t}=e,r=Vt(()=>{i=e.lastValue=t()});n=e.tag=r,e.lastRevision=ct(r)}return zt(n),i}function xe(t,e){(0,t.update)(e)}function Ce(t,e){const n=t,r=n[oe];let i,s=n.children;if(null===s)s=n.children=new Map;else{const t=s.get(e);if(t)return t}if(2===r){const t=_e(n);i=re(t)?fe(t[e]):ce}else i=ge(()=>{const t=_e(n);if(re(t))return $(t,e)},t=>{const r=_e(n);if(re(r))return q(r,e,t)});return s.set(e,i),i}function ke(t,e){let n=t;for(const r of e)n=Ce(n,r);return n}var Se=new WeakMap;function Ee(t){return Se.get(t)}function Re(t,e){Se.set(t,e)}function Le(t){if("symbol"==typeof t)return null;const e=Number(t);return isNaN(e)?null:e%1==0?e:null}var Te=class{constructor(t){this.named=t}get(t,e){const n=this.named[e];if(void 0!==n)return _e(n)}has(t,e){return e in this.named}ownKeys(){return Object.keys(this.named)}isExtensible(){return!1}getOwnPropertyDescriptor(t,e){return{enumerable:!0,configurable:!0}}},Pe=class{constructor(t){this.positional=t}get(t,e){let{positional:n}=this;if("length"===e)return n.length;const r=Le(e);return null!==r&&r>=0&&r=0&&n{const{named:e,positional:n}=t,r=new Te(e),i=new Pe(n),s=Object.create(null),o=new Proxy(s,r),a=new Proxy([],i);return Re(o,(t,n)=>function(t,e){return Vt(()=>{e in t&&_e(t[e])})}(e,n)),Re(a,(t,e)=>function(t,e){return Vt(()=>{"[]"===e&&t.forEach(_e);const n=Le(e);null!==n&&n>=0&&n-1?function(t){return $e.test(qe.call(t))}:function(){return!0},We=new WeakMap,He=Object.freeze(function(){});function Ge(t){let e=We.get(t);return void 0===e&&(e=Ve(t),We.set(t,e)),e}We.set(He,!1);var Ze=class{listeners=void 0;observers=void 0},Ke=new WeakMap;function Ye(t){let e=Ke.get(t);return void 0===e&&(e=new Ze,Ke.set(t,e)),e}function Xe(t){return Ke.get(t)}function Je(t,e){Ye(t).observers=e}function Qe(t,e){Ye(t).listeners=e}var tn=new WeakSet;function en(t,e){return Ge(t)?!tn.has(e)&&Ge(e)?nn(t,nn(e,He)):nn(t,e):t}function nn(t,e){function n(){let n=this._super;this._super=e;let r=t.apply(this,arguments);return this._super=n,r}tn.add(n);let r=Ke.get(t);return void 0!==r&&Ke.set(n,r),n}function rn(t,e,n,r,i,s=!0){r||"function"!=typeof n||(r=n,n=null),_(t).addToListeners(e,n,r,!0===i,s)}function sn(t,e,n,r){let i,s;"object"==typeof n?(i=n,s=r):(i=null,s=n),_(t).removeFromListeners(e,i,s)}function on(t,e,n,r,i){if(void 0===r){let n=void 0===i?w(t):i;r=null!==n?n.matchingListeners(e):void 0}if(void 0===r||0===r.length)return!1;for(let s=r.length-3;s>=0;s-=3){let i=r[s],o=r[s+1],a=r[s+2];if(!o)continue;a&&sn(t,e,i,o),i||(i=t);let l=typeof o;"string"!==l&&"symbol"!==l||(o=i[o]),o.apply(i,n)}return!0}function an(t,e){let n=w(t);if(null===n)return!1;let r=n.matchingListeners(e);return void 0!==r&&r.length>0}function ln(...t){let e=t.pop();return Qe(e,t),e}function cn(t){return t+":change"}var un=!N._DEFAULT_ASYNC_OBSERVERS,hn=new Map,dn=new Map;function pn(t,e,n,r,i=un){let s=cn(e);rn(t,s,n,r,!1,i);let o=w(t);null!==o&&(o.isPrototypeMeta(t)||o.isInitializing())||gn(t,s,i)}function fn(t,e,n,r,i=un){let s=cn(e),o=w(t);null!==o&&(o.isPrototypeMeta(t)||o.isInitializing())||vn(t,s,i),sn(t,s,n,r)}function gn(t,e,n=!1){let r=function(t,e){let n=!0===e?hn:dn;return n.has(t)||(n.set(t,new Map),et(t,()=>function(t){hn.size>0&&hn.delete(t),dn.size>0&&dn.delete(t)}(t),!0)),n.get(t)}(t,n);if(r.has(e))r.get(e).count++;else{let n=e.substring(0,e.lastIndexOf(":")),i=Ue(t,n,Zt(t),w(t));r.set(e,{count:1,path:n,tag:i,lastRevision:ct(i),suspended:!1})}}var mn=!1,yn=[];function vn(t,e,n=!1){if(!0===mn)return void yn.push([t,e,n]);let r=!0===n?hn:dn,i=r.get(t);if(void 0!==i){let n=i.get(e);n.count--,0===n.count&&(i.delete(e),0===i.size&&r.delete(t))}}function bn(t){dn.has(t)&&dn.get(t).forEach(e=>{e.tag=Ue(t,e.path,Zt(t),w(t)),e.lastRevision=ct(e.tag)}),hn.has(t)&&hn.get(t).forEach(e=>{e.tag=Ue(t,e.path,Zt(t),w(t)),e.lastRevision=ct(e.tag)})}var wn=0;function _n(t){let e=ct(xt);wn!==e&&(wn=e,dn.forEach((e,n)=>{let r=w(n);e.forEach((e,i)=>{if(!ut(e.tag,e.lastRevision)){let s=()=>{try{on(n,i,[n,e.path],void 0,r)}finally{e.tag=Ue(n,e.path,Zt(n),w(n)),e.lastRevision=ct(e.tag)}};t?t("actions",s):s()}})}))}function xn(){hn.forEach((t,e)=>{let n=w(e);t.forEach((t,r)=>{if(!t.suspended&&!ut(t.tag,t.lastRevision))try{t.suspended=!0,on(e,r,[e,t.path],void 0,n)}finally{t.tag=Ue(e,t.path,Zt(e),w(e)),t.lastRevision=ct(t.tag),t.suspended=!1}})})}function Cn(t,e,n){let r=hn.get(t);if(!r)return;let i=r.get(cn(e));i&&(i.suspended=n)}var kn=()=>{},{toString:Sn}=Object.prototype,{toString:En}=Function.prototype,{isArray:Rn}=Array,{keys:Ln}=Object,{stringify:Tn}=JSON,Pn=100,In=/^[\w$]+$/;function Mn(t){return"number"==typeof t&&2===arguments.length?this:An(t,0)}function An(t,e,n){let r=!1;switch(typeof t){case"undefined":return"undefined";case"object":if(null===t)return"null";if(Rn(t)){r=!0;break}if(t.toString===Sn||void 0===t.toString)break;return t.toString();case"function":return t.toString===En?t.name?`[Function:${t.name}]`:"[Function]":t.toString();case"string":return Tn(t);default:return t.toString()}if(void 0===n)n=new WeakSet;else if(n.has(t))return"[Circular]";return n.add(t),r?function(t,e,n){if(e>4)return"[Array]";let r="[";for(let i=0;i=Pn){r+=`... ${t.length-Pn} more items`;break}r+=An(t[i],e,n)}return r+=" ]",r}(t,e+1,n):function(t,e,n){if(e>4)return"[Object]";let r="{",i=Ln(t);for(let s=0;s=Pn){r+=`... ${i.length-Pn} more keys`;break}let o=i[s];kn(),r+=`${On(String(o))}: ${An(t[o],e,n)}`}return r+=" }",r}(t,e+1,n)}function On(t){return In.test(t)?t:Tn(t)}var Nn=/\.@each$/;function zn(t,e){let n=t.indexOf("{");n<0?e(t.replace(Nn,".[]")):Fn("",t,n,e)}function Fn(t,e,n,r){let i,s,o=e.indexOf("}"),a=0,l=e.substring(n+1,o).split(","),c=e.substring(o+1);for(t+=e.substring(0,n),s=l.length;a0&&this._property(...t)}setup(t,e,n,r){if(super.setup(t,e,n,r),!1===this._hasConfig){let{get:t,set:e}=n;void 0!==t&&(this._getter=t),void 0!==e&&(this._setter=function(n,r){let i=e.call(this,r);return void 0!==t&&void 0===i?t.call(this):i})}}_property(...t){let e=[];function n(t){e.push(t)}for(let r of t)zn(r,n);this._dependentKeys=e}get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i),o=r.revisionFor(e);if(void 0!==o&&ut(s,o))n=r.valueFor(e);else{let{_getter:o,_dependentKeys:a}=this;Wt(()=>{n=o.call(t,e)}),void 0!==a&&ft(s,je(t,a,i,r)),r.setValueFor(e,n),r.setRevisionFor(e,ct(s)),De(r,e,n)}return zt(s),Array.isArray(n)&&zt(Kt(n,"[]")),n}set(t,e,n){this._readOnly&&this._throwReadOnlyError(t,e);let r,i=_(t);i.isInitializing()&&void 0!==this._dependentKeys&&this._dependentKeys.length>0&&"function"==typeof t[Bn]&&t.isComponent&&pn(t,e,()=>{t[Bn](e)},void 0,!0);try{Vn(),r=this._set(t,e,n,i),De(i,e,r);let s=Zt(t),o=Kt(t,e,s),{_dependentKeys:a}=this;void 0!==a&&ft(o,je(t,a,s,i)),i.setRevisionFor(e,ct(o))}finally{Wn()}return r}_throwReadOnlyError(t,e){throw new Error(`Cannot set read-only property "${e}" on object: ${Mn(t)}`)}_set(t,e,n,r){let i,s=void 0!==r.revisionFor(e),o=r.valueFor(e),{_setter:a}=this;Cn(t,e,!0);try{i=a.call(t,e,n,o)}finally{Cn(t,e,!1)}return s&&o===i||(r.setValueFor(e,i),qn(t,e,r,n)),i}teardown(t,e,n){void 0!==n.revisionFor(e)&&(n.setRevisionFor(e,void 0),n.setValueFor(e,void 0)),super.teardown(t,e,n)}},Kn=class extends Zn{get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i),o=r.revisionFor(e);if(void 0!==o&&ut(s,o))n=r.valueFor(e);else{let{_getter:i}=this,o=Vt(()=>{n=i.call(t,e)});ft(s,o),r.setValueFor(e,n),r.setRevisionFor(e,ct(s)),De(r,e,n)}return zt(s),Array.isArray(n)&&zt(Kt(n,"[]",i)),n}},Yn=class extends Function{readOnly(){return M(this)._readOnly=!0,this}meta(t){let e=M(this);return 0===arguments.length?e._meta||{}:(e._meta=t,this)}get _getter(){return M(this)._getter}set enumerable(t){M(this).enumerable=t}};function Xn(...t){return C(t)?T(new Zn([]),Yn)(t[0],t[1],t[2]):T(new Zn(t),Yn)}function Jn(...t){return T(new Kn(t),Yn)}function Qn(t,e){return Boolean(I(t,e))}function tr(t,e){let n=w(t);return n?n.valueFor(e):void 0}var er=new WeakSet;function nr(t){return!!Yt(t)&&er.has(t)}function rr(t){Yt(t)&&er.add(t)}var ir=new WeakSet;function sr(t){return ir.has(t)}var or=class{size=0;misses=0;hits=0;constructor(t,e,n=new Map){this.limit=t,this.func=e,this.store=n}get(t){return this.store.has(t)?(this.hits++,this.store.get(t)):(this.misses++,this.set(t,this.func(t)))}set(t,e){return this.limit>this.size&&(this.size++,this.store.set(t,e)),e}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},ar=new or(1e3,t=>t.indexOf("."));function lr(t){return"string"==typeof t&&-1!==ar.get(t)}var cr=Symbol("PROXY_CONTENT");function ur(t){return"object"==typeof t&&null!==t&&"function"==typeof t.unknownProperty}function hr(t,e){return lr(e)?pr(t,e):dr(t,e)}function dr(t,e){if(null==t)return;let n;return"object"==typeof t||"function"==typeof t?(n=t[e],void 0===n&&"object"==typeof t&&!(e in t)&&ur(t)&&(n=t.unknownProperty(e)),Nt()&&(zt(Kt(t,e)),(Array.isArray(n)||sr(n))&&zt(Kt(n,"[]")))):n=t[e],n}function pr(t,e,n){let r="string"==typeof e?e.split("."):e;for(let i of r){if(null==t||t.isDestroyed)return;if(n&&("__proto__"===i||"constructor"===i))return;t=dr(t,i)}return t}dr("foo","a"),dr("foo",1),dr({},"a"),dr({},1),dr({unknownProperty(){}},"a"),dr({unknownProperty(){}},1),hr({},"foo"),hr({},"foo.bar");var fr={};function gr(t,e){let n=t;do{let t=Object.getOwnPropertyDescriptor(n,e);if(void 0!==t)return t;n=Object.getPrototypeOf(n)}while(null!==n);return null}function mr(t,e,n,r){return t.isDestroyed?n:lr(e)?function(t,e,n,r){let i=e.split("."),s=i.pop(),o=pr(t,i,!0);if(null!=o)return mr(o,s,n);if(!r)throw new Error(`Property set failed: object in path "${i.join(".")}" could not be found.`)}(t,e,n,r):yr(t,e,n)}function yr(t,e,n){let r,i=gr(t,e);return null!==i&&L.has(i.set)?(t[e]=n,n):(r=t[e],void 0!==r||"object"!=typeof t||e in t||"function"!=typeof t.setUnknownProperty?(t[e]=n,r!==n&&qn(t,e)):t.setUnknownProperty(e,n),n)}function vr(t,e,n){return mr(t,e,n,!0)}function br(t){return T(new _r(t),wr)}rr(fr),Vt(()=>dr({},"a")),Vt(()=>dr({},1)),Vt(()=>dr({a:[]},"a")),Vt(()=>dr({a:fr},"a"));var wr=class extends Function{readOnly(){return M(this).readOnly(),this}oneWay(){return M(this).oneWay(),this}meta(t){let e=M(this);if(0===arguments.length)return e._meta||{};e._meta=t}},_r=class extends S{altKey;constructor(t){super(),this.altKey=t}setup(t,e,n,r){super.setup(t,e,n,r),Fe.add(this)}get(t,e){let n,r=_(t),i=Zt(t),s=Kt(t,e,i);Wt(()=>{n=hr(t,this.altKey)});let o=r.revisionFor(e);return void 0!==o&&ut(s,o)||(ft(s,Ue(t,this.altKey,i,r)),r.setRevisionFor(e,ct(s)),De(r,e,n)),zt(s),n}set(t,e,n){return mr(t,this.altKey,n)}readOnly(){this.set=xr}oneWay(){this.set=Cr}};function xr(t,e){throw new Error(`Cannot set read-only property '${e}' on object: ${Mn(t)}`)}function Cr(t,e,n){return Dn(t,e,null),mr(t,e,n)}function kr(t,e,n,r){return void 0===e?(e=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1)),on(t,"@array:before",[t,e,n,r]),t}function Sr(t,e,n,r,i=!0){void 0===e?(e=0,n=r=-1):(void 0===n&&(n=-1),void 0===r&&(r=-1));let s=w(t);if(i&&((r<0||n<0||r-n!==0)&&qn(t,"length",s),qn(t,"[]",s)),on(t,"@array:change",[t,e,n,r]),null!==s){let i=-1===n?0:n,o=t.length-((-1===r?0:r)-i),a=e<0?o+e:e;void 0!==s.revisionFor("firstObject")&&0===a&&qn(t,"firstObject",s),void 0!==s.revisionFor("lastObject")&&o-1Or}),Or="7.2.0",Nr=class{_registry;_coreLibIndex;constructor(){this._registry=[],this._coreLibIndex=0}_getLibraryByName(t){let e=this._registry;for(let n of e)if(n.name===t)return n}register(t,e,n){let r=this._registry.length;this._getLibraryByName(t)||(n&&(r=this._coreLibIndex++),this._registry.splice(r,0,{name:t,version:e}))}registerCoreLibrary(t,e){this.register(t,e,!0)}deRegister(t){let e,n=this._getLibraryByName(t);n&&(e=this._registry.indexOf(n),this._registry.splice(e,1))}},zr=new Nr;function Fr(t,e){let n,r={},i=1;for(2===arguments.length&&Array.isArray(e)?(i=0,n=arguments[1]):n=Array.from(arguments);i{let n=Object.keys(e);for(let r of n)mr(t,r,e[r])}),e}zr.registerCoreLibrary("Ember",Or);var jr=Symbol("OWNER");function Ur(t){return t[jr]}function Br(t){return Ur(t)}function $r(t,e){!function(t,e){t[jr]=e}(t,e)}function qr(t,...e){let n,r;C(e)?n=e:"string"==typeof e[0]&&(r=e[0]);let i=Xn({get:function(e){return(Br(this)||this.container).lookup(`${t}:${r||e}`)},set(t,e){Dn(this,t,null,e)}});return n?i(n[0],n[1],n[2]):i}function Vr(t,e){let n=new WeakMap,r="function"==typeof e;return{getter:function(i){let s;return zt(Kt(i,t)),r&&!n.has(i)?(s=e.call(i),n.set(i,s)):s=n.get(i),s},setter:function(e,r){Gt(e,t),n.set(e,r)}}}function Wr(...t){if(!C(t)){let e=t[0],n=e?e.initializer:void 0,r=e?e.value:void 0,i=function(t,e){return Hr([t,e,{initializer:n||(()=>r)}])};return O(i),i}return Hr(t)}function Hr([t,e,n]){let{getter:r,setter:i}=Vr(e,n?n.initializer:void 0);function s(){let t=r(this);return(Array.isArray(t)||sr(t))&&zt(Kt(t,"[]")),t}function o(t){i(this,t),Gt(this,Ae)}let a={enumerable:!0,configurable:!0,isTracked:!0,get:s,set:o};return L.add(o),_(t).writeDescriptors(e,new Gr(s,o)),a}var Gr=class{constructor(t,e){this._get=t,this._set=e,Fe.add(this)}get(t){return this._get.call(t)}set(t,e,n){this._set.call(t,n)}},Zr=(...t)=>{const[e,n,r]=t,i=new WeakMap,s=r.get;r.get=function(){return i.has(this)||i.set(this,Bt(s.bind(this))),$t(i.get(this))}},Kr=a({ENV:()=>N,context:()=>Jr,getENV:()=>F,getLookup:()=>Qr,setLookup:()=>ti}),Yr=globalThis,Xr=Yr.Ember,Jr=void 0===Xr?{imports:Yr,exports:Yr,lookup:Yr}:{imports:Xr.imports||Yr,exports:Xr.exports||Yr,lookup:Xr.lookup||Yr};function Qr(){return Jr.lookup}function ti(t){Jr.lookup=t}var ei=new WeakMap;function ni(t,e){Yt(t)&&ei.set(t,e)}function ri(t){return ei.get(t)}var ii=Object.prototype.hasOwnProperty,si=!1,oi={_set:0,_unprocessedNamespaces:!1,get unprocessedNamespaces(){return this._unprocessedNamespaces},set unprocessedNamespaces(t){this._set++,this._unprocessedNamespaces=t}},ai=!1,li=[],ci=Object.create(null);function ui(t){oi.unprocessedNamespaces=!0,li.push(t)}function hi(t){let e=ri(t);delete ci[e],li.splice(li.indexOf(t),1),e in Jr.lookup&&t===Jr.lookup[e]&&(Jr.lookup[e]=void 0)}function di(){if(!oi.unprocessedNamespaces)return;let t=Jr.lookup,e=Object.keys(t);for(let n of e){if(!_i(n.charCodeAt(0)))continue;let e=xi(t,n);e&&ni(e,n)}}function pi(t){return si||gi(),ci[t]}function fi(t){bi([t.toString()],t,new Set)}function gi(){let t=oi.unprocessedNamespaces;if(t&&(di(),oi.unprocessedNamespaces=!1),t||ai){let t=li;for(let e of t)fi(e);ai=!1}}function mi(){return si}function yi(t){si=Boolean(t)}function vi(){ai=!0}function bi(t,e,n){let r=t.length,i=t.join(".");ci[i]=e,ni(e,i);for(let s in e){if(!ii.call(e,s))continue;let i=e[s];if(t[r]=s,i&&void 0===ri(i))ni(i,t.join("."));else if(i&&wi(i)){if(n.has(i))continue;n.add(i),bi(t,i,n)}}t.length=r}function wi(t){return null!=t&&"object"==typeof t&&t.isNamespace}function _i(t){return t>=65&&t<=90}function xi(t,e){try{let n=t[e];return(null!==n&&"object"==typeof n||"function"==typeof n)&&n.isNamespace&&n}catch(n){}}var Ci=a({ASYNC_OBSERVERS:()=>dn,ComputedDescriptor:()=>S,ComputedProperty:()=>Zn,DEBUG_INJECTION_FUNCTIONS:()=>{},Libraries:()=>Nr,NAMESPACES:()=>li,NAMESPACES_BY_ID:()=>ci,PROPERTY_DID_CHANGE:()=>Bn,PROXY_CONTENT:()=>cr,SYNC_OBSERVERS:()=>hn,TrackedDescriptor:()=>Gr,_getPath:()=>pr,_getProp:()=>dr,_setProp:()=>yr,activateObserver:()=>gn,addArrayObserver:()=>Ir,addListener:()=>rn,addNamespace:()=>ui,addObserver:()=>pn,alias:()=>br,arrayContentDidChange:()=>Sr,arrayContentWillChange:()=>kr,autoComputed:()=>Jn,beginPropertyChanges:()=>Vn,cached:()=>Zr,changeProperties:()=>Hn,computed:()=>Xn,createCache:()=>Bt,defineDecorator:()=>jn,defineProperty:()=>Dn,defineValue:()=>Un,deprecateProperty:()=>ki,descriptorForDecorator:()=>M,descriptorForProperty:()=>I,eachProxyArrayDidChange:()=>Ri,eachProxyArrayWillChange:()=>Ei,endPropertyChanges:()=>Wn,expandProperties:()=>zn,findNamespace:()=>pi,findNamespaces:()=>di,flushAsyncObservers:()=>_n,get:()=>hr,getCachedValueFor:()=>tr,getProperties:()=>Fr,getValue:()=>$t,hasListeners:()=>an,hasUnknownProperty:()=>ur,inject:()=>qr,isClassicDecorator:()=>A,isComputed:()=>Qn,isConst:()=>qt,isElementDescriptor:()=>C,isNamespaceSearchDisabled:()=>mi,libraries:()=>zr,makeComputedDecorator:()=>T,markObjectAsDirty:()=>ze,nativeDescDecorator:()=>k,notifyPropertyChange:()=>qn,objectAt:()=>Me,on:()=>ln,processAllNamespaces:()=>gi,processNamespace:()=>fi,removeArrayObserver:()=>Mr,removeListener:()=>sn,removeNamespace:()=>hi,removeObserver:()=>fn,replace:()=>Rr,replaceInNativeArray:()=>Tr,revalidateObservers:()=>bn,sendEvent:()=>on,set:()=>mr,setClassicDecorator:()=>O,setNamespaceSearchDisabled:()=>yi,setProperties:()=>Dr,setUnprocessedMixins:()=>vi,tagForObject:()=>Ne,tagForProperty:()=>Oe,tracked:()=>Wr,trySet:()=>vr});function ki(t,e,n){Object.defineProperty(t,e,{configurable:!0,enumerable:!1,set(t){mr(this,n,t)},get(){return hr(this,n)}})}var Si=new WeakMap;function Ei(t,e,n,r){let i=Si.get(t);void 0!==i&&i.arrayWillChange(t,e,n,r)}function Ri(t,e,n,r){let i=Si.get(t);void 0!==i&&i.arrayDidChange(t,e,n,r)}var Li={get onerror(){}},Ti=setTimeout,Pi=()=>{};function Ii(t){if("function"==typeof Promise){const e=Promise.resolve();return()=>e.then(t)}if("function"==typeof MutationObserver){let e=0,n=new MutationObserver(t),r=document.createTextNode("");return n.observe(r,{characterData:!0}),()=>(e=++e%2,r.data=""+e,e)}return()=>Ti(t,0)}function Mi(t){let e=Pi;return{setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),now:()=>Date.now(),next:Ii(t),clearNext:e}}var Ai=/\d+/;function Oi(t){let e=typeof t;return"number"===e&&t==t||"string"===e&&Ai.test(t)}function Ni(t){return t.onError||t.onErrorTarget&&t.onErrorTarget[t.onErrorMethod]}function zi(t,e,n){let r=-1;for(let i=0,s=n.length;i=e[n]?i=n+6:s=n;return t>=e[i]?i+6:i}var Ui=class{constructor(t,e={},n={}){this._queueBeingFlushed=[],this.targetQueues=new Map,this.index=0,this._queue=[],this.name=t,this.options=e,this.globalOptions=n}stackFor(t){if(t0){let t=Ni(this.globalOptions);s=t?this.invokeWithOnError:this.invoke;for(let o=this.index;o0&&this.flush(!0)}hasWork(){return this._queueBeingFlushed.length>0||this._queue.length>0}cancel({target:t,method:e}){let n=this._queue,r=this.targetQueues.get(t);void 0!==r&&r.delete(e);let i=zi(t,e,n);return i>-1?(n[i+1]=null,!0):(n=this._queueBeingFlushed,i=zi(t,e,n),i>-1&&(n[i+1]=null,!0))}push(t,e,n,r){return this._queue.push(t,e,n,r),{queue:this,target:t,method:e}}pushUnique(t,e,n,r){let i=this.targetQueues.get(t);void 0===i&&(i=new Map,this.targetQueues.set(t,i));let s=i.get(e);if(void 0===s){let s=this._queue.push(t,e,n,r)-4;i.set(e,s)}else{let t=this._queue;t[s+2]=n,t[s+3]=r}return{queue:this,target:t,method:e}}_getDebugInfo(t){if(t)return Di(this._queue,4)}invoke(t,e,n){void 0===n?e.call(t):e.apply(t,n)}invokeWithOnError(t,e,n,r,i){try{void 0===n?e.call(t):e.apply(t,n)}catch(s7){r(s7,i)}}},Bi=class{constructor(t=[],e){this.queues={},this.queueNameIndex=0,this.queueNames=t,t.reduce(function(t,n){return t[n]=new Ui(n,e[n],e),t},this.queues)}schedule(t,e,n,r,i,s){let o=this.queues[t];if(void 0===o)throw new Error(`You attempted to schedule an action in a queue (${t}) that doesn't exist`);if(null==n)throw new Error(`You attempted to schedule an action in a queue (${t}) for a method that doesn't exist`);return this.queueNameIndex=0,i?o.pushUnique(e,n,r,s):o.push(e,n,r,s)}flush(t=!1){let e,n,r=this.queueNames.length;for(;this.queueNameIndexi){let e=r-i;t=new Array(e);for(let n=0;n{hs++,!1!==this._autorun&&(this._autorun=!1,this._autorunStack=null,this._end(!0))};let n=this.options._buildPlatform||Mi;this._platform=n(this._boundAutorunEnd)}get counters(){return{begin:Zi,end:Ki,events:{begin:Yi,end:0},autoruns:{created:us,completed:hs},run:Xi,join:Ji,defer:Qi,schedule:ts,scheduleIterable:es,deferOnce:ns,scheduleOnce:rs,setTimeout:is,later:ss,throttle:os,debounce:as,cancelTimers:ls,cancel:cs,loops:{total:ds,nested:ps}}}get defaultQueue(){return this._defaultQueue}begin(){Zi++;let t,e=this.options,n=this.currentInstance;return!1!==this._autorun?(t=n,this._cancelAutorun()):(null!==n&&(ps++,this.instanceStack.push(n)),ds++,t=this.currentInstance=new Bi(this.queueNames,e),Yi++,this._trigger("begin",t,n)),this._onBegin(t,n),t}end(){Ki++,this._end(!1)}on(t,e){if("function"!=typeof e)throw new TypeError("Callback must be a function");let n=this._eventCallbacks[t];if(void 0===n)throw new TypeError(`Cannot on() event ${t} because it does not exist`);n.push(e)}off(t,e){let n=this._eventCallbacks[t];if(!t||void 0===n)throw new TypeError(`Cannot off() event ${t} because it does not exist`);let r=!1;if(e)for(let i=0;i0&&Oi(n[i-1])&&(r=parseInt(n.pop(),10)),[t,e,n,r]}(...arguments);return this._later(t,e,n,r)}throttle(){os++;let t,[e,n,r,i,s=!0]=Hi(...arguments),o=Fi(e,n,this._timers);if(-1===o)t=this._later(e,n,s?Vi:r,i),s&&this._join(e,n,r);else{t=this._timers[o+1];let e=o+4;this._timers[e]!==Vi&&(this._timers[e]=r)}return t}debounce(){as++;let t,[e,n,r,i,s=!1]=Hi(...arguments),o=this._timers,a=Fi(e,n,o);if(-1===a)t=this._later(e,n,s?Vi:r,i),s&&this._join(e,n,r);else{let s=this._platform.now()+i,l=a+4;o[l]===Vi&&(r=Vi),t=o[a+1];let c=ji(s,o);if(a+6===c)o[a]=s,o[l]=r;else{let i=this._timers[a+5];this._timers.splice(c,0,s,t,e,n,r,i),this._timers.splice(a,6)}0===a&&this._reinstallTimerTimeout()}return t}cancelTimers(){ls++,this._clearTimerTimeout(),this._timers=[],this._cancelAutorun()}hasTimers(){return this._timers.length>0||this._autorun}cancel(t){if(cs++,null==t)return!1;let e=typeof t;return"number"===e?this._cancelLaterTimer(t):!("object"!==e||!t.queue||!t.method)&&t.queue.cancel(t)}ensureInstance(){this._ensureInstance()}getDebugInfo(){if(this.DEBUG)return{autorun:this._autorunStack,counters:this.counters,timers:Di(this._timers,6,2),instanceStack:[this.currentInstance,...this.instanceStack].map(t=>t&&t._getDebugInfo(this.DEBUG))}}_end(t){let e=this.currentInstance,n=null;if(null===e)throw new Error("end called without begin");let r,i=!1;try{r=e.flush(t)}finally{if(!i)if(i=!0,1===r){const t=this.queueNames[e.queueNameIndex];this._scheduleAutorun(t)}else this.currentInstance=null,this.instanceStack.length>0&&(n=this.instanceStack.pop(),this.currentInstance=n),this._trigger("end",e,n),this._onEnd(e,n)}}_join(t,e,n){return null===this.currentInstance?this._run(t,e,n):void 0===t&&void 0===n?e():e.apply(t,n)}_run(t,e,n){let r=Ni(this.options);if(this.begin(),r)try{return e.apply(t,n)}catch(s7){r(s7)}finally{this.end()}else try{return e.apply(t,n)}finally{this.end()}}_cancelAutorun(){this._autorun&&(this._platform.clearNext(),this._autorun=!1,this._autorunStack=null)}_later(t,e,n,r){let i=this.DEBUG?new Error:void 0,s=this._platform.now()+r,o=Gi++;if(0===this._timers.length)this._timers.push(s,o,t,e,n,i),this._installTimerTimeout();else{let r=ji(s,this._timers);this._timers.splice(r,0,s,o,t,e,n,i),this._reinstallTimerTimeout()}return o}_cancelLaterTimer(t){for(let e=1;e0&&(this.begin(),this._scheduleExpiredTimers(),this.end())}_scheduleExpiredTimers(){let t=this._timers,e=0,n=t.length,r=this._defaultQueue,i=this._platform.now();for(;ei);e+=6){let n=t[e+4];if(n!==Vi){let i=t[e+2],s=t[e+3],o=t[e+5];this.currentInstance.schedule(r,i,s,n,!1,o)}}t.splice(0,e),this._installTimerTimeout()}_reinstallTimerTimeout(){this._clearTimerTimeout(),this._installTimerTimeout()}_clearTimerTimeout(){null!==this._timerTimeoutId&&(this._platform.clearTimeout(this._timerTimeoutId),this._timerTimeoutId=null)}_installTimerTimeout(){if(0===this._timers.length)return;let t=this._timers[0],e=this._platform.now(),n=Math.max(0,t-e);this._timerTimeoutId=this._platform.setTimeout(this._boundRunExpiredTimers,n)}_ensureInstance(){let t=this.currentInstance;return null===t&&(this._autorunStack=this.DEBUG?new Error:void 0,t=this.begin(),this._scheduleAutorun(this.queueNames[0])),t}_scheduleAutorun(t){us++;const e=this._platform.next,n=this.options.flush;n?n(t,e):e(),this._autorun=!0}};fs.Queue=Ui,fs.buildPlatform=Mi,fs.buildNext=Ii;var gs=a({_backburner:()=>ws,_cancelTimers:()=>Ls,_getCurrentRunLoop:()=>ys,_hasScheduledTimers:()=>Rs,_queues:()=>bs,_rsvpErrorQueue:()=>vs,begin:()=>ks,bind:()=>Cs,cancel:()=>As,debounce:()=>Os,end:()=>Ss,join:()=>xs,later:()=>Ts,next:()=>Ms,once:()=>Ps,run:()=>_s,schedule:()=>Es,scheduleOnce:()=>Is,throttle:()=>Ns}),ms=null;function ys(){return ms}var vs=`${Math.random()}${Date.now()}`.replace(".",""),bs=["actions","routerTransitions","render","afterRender","destroy",vs],ws=new fs(bs,{defaultQueue:"actions",onBegin:function(t){ms=t},onEnd:function(t,e){ms=e,_n(Es)},onErrorTarget:Li,onErrorMethod:"onerror",flush:function(t,e){"render"!==t&&t!==vs||_n(Es),e()}});function _s(...t){return ws.run(...t)}function xs(t,e,...n){return ws.join(t,e,...n)}function Cs(...t){return(...e)=>xs(...t.concat(e))}function ks(){ws.begin()}function Ss(){ws.end()}function Es(...t){return ws.schedule(...t)}function Rs(){return ws.hasTimers()}function Ls(){ws.cancelTimers()}function Ts(...t){return ws.later(...t)}function Ps(...t){return ws.scheduleOnce("actions",...t)}function Is(...t){return ws.scheduleOnce(...t)}function Ms(...t){return ws.later(...t,1)}function As(t){return ws.cancel(t)}function Os(...t){return ws.debounce(...t)}function Ns(...t){return ws.throttle(...t)}var zs=new Set([Symbol.iterator,"concat","entries","every","filter","find","findIndex","flat","flatMap","forEach","includes","indexOf","join","keys","lastIndexOf","map","reduce","reduceRight","slice","some","values"]),Fs=new Set(["fill","push","unshift"]);function Ds(t){if("symbol"==typeof t)return null;const e=Number(t);return isNaN(e)?null:e%1==0?e:null}var js=class t{#t;constructor(e,n){this.#t=n;const r=e.slice(),i=this,s=new Map;let o=!1;return new Proxy(r,{get(t,e){const n=Ds(e);if(null!==n)return i.#e(n),zt(i.#n),t[n];if("length"===e)return o?o=!1:zt(i.#n),t[e];if(Fs.has(e)&&(o=!0),zs.has(e)){let n=s.get(e);return void 0===n&&(n=(...n)=>(zt(i.#n),t[e](...n)),s.set(e,n)),n}return t[e]},set(t,e,n){if(i.#t.equals(t[e],n))return!0;t[e]=n;const r=Ds(e);return null!==r?(i.#r(r),i.#i()):"length"===e&&i.#i(),!0},getPrototypeOf:()=>t.prototype})}#n=mt();#s=new Map;#e(t){let e=this.#s.get(t);void 0===e&&(e=mt(),this.#s.set(t,e)),zt(e)}#r(t){const e=this.#s.get(t);e&&pt(e)}#i(){pt(this.#n),this.#s.clear()}};function Us(t,e){return new js(t??[],{equals:e?.equals??Object.is,description:e?.description})}Object.setPrototypeOf(js.prototype,Array.prototype);var Bs=class t{#t;#s=new Map;#n=mt();#e(t){let e=this.#s.get(t);void 0===e&&(e=mt(),this.#s.set(t,e)),zt(e)}#r(t){const e=this.#s.get(t);e&&pt(e)}#i(){pt(this.#n)}constructor(e,n){this.#t=n;const r=Object.getPrototypeOf(e),i=Object.getOwnPropertyDescriptors(e),s=Object.create(r);for(const t in i)Object.defineProperty(s,t,i[t]);const o=this;return new Proxy(s,{get:(t,e)=>(o.#e(e),t[e]),has:(t,e)=>(o.#e(e),e in t),ownKeys:t=>(zt(o.#n),Reflect.ownKeys(t)),set:(t,e,n)=>(o.#t.equals(t[e],n)||(t[e]=n,o.#r(e),o.#i()),!0),deleteProperty:(t,e)=>(e in t&&(delete t[e],o.#r(e),o.#s.delete(e),o.#i()),!0),getPrototypeOf:()=>t.prototype})}};function $s(t,e){return new Bs(t??{},{equals:e?.equals??Object.is,description:e?.description})}function qs(t,e){const n=e?.equals??Object.is,r=new Set(t??[]),i=mt(),s=new Map;function o(t){const e=s.get(t);e&&pt(e)}const a=new Proxy(r,{get(t,e,r){if("add"===e)return function(e){if(t.has(e)){if(n(e,e))return a}else pt(i);return o(e),t.add(e),a};if("delete"===e)return function(e){return!!t.has(e)&&(o(e),pt(i),s.delete(e),t.delete(e))};if("clear"===e)return function(){0!==t.size&&(s.forEach(t=>pt(t)),pt(i),s.clear(),t.clear())};if("has"===e)return function(e){return zt(function(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}(e)),t.has(e)};if("size"===e)return zt(i),t.size;const l=Reflect.get(t,e,r);return"function"==typeof l?function(...e){return zt(i),l.apply(t,e)}:l}});return a}function Vs(t,e){const n=e?.equals??Object.is,r=new WeakSet(t??[]),i=new WeakMap;function s(t){const e=i.get(t);e&&pt(e)}const o=new Proxy(r,{get(t,e,r){if("add"===e)return function(e){return t.has(e)&&n(e,e)||(t.add(e),s(e)),o};if("delete"===e)return function(e){return!!t.has(e)&&(s(e),i.delete(e),t.delete(e))};if("has"===e)return function(e){return zt(function(t){let e=i.get(t);return void 0===e&&(e=mt(),i.set(t,e)),e}(e)),t.has(e)};const a=Reflect.get(t,e,r);return"function"==typeof a?a.bind(t):a}});return o}function Ws(t,e){const n=e?.equals??Object.is,r=t instanceof Map?new Map(t.entries()):new Map(t??[]),i=mt(),s=new Map;function o(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}function a(t){const e=s.get(t);e&&pt(e)}const l=new Proxy(r,{get(t,e,r){if("set"===e)return function(e,r){return t.has(e)&&n(t.get(e),r)||(a(e),pt(i),t.set(e,r)),l};if("delete"===e)return function(e){return!!t.has(e)&&(a(e),pt(i),s.delete(e),t.delete(e))};if("clear"===e)return function(){0!==t.size&&(s.forEach(t=>pt(t)),s.clear(),pt(i),t.clear())};if("get"===e)return function(e){return zt(o(e)),t.get(e)};if("has"===e)return function(e){return zt(o(e)),t.has(e)};if("size"===e)return zt(i),t.size;const c=Reflect.get(t,e,r);return"function"==typeof c?function(...e){return zt(i),c.apply(t,e)}:c}});return l}function Hs(t,e){const n=e?.equals??Object.is,r=t??[],i=r instanceof WeakMap?r:new WeakMap(r),s=new WeakMap;function o(t){let e=s.get(t);return void 0===e&&(e=mt(),s.set(t,e)),e}function a(t){const e=s.get(t);e&&pt(e)}const l=new Proxy(i,{get(t,e,r){if("set"===e)return function(e,r){return t.has(e)&&n(t.get(e),r)||(a(e),t.set(e,r)),l};if("delete"===e)return function(e){return!!t.has(e)&&(a(e),s.delete(e),t.delete(e))};if("get"===e)return function(e){return zt(o(e)),t.get(e)};if("has"===e)return function(e){return zt(o(e)),t.has(e)};const i=Reflect.get(t,e,r);return"function"==typeof i?i.bind(t):i}});return l}var Gs=a({ALLOW_CYCLES:()=>{},COMPUTE:()=>lt,CONSTANT:()=>0,CONSTANT_TAG:()=>yt,CURRENT_TAG:()=>xt,CurrentTag:()=>_t,INITIAL:()=>1,VOLATILE:()=>NaN,VOLATILE_TAG:()=>wt,VolatileTag:()=>bt,beginTrackFrame:()=>Pt,beginUntrackFrame:()=>Mt,bump:()=>at,combine:()=>Ct,consumeTag:()=>zt,createCache:()=>Bt,createTag:()=>gt,createUpdatableTag:()=>mt,debug:()=>Zs,dirtyTag:()=>pt,dirtyTagFor:()=>Gt,endTrackFrame:()=>It,endUntrackFrame:()=>At,getValue:()=>$t,isConst:()=>qt,isConstTag:()=>vt,isTracking:()=>Nt,resetTracking:()=>Ot,tagFor:()=>Kt,tagMetaFor:()=>Zt,track:()=>Vt,trackedArray:()=>Us,trackedData:()=>Vr,trackedMap:()=>Ws,trackedObject:()=>$s,trackedSet:()=>qs,trackedWeakMap:()=>Hs,trackedWeakSet:()=>Vs,untrack:()=>Wt,updateTag:()=>ft,validateTag:()=>ut,valueForTag:()=>ct}),Zs={},Ks=Symbol("GLIMMER_VALIDATOR_REGISTRATION");if(Reflect.has(globalThis,Ks))throw new Error("The `@glimmer/validator` library has been included twice in this application. It could be different versions of the package, or the same version included twice by mistake. `@glimmer/validator` depends on having a single copy of the package in use at any time in an application, even if they are the same version. You must dedupe your build to remove the duplicate packages in order to prevent this error.");Reflect.set(globalThis,Ks,!0);var Ys="@warp-drive/core",Xs=globalThis;Xs.__warpDrive_universalCache=Xs.__warpDrive_universalCache??{},Xs[Ys]=Xs[Ys]??{__version:"5.8.2"};var Js=Xs[Ys],Qs=Js.__warpDrive_ModuleScopedCaches??{};if(Js.__warpDrive_hasOtherCopy)throw new Error("Multiple copies of WarpDrive detected, the application will malfunction.");function to(t,e){return e}function eo(t){return Qs[`(transient) ${t}`]??null}function no(t,e){return e}Js.__warpDrive_hasOtherCopy=!0,no(0,Symbol.for("wd:skip-cache")),no(0,Symbol.for("wd:enable-hydration")),to(0,Symbol("IS_FUTURE")),to(0,Symbol("DOC")),to(0,Symbol("FROZEN")),to(0,Symbol.for("Collection"));var ro=no(0,new WeakMap);function io(t,e){ro.set(t,e)}no(0,new Map),to(0,Symbol("IS_CACHE_HANDLER"));var so=to(0,Symbol("#[]"));function oo(t,e){return eo("signalHooks").createSignal(t,e)}to(0,Symbol("#{}"));var ao={isInitializer:!0};function lo(t){return"object"==typeof t&&null!==t&&Object.getPrototypeOf(t)===ao}var co=to(0,Symbol("Signals"));function uo(t){return t[co]||function(t){t[co]=new Map}(t),t[co]}function ho(t,e,n,r){const i={key:n,context:e,signal:oo(e,n),value:lo(r)?r.value.call(e):r,isStale:!1};return t.set(n,i),i}function po(t,e){return t?.get(e)}function fo(t,e){return{enumerable:!0,configurable:!1,get(){const n=function(t,e,n,r){let i=po(t,n);return i||(i=ho(t,e,n,r)),function(t){eo("signalHooks").consumeSignal(t)}(i.signal),i}(uo(this),this,t,e);return n.isStale=!1,n.value},set(n){const r=function(t,e,n,r){let i=po(t,n);return i||(i=ho(t,e,n,r)),i}(uo(this),this,t,e);var i;r.value!==n&&(r.value=n,(i=r)&&(i.isStale=!0,function(t){eo("signalHooks").notifySignal(t)}(i.signal)))}}}function go(t,e,n){Object.defineProperty(t,e,fo(e,n))}function mo(t,e,n){const r=fo(e,n);r.enumerable=!1,Object.defineProperty(t,e,r)}function yo(t,e,n){const r=n.get;return n.get=function(){const t=uo(this);let n=t.get(e);return n||(n=function(t,e,n,r){{const i=function(t,e,n){return eo("signalHooks").createMemo(t,e,n)}(e,n,r);return t.set(n,i),i}}(t,this,e,r.bind(this))),n()},n}var vo=new WeakMap;function bo(t){return t instanceof DOMException&&"AbortError"===t.name}var wo=class{_stream=null;_future;_triggered=!1;_trigger(){if(this._triggered)return;this._triggered=!0;const t=this._future.getStream();t.sizeHint&&(this._sizeHint=t.sizeHint),this.promise=t.then(t=>t?async function(t,e){const n=e,r=t.getReader();let i=0,s=null!==n._stream&&n._stream.readable.locked,o=s,a=n._stream?.writable.getWriter();const l=[];for(n._isPending=!1,n._isStarted=!0,n._startTime=performance.now();;){const{value:t,done:e}=await r.read();if(e)break;if(i+=t.byteLength,n._bytesLoaded=i,n._lastPacketTime=performance.now(),s=s||null!==n._stream&&n._stream.readable.locked,s){if(!o){o=!0,a=n._stream.writable.getWriter();for(const t of l)await a.ready,await a.write(t);l.length=0}await a.ready,await a.write(t)}else l.push(t)}o?(await a.ready,await a.close()):n._stream&&(await n._stream.readable.cancel("The Stream Has Already Ended"),n._stream=null),n._endTime=performance.now(),n._isComplete=!0,n._isStarted=!1}(t,this):(this._isPending=!1,void(this._isComplete=!0)),t=>{this._isPending=!1,this._isStarted=!1,bo(t)&&(this._isCancelled=!0,this._isComplete=!0),this._isErrored=!0,this._error=t})}promise=null;get isPending(){return this._trigger(),this._isPending}get sizeHint(){return this._trigger(),this._sizeHint}get stream(){if(this._trigger(),!this._stream){if(this._isComplete||this._isCancelled||this._isErrored)return null;this._stream=new TransformStream}return this._stream.readable}get isStarted(){return this._trigger(),this._isStarted}get bytesLoaded(){return this._trigger(),this._bytesLoaded}get startTime(){return this._trigger(),this._startTime}get endTime(){return this._trigger(),this._endTime}get lastPacketTime(){return this._trigger(),this._lastPacketTime}get isComplete(){return this._trigger(),this._isComplete}get isCancelled(){return this._trigger(),this._isCancelled}get isErrored(){return this._trigger(),this._isErrored}get error(){return this._trigger(),this._error}get elapsedTime(){return(this.endTime||this.lastPacketTime)-this.startTime}get completedRatio(){return this.sizeHint?this.bytesLoaded/this.sizeHint:0}get remainingRatio(){return 1-this.completedRatio}get duration(){return this.endTime-this.startTime}get speed(){return this.bytesLoaded/(this.elapsedTime/1e3)}constructor(t){this._future=t}abort=()=>{this._future.abort()}};mo(wo.prototype,"_isPending",!0),mo(wo.prototype,"_isStarted",!1),mo(wo.prototype,"_isComplete",!1),mo(wo.prototype,"_isCancelled",!1),mo(wo.prototype,"_isErrored",!1),mo(wo.prototype,"_error",null),mo(wo.prototype,"_sizeHint",0),mo(wo.prototype,"_bytesLoaded",0),mo(wo.prototype,"_startTime",0),mo(wo.prototype,"_endTime",0),mo(wo.prototype,"_lastPacketTime",0);var _o={};function xo(t,e,n){const r=Object.assign({},e),i=Object.assign({},r.cacheOptions);return n?i.reload=!0:!1===n?(delete i.reload,i.backgroundReload=!0):(delete i.backgroundReload,delete i.reload),r.cacheOptions=i,t.request(r)}function Co(t,e,n){let r={...Object.getOwnPropertyDescriptor(t,e)};for(let i of n)r=i(t,e,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(t):void 0,r.initializer=void 0),Object.defineProperty(t,e,r)}go(_o,"reason",null),go(_o,"value",null),go(_o,"result",null),go(_o,"error",null),go(_o,"status","pending"),go(_o,"isPending",!0),go(_o,"isLoading",!0),go(_o,"isSuccess",!1),go(_o,"isError",!1),go(_o,"request",null),go(_o,"response",null),Object.defineProperty(_o,"isCancelled",{get(){return this.isError&&bo(this.reason)}}),Object.defineProperty(_o,"loadingState",{get(){return this._loadingState||(this._loadingState=new wo(this._request)),this._loadingState}});var ko=Symbol.dispose||Symbol.for("dispose"),So=class{_requester;constructor(t,e){this._args=e,this.store=t,this._subscribedTo=null,this._subscription=null,this._intervalStart=null,this._invalidated=!1,this._nextInterval=null,this._requester=null,this.isDestroyed=!1,this[ko]=Ro,this._installListeners(),this._beginPolling()}async _beginPolling(){try{this.isIdle||await this.request}catch{}finally{this.isDestroyed||this._scheduleInterval()}}get isIdle(){const{request:t,query:e}=this._args;return Boolean(!t&&!e)}static{Co(this.prototype,"isIdle",[yo])}get autorefreshTypes(){const{autorefresh:t}=this._args;let e;return e=!0===t?["online","invalid"]:"string"==typeof t?t.split(","):[],new Set(e)}static{Co(this.prototype,"autorefreshTypes",[yo])}async _scheduleInterval(){const{autorefreshThreshold:t}=this._args;if("undefined"!=typeof window&&"number"==typeof t&&t>0&&this.autorefreshTypes.has("interval")&&null===this._intervalStart){if(this._latestRequest){try{await this._latestRequest}catch{}if(this.isDestroyed)return}this._intervalStart=Date.now(),this._nextInterval=setTimeout(()=>{this._maybeUpdate()},t)}}_clearInterval(){this._nextInterval&&(clearTimeout(this._nextInterval),this._intervalStart=null)}_updateSubscriptions(){if(this.isIdle)return;const t=this._request.lid;if(this._subscribedTo===t)return;this._removeSubscriptions();const e=this._getRequester();this._requester=e,t&&Eo(e)&&(this._subscribedTo=t,this._subscription=e.notifications.subscribe(t,(n,r)=>{if(!this._isUpdating)switch(r){case"invalidated":this.autorefreshTypes.has("invalid")&&(this._invalidated=!0,this._maybeUpdate());break;case"state":{const n=e.requestManager._deduped.get(t)?.priority,r=this.reqState;n?n.blocking&&!r.isLoading?(this.isRefreshing=!1,this._maybeUpdate("policy",!0)):this.isRefreshing=!0:this.isRefreshing=!1}}}))}_removeSubscriptions(){const t=this._requester;this._subscription&&t&&Eo(t)&&(t.notifications.unsubscribe(this._subscription),this._subscribedTo=null,this._subscription=null,this._requester=null)}_installListeners(){"undefined"!=typeof window&&(this.isOnline=window.navigator.onLine,this._unavailableStart=this.isOnline?null:Date.now(),this.isHidden="hidden"===document.visibilityState,this._onlineChanged=t=>{this.isOnline="online"===t.type,"offline"===t.type&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},this._backgroundChanged=()=>{const t="hidden"===document.visibilityState;this.isHidden=t,t&&null===this._unavailableStart&&(this._unavailableStart=Date.now()),this._maybeUpdate()},window.addEventListener("online",this._onlineChanged,{passive:!0,capture:!0}),window.addEventListener("offline",this._onlineChanged,{passive:!0,capture:!0}),document.addEventListener("visibilitychange",this._backgroundChanged,{passive:!0,capture:!0}))}_maybeUpdate(t,e){if(this.isIdle)return;const{reqState:n}=this;if(n.isPending)return;if(!Boolean(this.isOnline&&!this.isHidden&&(t||this.autorefreshTypes.size))){if(!e&&t&&"_invalidated"!==t)throw new Error("Reload not available: the network is not online or the tab is hidden");return}const{autorefreshTypes:r}=this;let i=this._invalidated||Boolean(t);if(!i&&r.has("online")){const{_unavailableStart:t}=this,{autorefreshThreshold:e}=this._args,n="number"==typeof e?e:3e4;i=Boolean(t&&Date.now()-t>n)}if(!i&&r.has("interval")){const{_intervalStart:t}=this,{autorefreshThreshold:e}=this._args;t&&"number"==typeof e&&e>0&&(i=Boolean(Date.now()-t>=e))}if(this._unavailableStart=null,this._invalidated=!1,i){this._clearInterval(),this._isUpdating=!0;const e=("_invalidated"===t?null:t)??this._args.autorefreshBehavior??"policy",r=this._getRequester();switch(n._request.requester||(n._request.requester=r),e){case"reload":this._latestRequest=n.reload();break;case"refresh":this._latestRequest=n.refresh();break;case"policy":this._latestRequest=n.refresh(!0)}"refresh"!==e&&(this._localRequest=this._latestRequest),this._scheduleInterval(),this._latestRequest.finally(()=>{this._isUpdating=!1})}}_getRequester(){return this._args.request?.requester?this._args.request.requester:this.store}retry=async()=>{this._maybeUpdate("reload"),await this._localRequest};refresh=async()=>{this._maybeUpdate("refresh"),await this._latestRequest};get errorFeatures(){return{isHidden:this.isHidden,isOnline:this.isOnline,retry:this.retry}}static{Co(this.prototype,"errorFeatures",[yo])}get contentFeatures(){const t={isHidden:this.isHidden,isOnline:this.isOnline,reload:this.retry,refresh:this.refresh,isRefreshing:this.isRefreshing,latestRequest:this._latestRequest};return t.isRefreshing&&(t.abort=()=>{this._latestRequest?.abort()}),t}static{Co(this.prototype,"contentFeatures",[yo])}get _request(){const{request:t,query:e}=this._args,{_localRequest:n,_originalRequest:r,_originalQuery:i}=this;return n&&t===r&&e===i?n:(this._originalQuery=e,this._originalRequest=t,t||this.store.request(e))}static{Co(this.prototype,"_request",[yo])}get request(){{const t=this._request;return this._updateSubscriptions(),t}}static{Co(this.prototype,"request",[yo])}get reqState(){return function(t){let e=vo.get(t);return e||(e=function(t){const e=(n=t,ro.get(n));var n;const r=Object.create(_o);return r._request=t,r.reload=()=>xo(t.requester,r.request,!0),r.refresh=(e=!1)=>xo(t.requester,r.request,!0===e&&null),e?e.isError?(r.error=e.result,r.reason=e.result,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=e.result.request,r.response=e.result.response):(r.result=e.result.content,r.value=e.result.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=e.result.request,r.response=e.result.response):t.then(e=>{io(t,{isError:!1,result:e}),r.result=e.content,r.value=e.content,r.status="fulfilled",r.isSuccess=!0,r.isPending=!1,r.isLoading=!1,r.request=e.request,r.response=e.response},e=>{io(t,{isError:!0,result:e}),r.error=e,r.reason=e,r.status="rejected",r.isError=!0,r.isPending=!1,r.isLoading=!1,r.request=e.request,r.response=e.response}),r}(t),vo.set(t,e)),e}(this.request)}get result(){return this.reqState.result}};function Eo(t){return"requestManager"in t}function Ro(){const t=this;t.isDestroyed=!0,t._removeSubscriptions(),"undefined"!=typeof window&&(t._clearInterval(),window.removeEventListener("online",t._onlineChanged,{passive:!0,capture:!0}),window.removeEventListener("offline",t._onlineChanged,{passive:!0,capture:!0}),document.removeEventListener("visibilitychange",t._backgroundChanged,{passive:!0,capture:!0}))}go(So.prototype,"isOnline",!0),go(So.prototype,"isHidden",!1),go(So.prototype,"isRefreshing",!1),go(So.prototype,"_localRequest",void 0),go(So.prototype,"_latestRequest",void 0);var Lo={};go(Lo,"reason",null),go(Lo,"value",null),go(Lo,"result",null),go(Lo,"error",null),go(Lo,"status","pending"),go(Lo,"isPending",!0),go(Lo,"isLoading",!0),go(Lo,"isSuccess",!1),go(Lo,"isError",!1);var To=pt;!function(){const t=function(t){const e=t.wellknown.Array;return{createSignal:(t,n)=>n===e?[Oe(t,n),Oe(t,"length"),Oe(t,"[]")]:Oe(t,n),consumeSignal(t){if(Array.isArray(t))return zt(t[0]),zt(t[1]),void zt(t[2]);zt(t)},notifySignal(t){if(Array.isArray(t))return To(t[0]),To(t[1]),void To(t[2]);To(t)},createMemo:(t,e,n)=>{{const r=Oe(t,e),i=Bt(n);let s;const o=()=>{s=$t(i)};return()=>{const t=Vt(o);return ft(r,t),zt(t),s}}},willSyncFlushWatchers:()=>!!ws.currentInstance&&!0!==ws._autorun,waitFor:async t=>t}}({wellknown:{Array:so}});var e;e=t,Qs["(transient) signalHooks"]=e}();var Po=a({getOwner:()=>Io,setOwner:()=>$r}),Io=Br;function Mo(t){let e=Object.create(t);return e._dict=null,delete e._dict,e}var Ao="object"==typeof self&&null!==self&&self.Object===Object&&"undefined"!=typeof Window&&self.constructor===Window&&"object"==typeof document&&null!==document&&self.document===document&&"object"==typeof location&&null!==location&&self.location===location&&"object"==typeof history&&null!==history&&self.history===history&&"object"==typeof navigator&&null!==navigator&&self.navigator===navigator&&"string"==typeof navigator.userAgent;function Oo(t){let e=t._promiseCallbacks;return e||(e=t._promiseCallbacks={}),e}var No={mixin(t){return t.on=this.on,t.off=this.off,t.trigger=this.trigger,t._promiseCallbacks=void 0,t},on(t,e){if("function"!=typeof e)throw new TypeError("Callback must be a function");let n=Oo(this),r=n[t];r||(r=n[t]=[]),-1===r.indexOf(e)&&r.push(e)},off(t,e){let n=Oo(this);if(!e)return void(n[t]=[]);let r=n[t],i=r.indexOf(e);-1!==i&&r.splice(i,1)},trigger(t,e,n){let r=Oo(this)[t];if(r){let t;for(let i=0;i{for(let t=0;t{e===n?Zo(t,n):Ho(t,n)},e=>Ko(t,e))}(t,e):"function"==typeof n?function(t,e,n){zo.async(t=>{let r=!1,i=function(n,i){try{n.call(i,n=>{r||(r=!0,e===n?Zo(t,n):Ho(t,n))},e=>{r||(r=!0,Ko(t,e))})}catch(s){return s}}(n,e,t._label);!r&&i&&(r=!0,Ko(t,i))},t)}(t,e,n):Zo(t,e)}function Ho(t,e){if(t===e)Zo(t,e);else if(function(t){let e=typeof t;return null!==t&&("object"===e||"function"===e)}(e)){let n;try{n=e.then}catch(s7){return void Ko(t,s7)}Wo(t,e,n)}else Zo(t,e)}function Go(t){t._onError&&t._onError(t._result),Xo(t)}function Zo(t,e){t._state===$o&&(t._result=e,t._state=qo,0===t._subscribers.length?zo.instrument&&jo("fulfilled",t):zo.async(Xo,t))}function Ko(t,e){t._state===$o&&(t._state=Vo,t._result=e,zo.async(Go,t))}function Yo(t,e,n,r){let i=t._subscribers,s=i.length;t._onError=null,i[s]=e,i[s+qo]=n,i[s+Vo]=r,0===s&&t._state&&zo.async(Xo,t)}function Xo(t){let e=t._subscribers,n=t._state;if(zo.instrument&&jo(n===qo?"fulfilled":"rejected",t),0===e.length)return;let r,i,s=t._result;for(let o=0;oJo(i,s,n,o))}return s}var ta=class{constructor(t,e,n,r){this._instanceConstructor=t,this.promise=new t(Bo,r),this._abortOnReject=n,this._isUsingOwnPromise=t===ia,this._isUsingOwnResolve=t.resolve===Uo,this._init(...arguments)}_init(t,e){let n=e.length||0;this.length=n,this._remaining=n,this._result=new Array(n),this._enumerate(e)}_enumerate(t){let e=this.length,n=this.promise;for(let r=0;n._state===$o&&re(t)),e,n)}else this._willSettleAt(r.resolve(t),e,n)}_eachEntry(t,e,n){null!==t&&"object"==typeof t?this._settleMaybeThenable(t,e,n):this._setResultAt(qo,e,t,n)}_settledAt(t,e,n,r){let i=this.promise;i._state===$o&&(this._abortOnReject&&t===Vo?Ko(i,n):(this._setResultAt(t,e,n,r),this._checkFullfillment()))}_setResultAt(t,e,n,r){this._remaining--,this._result[e]=n}_willSettleAt(t,e,n){Yo(t,void 0,t=>this._settledAt(qo,e,t,n),t=>this._settledAt(Vo,e,t,n))}};function ea(t,e,n){this._remaining--,this._result[e]=t===qo?{state:"fulfilled",value:n}:{state:"rejected",reason:n}}var na="rsvp_"+Date.now()+"-",ra=0,ia=class t{constructor(e,n){this._id=ra++,this._label=n,this._state=void 0,this._result=void 0,this._subscribers=[],zo.instrument&&jo("created",this),Bo!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){let n=!1;try{e(e=>{n||(n=!0,Ho(t,e))},e=>{n||(n=!0,Ko(t,e))})}catch(r){Ko(t,r)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}_onError(t){zo.after(()=>{this._onError&&zo.trigger("error",t,this._label)})}catch(t,e){return this.then(void 0,t,e)}finally(t,e){let n=this,r=n.constructor;return"function"==typeof t?n.then(e=>r.resolve(t()).then(()=>e),e=>r.resolve(t()).then(()=>{throw e})):n.then(t,t)}};function sa(t,e){return{then:(n,r)=>t.call(e,n,r)}}function oa(t,e){let n=function(){let n=arguments.length,r=new Array(n+1),i=!1;for(let t=0;taa(t,e,n,r))}(s,r,t,this):aa(s,r,t,this)};return n.__proto__=t,n}function aa(t,e,n,r){try{n.apply(r,e)}catch(s7){Ko(t,s7)}return t}function la(t,e){return ia.all(t,e)}ia.cast=Uo,ia.all=function(t,e){return Array.isArray(t)?new ta(this,t,!0,e).promise:this.reject(new TypeError("Promise.all must be called with an array"),e)},ia.race=function(t,e){let n=this,r=new n(Bo,e);if(!Array.isArray(t))return Ko(r,new TypeError("Promise.race must be called with an array")),r;for(let i=0;r._state===$o&&iHo(r,t),t=>Ko(r,t));return r},ia.resolve=Uo,ia.reject=function(t,e){let n=new this(Bo,e);return Ko(n,t),n},ia.prototype._guidKey=na,ia.prototype.then=Qo;var ca=class extends ta{constructor(t,e,n){super(t,e,!1,n)}};function ua(t,e){return Array.isArray(t)?new ca(ia,t,e).promise:ia.reject(new TypeError("Promise.allSettled must be called with an array"),e)}function ha(t,e){return ia.race(t,e)}ca.prototype._setResultAt=ea;var da=class extends ta{constructor(t,e,n=!0,r){super(t,e,n,r)}_init(t,e){this._result={},this._enumerate(e)}_enumerate(t){let e,n,r=Object.keys(t),i=r.length,s=this.promise;this._remaining=i;for(let o=0;s._state===$o&&o{throw t}),t}function ya(t){let e={resolve:void 0,reject:void 0};return e.promise=new ia((t,n)=>{e.resolve=t,e.reject=n},t),e}fa.prototype._setResultAt=ea;var va=class extends ta{constructor(t,e,n,r){super(t,e,!0,r,n)}_init(t,e,n,r,i){let s=e.length||0;this.length=s,this._remaining=s,this._result=new Array(s),this._mapFn=i,this._enumerate(e)}_setResultAt(t,e,n,r){if(r)try{this._eachEntry(this._mapFn(n,e),e,!1)}catch(s7){this._settledAt(Vo,e,s7,!1)}else this._remaining--,this._result[e]=n}};function ba(t,e,n){return"function"!=typeof e?ia.reject(new TypeError("map expects a function as a second argument"),n):ia.resolve(t,n).then(function(t){if(!Array.isArray(t))throw new TypeError("map must be called with an array");return new va(ia,t,e,n).promise})}function wa(t,e){return ia.resolve(t,e)}function _a(t,e){return ia.reject(t,e)}var xa={},Ca=class extends va{_checkFullfillment(){if(0===this._remaining&&null!==this._result){let t=this._result.filter(t=>t!==xa);Zo(this.promise,t),this._result=null}}_setResultAt(t,e,n,r){if(r){this._result[e]=n;let t,r=!0;try{t=this._mapFn(n,e)}catch(s7){r=!1,this._settledAt(Vo,e,s7,!1)}r&&this._eachEntry(t,e,!1)}else this._remaining--,n||(this._result[e]=xa)}};function ka(t,e,n){return"function"!=typeof e?ia.reject(new TypeError("filter expects function as a second argument"),n):ia.resolve(t,n).then(function(t){if(!Array.isArray(t))throw new TypeError("filter must be called with an array");return new Ca(ia,t,e,n).promise})}var Sa,Ea=0;function Ra(t,e){Na[Ea]=t,Na[Ea+1]=e,2===(Ea+=2)&&Oa()}var La="undefined"!=typeof window?window:void 0,Ta=La||{},Pa=Ta.MutationObserver||Ta.WebKitMutationObserver,Ia="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Ma="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function Aa(){return()=>setTimeout(za,1)}var Oa,Na=new Array(1e3);function za(){for(let t=0;tt(za)}():Pa?function(){let t=0,e=new Pa(za),n=document.createTextNode("");return e.observe(n,{characterData:!0}),()=>n.data=t=++t%2}():Ma?function(){let t=new MessageChannel;return t.port1.onmessage=za,()=>t.port2.postMessage(0)}():void 0===La&&"function"==typeof window.require?function(){try{const t=Function("return this")().require("vertx");return void 0!==(Sa=t.runOnLoop||t.runOnContext)?function(){Sa(za)}:Aa()}catch(t){return Aa()}}():Aa(),zo.async=Ra,zo.after=t=>setTimeout(t,0);var Fa=wa,Da=(t,e)=>zo.async(t,e);function ja(){zo.on(...arguments)}function Ua(){zo.off(...arguments)}if("undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){let t=window.__PROMISE_INSTRUMENTATION__;Fo("instrument",!0);for(let e in t)t.hasOwnProperty(e)&&ja(e,t[e])}var Ba={asap:Ra,cast:Fa,Promise:ia,EventTarget:No,all:la,allSettled:ua,race:ha,hash:pa,hashSettled:ga,rethrow:ma,defer:ya,denodeify:oa,configure:Fo,on:ja,off:Ua,resolve:wa,reject:_a,map:ba,async:Da,filter:ka},$a=Object.freeze(Object.defineProperty({__proto__:null,EventTarget:No,Promise:ia,all:la,allSettled:ua,asap:Ra,async:Da,cast:Fa,configure:Fo,default:Ba,defer:ya,denodeify:oa,filter:ka,hash:pa,hashSettled:ga,map:ba,off:Ua,on:ja,race:ha,reject:_a,resolve:wa,rethrow:ma},Symbol.toStringTag,{value:"Module"}));function qa(t){let e=function(t){if(!t)return;let e=t;return e.errorThrown?function(t){let e=t.errorThrown;return"string"==typeof e&&(e=new Error(e)),Object.defineProperty(e,"__reason_with_error_thrown__",{value:t,enumerable:!1}),e}(e):"UnrecognizedURLError"!==t.name&&"TransitionAborted"!==t.name?t:void 0}(t);if(e){let t=null;if(!t)throw e;t(e)}}Fo("async",(t,e)=>{ws.schedule("actions",null,t,e)}),Fo("after",t=>{ws.schedule(vs,null,t)}),ja("error",qa);var Va=class{static _leakTracking;owner;registry;cache;factoryManagerCache;validationCache;isDestroyed;isDestroying;constructor(t,e={}){this.registry=t,this.owner=e.owner||null,this.cache=Mo(e.cache||null),this.factoryManagerCache=Mo(e.factoryManagerCache||null),this.isDestroyed=!1,this.isDestroying=!1}lookup(t,e){if(this.isDestroyed)throw new Error(`Cannot call \`.lookup('${t}')\` after the owner has been destroyed`);return function(t,e,n={}){let r=e;if(!0===n.singleton||void 0===n.singleton&&Wa(t,e)){let e=t.cache[r];if(void 0!==e)return e}return function(t,e,n,r){let i=Ga(t,e,n);if(void 0!==i){if(function(t,e,{instantiate:n,singleton:r}){return!1!==r&&!1!==n&&(!0===r||Wa(t,e))&&Ha(t,e)}(t,n,r)){let n=t.cache[e]=i.create();return t.isDestroying&&"function"==typeof n.destroy&&n.destroy(),n}if(function(t,e,{instantiate:n,singleton:r}){return!1!==n&&(!1===r||!Wa(t,e))&&Ha(t,e)}(t,n,r))return i.create();if(function(t,e,{instantiate:n,singleton:r}){return!1!==r&&!n&&Wa(t,e)&&!Ha(t,e)}(t,n,r)||function(t,e,{instantiate:n,singleton:r}){return!(!1!==n||!1!==r&&Wa(t,e)||Ha(t,e))}(t,n,r))return i.class;throw new Error("Could not create factory")}}(t,r,e,n)}(this,this.registry.normalize(t),e)}destroy(){this.isDestroying=!0,Za(this)}finalizeDestroy(){Ka(this),this.isDestroyed=!0}reset(t){this.isDestroyed||(void 0===t?(Za(this),Ka(this)):function(t,e){let n=t.cache[e];delete t.factoryManagerCache[e],n&&(delete t.cache[e],n.destroy&&n.destroy())}(this,this.registry.normalize(t)))}ownerInjection(){let t={};return $r(t,this.owner),t}factoryFor(t){if(this.isDestroyed)throw new Error(`Cannot call \`.factoryFor('${t}')\` after the owner has been destroyed`);return Ga(this,this.registry.normalize(t),t)}};function Wa(t,e){return!1!==t.registry.getOption(e,"singleton")}function Ha(t,e){return!1!==t.registry.getOption(e,"instantiate")}function Ga(t,e,n){let r=t.factoryManagerCache[e];if(void 0!==r)return r;let i=t.registry.resolve(e);if(void 0===i)return;let s=new Qa(t,i,n,e);return t.factoryManagerCache[e]=s,s}function Za(t){let e=t.cache,n=Object.keys(e);for(let r of n){let t=e[r];t.destroy&&t.destroy()}}function Ka(t){t.cache=Mo(null),t.factoryManagerCache=Mo(null)}var Ya=Symbol("INIT_FACTORY");function Xa(t){return t[Ya]}function Ja(t,e){t[Ya]=e}var Qa=class{container;owner;class;fullName;normalizedName;madeToString;injections;constructor(t,e,n,r){this.container=t,this.owner=t.owner,this.class=e,this.fullName=n,this.normalizedName=r,this.madeToString=void 0,this.injections=void 0}toString(){return void 0===this.madeToString&&(this.madeToString=this.container.registry.makeToString(this.class,this.fullName)),this.madeToString}create(t){let{container:e}=this;if(e.isDestroyed)throw new Error(`Cannot create new instances after the owner has been destroyed (you attempted to create ${this.fullName})`);let n=t?{...t}:{};return $r(n,e.owner),Ja(n,this),this.class.create(n)}};function tl(t){let e=Object.create(null);e[t]=1;for(let n in e)if(n===t)return n;return t}var el=0;function nl(){return++el}var rl="ember",il=new WeakMap,sl=new Map,ol=tl(`__ember${Date.now()}`);function al(t,e=rl){let n=e+nl().toString();return Yt(t)&&il.set(t,n),n}function ll(t){let e;if(Yt(t))e=il.get(t),void 0===e&&(e=`${rl}${nl()}`,il.set(t,e));else if(e=sl.get(t),void 0===e){let n=typeof t;e="string"===n?`st${nl()}`:"number"===n?`nu${nl()}`:"symbol"===n?`sy${nl()}`:`(${t})`,sl.set(t,e)}return e}var cl=Array.prototype.concat;function ul(t,e,n,r){let i=n[t]||r[t];return e[t]&&(i=i?cl.call(i,e[t]):e[t]),i}function hl(t,e,n,r){if(!0===n)return e;let i=n._getter;if(void 0===i)return e;let s=r[t],o="function"==typeof s?M(s):s;if(void 0===o||!0===o)return e;let a=o._getter;if(void 0===a)return e;let l,c=en(i,a),u=n._setter,h=o._setter;if(l=void 0!==h?void 0!==u?en(u,h):h:u,c!==i||l!==u){let t=n._dependentKeys||[],e=new Zn([...t,{get:c,set:l}]);return e._readOnly=n._readOnly,e._meta=n._meta,e.enumerable=n.enumerable,T(e,Zn)}return e}function dl(t,e,n,r){if(void 0!==r[t])return e;let i=n[t];return"function"==typeof i?en(e,i):e}function pl(t){return t?Array.isArray(t)?t:[t]:[]}function fl(t,e,n){return pl(n[t]).concat(pl(e))}function gl(t,e,n){let r=n[t];if(!r)return e;let i=Object.assign({},r),s=!1,o=Object.keys(e);for(let a of o){let t=e[a];"function"==typeof t?(s=!0,i[a]=dl(a,t,r,{})):i[a]=t}return s&&(i._super=He),i}function ml(t,e,n,r,i,s,o){let a;for(let l=0;l{let e=s.indexOf(t);-1!==e&&s.splice(e,1)}))}else yl(e,a,n,r,i,s,o)}function yl(t,e,n,r,i,s,o){let a=ul("concatenatedProperties",e,r,i),l=ul("mergedProperties",e,r,i),c=Object.keys(e);for(let u of c){let c=e[u];if(void 0===c)continue;if(-1===s.indexOf(u)){s.push(u);let e=t.peekDescriptors(u);if(void 0===e){if(!A(c)){let t=r[u]=i[u];"function"==typeof t&&vl(i,u,t,!1)}}else n[u]=e,o.push(u),e.teardown(i,u,t)}let h="function"==typeof c;if(h){let t=M(c);if(void 0!==t){n[u]=hl(u,c,t,n),r[u]=void 0;continue}}a&&a.indexOf(u)>=0||"concatenatedProperties"===u||"mergedProperties"===u?c=fl(u,c,r):l&&l.indexOf(u)>-1?c=gl(u,c,r):h&&(c=dl(u,c,r,n)),r[u]=c,n[u]=void 0}}function vl(t,e,n,r){let i=Xe(n);if(void 0===i)return;let{observers:s,listeners:o}=i;if(void 0!==s){let n=r?pn:fn;for(let r of s.paths)n(t,r,null,e,s.sync)}if(void 0!==o){let n=r?rn:sn;for(let r of o)n(t,r,null,e)}}function bl(t,e,n=!1){let r=Object.create(null),i=Object.create(null),s=_(t),o=[],a=[];t._super=He,ml(e,s,r,i,t,o,a);for(let l of o){let e=i[l],o=r[l];void 0!==e?("function"==typeof e&&vl(t,l,e,!0),Un(t,l,e,-1!==a.indexOf(l),!n)):void 0!==o&&jn(t,l,o,s)}return s.isPrototypeMeta(t)||bn(t),t}var wl=new WeakSet,_l=class t{mixins;properties;ownerConstructor;_without;constructor(t,e){wl.add(this),this.properties=function(t){if(void 0!==t)for(let e of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,e);void 0===n.get&&void 0===n.set||Object.defineProperty(t,e,{value:k(n)})}return t}(e),this.mixins=xl(t),this.ownerConstructor=void 0,this._without=void 0}static create(...t){return vi(),new this(t,void 0)}static mixins(t){let e=w(t),n=[];return null===e||e.forEachMixins(t=>{t.properties||n.push(t)}),n}reopen(...e){if(0===e.length)return this;if(this.properties){let e=new t(void 0,this.properties);this.properties=void 0,this.mixins=[e]}else this.mixins||(this.mixins=[]);return this.mixins=this.mixins.concat(xl(e)),this}apply(t,e=!1){return bl(t,[this],e)}applyPartial(t){return bl(t,[this])}detect(t){if("object"!=typeof t||null===t)return!1;if(wl.has(t))return Cl(t,this);let e=w(t);return null!==e&&e.hasMixin(this)}without(...e){let n=new t([this]);return n._without=e,n}keys(){return kl(this)}toString(){return"(unknown mixin)"}};function xl(t){let e,n=t&&t.length||0;if(n>0){e=new Array(n);for(let r=0;rCl(t,e,n))}function kl(t,e=new Set,n=new Set){if(!n.has(t)){if(n.add(t),t.properties){let n=Object.keys(t.properties);for(let t of n)e.add(t)}else t.mixins&&t.mixins.forEach(t=>kl(t,e,n));return e}}var Sl=_l.create({mergedProperties:["actions"],send(t,...e){if(this.actions&&this.actions[t]&&!0!==this.actions[t].apply(this,e))return;let n=hr(this,"target");n&&n.send(...arguments)}}),{isArray:El}=Array;function Rl(t){return null==t?[]:El(t)?t:[t]}var Ll=a({default:()=>zl});function Tl(t){return"object"==typeof t&&null!==t&&"function"==typeof t.setUnknownProperty}var Pl=_l.prototype.reopen,Il=new WeakSet,Ml=new WeakMap,Al=new Set;function Ol(t){Al.has(t)||t.destroy()}function Nl(t,e){let n=_(t);if(void 0!==e){let r=t.concatenatedProperties,i=t.mergedProperties,s=Object.keys(e);for(let o of s){let s=e[o],a=I(t,o,n),l=void 0!==a;if(!l){if(void 0!==r&&r.length>0&&r.includes(o)){let e=t[o];s=e?Rl(e).concat(s):Rl(s)}if(void 0!==i&&i.length>0&&i.includes(o)){let e=t[o];s=Object.assign({},e,s)}}l?a.set(t,o,s):Tl(t)&&!(o in t)?t.setUnknownProperty(o,s):t[o]=s}}t.init(e),n.unsetInitializing();let r=n.observerEvents();if(void 0!==r)for(let i=0;in.willDestroy()),_(e).setInitializing()}reopen(...t){return bl(this,t),this}init(t){}get isDestroyed(){return st(this)}set isDestroyed(t){}get isDestroying(){return it(this)}set isDestroying(t){}destroy(){Al.add(this);try{nt(this)}finally{Al.delete(this)}return this}willDestroy(){}toString(){let t="object"==typeof this&&null!==this&&"function"==typeof this.toStringExtension?`:${this.toStringExtension()}`:"";return`<${Xa(this)||"(unknown)"}:${ll(this)}${t}>`}static extend(...t){let e=class extends(this){};return Pl.apply(e.PrototypeMixin,t),e}static create(...t){let e,n=t[0];return void 0!==n?(e=new this(Br(n)),Ja(e,Xa(n))):e=new this,t.length<=1?Nl(e,n):Nl(e,Fl.apply(this,t)),e}static reopen(...t){return this.willReopen(),Pl.apply(this.PrototypeMixin,t),this}static willReopen(){let t=this.prototype;Il.has(t)&&(Il.delete(t),Ml.has(this)&&Ml.set(this,_l.create(this.PrototypeMixin)))}static reopenClass(...t){return bl(this,t),this}static detect(t){if("function"!=typeof t)return!1;for(;t;){if(t===this)return!0;t=t.superclass}return!1}static detectInstance(t){return t instanceof this}static metaForProperty(t){return I(this.proto(),t)._meta||{}}static eachComputedProperty(t,e=this){this.proto();let n={};_(this.prototype).forEachDescriptors((r,i)=>{if(i.enumerable){let s=i._meta||n;t.call(e,r,s)}})}static get PrototypeMixin(){let t=Ml.get(this);return void 0===t&&(t=_l.create(),t.ownerConstructor=this,Ml.set(this,t)),t}static get superclass(){let t=Object.getPrototypeOf(this);return t!==Function.prototype?t:void 0}static proto(){let t=this.prototype;if(!Il.has(t)){Il.add(t);let e=this.superclass;e&&e.proto(),Ml.has(this)&&this.PrototypeMixin.apply(t)}return t}static toString(){return`<${Xa(this)||"(unknown)"}:constructor>`}static isClass=!0;static isMethod=!1;static _onLookup;static _lazyInjections};function Fl(...t){let e={};for(let n of t){let t=Object.keys(n);for(let r=0,i=t.length;rjl}),jl=_l.create({get(t){return hr(this,t)},getProperties(...t){return Fr(this,...t)},set(t,e){return mr(this,t,e)},setProperties(t){return Dr(this,t)},beginPropertyChanges(){return Vn(),this},endPropertyChanges(){return Wn(),this},notifyPropertyChange(t){return qn(this,t),this},addObserver(t,e,n,r){return pn(this,t,e,n,r),this},removeObserver(t,e,n,r){return fn(this,t,e,n,r),this},hasObserverFor(t){return an(this,`${t}:change`)},incrementProperty(t,e=1){return mr(this,t,(parseFloat(hr(this,t))||0)+e)},decrementProperty(t,e=1){return mr(this,t,(hr(this,t)||0)-e)},toggleProperty(t){return mr(this,t,!hr(this,t))},cacheFor(t){let e=w(this);return null!==e?e.valueFor(t):void 0}}),Ul=a({action:()=>Vl,computed:()=>Xn,default:()=>Bl,defineProperty:()=>Dn,get:()=>hr,getProperties:()=>Fr,notifyPropertyChange:()=>qn,observer:()=>Wl,set:()=>mr,setProperties:()=>Dr,trySet:()=>vr}),Bl=class extends(zl.extend(jl)){get _debugContainerKey(){let t=Xa(this);return void 0!==t&&t.fullName}},$l=new WeakMap;function ql(t,e,n){var r;if(null!=(r=t)&&void 0!==r.constructor&&"function"==typeof r.constructor.proto&&t.constructor.proto(),!Object.prototype.hasOwnProperty.call(t,"actions")){let e=t.actions;t.actions=e?Object.assign({},e):{}}return t.actions[e]=n,{get(){let t=$l.get(this);void 0===t&&(t=new Map,$l.set(this,t));let e=t.get(n);return void 0===e&&(e=n.bind(this),t.set(n,e)),e}}}function Vl(...t){let e;if(!C(t)){e=t[0];let n=function(t,n){return ql(t,n,e)};return O(n),n}let[n,r,i]=t;return e=i?.value,ql(n,r,e)}function Wl(...t){let e,n,r,i=t.pop();"function"==typeof i?(e=i,n=t,r=!N._DEFAULT_ASYNC_OBSERVERS):(e=i.fn,n=i.dependentKeys,r=i.sync);let s=[];for(let o of n)zn(o,t=>s.push(t));return Je(e,{paths:s,sync:r}),e}function Hl(t){if(!(t instanceof MouseEvent))return!1;let e=t.shiftKey||t.metaKey||t.altKey||t.ctrlKey,n=0!==t.button;return!e&&!n}function Gl(t){return'Binding style attributes may introduce cross-site scripting vulnerabilities; please ensure that values being bound are properly escaped. For more information, including how to disable this warning, see https://deprecations.emberjs.com/v1.x/#toc_binding-style-attributes. Style affected: "'+t+'"'}function Zl(t){let e=t.lookup("-view-registry:main"),n=[];return Object.keys(e).forEach(t=>{let r=e[t];null===r.parentView&&n.push(r)}),n}function Kl(t){return""!==t.tagName&&t.elementId?t.elementId:ll(t)}O(Vl);var Yl=new WeakMap,Xl=new WeakMap;function Jl(t){return Yl.get(t)||null}function Ql(t){return Xl.get(t)||null}function tc(t,e){Yl.set(t,e)}function ec(t,e){Xl.set(t,e)}function nc(t){Yl.delete(t)}function rc(t){Xl.delete(t)}var ic=new WeakMap;function sc(t){return function(t,e){let n=[],r=ic.get(t);return void 0!==r&&r.forEach(t=>{let r=e[t];!r||r.isDestroying||r.isDestroyed||n.push(r)}),n}(t,Br(t).lookup("-view-registry:main"))}function oc(t,e){let n=ic.get(t);void 0===n&&(n=function(t){let e=new Set;return ic.set(t,e),e}(t)),n.add(Kl(e))}function ac(t){return t.renderer.getBounds(t)}function lc(t){let e=ac(t),n=document.createRange();return n.setStartBefore(e.firstNode),n.setEndAfter(e.lastNode),n}function cc(t){return lc(t).getClientRects()}function uc(t){return lc(t).getBoundingClientRect()}var hc="ember-application",dc=class extends Bl{events={touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchcancel:"touchCancel",keydown:"keyDown",keyup:"keyUp",keypress:"keyPress",mousedown:"mouseDown",mouseup:"mouseUp",contextmenu:"contextMenu",click:"click",dblclick:"doubleClick",focusin:"focusIn",focusout:"focusOut",submit:"submit",input:"input",change:"change",dragstart:"dragStart",drag:"drag",dragenter:"dragEnter",dragleave:"dragLeave",dragover:"dragOver",drop:"drop",dragend:"dragEnd"};rootElement="body";_eventHandlers=Object.create(null);_didSetup=!1;finalEventNameMapping=null;_sanitizedRootElement=null;lazyEvents=new Map;_reverseEventNameMapping=null;setup(t,e){let n=this.finalEventNameMapping={...hr(this,"events"),...t};this._reverseEventNameMapping=Object.keys(n).reduce((t,e)=>{let r=n[e];return r?{...t,[r]:e}:t},{});let r=this.lazyEvents;null!=e&&mr(this,"rootElement",e);let i=hr(this,"rootElement"),s="string"!=typeof i?i:document.querySelector(i);s.classList.add(hc),this._sanitizedRootElement=s;for(let o in n)Object.prototype.hasOwnProperty.call(n,o)&&r.set(o,n[o]??null);this._didSetup=!0}setupHandlerForBrowserEvent(t){this.setupHandler(this._sanitizedRootElement,t,this.finalEventNameMapping[t]??null)}setupHandlerForEmberEvent(t){let e=this._reverseEventNameMapping?.[t];e&&this.setupHandler(this._sanitizedRootElement,e,t)}setupHandler(t,e,n){if(null===n||!this.lazyEvents.has(e))return;let r=(t,e)=>{let r=Jl(t),i=!0;return r&&(i=r.handleEvent(n,e)),i},i=this._eventHandlers[e]=t=>{let e=t.target;do{if(Jl(e)){if(!1===r(e,t)){t.preventDefault(),t.stopPropagation();break}if(!0===t.cancelBubble)break}e=e.parentNode}while(e instanceof Element)};t.addEventListener(e,i),this.lazyEvents.delete(e)}destroy(){if(!1===this._didSetup)return;let t=this._sanitizedRootElement;if(t){for(let e in this._eventHandlers)t.removeEventListener(e,this._eventHandlers[e]);return t.classList.remove(hc),this._super(...arguments)}}toString(){return"(EventDispatcher)"}},pc=/^[^:]+:[^:]+$/,fc=class{_failSet;resolver;fallback;registrations;_normalizeCache;_options;_resolveCache;_typeOptions;constructor(t={}){this.fallback=t.fallback||null,this.resolver=t.resolver||null,this.registrations=Mo(t.registrations||null),this._normalizeCache=Mo(null),this._resolveCache=Mo(null),this._failSet=new Set,this._options=Mo(null),this._typeOptions=Mo(null)}container(t){return new Va(this,t)}register(t,e,n={}){let r=this.normalize(t);this._failSet.delete(r),this.registrations[r]=e,this._options[r]=n}unregister(t){let e=this.normalize(t);delete this.registrations[e],delete this._resolveCache[e],delete this._options[e],this._failSet.delete(e)}resolve(t){let e=function(t,e){let n,r=e,i=t._resolveCache[r];return void 0!==i?i:t._failSet.has(r)?void 0:(t.resolver&&(n=t.resolver.resolve(r)),void 0===n&&(n=t.registrations[r]),void 0===n?t._failSet.add(r):t._resolveCache[r]=n,n)}(this,this.normalize(t));return void 0===e&&null!==this.fallback&&(e=this.fallback.resolve(t)),e}describe(t){return null!==this.resolver&&this.resolver.lookupDescription?this.resolver.lookupDescription(t):null!==this.fallback?this.fallback.describe(t):t}normalizeFullName(t){return null!==this.resolver&&this.resolver.normalize?this.resolver.normalize(t):null!==this.fallback?this.fallback.normalizeFullName(t):t}normalize(t){return this._normalizeCache[t]||(this._normalizeCache[t]=this.normalizeFullName(t))}makeToString(t,e){return null!==this.resolver&&this.resolver.makeToString?this.resolver.makeToString(t,e):null!==this.fallback?this.fallback.makeToString(t,e):"string"==typeof t?t:t.name??"(unknown class)"}has(t){return!!this.isValidFullName(t)&&function(t,e){return void 0!==t.resolve(e)}(this,this.normalize(t))}optionsForType(t,e){this._typeOptions[t]=e}getOptionsForType(t){let e=this._typeOptions[t];return void 0===e&&null!==this.fallback&&(e=this.fallback.getOptionsForType(t)),e}options(t,e){let n=this.normalize(t);this._options[n]=e}getOptions(t){let e=this.normalize(t),n=this._options[e];return void 0===n&&null!==this.fallback&&(n=this.fallback.getOptions(t)),n}getOption(t,e){let n=this._options[t];if(void 0!==n&&void 0!==n[e])return n[e];let r=t.split(":")[0];return n=this._typeOptions[r],n&&void 0!==n[e]?n[e]:null!==this.fallback?this.fallback.getOption(t,e):void 0}knownForType(t){let e,n,r=Mo(null),i=Object.keys(this.registrations);for(let s of i)s.split(":")[0]===t&&(r[s]=!0);return null!==this.fallback&&(e=this.fallback.knownForType(t)),null!==this.resolver&&this.resolver.knownForType&&(n=this.resolver.knownForType(t)),Object.assign({},e,r,n)}isValidFullName(t){return pc.test(t)}},gc=Mo(null),mc=`${Math.random()}${Date.now()}`.replace(".","");function yc([t]){let e=gc[t];if(e)return e;let[n,r]=t.split(":");return gc[t]=tl(`${n}:${r}-${mc}`)}var vc=a({default:()=>bc,on:()=>ln}),bc=_l.create({on(t,e,n){return rn(this,t,e,n),this},one(t,e,n){return rn(this,t,e,n,!0),this},trigger(t,...e){on(this,t,e)},off(t,e,n){return sn(this,t,e,n),this},has(t){return an(this,t)}}),wc=_l.create(),_c=a({default:()=>xc}),xc=_l.create(wc),Cc={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object AsyncFunction]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object","[object FileList]":"filelist"},{toString:kc}=Object.prototype;function Sc(t){if(null===t)return"null";if(void 0===t)return"undefined";let e=Cc[kc.call(t)]||"object";return"function"===e?zl.detect(t)&&(e="class"):"object"===e&&(t instanceof Error?e="error":t instanceof zl?e="instance":t instanceof Date&&(e="date")),e}var Ec=_l.create({compare:null}),Rc={undefined:0,null:1,boolean:2,number:3,string:4,array:5,object:6,instance:7,function:8,class:9,date:10,regexp:11,filelist:12,error:13};function Lc(t,e){return Math.sign(t-e)}function Tc(t,e){if(t===e)return 0;let n=Sc(t),r=Sc(e);if("instance"===n&&Pc(t)&&t.constructor.compare)return t.constructor.compare(t,e);if("instance"===r&&Pc(e)&&e.constructor.compare)return-1*e.constructor.compare(e,t);let i=Lc(Rc[n],Rc[r]);if(0!==i)return i;switch(n){case"boolean":return Lc(Number(t),Number(e));case"number":return Lc(t,e);case"string":return Lc(t.localeCompare(e),0);case"array":{let n=t.length,r=e.length,i=Math.min(n,r);for(let s=0;sYc,MutableArray:()=>Gc,NativeArray:()=>Zc,default:()=>Hc,isArray:()=>Ic,makeArray:()=>Rl,removeAt:()=>$c,uniqBy:()=>Nc}),Ac=Object.freeze([]),Oc=t=>t;function Nc(t,e=Oc){let n=Yc(),r=new Set,i="function"==typeof e?e:t=>hr(t,e);return t.forEach(t=>{let e=i(t);r.has(e)||(r.add(e),n.push(t))}),n}function zc(...t){let e=2===t.length,[n,r]=t;return e?t=>r===hr(t,n):t=>Boolean(hr(t,n))}function Fc(t,e,n){let r=t.length;for(let i=n;i!r(t,e,n),0)}function Bc(t,e,n=0,r){let i=t.length;return n<0&&(n+=i),Fc(t,r&&e!=e?t=>t!=t:t=>t===e,n)}function $c(t,e,n){return Rr(t,e,n??1,Ac),t}function qc(t,e,n){return Rr(t,e,0,[n]),n}function Vc(t){let e=Xn(t);return e.enumerable=!1,e}function Wc(t){return this.map(e=>hr(e,t))}var Hc=_l.create(wc,{init(){this._super(...arguments),ir.add(this)},objectsAt(t){return t.map(t=>Me(this,t))},"[]":Vc({get(){return this},set(t,e){return this.replace(0,this.length,e),this}}),firstObject:Vc(function(){return Me(this,0)}).readOnly(),lastObject:Vc(function(){return Me(this,this.length-1)}).readOnly(),slice(t=0,e){let n,r=Yc(),i=this.length;for(t<0&&(t=i+t),n=void 0===e||e>i?i:e<0?i+e:e;t=n)&&(e=n-1),e<0&&(e+=n);for(let r=e;r>=0;r--)if(Me(this,r)===t)return r;return-1},forEach(t,e=null){let n=this.length;for(let r=0;rmr(n,t,e))},map(t,e=null){let n=Yc();return this.forEach((r,i,s)=>n[i]=t.call(e,r,i,s)),n},mapBy:Wc,filter(t,e=null){let n=Yc();return this.forEach((r,i,s)=>{t.call(e,r,i,s)&&n.push(r)}),n},reject(t,e=null){return this.filter(function(){return!t.apply(e,arguments)})},filterBy(){return this.filter(zc(...arguments))},rejectBy(){return this.reject(zc(...arguments))},find(t,e=null){return Dc(this,t,e)},findBy(){return Dc(this,zc(...arguments))},every(t,e=null){return Uc(this,t,e)},isEvery(){return Uc(this,zc(...arguments))},any(t,e=null){return jc(this,t,e)},isAny(){return jc(this,zc(...arguments))},reduce(t,e){let n=e,r=0;if(!(arguments.length>1)){if(0===this.length)throw new TypeError("Reduce of empty array with no initial value");n=this.objectAt(0),r=1}for(let i=r;in.push(r[t]?.(...e))),n},toArray(){return this.map(t=>t)},compact(){return this.filter(t=>null!=t)},includes(t,e){return-1!==Bc(this,t,e,!0)},sortBy(){let t=arguments;return this.toArray().sort((e,n)=>{for(let r=0;re!==t:t=>t==t;return this.filter(e)}}),Gc=_l.create(Hc,xc,{clear(){let t=this.length;return 0===t||this.replace(0,t,Ac),this},insertAt(t,e){return qc(this,t,e),this},removeAt(t,e){return $c(this,t,e)},pushObject(t){return qc(this,this.length,t)},pushObjects(t){return this.replace(this.length,0,t),this},popObject(){let t=this.length;if(0===t)return null;let e=Me(this,t-1);return this.removeAt(t-1,1),e},shiftObject(){if(0===this.length)return null;let t=Me(this,0);return this.removeAt(0),t},unshiftObject(t){return qc(this,0,t)},unshiftObjects(t){return this.replace(0,0,t),this},reverseObjects(){let t=this.length;if(0===t)return this;let e=this.toArray().reverse();return this.replace(0,t,e),this},setObjects(t){if(0===t.length)return this.clear();let e=this.length;return this.replace(0,e,t),this},removeObject(t){let e=this.length||0;for(;--e>=0;)Me(this,e)===t&&this.removeAt(e);return this},removeObjects(t){Vn();for(let e=t.length-1;e>=0;e--)this.removeObject(t[e]);return Wn(),this},addObject(t){return this.includes(t)||this.pushObject(t),this},addObjects(t){return Vn(),t.forEach(t=>this.addObject(t)),Wn(),this}}),Zc=_l.create(Gc,jl,{objectAt(t){return this[t]},replace(t,e,n=Ac){return Tr(this,t,e,n),this}}),Kc=["length"];Zc.keys().forEach(t=>{Array.prototype[t]&&Kc.push(t)}),Zc=Zc.without(...Kc);var Yc=function(t){return sr(t)?t:Zc.apply(t??[])},Xc=class extends Bl{},Jc=a({ControllerMixin:()=>tu,default:()=>eu,inject:()=>nu}),Qc=Symbol("MODEL"),tu=_l.create(Sl,{isController:!0,concatenatedProperties:["queryParams"],target:null,store:null,init(){this._super(...arguments);let t=Br(this);t&&(this.namespace=t.lookup("application:main"),this.target=t.lookup("router:main"))},model:Xn({get(){return this[Qc]},set(t,e){return this[Qc]=e}}),queryParams:null,_qpDelegate:null,_qpChanged(t,e){let n=e.indexOf(".[]"),r=-1===n?e:e.slice(0,n);(0,t._qpDelegate)(r,hr(t,r))}}),eu=class extends(Xc.extend(tu)){};function nu(...t){return qr("controller",...t)}var ru=!1;function iu(){return ru}function su(t){ru=Boolean(t)}var ou=Symbol("ENGINE_PARENT");function au(t){return t[ou]}var lu=_l.create({__container__:null,ownerInjection(){return this.__container__.ownerInjection()},lookup(t,e){return this.__container__.lookup(t,e)},destroy(){let t=this.__container__;t&&xs(()=>{t.destroy(),Es("destroy",t,"finalizeDestroy")}),this._super()},factoryFor(t){return this.__container__.factoryFor(t)}}),cu=_l.create({__registry__:null,resolveRegistration(t){return this.__registry__.resolve(t)},register:uu("register"),unregister:uu("unregister"),hasRegistration:uu("has"),registeredOption:uu("getOption"),registerOptions:uu("options"),registeredOptions:uu("getOptions"),registerOptionsForType:uu("optionsForType"),registeredOptionsForType:uu("getOptionsForType")});function uu(t){return function(...e){return this.__registry__[t](...e)}}var hu=class extends(Bl.extend(cu,lu)){static setupRegistry(t,e){}[ou];_booted=!1;init(t){super.init(t),ll(this),this.base??=this.application;let e=this.__registry__=new fc({fallback:this.base.__registry__});this.__container__=e.container({owner:this}),this._booted=!1}_bootPromise=null;boot(t){return this._bootPromise||(this._bootPromise=new $a.Promise(e=>{e(this._bootSync(t))})),this._bootPromise}_bootSync(t){return this._booted||(this.cloneParentDependencies(),this.setupRegistry(t),this.base.runInstanceInitializers(this),this._booted=!0),this}setupRegistry(t=this.__container__.lookup("-environment:main")){this.constructor.setupRegistry(this.__registry__,t)}unregister(t){this.__container__.reset(t),this.__registry__.unregister(t)}buildChildEngineInstance(t,e={}){let n=this.lookup(`engine:${t}`);if(!n)throw new Error(`You attempted to mount the engine '${t}', but it is not registered with its parent.`);let r=n.buildInstance(e);return r[ou]=this,r}cloneParentDependencies(){const t=au(this);["route:basic","service:-routing"].forEach(e=>{let n=t.resolveRegistration(e);this.register(e,n)});let e=t.lookup("-environment:main");this.register("-environment:main",e,{instantiate:!1});let n=["router:main",yc`-bucket-cache:main`,"-view-registry:main","renderer:-dom","service:-document"];e.isInteractive&&n.push("event_dispatcher:main"),n.forEach(e=>{let n=t.lookup(e);this.register(e,n,{instantiate:!1})})}},du=function(t,e,n){let{get:r}=n;return void 0!==r&&(n.get=function(){let t,n=Kt(this,e),i=Vt(()=>{t=r.call(this)});return ft(n,i),zt(i),t}),n};function pu(...t){if(C(t)){let[e,n,r]=t;return du(0,n,r)}{const e=t[0];let n=function(t,n){return du(0,n,e)};return O(n),n}}O(pu);var fu={Empty:0,dynamicLayout:1,dynamicTag:2,prepareArgs:4,createArgs:8,attributeHook:16,elementHook:32,dynamicScope:64,createCaller:128,updateHook:256,createInstance:512,wrapped:1024,willDestroy:2048,hasSubOwner:4096},gu=fu.Empty;function mu(t){return gu|yu(t,"dynamicLayout")|yu(t,"dynamicTag")|yu(t,"prepareArgs")|yu(t,"createArgs")|yu(t,"attributeHook")|yu(t,"elementHook")|yu(t,"dynamicScope")|yu(t,"createCaller")|yu(t,"updateHook")|yu(t,"createInstance")|yu(t,"wrapped")|yu(t,"willDestroy")|yu(t,"hasSubOwner")}function yu(t,e){return t[e]?fu[e]:gu}function vu(t,e,n){return!!(e&n)}function bu(t,e){return!!(t&e)}function wu(t,e={}){return{hasValue:Boolean(e.hasValue),hasDestroyable:Boolean(e.hasDestroyable),hasScheduledEffect:Boolean(e.hasScheduledEffect)}}function _u(t){return t.capabilities.hasValue}function xu(t){return t.capabilities.hasDestroyable}var Cu=class{constructor(t){this.factory=t}helperManagerDelegates=new WeakMap;undefinedDelegate=null;getDelegateForOwner(t){let e=this.helperManagerDelegates.get(t);if(void 0===e){let{factory:n}=this;e=n(t),this.helperManagerDelegates.set(t,e)}return e}getDelegateFor(t){if(void 0===t){let{undefinedDelegate:t}=this;if(null===t){let{factory:e}=this;this.undefinedDelegate=t=e(void 0)}return t}return this.getDelegateForOwner(t)}getHelper(t){return(e,n)=>{let r=this.getDelegateFor(n);const i=Ie(e),s=r.createHelper(t,i);if(_u(r)){let t=ge(()=>r.getValue(s),null);return xu(r)&&tt(t,r.getDestroyable(s)),t}if(xu(r)){let t=pe(void 0);return tt(t,r.getDestroyable(s)),t}return ce}}},ku=class{capabilities={hasValue:!0,hasDestroyable:!1,hasScheduledEffect:!1};createHelper(t,e){return{fn:t,args:e}}getValue({fn:t,args:e}){return Object.keys(e.named).length>0?t(...e.positional,e.named):t(...e.positional)}getDebugName(t){return t.name?`(helper function ${t.name})`:"(anonymous helper function)"}},Su=new WeakMap,Eu=new WeakMap,Ru=new WeakMap,Lu=Object.getPrototypeOf;function Tu(t,e,n){return t.set(n,e),n}function Pu(t,e){let n=e;for(;null!==n;){const e=t.get(n);if(void 0!==e)return e;n=Lu(n)}}function Iu(t,e){return Tu(Eu,t,e)}function Mu(t){const e=Pu(Eu,t);return void 0===e?null:e}function Au(t,e){return Tu(Ru,t,e)}var Ou=new Cu(()=>new ku);function Nu(t){let e=Pu(Ru,t);return void 0===e&&"function"==typeof t&&(e=Ou),e||null}function zu(t,e){return Tu(Su,t,e)}function Fu(t){const e=Pu(Su,t);return void 0===e?null:e}function Du(t){return void 0!==Pu(Su,t)}function ju(t){return function(t){return"function"==typeof t}(t)||void 0!==Pu(Ru,t)}function Uu(t){return void 0!==Pu(Eu,t)}var Bu=Object.create;function $u(){var t=Bu(null);return t.__=void 0,delete t.__,t}var qu=function(t,e,n){this.path=t,this.matcher=e,this.delegate=n};qu.prototype.to=function(t,e){var n=this.delegate;if(n&&n.willAddRoute&&(t=n.willAddRoute(this.matcher.target,t)),this.matcher.add(this.path,t),e){if(0===e.length)throw new Error("You must have an argument in the function passed to `to`");this.matcher.addChild(this.path,t,e,this.delegate)}};var Vu=function(t){this.routes=$u(),this.children=$u(),this.target=t};function Wu(t,e,n){return function(r,i){var s=t+r;if(!i)return new qu(s,e,n);i(Wu(s,e,n))}}function Hu(t,e,n){for(var r=0,i=0;i0&&47===e.charCodeAt(0)&&(e=e.substr(1));for(var r=e.split("/"),i=void 0,s=void 0,o=0;o2&&"[]"===s.slice(o-2)&&(a=!0,n[s=s.slice(0,o-2)]||(n[s]=[])),l=i[1]?fh(i[1]):""),a?n[s].push(l):n[s]=l}return n},gh.prototype.recognize=function(t){var e,n=[this.rootState],r={},i=!1,s=t.indexOf("#");-1!==s&&(t=t.substr(0,s));var o=t.indexOf("?");if(-1!==o){var a=t.substr(o+1,t.length);t=t.substr(0,o),r=this.parseQueryString(a)}"/"!==t.charAt(0)&&(t="/"+t);var l=t;gh.ENCODE_AND_DECODE_PATH_SEGMENTS?t=Zu(t):(t=decodeURI(t),l=decodeURI(l));var c=t.length;c>1&&"/"===t.charAt(c-1)&&(t=t.substr(0,c-1),l=l.substr(0,l.length-1),i=!0);for(var u=0;u0){let i=t[r-1];if(function(t){if(t&&"object"==typeof t){let e=t;return"queryParams"in e&&Object.keys(e.queryParams).every(t=>"string"==typeof t)}return!1}(i))return n=i.queryParams,e=vh.call(t,0,r-1),[e,n]}return[t,null]}function xh(t){for(let e in t){let n=t[e];if("number"==typeof n)t[e]=String(n);else if(Array.isArray(n))for(let t=0,e=n.length;t{throw this.router.transitionDidError(t,this)},Lh("Handle Abort"))}else this.promise=ia.resolve(this[Th]),this[Ph]={}}then(t,e,n){return this.promise.then(t,e,n)}catch(t,e){return this.promise.catch(t,e)}finally(t,e){return this.promise.finally(t,e)}abort(){this.rollback();let e=new t(this.router,void 0,void 0,void 0);return e.to=this.from,e.from=this.from,e.isAborted=!0,this.router.routeWillChange(e),this.router.routeDidChange(e),this}rollback(){this.isAborted||(Ch(this.router,this.sequence,this.targetName+": transition was aborted"),void 0!==this.intent&&null!==this.intent&&(this.intent.preTransitionState=this.router.state),this.isAborted=!0,this.isActive=!1,this.router.activeTransition=void 0)}redirect(t){this[Mh]=t,this.rollback(),this.router.routeWillChange(t)}retry(){this.abort();let t=this.router.transitionByIntent(this.intent,!1);return null!==this.urlMethod&&t.method(this.urlMethod),t}method(t){return this.urlMethod=t,this}send(t=!1,e,n,r,i){this.trigger(t,e,n,r,i)}trigger(t=!1,e,...n){"string"==typeof t&&(e=t,t=!1),this.router.triggerEvent(this[Th].routeInfos.slice(0,this.resolveIndex+1),t,e,n)}followRedirects(){return this.promise.catch(t=>this[Mh]?this[Mh].followRedirects():ia.reject(t))}toString(){return"Transition (sequence "+this.sequence+")"}log(t){Ch(this.router,this.sequence,t)}};function Oh(t){return Ch(t.router,t.sequence,"detected abort."),mh()}function Nh(t){return"object"==typeof t&&t instanceof Ah&&t.isTransition}var zh=function(){function t(e){let n=Error.call(this,e);this.name="UnrecognizedURLError",this.message=e||"UnrecognizedURL",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=n.stack}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}();function Fh(t,e){let n=t.factoryFor("controller:basic").class;n=class extends n{toString(){return`(generated ${e} controller)`}};let r=`controller:${e}`;return t.register(r,n),t.factoryFor(r)}function Dh(t,e){Fh(t,e);let n=`controller:${e}`;return t.lookup(n)}var jh=/\./g;function Uh(t){let e,n,r=(t=t.slice())[t.length-1];return function(t){if(t&&"object"==typeof t){let e=t.queryParams;if(e&&"object"==typeof e)return Object.keys(e).every(t=>"string"==typeof t)}return!1}(r)?(t.pop(),e=r.queryParams):e={},"string"==typeof t[0]&&(n=t.shift()),{routeName:n,models:t,queryParams:e}}function Bh(t,e){if(e._namesStashed)return;let n,r=e[e.length-1].name,i=t._routerMicrolib.recognizer.handlersFor(r);for(let s=0;s(t[e]=n,t),s)}serializeQueryParamKey(t){return t}serializeQueryParam(t,e,n){return this._router._serializeQueryParam(t,n)}deserializeQueryParam(t,e,n){return this._router._deserializeQueryParam(t,n)}_optionsForQueryParam(t){const e=hr(this,"queryParams");return hr(e,t.urlKey)||hr(e,t.prop)||e[t.urlKey]||e[t.prop]||{}}resetController(t,e,n){return this}exit(t){this.deactivate(t),this.trigger("deactivate",t),this.teardownViews()}_internalReset(t,e){let n=this.controller;n._qpDelegate=hr(this,"_qp").states.inactive,this.resetController(n,t,e)}enter(t){this[Jh]=void 0,this.activate(t),this.trigger("activate",t)}deactivate(t){}activate(t){}intermediateTransitionTo(...t){let[e,...n]=function(t,e){let n,r=Br(t),i=r.mountPoint;if(r.routable&&"string"==typeof e[0]){if(n=e[0],Wh(n))throw new Error("Programmatic transitions by URL cannot be used within an Engine. Please use the route name instead.");n=`${i}.${n}`,e[0]=n}return e}(this,t);this._router.intermediateTransitionTo(e,...n)}refresh(){return this._router._routerMicrolib.refresh(this)}setup(t,e){let n=this.controllerName||this.routeName,r=this.controllerFor(n,!0)??this.generateController(n),i=hr(this,"_qp");if(!this.controller){let t=i.propertyNames;!function(t,e){e.forEach(e=>{if(void 0===I(t,e)){let n=gr(t,e);null===n||"function"!=typeof n.get&&"function"!=typeof n.set||Dn(t,e,pu({get:n.get,set:n.set}))}pn(t,`${e}.[]`,t,t._qpChanged,!1)})}(r,t),this.controller=r}if(r._qpDelegate=i.states.allowOverrides,e){Bh(this._router,e[Th].routeInfos);let t=this._bucketCache,n=e[Ph];i.propertyNames.forEach(e=>{let s=i.map[e];s.values=n;let o=qh(s.route.fullRouteName,s.parts,s.values),a=t.lookup(o,e,s.undecoratedDefaultValue);mr(r,e,a)});let s=nd(this,e[Th]);Dr(r,s)}this.setupController(r,t,e),this._environment.options.shouldRender&&this[Xh](),_n(!1)}_qpChanged(t,e,n){if(!n)return;let r=this._bucketCache,i=qh(n.route.fullRouteName,n.parts,n.values);r.stash(i,t,e)}beforeModel(t){}afterModel(t,e){}redirect(t,e){}contextDidChange(){this.currentModel=this.context}model(t,e){let n,r,i=hr(this,"_qp").map;for(let s in t){if("queryParams"===s||i&&s in i)continue;let t=s.match(/^(.*)_id$/);null!==t&&(n=t[1]),r=!0}if(!n){if(r)return Object.assign({},t);if(e.resolveIndex<1)return;return e[Th].routeInfos[e.resolveIndex-1].context}}deserialize(t,e){return this.model(this._paramsFor(this.routeName,t),e)}setupController(t,e,n){t&&void 0!==e&&mr(t,"model",e)}controllerFor(t,e=!1){let n=Br(this),r=n.lookup(`route:${t}`);return r&&r.controllerName&&(t=r.controllerName),n.lookup(`controller:${t}`)}generateController(t){return Dh(Br(this),t)}modelFor(t){let e,n=Br(this),r=this._router&&this._router._routerMicrolib?this._router._routerMicrolib.activeTransition:void 0;e=n.routable&&void 0!==r?id(n,t):t;let i=n.lookup(`route:${e}`);if(null!=r){let t=i&&i.routeName||e;if(Object.prototype.hasOwnProperty.call(r.resolvedModels,t))return r.resolvedModels[t]}return i?.currentModel}[Jh]=void 0;[Xh](){this[Jh]=function(t){let e,n=Br(t),r=t.routeName,i=n.lookup(`controller:${t.controllerName||r}`),s=t.currentModel,o=n.lookup(`template:${t.templateName||r}`);return e=o?Du(o)?o:o(n):t._topLevelViewTemplate(n),{owner:n,name:r,controller:i,model:s,template:e}}(this),Ps(this._router,"_setOutlets")}willDestroy(){this.teardownViews()}teardownViews(){this[Jh]&&(this[Jh]=void 0,Ps(this._router,"_setOutlets"))}buildRouteInfoMetadata(){}_paramsFor(t,e){return void 0!==this._router._routerMicrolib.activeTransition?this.paramsFor(t):e}get _store(){const t=Br(this);return this.routeName,{find(e,n){let r=t.factoryFor(`model:${e}`);if(r)return r=r.class,r.find(n)}}}static{Kh(this.prototype,"_store",[Xn])}get _qp(){let t={},e=this.controllerName||this.routeName,n=Br(this),r=n.lookup(`controller:${e}`),i=hr(this,"queryParams"),s=Object.keys(i).length>0;r?t=function(t,e){let n={},r={defaultValue:!0,type:!0,scope:!0,as:!0};for(let i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[i]={...t[i],...e[i]},r[i]=!0);for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&!r[i]&&(n[i]={...e[i],...t[i]});return n}(function(t){let e={};for(let n of t)Vh(n,e);return e}(hr(r,"queryParams")||[]),i):s&&(r=Dh(n,e),t=i);let o=[],a={},l=[];for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;if("unknownProperty"===c||"_super"===c)continue;let n,i=t[c],s=i.scope||"model";"controller"===s&&(n=[]);let u=i.as||this.serializeQueryParamKey(c),h=hr(r,c);h=rd(h);let d=i.type||Sc(h),p=this.serializeQueryParam(h,u,d),f=`${e}:${c}`,g={undecoratedDefaultValue:hr(r,c),defaultValue:h,serializedDefaultValue:p,serializedValue:p,type:d,urlKey:u,prop:c,scopedPropertyName:f,controllerName:e,route:this,parts:n,values:null,scope:s};a[c]=a[u]=a[f]=g,o.push(g),l.push(c)}return{qps:o,map:a,propertyNames:l,states:{inactive:(t,e)=>{let n=a[t];this._qpChanged(t,e,n)},active:(t,e)=>{let n=a[t];return this._qpChanged(t,e,n),this._activeQPChanged(n,e)},allowOverrides:(t,e)=>{let n=a[t];return this._qpChanged(t,e,n),this._updatingQPChanged(n)}}}}static{Kh(this.prototype,"_qp",[Xn])}};function td(t){return t[Jh]}function ed(t,e){if(e.fullQueryParams)return e.fullQueryParams;let n=e.routeInfos.every(t=>t.route),r={...e.queryParams};return t._deserializeQueryParams(e.routeInfos,r),n&&(e.fullQueryParams=r),r}function nd(t,e){e.queryParamsFor=e.queryParamsFor||{};let n=t.fullRouteName,r=e.queryParamsFor[n];if(r)return r;let i=ed(t._router,e),s=e.queryParamsFor[n]={},o=hr(t,"_qp").qps;for(let a of o){let t=a.prop in i;s[a.prop]=t?i[a.prop]:rd(a.defaultValue)}return s}function rd(t){return Array.isArray(t)?Yc(t.slice()):t}function id(t,e){if(t.routable){let n=t.mountPoint;return"application"===e?n:`${n}.${e}`}return e}var sd=Qh.prototype.serialize;Qh.reopen({mergedProperties:["queryParams"],queryParams:{},templateName:null,controllerName:null,send(...t){if(this._router&&this._router._routerMicrolib||!iu())this._router.send(...t);else{let e=t.shift(),n=this.actions[e];if(n)return n.apply(this,t)}},actions:{queryParamsDidChange(t,e,n){let r=hr(this,"_qp").map,i=Object.keys(t).concat(Object.keys(n));for(let s of i){let t=r[s];if(t&&hr(this._optionsForQueryParam(t),"refreshModel")&&this._router.currentState){this.refresh();break}}return!0},finalizeQueryParamChange(t,e,n){if("application"!==this.fullRouteName)return!0;if(!n)return;let r,i=n[Th].routeInfos,s=this._router,o=s._queryParamsFor(i),a=s._qpUpdates,l=!1;Bh(s,i);for(let c of o.qps){let i,s,o=c.route,u=o.controller,h=c.urlKey in t&&c.urlKey;if(a.has(c.urlKey)?(i=hr(u,c.prop),s=o.serializeQueryParam(i,c.urlKey,c.type)):h?(s=t[h],void 0!==s&&(i=o.deserializeQueryParam(s,c.urlKey,c.type))):(s=c.serializedDefaultValue,i=rd(c.defaultValue)),u._qpDelegate=hr(o,"_qp").states.inactive,s!==c.serializedValue){if(n.queryParamsOnly&&!1!==r){let t=hr(o._optionsForQueryParam(c),"replace");t?r=!0:!1===t&&(r=!1)}mr(u,c.prop,i),l=!0}c.serializedValue=s,c.serializedDefaultValue!==s&&e.push({value:s,visible:!0,key:h||c.urlKey})}!0===l&&_n(!1),r&&n.method("replace"),o.qps.forEach(t=>{let e=hr(t.route,"_qp");t.route.controller._qpDelegate=hr(e,"states.active")}),s._qpUpdates.clear()}}});var od=0;function ad(t){return"function"==typeof t}var ld=class t{parent;matches;enableLoadingSubstates;explicitIndex=!1;options;constructor(t=null,e){this.parent=t,this.enableLoadingSubstates=Boolean(e&&e.enableLoadingSubstates),this.matches=[],this.options=e}route(e,n,r){let i,s=null,o=`/_unused_dummy_error_path_route_${e}/:error`;if(ad(n)?(i={},s=n):ad(r)?(i=n,s=r):i=n||{},this.enableLoadingSubstates&&(ud(this,`${e}_loading`,{resetNamespace:i.resetNamespace}),ud(this,`${e}_error`,{resetNamespace:i.resetNamespace,path:o})),s){let n=cd(this,e,i.resetNamespace),r=new t(n,this.options);ud(r,"loading"),ud(r,"error",{path:o}),s.call(r),ud(this,e,i,r.generate())}else ud(this,e,i)}push(t,e,n,r){let i=e.split(".");if(this.options.engineInfo){let t=e.slice(this.options.engineInfo.fullName.length+1),n=Object.assign({localFullName:t},this.options.engineInfo);r&&(n.serializeMethod=r),this.options.addRouteForEngine(e,n)}else if(r)throw new Error(`Defining a route serializer on route '${e}' outside an Engine is not allowed.`);""!==t&&"/"!==t&&"index"!==i[i.length-1]||(this.explicitIndex=!0),this.matches.push(t,e,n)}generate(){let t=this.matches;return this.explicitIndex||this.route("index",{path:"/"}),e=>{for(let n=0;n0){let i=Object.assign({},n);return this.emberRouter._prepareQueryParams(t,e,i),Hh(i,r.queryParams)}return!0}},dd=new WeakMap;function pd(t,e={},n={includeAttributes:!1,localizeMapUpdates:!1}){const r=new WeakMap;return t.map((i,s)=>{let{name:o,params:a,paramNames:l,context:c,route:u}=i,h=i;if(dd.has(h)&&n.includeAttributes){let t=dd.get(h);t=function(t,e){let n={get metadata(){return gd(t)}};return!Object.isExtensible(e)||e.hasOwnProperty("metadata")?Object.freeze(Object.assign({},e,n)):Object.assign(e,n)}(u,t);let e=fd(t,c);return r.set(h,t),n.localizeMapUpdates||dd.set(h,e),e}const d=n.localizeMapUpdates?r:dd;let p={find(e,n){let r,i=[];3===e.length&&(i=t.map(t=>d.get(t)));for(let s=0;t.length>s;s++)if(r=d.get(t[s]),e.call(n,r,s,i))return r},get name(){return o},get paramNames(){return l},get metadata(){return gd(i.route)},get parent(){let e=t[s-1];return void 0===e?null:d.get(e)},get child(){let e=t[s+1];return void 0===e?null:d.get(e)},get localName(){let t=this.name.split(".");return t[t.length-1]},get params(){return a},get queryParams(){return e}};return n.includeAttributes&&(p=fd(p,c)),r.set(i,p),n.localizeMapUpdates||dd.set(i,p),p})}function fd(t,e){let n={get attributes(){return e}};return!Object.isExtensible(t)||t.hasOwnProperty("attributes")?Object.freeze(Object.assign({},t,n)):Object.assign(t,n)}function gd(t){return null!=t&&void 0!==t.buildRouteInfoMetadata?t.buildRouteInfoMetadata():null}var md=class{_routePromise=void 0;_route=null;router;params={};isResolved=!1;constructor(t,e,n,r){this.name=e,this.paramNames=n,this.router=t,r&&this._processRoute(r)}getModel(t){return ia.resolve(this.context)}serialize(t){return this.params||{}}resolve(t){return ia.resolve(this.routePromise).then(e=>(yh(t),e)).then(()=>this.runBeforeModelHook(t)).then(()=>yh(t)).then(()=>this.getModel(t)).then(e=>(yh(t),e)).then(e=>this.runAfterModelHook(t,e)).then(e=>this.becomeResolved(t,e))}becomeResolved(t,e){let n,r=this.serialize(e);t&&(this.stashResolvedModel(t,e),t[Ph]=t[Ph]||{},t[Ph][this.name]=r);let i=e===this.context;!("context"in this)&&i||(n=e);let s=dd.get(this),o=new yd(this.router,this.name,this.paramNames,r,this.route,n);return void 0!==s&&dd.set(o,s),o}shouldSupersede(t){if(!t)return!0;let e=t.context===this.context;return t.name!==this.name||"context"in this&&!e||this.hasOwnProperty("params")&&!function(t,e){if(t===e)return!0;if(!t||!e)return!1;for(let n in t)if(t.hasOwnProperty(n)&&t[n]!==e[n])return!1;return!0}(this.params,t.params)}get route(){return null!==this._route?this._route:this.fetchRoute()}set route(t){this._route=t}get routePromise(){return this._routePromise||this.fetchRoute(),this._routePromise}set routePromise(t){this._routePromise=t}log(t,e){t.log&&t.log(this.name+": "+e)}updateRoute(t){return t._internalName=this.name,this.route=t}runBeforeModelHook(t){let e;return t.trigger&&t.trigger(!0,"willResolveModel",t,this.route),this.route&&void 0!==this.route.beforeModel&&(e=this.route.beforeModel(t)),Nh(e)&&(e=null),ia.resolve(e)}runAfterModelHook(t,e){let n,r=this.name;var i;return this.stashResolvedModel(t,e),void 0!==this.route&&void 0!==this.route.afterModel&&(n=this.route.afterModel(e,t)),n=Nh(i=n)?null:i,ia.resolve(n).then(()=>t.resolvedModels[r])}stashResolvedModel(t,e){t.resolvedModels=t.resolvedModels||{},t.resolvedModels[this.name]=e}fetchRoute(){let t=this.router.getRoute(this.name);return this._processRoute(t)}_processRoute(t){return this.routePromise=ia.resolve(t),function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.then}(t)?(this.routePromise=this.routePromise.then(t=>this.updateRoute(t)),void(this.route=void 0)):t?this.updateRoute(t):void 0}},yd=class extends md{isResolved;context;constructor(t,e,n,r,i,s){super(t,e,n,i),this.params=r,this.isResolved=!0,this.context=s}resolve(t){return t&&t.resolvedModels&&(t.resolvedModels[this.name]=this.context),ia.resolve(this)}},vd=class extends md{params={};constructor(t,e,n,r,i){super(t,e,n,i),r&&(this.params=r)}getModel(t){let e=this.params;t&&t[Ih]&&(e={},wh(e,this.params),e.queryParams=t[Ih]);let n,r=this.route;return r.deserialize?n=r.deserialize(e,t):r.model&&(n=r.model(e,t)),n&&Nh(n)&&(n=void 0),ia.resolve(n)}},bd=class extends md{serializer;constructor(t,e,n,r){super(t,e,n),this.context=r,this.serializer=this.router.getSerializer(e)}getModel(t){return void 0!==this.router.log&&this.router.log(this.name+": resolving provided model"),super.getModel(t)}serialize(t){let{paramNames:e,context:n}=this;t||(t=n);let r={};if(kh(t))return r[e[0]]=t,r;if(this.serializer)return this.serializer.call(null,t,e);if(void 0!==this.route&&this.route.serialize)return this.route.serialize(t,e);if(1!==e.length)return;let i=e[0];return/_id$/.test(i)?r[i]=t.id:r[i]=t,r}},wd=class{data;router;constructor(t,e={}){this.router=t,this.data=e}preTransitionState};function _d(t,e,n){let r=t.routeInfos,i=e.resolveIndex>=r.length?r.length-1:e.resolveIndex,s=e.isAborted;throw new Sd(n,t.routeInfos[i].route,s,t)}function xd(t,e){if(e.resolveIndex===t.routeInfos.length)return;let n=t.routeInfos[e.resolveIndex],r=Cd.bind(null,t,e);return n.resolve(e).then(r,null,t.promiseLabel("Proceed"))}function Cd(t,e,n){let r=t.routeInfos[e.resolveIndex].isResolved;if(t.routeInfos[e.resolveIndex++]=n,!r){let{route:t}=n;void 0!==t&&t.redirect&&t.redirect(n.context,e)}return yh(e),xd(t,e)}var kd=class{routeInfos=[];queryParams={};params={};promiseLabel(t){let e="";return Sh(this.routeInfos,function(t){return""!==e&&(e+="."),e+=t.name,!0}),Lh("'"+e+"': "+t)}resolve(t){let e=this.params;Sh(this.routeInfos,t=>(e[t.name]=t.params||{},!0)),t.resolveIndex=0;let n=xd.bind(null,this,t),r=_d.bind(null,this,t);return ia.resolve(null,this.promiseLabel("Start transition")).then(n,null,this.promiseLabel("Resolve route")).catch(r,this.promiseLabel("Handle error")).then(()=>this)}},Sd=class{constructor(t,e,n,r){this.error=t,this.route=e,this.wasAborted=n,this.state=r}},Ed=class extends wd{name;pivotHandler;contexts;queryParams;preTransitionState=void 0;constructor(t,e,n,r=[],i={},s){super(t,s),this.name=e,this.pivotHandler=n,this.contexts=r,this.queryParams=i}applyToState(t,e){let n=this.router.recognizer.handlersFor(this.name),r=n[n.length-1].handler;return this.applyToHandlers(t,n,r,e,!1)}applyToHandlers(t,e,n,r,i){let s,o,a=new kd,l=this.contexts.slice(0),c=e.length;if(this.pivotHandler)for(s=0,o=e.length;s=0;--s){let o=e[s],u=o.handler,h=t.routeInfos[s],d=null;if(d=o.names.length>0?s>=c?this.createParamHandlerInfo(u,o.names,l,h):this.getHandlerInfoForDynamicSegment(u,o.names,l,h,n,s):this.createParamHandlerInfo(u,o.names,l,h),i){d=d.becomeResolved(null,d.context);let t=h&&h.context;o.names.length>0&&void 0!==h.context&&d.context===t&&(d.params=h&&h.params),d.context=t}let p=h;(s>=c||d.shouldSupersede(h))&&(c=Math.min(s,c),p=d),r&&!i&&(p=p.becomeResolved(null,p.context)),a.routeInfos.unshift(p)}if(l.length>0)throw new Error("More context objects were passed than there are dynamic segments for the route: "+n);return r||this.invalidateChildren(a.routeInfos,c),wh(a.queryParams,this.queryParams||{}),r&&t.queryParams&&wh(a.queryParams,t.queryParams),a}invalidateChildren(t,e){for(let n=e,r=t.length;n0){if(o=n[n.length-1],kh(o))return this.createParamHandlerInfo(t,e,n,r);n.pop()}else{if(r&&r.name===t)return r;if(!this.preTransitionState)return r;o=this.preTransitionState.routeInfos[s]?.context}return new bd(this.router,t,e,o)}createParamHandlerInfo(t,e,n,r){let i={},s=e.length,o=[];for(;s--;){let a=r&&t===r.name&&r.params||{},l=n[n.length-1],c=e[s];kh(l)?i[c]=String(n.pop()):a.hasOwnProperty(c)?i[c]=a[c]:o.push(c)}if(o.length>0)throw new Error(`You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route ${t}. Missing params: ${o}`);return new vd(this.router,t,e,i)}},Rd=class extends wd{preTransitionState;url;constructor(t,e,n){super(t,n),this.url=e,this.preTransitionState=void 0}applyToState(t){let e,n,r=new kd,i=this.router.recognizer.recognize(this.url);if(!i)throw new zh(this.url);let s=!1,o=this.url;function a(t){if(t&&t.inaccessibleByURL)throw new zh(o);return t}for(e=0,n=i.length;e=0&&r;--n){let i=e[n],s=i.handler;t.add(e,{as:s}),r="/"===i.path||""===i.path||".index"===s.slice(-6)}})}hasRoute(t){return this.recognizer.hasRoute(t)}queryParamsTransition(t,e,n,r){if(this.fireQueryParamDidChange(r,t),!e&&this.activeTransition)return this.activeTransition;{let t=new Ah(this,void 0,void 0);return t.queryParamsOnly=!0,n.queryParams=this.finalizeQueryParamChange(r.routeInfos,r.queryParams,t),t[Ih]=r.queryParams,this.toReadOnlyInfos(t,r),this.routeWillChange(t),t.promise=t.promise.then(e=>(t.isAborted||(this._updateURL(t,n),this.didTransition(this.currentRouteInfos),this.toInfos(t,r.routeInfos,!0),this.routeDidChange(t)),e),null,Lh("Transition complete")),t}}transitionByIntent(t,e){try{return this.getTransitionByIntent(t,e)}catch(n){return new Ah(this,t,void 0,n,void 0)}}recognize(t){let e=new Rd(this,t),n=this.generateNewState(e);if(null===n)return n;let r=pd(n.routeInfos,n.queryParams,{includeAttributes:!1,localizeMapUpdates:!0});return r[r.length-1]}recognizeAndLoad(t){let e=new Rd(this,t),n=this.generateNewState(e);if(null===n)return ia.reject(`URL ${t} was not recognized`);let r=new Ah(this,e,n,void 0);return r.then(()=>{let t=pd(n.routeInfos,r[Ih],{includeAttributes:!0,localizeMapUpdates:!1});return t[t.length-1]})}generateNewState(t){try{return t.applyToState(this.state,!1)}catch(e){return null}}getTransitionByIntent(t,e){let n,r=Boolean(this.activeTransition),i=r?this.activeTransition[Th]:this.state,s=t.applyToState(i,e),o=Eh(i.queryParams,s.queryParams);if(Td(s.routeInfos,i.routeInfos)){if(o){let t=this.queryParamsTransition(o,r,i,s);return t.queryParamsOnly=!0,t}return this.activeTransition||new Ah(this,void 0,void 0)}if(e){let t=new Ah(this,void 0,s);return t.isIntermediate=!0,this.toReadOnlyInfos(t,s),this.setupContexts(s,t),this.routeWillChange(t),this.activeTransition}return n=new Ah(this,t,s,void 0,this.activeTransition),function(t,e){if(t.length!==e.length)return!1;for(let n=0,r=t.length;nthis.finalizeTransition(n,t),null,Lh("Settle transition promise when transition is finalized")),r||this.notifyExistingHandlers(s,n),this.fireQueryParamDidChange(s,o),n}doTransition(t,e=[],n=!1){let r,i=e[e.length-1],s={};if(i&&Object.prototype.hasOwnProperty.call(i,"queryParams")&&(s=e.pop().queryParams),void 0===t){Ch(this,"Updating query params");let{routeInfos:t}=this.state;r=new Ed(this,t[t.length-1].name,void 0,[],s)}else"/"===t.charAt(0)?(Ch(this,"Attempting URL transition to "+t),r=new Rd(this,t)):(Ch(this,"Attempting transition to "+t),r=new Ed(this,t,void 0,e,s));return this.transitionByIntent(r,n)}finalizeTransition(t,e){try{Ch(t.router,t.sequence,"Resolved all models on destination route; finalizing transition.");let n=e.routeInfos;return this.setupContexts(e,t),t.isAborted?(this.state.routeInfos=this.currentRouteInfos,ia.reject(Oh(t))):(this._updateURL(t,e),t.isActive=!1,this.activeTransition=void 0,this.triggerEvent(this.currentRouteInfos,!0,"didTransition",[]),this.didTransition(this.currentRouteInfos),this.toInfos(t,e.routeInfos,!0),this.routeDidChange(t),Ch(this,t.sequence,"TRANSITION COMPLETE."),n[n.length-1].route)}catch(r){if("object"!=typeof(n=r)||null===n||"TRANSITION_ABORTED"!==n.code){let e=t[Th].routeInfos;t.trigger(!0,"error",r,t,e[e.length-1].route),t.abort()}throw r}var n}setupContexts(t,e){let n,r,i,s=this.partitionRoutes(this.state,t);for(n=0,r=s.exited.length;n=0;--o){let t=r[o];wh(s,t.params),t.route.inaccessibleByURL&&(n=null)}if(n){s.queryParams=t._visibleQueryParams||e.queryParams;let r=this.recognizer.generate(i,s),o=t.isCausedByInitialTransition,a="replace"===n&&!t.isCausedByAbortingTransition,l=t.queryParamsOnly&&"replace"===n,c="replace"===n&&t.isCausedByAbortingReplaceTransition;o||a||l||c?this.replaceURL(r):this.updateURL(r)}}finalizeQueryParamChange(t,e,n){for(let s in e)e.hasOwnProperty(s)&&null===e[s]&&delete e[s];let r=[];this.triggerEvent(t,!0,"finalizeQueryParamChange",[e,r,n]),n&&(n._visibleQueryParams={});let i={};for(let s=0,o=r.length;s0){let n=pd(e,Object.assign({},this._lastQueryParams),{includeAttributes:!0,localizeMapUpdates:!1});t.from=n[n.length-1]||null}}toInfos(t,e,n=!1){if(void 0!==t&&e.length>0){let r=pd(e,Object.assign({},t[Ih]),{includeAttributes:n,localizeMapUpdates:!1});t.to=r[r.length-1]||null}}notifyExistingHandlers(t,e){let n,r,i,s,o=this.state.routeInfos;for(r=o.length,n=0;n{t.setURL(n),mr(e,"currentURL",n)})}didTransition(t){e.didTransition(t)}willTransition(t,n){e.willTransition(t,n)}triggerEvent(t,n,r,i){return jd.bind(e)(t,n,r,i)}routeWillChange(t){e.trigger("routeWillChange",t),e._routerService.trigger("routeWillChange",t),t.isIntermediate&&e.set("currentRoute",t.to)}routeDidChange(t){e.set("currentRoute",t.to),Ps(()=>{e.trigger("routeDidChange",t),e._routerService.trigger("routeDidChange",t)})}transitionDidError(t,n){return t.wasAborted||n.isAborted?Oh(n):(n.trigger(!1,"error",t.error,n,t.route),e._isErrorHandled(t.error)?(n.rollback(),this.routeDidChange(n),t.error):(n.abort(),t.error))}replaceURL(n){t.replaceURL?Ps(()=>{t.replaceURL(n),mr(e,"currentURL",n)}):this.updateURL(n)}},s=this.constructor.dslCallbacks||[Id],o=this._buildDSL();o.route("application",{path:"/",resetNamespace:!0,overrideNameAssertion:!0},function(){for(let t=0;tn.factoryFor(`route-map:${t}`),addRouteForEngine(t,n){e._engineInfoByRoute[t]||(e._engineInfoByRoute[t]=n)}})}_resetQueuedQueryParameterChanges(){this._queuedQPChanges={}}_hasModuleBasedResolver(){let t=hr(Io(this),"application.__registry__.resolver.moduleBasedResolver");return Boolean(t)}startRouting(){if(this.setupRouter()){let t=hr(this,"initialURL");void 0===t&&(t=hr(this,"location").getURL());let e=this.handleURL(t);if(e&&e.error)throw e.error}}setupRouter(){if(this._didSetupRouter)return!1;this._didSetupRouter=!0,this._setupLocation();let t=hr(this,"location");return!hr(t,"cancelRouterSetup")&&(this._initRouterJs(),t.onUpdateURL(t=>{this.handleURL(t)}),!0)}_setOutlets(){if(this.isDestroying||this.isDestroyed)return;let t=this._routerMicrolib.currentRouteInfos;if(!t)return;let e=null,n=null;for(let r of t){let t=td(r.route);if(!t)break;{let r={render:t,outlets:{main:void 0}};n?n.outlets.main=r:e=r,n=r}}if(null!==e)if(this._toplevelView)this._toplevelView.setOutletState(e);else{let t=Io(this),n=t.factoryFor("view:-outlet"),r=t.lookup("application:main"),i=t.lookup("-environment:main"),s=t.lookup("template:-outlet");this._toplevelView=n.create({environment:i,template:s,application:r}),this._toplevelView.setOutletState(e),t.lookup("-application-instance:main").didCreateRootView(this._toplevelView)}}handleURL(t){let e=t.split(/#(.+)?/)[0];return this._doURLTransition("handleURL",e)}_doURLTransition(t,e){this._initialTransitionStarted=!0;let n=this._routerMicrolib[t](e||"/");return $d(n,this),n}transitionTo(...t){if(Wh(t[0]))return this._doURLTransition("transitionTo",t[0]);let{routeName:e,models:n,queryParams:r}=Uh(t);return this._doTransition(e,n,r)}intermediateTransitionTo(t,...e){this._routerMicrolib.intermediateTransitionTo(t,...e),Bd(this)}replaceWith(...t){return this.transitionTo(...t).method("replace")}generate(t,...e){let n=this._routerMicrolib.generate(t,...e);return this.location.formatURL(n)}isActive(t){return this._routerMicrolib.isActive(t)}isActiveIntent(t,e,n){return this.currentState.isActiveIntent(t,e,n)}send(t,...e){this._routerMicrolib.trigger(t,...e)}hasRoute(t){return this._routerMicrolib.hasRoute(t)}reset(){this._didSetupRouter=!1,this._initialTransitionStarted=!1,this._routerMicrolib&&this._routerMicrolib.reset()}willDestroy(){this._toplevelView&&(this._toplevelView.destroy(),this._toplevelView=null),super.willDestroy(),this.reset();let t=this._engineInstances;for(let e in t){let n=t[e];for(let t in n)_s(n[t],"destroy")}}_activeQPChanged(t,e){this._queuedQPChanges[t]=e,Ps(this,this._fireQueryParamTransition)}_updatingQPChanged(t){this._qpUpdates.add(t)}_fireQueryParamTransition(){this.transitionTo({queryParams:this._queuedQPChanges}),this._resetQueuedQueryParameterChanges()}_setupLocation(){let t=this.location,e=this.rootURL,n=Io(this);"string"==typeof t&&(t=mr(this,"location",n.lookup(`location:${t}`))),null!==t&&"object"==typeof t&&(e&&mr(t,"rootURL",e),"function"==typeof t.initState&&t.initState())}_serializeQueryParams(t,e){qd(this,t,e,(t,n,r)=>{if(r)delete e[t],e[r.urlKey]=r.route.serializeQueryParam(n,r.urlKey,r.type);else{if(void 0===n)return;e[t]=this._serializeQueryParam(n,Sc(n))}})}_serializeQueryParam(t,e){return null==t?t:"array"===e?JSON.stringify(t):`${t}`}_deserializeQueryParams(t,e){qd(this,t,e,(t,n,r)=>{r&&(delete e[t],e[r.prop]=r.route.deserializeQueryParam(n,r.urlKey,r.type))})}_deserializeQueryParam(t,e){return null==t?t:"boolean"===e?"true"===t:"number"===e?Number(t).valueOf():"array"===e?Yc(JSON.parse(t)):t}_pruneDefaultQueryParamValues(t,e){let n=this._queryParamsFor(t);for(let r in e){let t=n.map[r];t&&t.serializedDefaultValue===e[r]&&delete e[r]}}_doTransition(t,e,n,r){let i=t||function(t){let e=t.activeTransition?t.activeTransition[Th].routeInfos:t.state.routeInfos;return e[e.length-1].name}(this._routerMicrolib);this._initialTransitionStarted=!0;let s={};this._processActiveTransitionQueryParams(i,e,s,n),Object.assign(s,n),this._prepareQueryParams(i,e,s,Boolean(r));let o=this._routerMicrolib.transitionTo(i,...e,{queryParams:s});return $d(o,this),o}_processActiveTransitionQueryParams(t,e,n,r){if(!this._routerMicrolib.activeTransition)return;let i={},s=this._qpUpdates,o=ed(this,this._routerMicrolib.activeTransition[Th]);for(let a in o)s.has(a)||(i[a]=o[a]);this._fullyScopeQueryParams(t,e,r),this._fullyScopeQueryParams(t,e,i),Object.assign(n,i)}_prepareQueryParams(t,e,n,r){let i=Ud(this,t,e);this._hydrateUnsuppliedQueryParams(i,n,Boolean(r)),this._serializeQueryParams(i.routeInfos,n),r||this._pruneDefaultQueryParamValues(i.routeInfos,n)}_getQPMeta(t){let e=t.route;return e&&hr(e,"_qp")}_queryParamsFor(t){let e=t[t.length-1].name,n=this._qpCache[e];if(void 0!==n)return n;let r,i=!0,s={},o=[];for(let l of t)if(r=this._getQPMeta(l),r){for(let t of r.qps)o.push(t);Object.assign(s,r.map)}else i=!1;let a={qps:o,map:s};return i&&(this._qpCache[e]=a),a}_fullyScopeQueryParams(t,e,n){let r,i=Ud(this,t,e).routeInfos;for(let s of i)if(r=this._getQPMeta(s),r)for(let t of r.qps){let e=t.prop in n&&t.prop||t.scopedPropertyName in n&&t.scopedPropertyName||t.urlKey in n&&t.urlKey;e&&e!==t.scopedPropertyName&&(n[t.scopedPropertyName]=n[e],delete n[e])}}_hydrateUnsuppliedQueryParams(t,e,n){let r,i,s,o=t.routeInfos,a=this._bucketCache;for(let l of o)if(r=this._getQPMeta(l),r)for(let n=0,o=r.qps.length;n=0;--n){let r=t[n],i=r.route;if(void 0!==i&&!0!==e(i,r))return}}var Nd={willResolveModel(t,e,n){this._scheduleLoadingEvent(e,n)},error(t,e,n){let r=this,i=t[t.length-1];Od(t,(t,n)=>{if(n!==i){let n=Fd(t,"error");if(n)return r._markErrorAsHandled(e),r.intermediateTransitionTo(n,e),!1}let s=zd(t,"error");return!s||(r._markErrorAsHandled(e),r.intermediateTransitionTo(s,e),!1)}),function(t,e){let n,r=[];n=t&&"object"==typeof t&&"object"==typeof t.errorThrown?t.errorThrown:t,e&&r.push(e),n&&(n.message&&r.push(n.message),n.stack&&r.push(n.stack),"string"==typeof n&&r.push(n)),console.error(...r)}(e,`Error while processing route: ${n.targetName}`)},loading(t,e){let n=this,r=t[t.length-1];Od(t,(t,i)=>{if(i!==r){let e=Fd(t,"loading");if(e)return n.intermediateTransitionTo(e),!1}let s=zd(t,"loading");return s?(n.intermediateTransitionTo(s),!1):e.pivotHandler!==t})}};function zd(t,e){let n=Io(t),{routeName:r,fullRouteName:i,_router:s}=t,o=`${i}_${e}`;return Dd(n,s,`${r}_${e}`,o)?o:""}function Fd(t,e){let n=Io(t),{routeName:r,fullRouteName:i,_router:s}=t,o="application"===i?e:`${i}.${e}`;return Dd(n,s,"application"===r?e:`${r}.${e}`,o)?o:""}function Dd(t,e,n,r){let i=e.hasRoute(r),s=t.factoryFor(`template:${n}`)||t.factoryFor(`route:${n}`);return i&&s}function jd(t,e,n,r){if(!t){if(e)return;throw new Error(`Can't trigger action '${n}' because your app hasn't finished transitioning into its first route. To trigger an action on destination routes during a transition, you can call \`.send()\` on the \`Transition\` object passed to the \`model/beforeModel/afterModel\` hooks.`)}let i,s,o,a=!1;for(let c=t.length-1;c>=0;c--)if(i=t[c],s=i.route,o=s&&s.actions&&s.actions[n],o){if(!0!==o.apply(s,r))return void("error"===n&&s._router._markErrorAsHandled(r[0]));a=!0}let l=Nd[n];if(l)l.call(this,t,...r);else if(!a&&!e)throw new Error(`Nothing handled the action '${n}'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.`)}function Ud(t,e,n){let r=t._routerMicrolib.applyIntent(e,n),{routeInfos:i,params:s}=r;for(let o of i)o.isResolved?s[o.name]=o.params:s[o.name]=o.serialize(o.context);return r}function Bd(t){let e=t._routerMicrolib.currentRouteInfos;if(0===e.length)return;let n=Ad._routePath(e),r=e[e.length-1].name,i=t.location.getURL();mr(t,"currentPath",n),mr(t,"currentRouteName",r),mr(t,"currentURL",i)}function $d(t,e){let n=new hd(e,e._routerMicrolib,t[Th]);e.currentState||e.set("currentState",n),e.set("targetState",n),t.promise=t.catch(t=>{if(!e._isErrorHandled(t))throw t;e._clearHandledError(t)},"Transition Error")}function qd(t,e,n,r){let i=t._queryParamsFor(e);for(let s in n)Object.prototype.hasOwnProperty.call(n,s)&&r(s,n[s],i.map[s])}function Vd(t){return void 0!==t.hash?t.hash.substring(0):""}Ad.reopen({didTransition:function(){Bd(this),this._cancelSlowTransitionTimer(),this.notifyPropertyChange("url"),this.set("currentState",this.targetState)},willTransition:function(){},rootURL:"/",location:"hash",url:Xn(function(){let t=hr(this,"location");if("string"!=typeof t)return t.getURL()})});var Wd=class extends Bl{_hashchangeHandler;_location;init(){this.location=this._location??window.location,this._hashchangeHandler=void 0}getHash(){return Vd(this.location)}getURL(){let t=this.getHash().substring(1),e=t;return"/"!==e[0]&&(e="/",t&&(e+=`#${t}`)),e}setURL(t){this.location.hash=t,this.lastSetURL=t}replaceURL(t){this.location.replace(`#${t}`),this.lastSetURL=t}lastSetURL=null;onUpdateURL(t){this._removeEventListener(),this._hashchangeHandler=Cs(this,function(){let e=this.getURL();this.lastSetURL!==e&&(this.lastSetURL=null,t(e))}),window.addEventListener("hashchange",this._hashchangeHandler)}formatURL(t){return`#${t}`}willDestroy(){this._removeEventListener()}_removeEventListener(){this._hashchangeHandler&&window.removeEventListener("hashchange",this._hashchangeHandler)}};function Hd(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){let e,n;return e=16*Math.random()|0,n="x"===t?e:3&e|8,n.toString(16)})}var Gd=class extends Bl{history;_popstateHandler;rootURL="/";getHash(){return Vd(this.location)}init(){this._super(...arguments);let t=document.querySelector("base"),e="";null!==t&&t.hasAttribute("href")&&(e=t.getAttribute("href")??""),this.baseURL=e,this.location=this.location??window.location,this._popstateHandler=void 0}initState(){let t=this.history??window.history;this.history=t;let{state:e}=t,n=this.formatURL(this.getURL());e&&e.path===n||this.replaceState(n)}getURL(){let{location:t,rootURL:e,baseURL:n}=this,r=t.pathname;e=e.replace(/\/$/,""),n=n.replace(/\/$/,"");let i=r.replace(new RegExp(`^${n}(?=/|$)`),"").replace(new RegExp(`^${e}(?=/|$)`),"").replace(/\/\//g,"/");return i+=(t.search||"")+this.getHash(),i}setURL(t){let{state:e}=this.history;t=this.formatURL(t),e&&e.path===t||this.pushState(t)}replaceURL(t){let{state:e}=this.history;t=this.formatURL(t),e&&e.path===t||this.replaceState(t)}pushState(t){let e={path:t,uuid:Hd()};this.history.pushState(e,"",t)}replaceState(t){let e={path:t,uuid:Hd()};this.history.replaceState(e,"",t)}onUpdateURL(t){this._removeEventListener(),this._popstateHandler=()=>{t(this.getURL())},window.addEventListener("popstate",this._popstateHandler)}formatURL(t){let{rootURL:e,baseURL:n}=this;return""!==t?(e=e.replace(/\/$/,""),n=n.replace(/\/$/,"")):"/"===n[0]&&"/"===e[0]&&(n=n.replace(/\/$/,"")),n+e+t}willDestroy(){this._removeEventListener()}_removeEventListener(){this._popstateHandler&&window.removeEventListener("popstate",this._popstateHandler)}},Zd=class extends Bl{updateCallback;initState(){this._super(...arguments);let{rootURL:t}=this}getURL(){let{path:t,rootURL:e}=this;return e=e.replace(/\/$/,""),t.replace(new RegExp(`^${e}(?=/|$)`),"")}setURL(t){this.path=t}onUpdateURL(t){this.updateCallback=t}handleURL(t){this.path=t,this.updateCallback&&this.updateCallback(t)}formatURL(t){let{rootURL:e}=this;return""!==t&&(e=e.replace(/\/$/,"")),e+t}};function Kd(t,e){return(t,...n)=>{let r=function(t,e){let n=[];function r(t){n.push(t)}for(let i of e)zn(i,r);return n}(0,[t,...n]);return Xn(...r,function(){let t=r.length-1;for(let n=0;nt),Kd(0,t=>!t);var Xd=/[ _]/g,Jd=new or(1e3,t=>function(t){return ip.get(t)}(t).replace(Xd,"-")),Qd=/^(-|_)+(.)?/,tp=/(.)(-|_|\.|\s)+(.)?/g,ep=/(^|\/|\.)([a-z])/g,np=new or(1e3,t=>{let e=(t,e,n)=>n?`_${n.toUpperCase()}`:"",n=(t,e,n,r)=>e+(r?r.toUpperCase():""),r=t.split("/");for(let i=0;it.toUpperCase())}),rp=/([a-z\d])([A-Z])/g,ip=new or(1e3,t=>t.replace(rp,"$1_$2").toLowerCase());function sp(t){return Jd.get(t)}function op(t){return Object.hasOwnProperty.call(t.since,"enabled")||N._ALL_DEPRECATIONS_ENABLED}var ap=parseFloat(N._OVERRIDE_DEPRECATION_VERSION??"7.2.0");function lp(t){return function(t,e=ap){let n=t.replace(/(\.0+)/g,"");return e>=parseFloat(n)}(t.until)}function cp(t){return{options:t,test:!op(t),isEnabled:op(t)||lp(t),isRemoved:lp(t)}}var up={DEPRECATE_IMPORT_EMBER:t=>cp({id:`deprecate-import-${sp(t).toLowerCase()}-from-ember`,for:"ember-source",since:{available:"5.10.0",enabled:"6.5.0"},until:"7.0.0",url:`https://deprecations.emberjs.com/id/import-${sp(t).toLowerCase()}-from-ember`}),DEPRECATE_IMPORT_INJECT:cp({for:"ember-source",id:"importing-inject-from-ember-service",since:{available:"6.2.0",enabled:"6.3.0"},until:"7.0.0",url:"https://deprecations.emberjs.com/id/importing-inject-from-ember-service"})},hp=a({default:()=>fp,inject:()=>dp,service:()=>pp});function dp(...t){return function(t,e){const{options:n}=e;if(e.isRemoved)throw new Error(`The API deprecated by ${n.id} was removed in ember-source ${n.until}. The message was: Importing \`inject\` from \`@ember/service\` is deprecated. Please import \`service\` instead.. Please see ${n.url} for more details.`)}(0,up.DEPRECATE_IMPORT_INJECT),qr("service",...t)}function pp(...t){return qr("service",...t)}var fp=class extends Xc{static isServiceFactory=!0},gp=Symbol("ROUTER");function mp(t,e){return"/"===e?t:t.substring(e.length)}var yp=class extends(fp.extend(bc)){[gp];get _router(){let t=this[gp];if(void 0!==t)return t;let e=Br(this).lookup("router:main");return this[gp]=e}willDestroy(){super.willDestroy(),this[gp]=void 0}transitionTo(...t){if(Wh(t[0]))return this._router._doURLTransition("transitionTo",t[0]);let{routeName:e,models:n,queryParams:r}=Uh(t);return this._router._doTransition(e,n,r,!0)}replaceWith(...t){return this.transitionTo(...t).method("replace")}urlFor(t,...e){return this._router.setupRouter(),this._router.generate(t,...e)}isActive(...t){let{routeName:e,models:n,queryParams:r}=Uh(t);this._router.setupRouter();let i=this._router._routerMicrolib;if(zt(Kt(this._router,"currentURL")),!i.isActiveIntent(e,n))return!1;if(Object.keys(r).length>0){let t=e;r=Object.assign({},r),this._router._prepareQueryParams(t,n,r,!0);let s=Object.assign({},i.state.queryParams);return this._router._prepareQueryParams(t,n,s,!0),Hh(r,s)}return!0}recognize(t){this._router.setupRouter();let e=mp(t,this.rootURL);return this._router._routerMicrolib.recognize(e)}recognizeAndLoad(t){this._router.setupRouter();let e=mp(t,this.rootURL);return this._router._routerMicrolib.recognizeAndLoad(e)}refresh(t){if(!t)return this._router._routerMicrolib.refresh();let e=Br(this).lookup(`route:${t}`);return this._router._routerMicrolib.refresh(e)}static{Zh(this.prototype,"currentRouteName",[Yd("_router.currentRouteName")])}#o=void Yh(this,"currentRouteName");static{Zh(this.prototype,"currentURL",[Yd("_router.currentURL")])}#a=void Yh(this,"currentURL");static{Zh(this.prototype,"location",[Yd("_router.location")])}#l=void Yh(this,"location");static{Zh(this.prototype,"rootURL",[Yd("_router.rootURL")])}#c=void Yh(this,"rootURL");static{Zh(this.prototype,"currentRoute",[Yd("_router.currentRoute")])}#u=void Yh(this,"currentRoute")},vp=class extends fp{[gp];get router(){let t=this[gp];if(void 0!==t)return t;let e=Br(this).lookup("router:main");return e.setupRouter(),this[gp]=e}hasRoute(t){return this.router.hasRoute(t)}transitionTo(t,e,n,r){let i=this.router._doTransition(t,e,n);return r&&i.method("replace"),i}normalizeQueryParams(t,e,n){this.router._prepareQueryParams(t,e,n)}_generateURL(t,e,n){let r={};return n&&(Object.assign(r,n),this.normalizeQueryParams(t,e,r)),this.router.generate(t,...e,{queryParams:r})}generateURL(t,e,n){if(this.router._initialTransitionStarted)return this._generateURL(t,e,n);try{return this._generateURL(t,e,n)}catch(r){return}}isActiveForRoute(t,e,n,r){let i=this.router._routerMicrolib.recognizer.handlersFor(n),s=i[i.length-1].handler,o=function(t,e){let n=0;for(let r=0;ro&&(n=s),r.isActiveIntent(n,t,e)}};vp.reopen({targetState:Yd("router.targetState"),currentState:Yd("router.currentState"),currentRouteName:Yd("router.currentRouteName"),currentPath:Yd("router.currentPath")});var bp=class{cache;constructor(){this.cache=new Map}has(t){return this.cache.has(t)}stash(t,e,n){let r=this.cache.get(t);void 0===r&&(r=new Map,this.cache.set(t,r)),r.set(e,n)}lookup(t,e,n){if(!this.has(t))return n;let r=this.cache.get(t);return r.has(e)?r.get(e):n}},wp=Ao?self:null,_p=Ao?self.location:null,xp=Ao?self.history:null,Cp=Ao?self.navigator.userAgent:"Lynx (textmode)",kp=!(!Ao||"object"!=typeof chrome||"object"==typeof opera),Sp=!!Ao&&/Firefox|FxiOS/.test(Cp),Ep=Object.freeze(Object.defineProperty({__proto__:null,hasDOM:Ao,history:xp,isChrome:kp,isFirefox:Sp,location:_p,userAgent:Cp,window:wp},Symbol.toStringTag,{value:"Module"})),Rp=-536870913;function Lp(t){return(t|=0)<0?function(t){return t&Rp}(t):function(t){return~t}(t)}function Tp(t){return(t|=0)>Rp?function(t){return~t}(t):function(t){return 536870912|t}(t)}function Pp(t){if("number"==typeof t)return t;{let e=t.errors[0];throw new Error(`Compile Error: ${e.problem} @ ${e.span.start}..${e.span.end}`)}}function Ip(t){if("error"===t.result)throw new Error(`Compile Error: ${t.problem} @ ${t.span.start}..${t.span.end}`);return t}[1,-1].forEach(t=>Tp(Lp(t)));var Mp=new WeakMap,Ap=Reflect.getPrototypeOf;function Op(t,e){return Mp.set(e,t),e}function Np(t){let e=t;for(;null!==e;){let t=Mp.get(e);if(void 0!==t)return t;e=Ap(e)}}var zp=Object.assign;function Fp(t){return Object.values(t)}function Dp(t){return Object.entries(t)}function jp(t){return Object.keys(t)}var Up=Object.freeze([]);function Bp(){return Up}var $p=Bp(),qp=Bp();function Vp(t){return t===Up}function*Wp(t){for(let e=t.length-1;e>=0;e--)yield t[e]}function*Hp(t){let e=0;for(const n of t)yield[e++,n]}function*Gp(t,e){for(let n=0;n255)throw new Error(`Opcode type over 8-bits. Got ${t}.`);let r=t|e|arguments.length-2<<8;this.buffer.push(r);for(const i of n)this.buffer.push(i);this.size=this.buffer.length}patch(t,e){if(-1!==this.buffer[t+1])throw new Error("Trying to patch operand in populated slot instead of a reserved slot.");this.buffer[t+1]=e}},Xp=32,Jp=31;function Qp(t){return e=>{if(!function(t){return Array.isArray(t)&&2===t.length}(e))return!1;let n=e[0];return n===Jp||n===Xp||n===t}}var tf=Qp(39),ef=Qp(38),nf=Qp(37),rf=Qp(35);function sf(t,e,n,r){let{symbols:{upvars:i}}=n,s=i[t[1]],o=e?.lookupBuiltInHelper?.(s)??null;return r.helper(o,s)}var of=1004,af=1005,lf=1010,cf=1e3,uf=1001,hf=1002;function df(t){return{type:1,value:t}}function pf(t){return{type:5,value:t}}function ff(t){return{type:7,value:t}}function gf(t){return{type:8,value:t}}var mf=class{labels=ne();targets=[];label(t,e){this.labels[t]=e}target(t,e){this.targets.push({at:t,target:e})}patch(t){let{targets:e,labels:n}=this;for(const{at:r,target:i}of e){let e=n[i]-r;Kp(t.getbyaddr(r)),t.setbyaddr(r,e)}}};function yf(t,e,n,r){let{program:{constants:i},resolver:s}=e;if(function(t){return t<1e3}(r[0])){let[e,...n]=r;t.push(i,e,...n)}else switch(r[0]){case cf:return t.label(r[1]);case uf:return t.startLabels();case hf:return t.stopLabels();case of:return function(t,e,n,[,r,i]){if(tf(r),r[0]===Xp){let{scopeValues:t,owner:s,symbols:{lexical:o}}=n,a=t[r[1]];i(e.component(a,s,!1,o?.at(r[1])))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupComponent?.(a,o)??null;i(e.resolvedComponent(l,a))}}(s,i,n,r);case 1003:return function(t,e,n,[,r,i]){ef(r);let s=r[0];if(s===Xp){let{scopeValues:t,symbols:{lexical:s}}=n,o=t[r[1]];i(e.modifier(o,s?.at(r[1])??void 0))}else if(s===Jp){let{symbols:{upvars:s}}=n,o=s[r[1]],a=t?.lookupBuiltInModifier?.(o)??null;i(e.modifier(a,o))}else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupModifier?.(a,o)??null;i(e.modifier(l))}}(s,i,n,r);case af:return function(t,e,n,[,r,i]){nf(r);let s=r[0];if(s===Xp){let{scopeValues:t}=n,s=t[r[1]];i(e.helper(s))}else if(s===Jp)i(sf(r,t,n,e));else{let{symbols:{upvars:s},owner:o}=n,a=s[r[1]],l=t?.lookupHelper?.(a,o)??null;i(e.helper(l,a))}}(s,i,n,r);case 1007:return function(t,e,n,[,r,{ifComponent:i,ifHelper:s}]){rf(r);let o=r[0];if(o===Xp){let{scopeValues:t,owner:o,symbols:{lexical:a}}=n,l=t[r[1]],c=e.component(l,o,!0,a?.at(r[1]));if(null!==c)return void i(c);s(e.helper(l,null,!0))}else if(o===Jp)s(sf(r,t,n,e));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=t?.lookupComponent?.(l,a)??null;if(null!==c)i(e.resolvedComponent(c,l));else{let n=t?.lookupHelper?.(l,a)??null;s(e.helper(n,l))}}}(s,i,n,r);case 1008:return function(t,e,n,[,r,{ifComponent:i,ifHelper:s,ifValue:o}]){rf(r);let a=r[0];if(a===Xp){let{scopeValues:t,owner:a,symbols:{lexical:l}}=n,c=t[r[1]];if("function"!=typeof c&&("object"!=typeof c||null===c))return void o(e.value(c));let u=e.component(c,a,!0,l?.at(r[1]));if(null!==u)return void i(u);let h=e.helper(c,null,!0);if(null!==h)return void s(h);o(e.value(c))}else if(a===Jp)s(sf(r,t,n,e));else{let{symbols:{upvars:o},owner:a}=n,l=o[r[1]],c=t?.lookupComponent?.(l,a)??null;if(null!==c)return void i(e.resolvedComponent(c,l));let u=t?.lookupHelper?.(l,a)??null;null!==u&&s(e.helper(u,l))}}(s,i,n,r);case lf:{let[,t,e]=r;e(n.symbols.upvars[t],n.moduleName);break}case 1011:{let[,t,e]=r,s=n.scopeValues[t];e(i.value(s));break}default:throw new Error(`Unexpected high level opcode ${r[0]}`)}}var vf=class{labelsStack=new se;encoder=new Yp([]);errors=[];handle;constructor(t,e,n){this.heap=t,this.meta=e,this.stdlib=n,this.handle=t.malloc()}error(t){this.encoder.encode(30,0),this.errors.push(t)}commit(t){let e=this.handle;return this.heap.pushMachine(5),this.heap.finishMalloc(e,t),Qt(this.errors)?{errors:this.errors,handle:e}:e}push(t,e,...n){let{heap:r}=this,i=e|((s=e)>=0&&s<=15?1024:0)|n.length<<8;var s;r.pushRaw(i);for(let o=0;o=-536870912?Lp(n):function(t){return{type:6,value:t}}(n)),t(30,n)}function Ef(t,e,n,r){t(0),Of(t,n,r,!1),t(16,e),t(1),t(36,8)}function Rf(t,e,n,r){t(0),Of(t,e,n,!1),t(33,2,1),t(107),r?(t(36,8),r(),t(1),t(34,1)):(t(1),t(34,1),t(36,8))}function Lf(t,e,n,r,i){t(0),Of(t,r,i,!1),t(86),Cf(t,n),t(77,e,{type:2,value:void 0}),t(1),t(36,8)}function Tf(t,e,n){Of(t,n,null,!0),t(23,e),t(24),t(61),t(64),t(40),t(1)}function Pf(t,e){!function(t,e){null!==e?t(63,ff({parameters:e})):Sf(t,null)}(t,e&&e[1]),t(62),Af(t,e)}function If(t,e){t(0),Af(t,e),t(61),t(2),t(1)}function Mf(t,e,n){let r=e[1],i=r.length,s=Math.min(n,i);if(0!==s){if(t(0),s){t(39);for(let e=0;e{for(let n of e)Cf(t,n);t(27,e.length)}),_f.add(28,(t,[,e,n,r])=>{nf(e)?t(af,e,e=>{Ef(t,e,n,r)}):(Cf(t,e),Rf(t,n,r))}),_f.add(50,(t,[,e,n,r,i])=>{Lf(t,n,e,r,i)}),_f.add(30,(t,[,e,n])=>{t(21,e),xf(t,n)}),_f.add(Xp,(t,[,e,n])=>{t(1011,e,e=>{t(29,e),xf(t,n)})}),_f.add(Jp,(t,e)=>{t(lf,e[1],()=>{t(af,e,e=>{Ef(t,e,null,null)})})}),_f.add(37,(t,e)=>{t(lf,e[1],()=>{t(af,e,e=>{Ef(t,e,null,null)})})}),_f.add(27,t=>kf(t,void 0)),_f.add(48,(t,[,e])=>{Cf(t,e),t(25)}),_f.add(49,(t,[,e])=>{Cf(t,e),t(24),t(61),t(26)}),_f.add(52,(t,[,e,n,r])=>{Cf(t,r),Cf(t,n),Cf(t,e),t(109)}),_f.add(51,(t,[,e])=>{Cf(t,e),t(110)}),_f.add(53,(t,[,e])=>{Cf(t,e),t(111)}),_f.add(54,(t,[,e])=>{t(0),Of(t,e,null,!1),t(112),t(1),t(36,8)});var Ff=class t{names;constructor(t){this.blocks=t,this.names=t?Object.keys(t):[]}get(t){return this.blocks&&this.blocks[t]||null}has(t){let{blocks:e}=this;return null!==e&&t in e}with(e,n){let{blocks:r}=this;return new t(r?zp({},r,{[e]:n}):{[e]:n})}get hasAny(){return null!==this.blocks}},Df=new Ff(null);function jf(t){if(null===t)return Df;let e=ne(),[n,r]=t;for(const[i,s]of Hp(n))e[s]=Xt(r[i]);return new Ff(e)}function Uf(t,e,n){let r=[],i=0;n(function(t,e){r.push({match:t,callback:e,label:"CLAUSE"+i++})}),t(69,1),e(),t(uf);for(let s of r.slice(0,-1))t(67,df(s.label),s.match);for(let s=r.length-1;s>=0;s--){let e=Xt(r[s]);t(cf,e.label),t(34,1),e.callback(),0!==s&&t(4,df("END"))}t(cf,"END"),t(hf),t(70)}function Bf(t,e,n){t(uf),t(0),t(6,df("ENDINITIAL")),t(69,e()),n(),t(cf,"FINALLY"),t(70),t(5),t(cf,"ENDINITIAL"),t(1),t(hf)}function $f(t,e,n,r){return Bf(t,e,()=>{t(66,df("ELSE")),n(),t(4,df("FINALLY")),t(cf,"ELSE"),void 0!==r&&r()})}var qf="&attrs";function Vf(t,e,n,r,i,s){let{compilable:o,capabilities:a,handle:l}=e,c=n?[n,[]]:null,u=jf(s);o?(t(78,l),function(t,{capabilities:e,layout:n,elementBlock:r,positional:i,named:s,blocks:o}){let{symbolTable:a}=n;if(bu(e,fu.prepareArgs))return void Hf(t,{capabilities:e,elementBlock:r,positional:i,named:s,atNames:!0,blocks:o,layout:n});t(36,4),t(33,3,1),t(35,4),t(0);let{symbols:l}=a,c=[],u=[],h=[],d=o.names;if(null!==r){let e=l.indexOf(qf);-1!==e&&(Pf(t,r),c.push(e))}for(const p of d){let e=l.indexOf(`&${p}`);-1!==e&&(Pf(t,o.get(p)),c.push(e))}if(bu(e,fu.createArgs)){let e=Nf(t,i)<<4;e|=8;let n=$p;if(null!==s){n=s[0];let e=s[1];for(let r=0;r0?1:0),t(19,0);for(const p of Wp(u))-1===p?t(34,1):t(19,p+1);null!==i&&t(34,i.length);for(const p of Wp(c))t(20,p+1);t(28,gf(n)),t(61),t(2),t(100,4),t(1),t(40),bu(e,fu.dynamicScope)&&t(60),t(98),t(35,4)}(t,{capabilities:a,layout:o,elementBlock:c,positional:r,named:i,blocks:u})):(t(78,l),Hf(t,{capabilities:a,elementBlock:c,positional:r,named:i,atNames:!0,blocks:u}))}function Wf(t,e,n,r,i,s,o,a){let l=n?[n,[]]:null,c=jf(s);Bf(t,()=>(Cf(t,e),t(33,3,0),2),()=>{t(66,df("ELSE")),a?t(81):t(80,{type:2,value:void 0}),t(79),Hf(t,{capabilities:!0,elementBlock:l,positional:r,named:i,atNames:o,blocks:c}),t(cf,"ELSE")})}function Hf(t,{capabilities:e,elementBlock:n,positional:r,named:i,atNames:s,blocks:o,layout:a}){let l=Boolean(o),c=!0===e||bu(e,fu.prepareArgs)||0!==i?.[0].length,u=o.with("attrs",n);t(36,4),t(33,3,1),t(35,4),t(0),function(t,e,n,r,i){let s=r.names;for(const l of s)Pf(t,r.get(l));let o=Nf(t,e)<<4;i&&(o|=8),r.hasAny&&(o|=7);let a=Up;if(n){a=n[0];let e=n[1];for(let n=0;n{a?(t(63,ff(a.symbolTable)),t(28,gf(a)),t(61)):t(92,4),t(95,4)}),t(35,4)}function Gf(t,e,n,r,i=null){t(97,4),t(59),t(87,0|e),i&&i(),t(88,4),t(90,4),t(38,4),t(19,0),r&&t(17,4),n&&t(18,4),t(34,1),t(96,4),t(100,4),t(1),t(40),t(60),t(98)}var Zf=new wf,Kf=["class","id","value","name","type","style","href"],Yf=["div","span","p","a"];function Xf(t){return"string"==typeof t?t:Yf[t]}function Jf(t){return"string"==typeof t?t:Kf[t]}function Qf(t){return null===t?null:[t[0].map(t=>`@${t}`),t[1]]}Zf.add(3,(t,e)=>t(42,e[1])),Zf.add(13,t=>t(55)),Zf.add(12,t=>t(54)),Zf.add(4,(t,[,e,n,r])=>{ef(e)?t(1003,e,e=>{t(0),Of(t,n,r,!1),t(57,e),t(1)}):(Cf(t,e),t(0),Of(t,n,r,!1),t(33,2,1),t(108),t(1))}),Zf.add(14,(t,[,e,n,r])=>{t(51,Jf(e),n,r??null)}),Zf.add(24,(t,[,e,n,r])=>{t(105,Jf(e),n,r??null)}),Zf.add(15,(t,[,e,n,r])=>{Cf(t,n),t(52,Jf(e),!1,r??null)}),Zf.add(22,(t,[,e,n,r])=>{Cf(t,n),t(52,Jf(e),!0,r??null)}),Zf.add(16,(t,[,e,n,r])=>{Cf(t,n),t(53,Jf(e),!1,r??null)}),Zf.add(23,(t,[,e,n,r])=>{Cf(t,n),t(53,Jf(e),!0,r??null)}),Zf.add(10,(t,[,e])=>{t(48,Xf(e))}),Zf.add(11,(t,[,e])=>{t(89),t(48,Xf(e))}),Zf.add(8,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,n,null,r,i)}):Wf(t,e,n,null,r,i,!0,!0)}),Zf.add(18,(t,[,e,n])=>Tf(t,e,n)),Zf.add(17,(t,[,e])=>Tf(t,e,null)),Zf.add(26,(t,[,e,n,r])=>{t(103,function(t,e,n){return{type:3,value:{locals:t,upvars:e,lexical:n}}}(e,n,r))}),Zf.add(1,(t,[,e])=>{if(Array.isArray(e))if(rf(e))t(1008,e,{ifComponent(e){Vf(t,e,null,null,null,null)},ifHelper(e){t(0),Ef(t,e,null,null),t(3,pf("cautious-non-dynamic-append")),t(1)},ifValue(e){t(0),t(29,e),t(3,pf("cautious-non-dynamic-append")),t(1)}});else if(28===e[0]){let[,n,r,i]=e;rf(n)?t(1007,n,{ifComponent(e){Vf(t,e,null,r,Qf(i),null)},ifHelper(e){t(0),Ef(t,e,r,i),t(3,pf("cautious-non-dynamic-append")),t(1)}}):Uf(t,()=>{Cf(t,n),t(106)},e=>{e(0,()=>{t(68),t(81),t(79),Hf(t,{capabilities:!0,elementBlock:null,positional:r,named:i,atNames:!1,blocks:jf(null)})}),e(1,()=>{Rf(t,r,i,()=>{t(3,pf("cautious-non-dynamic-append"))})})})}else t(0),Cf(t,e),t(3,pf("cautious-append")),t(1);else t(41,null==e?"":String(e))}),Zf.add(2,(t,[,e])=>{Array.isArray(e)?(t(0),Cf(t,e),t(3,pf("trusting-append")),t(1)):t(41,null==e?"":String(e))}),Zf.add(6,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,null,n,Qf(r),i)}):Wf(t,e,null,n,r,i,!1,!1)}),Zf.add(40,(t,[,e,n,r,i])=>{$f(t,()=>(Cf(t,n),void 0===i?kf(t,void 0):Cf(t,i),Cf(t,r),t(33,3,0),4),()=>{t(50),If(t,e),t(56)})}),Zf.add(41,(t,[,e,n,r])=>$f(t,()=>(Cf(t,e),t(71),1),()=>{If(t,n)},r?()=>{If(t,r)}:void 0)),Zf.add(42,(t,[,e,n,r,i])=>Bf(t,()=>(n?Cf(t,n):kf(t,null),Cf(t,e),2),()=>{t(72,df("BODY"),df("ELSE")),t(0),t(33,2,1),t(6,df("ITER")),t(cf,"ITER"),t(74,df("BREAK")),t(cf,"BODY"),Mf(t,r,2),t(34,2),t(4,df("FINALLY")),t(cf,"BREAK"),t(1),t(73),t(4,df("FINALLY")),t(cf,"ELSE"),i&&If(t,i)})),Zf.add(44,(t,[,e,n])=>{Mf(t,n,Nf(t,e))}),Zf.add(45,(t,[,e,n])=>{if(e){let[r,i]=e;Nf(t,i),function(t,e,n){t(59),t(58,e),n(),t(60)}(t,r,()=>{If(t,n)})}else If(t,n)}),Zf.add(46,(t,[,e,n,r,i])=>{tf(e)?t(of,e,e=>{Vf(t,e,null,n,Qf(r),i)}):Wf(t,e,null,n,r,i,!1,!1)});var tg=class{compiled=new WeakMap;constructor(t,e,n,r="plain block"){this.statements=t,this.meta=e,this.symbolTable=n,this.moduleName=r}compile(t){return function(t,e){if(t.compiled.has(e))return t.compiled.get(e);t.compiled.set(e,-1);let{statements:n,meta:r}=t,i=function(t,e,n){let r=Zf,i=bf(n,e),{encoder:s,evaluation:o}=i;function a(...t){yf(s,o,e,t)}for(const l of t)r.compile(a,l);return i.encoder.commit(e.size)}(n,r,e);return t.compiled.set(e,i),i}(this,t)}},eg=class{symbolTable;compiled=null;attrsBlockNumber;meta;constructor(t,e){this.layout=t,this.moduleName=e;let{block:n}=t,[,r]=n;r=r.slice();let i=r.indexOf(qf);this.attrsBlockNumber=-1===i?r.push(qf):i+1,this.symbolTable={symbols:r},this.meta=zf(t)}compile(t){if(null!==this.compiled)return this.compiled;let e=zf(this.layout),n=bf(t,e),{encoder:r,evaluation:i}=n;var s,o,a;s=function(...t){yf(r,i,e,t)},o=this.layout,a=this.attrsBlockNumber,s(uf),function(t,e,n){t(36,5),n(),t(35,5)}(s,0,()=>{s(91,4),s(31),s(33,3,0)}),s(66,df("BODY")),s(36,5),s(89),s(49),s(99,4),Tf(s,a,null),s(54),s(cf,"BODY"),If(s,[o.block[0],[]]),s(36,5),s(66,df("END")),s(55),s(cf,"END"),s(35,5),s(hf);let l=n.encoder.commit(e.size);return"number"!=typeof l||(this.compiled=l),l}},ng=0,rg={cacheHit:0,cacheMiss:0};function ig({id:t,moduleName:e,block:n,scope:r,isStrictMode:i}){let s,o=t||"client-"+ng++,a=null,l=new WeakMap,c=t=>{if(void 0===s&&(s=JSON.parse(n)),void 0===t)return null===a?(rg.cacheMiss++,a=new sg({id:o,block:s,moduleName:e,owner:null,scope:r,isStrictMode:i})):rg.cacheHit++,a;let c=l.get(t);return void 0===c?(rg.cacheMiss++,c=new sg({id:o,block:s,moduleName:e,owner:t,scope:r,isStrictMode:i}),l.set(t,c)):rg.cacheHit++,c};return c.__id=o,c.__meta={moduleName:e},c}var sg=class{result="ok";layout=null;wrappedLayout=null;constructor(t){this.parsedLayout=t}get moduleName(){return this.parsedLayout.moduleName}get id(){return this.parsedLayout.id}get referrer(){return{moduleName:this.parsedLayout.moduleName,owner:this.parsedLayout.owner}}asLayout(){return this.layout?this.layout:this.layout=function(t,e){let[n,r]=t.block;return new tg(n,zf(t),{symbols:r},e)}(zp({},this.parsedLayout),this.moduleName)}asWrappedLayout(){return this.wrappedLayout?this.wrappedLayout:this.wrappedLayout=new eg(zp({},this.parsedLayout),this.moduleName)}},og=class{offset=0;constructor(t){this.heap=t}get size(){return 1+((768&this.heap.getbyaddr(this.offset))>>8)}get isMachine(){return 1024&this.heap.getbyaddr(this.offset)?1:0}get type(){return 255&this.heap.getbyaddr(this.offset)}get op1(){return this.heap.getbyaddr(this.offset+1)}get op2(){return this.heap.getbyaddr(this.offset+2)}get op3(){return this.heap.getbyaddr(this.offset+3)}},ag=1048576,lg=class{offset=0;heap;handleTable;handleState;constructor(){this.heap=new Int32Array(ag),this.handleTable=[],this.handleState=[]}entries(){return this.offset}pushRaw(t){this.sizeCheck(),this.heap[this.offset++]=t}pushOp(t){this.pushRaw(t)}pushMachine(t){this.pushRaw(1024|t)}sizeCheck(){let{heap:t}=this;if(this.offset===this.heap.length){let e=new Int32Array(t.length+ag);e.set(t,0),this.heap=e}}getbyaddr(t){return this.heap[t]}setbyaddr(t,e){this.heap[t]=e}malloc(){return this.handleTable.push(this.offset),this.handleTable.length-1}finishMalloc(t){}size(){return this.offset}getaddr(t){return this.handleTable[t]}sizeof(t){return this.handleTable,-1}free(t){this.handleState[t]=1}compact(){let t=0,{handleTable:e,handleState:n,heap:r}=this;for(let i=0;i[t,e]));helperDefinitionCache=new WeakMap;modifierDefinitionCache=new WeakMap;componentDefinitionCache=new WeakMap;value(t){let e=this.indexMap,n=e.get(t);return void 0===n&&(n=this.values.push(t)-1,e.set(t,n)),n}array(t){if(0===t.length)return pg;let e=new Array(t.length);for(let n=0;nt}helper(t,e=null,n){let r=this.helperDefinitionCache.get(t);if(void 0===r){let e=Nu(t);if(null===e)return this.helperDefinitionCache.set(t,null),null;let n="function"==typeof e?e:e.getHelper(t);r=this.value(n),this.helperDefinitionCache.set(t,r),this.helperDefinitionCount++}return r}modifier(t,e=null,n){let r=this.modifierDefinitionCache.get(t);if(void 0===r){let n=Mu(t);if(null===n)return this.modifierDefinitionCache.set(t,null),null;let i={resolvedName:e,manager:n,state:t};r=this.value(i),this.modifierDefinitionCache.set(t,r),this.modifierDefinitionCount++}return r}component(t,e,n,r){let i=this.componentDefinitionCache.get(t);if(void 0===i){let n=Fu(t);if(null===n)return this.componentDefinitionCache.set(t,null),null;let s,o=mu(n.getCapabilities(t)),a=Np(t),l=null;s=vu(0,o,fu.dynamicLayout)?a?.(e):a?.(e)??this.defaultTemplate,void 0!==s&&(s=Ip(s),l=vu(0,o,fu.wrapped)?s.asWrappedLayout():s.asLayout()),i={resolvedName:null,handle:-1,manager:n,capabilities:o,state:t,compilable:l},i.handle=this.value(i),r&&(i.debugName=r),this.componentDefinitionCache.set(t,i),this.componentDefinitionCount++}return i}resolvedComponent(t,e){let n=this.componentDefinitionCache.get(t);if(void 0===n){let{manager:r,state:i,template:s}=t,o=mu(r.getCapabilities(t)),a=null;vu(0,o,fu.dynamicLayout)||(s=s??this.defaultTemplate),null!==s&&(s=Ip(s),a=vu(0,o,fu.wrapped)?s.asWrappedLayout():s.asLayout()),n={resolvedName:e,handle:-1,manager:r,capabilities:o,state:i,compilable:a},n.handle=this.value(n),this.componentDefinitionCache.set(t,n),this.componentDefinitionCount++}return n}getValue(t){return this.values[t]}getArray(t){let e=this.reifiedArrs,n=e[t];if(void 0===n){let r=this.getValue(t);n=new Array(r.length);for(const[t,e]of Hp(r))n[t]=this.getValue(e);e[t]=n}return n}},gg=class{constructor(t,e){this.element=t,this.nextSibling=e}},mg=class{constructor(t,e,n){this.parentNode=t,this.first=e,this.last=n}parentElement(){return this.parentNode}firstNode(){return this.first}lastNode(){return this.last}};function yg(t,e){let n=t.parentElement(),r=t.firstNode(),i=t.lastNode(),s=r;for(;;){let t=s.nextSibling;if(n.insertBefore(s,e),s===i)return t;s=Jt(t)}}function vg(t){let e=t.parentElement(),n=t.firstNode(),r=t.lastNode(),i=n;for(;;){let t=i.nextSibling;if(e.removeChild(i),i===r)return t;i=Jt(t)}}function bg(t){return wg(t)?"":String(t)}function wg(t){return null==t||"function"!=typeof t.toString}function _g(t){return null!==t&&"object"==typeof t}function xg(t){return _g(t)&&"function"==typeof t.toHTML}function Cg(t){return"string"==typeof t}function kg(t,e){let n,r;if(e in t)r=e,n="prop";else{let i=e.toLowerCase();i in t?(n="prop",r=i):(n="attr",r=e)}return"prop"!==n||"style"!==r.toLowerCase()&&!function(t,e){let n=Eg[t.toUpperCase()];return!(!n||!n[e.toLowerCase()])}(t.tagName,r)||(n="attr"),{normalized:r,type:n}}var Sg,Eg={INPUT:{form:!0,autocorrect:!0,list:!0},SELECT:{form:!0},OPTION:{form:!0},TEXTAREA:{form:!0},LABEL:{form:!0},FIELDSET:{form:!0},LEGEND:{form:!0},OBJECT:{form:!0},OUTPUT:{form:!0},BUTTON:{form:!0}},Rg="http://www.w3.org/1998/Math/MathML",Lg=["javascript:","vbscript:"],Tg=["A","AREA","BODY","LINK","IMG","IFRAME","BASE","FORM","BUTTON","INPUT"],Pg=["EMBED"],Ig=["IFRAME","OBJECT"],Mg=["href","src","background","action","formaction","xlink:href"],Ag=["src"],Og=["src","data"];function Ng(t,e){return-1!==t.indexOf(e)}function zg(t,e){return(null===t||Ng(Tg,t.toUpperCase()))&&Ng(Mg,e)}function Fg(t,e){return null!==t&&Ng(Pg,t.toUpperCase())&&Ng(Ag,e)}function Dg(t,e){return null!==t&&Ng(Ig,t.toUpperCase())&&Ng(Og,e)}function jg(t,e){return zg(t,e)||Fg(t,e)||Dg(t,e)}function Ug(t){return Sg||(Sg=function(){const t=URL;if("object"==typeof t&&null!==t&&"function"==typeof t.parse){let e=t;return t=>{let n=null;return"string"==typeof t&&(n=e.parse(t.replace(/[\t\n\r]/gu,"")).protocol),null===n?":":n}}if("function"==typeof t)return e=>{try{return new t(e).protocol}catch{return":"}};throw new Error('@glimmer/runtime needs a valid "globalThis.URL"')}()),Sg(t)}function Bg(t,e,n){if(null==n)return n;if(xg(n))return n.toHTML();const r=t.tagName;let i=bg(n);if(zg(r,e)){let t=Ug(i);if(Ng(Lg,t))return`unsafe:${i}`}if(Dg(r,e)){let t=Ug(i);if("data:"===t||Ng(Lg,t))return`unsafe:${i}`}return Fg(r,e)?`unsafe:${i}`:i}function $g(t,e,n){const{tagName:r,namespaceURI:i}=t,s={element:t,name:e,namespace:n};if("http://www.w3.org/2000/svg"===i)return qg(r,e,s);const{type:o,normalized:a}=kg(t,e);return"attr"===o?qg(r,a,s):function(t,e,n){return jg(t,e)?new Gg(e,n):function(t,e){return("INPUT"===t||"TEXTAREA"===t)&&"value"===e}(t,e)?new Kg(e,n):function(t,e){return"OPTION"===t&&"selected"===e}(t,e)?new Yg(e,n):new Hg(e,n)}(r,a,s)}function qg(t,e,n){return jg(t,e)?new Zg(n):new Wg(n)}var Vg=class{constructor(t){this.attribute=t}},Wg=class extends Vg{set(t,e,n){const r=Xg(e);if(null!==r){const{name:e,namespace:n}=this.attribute;t.__setAttribute(e,r,n)}}update(t,e){const n=Xg(t),{element:r,name:i}=this.attribute;null===n?r.removeAttribute(i):r.setAttribute(i,n)}},Hg=class extends Vg{constructor(t,e){super(e),this.normalizedName=t}value;set(t,e,n){null!=e&&(this.value=e,t.__setProperty(this.normalizedName,e))}update(t,e){const{element:n}=this.attribute;this.value!==t&&(n[this.normalizedName]=this.value=t,null==t&&this.removeAttribute())}removeAttribute(){const{element:t,namespace:e}=this.attribute;e?t.removeAttributeNS(e,this.normalizedName):t.removeAttribute(this.normalizedName)}},Gg=class extends Hg{set(t,e,n){const{element:r,name:i}=this.attribute,s=Bg(r,i,e);super.set(t,s,n)}update(t,e){const{element:n,name:r}=this.attribute,i=Bg(n,r,t);super.update(i,e)}},Zg=class extends Wg{set(t,e,n){const{element:r,name:i}=this.attribute,s=Bg(r,i,e);super.set(t,s,n)}update(t,e){const{element:n,name:r}=this.attribute,i=Bg(n,r,t);super.update(i,e)}},Kg=class extends Hg{set(t,e){const n=bg(e);t.__setProperty("value",n),""===e&&"INPUT"===this.attribute.element.tagName&&t.__setAttribute("value","",null)}update(t){const e=this.attribute.element,n=e.value,r=bg(t);n!==r&&(e.value=r)}},Yg=class extends Hg{set(t,e){null!=e&&!1!==e&&t.__setProperty("selected",!0)}update(t){this.attribute.element.selected=!!t}};function Xg(t){return!1===t||null==t||void 0===t.toString?null:!0===t?"":"function"==typeof t?null:String(t)}var Jg=class{constructor(t){this.node=t}firstNode(){return this.node}},Qg=class{constructor(t){this.node=t}lastNode(){return this.node}},tm=class{dom;updateOperations;constructing=null;operations=null;env;cursors=new se;modifierStack=new se;blockStack=new se;static forInitialRender(t,e){return new this(t,e.element,e.nextSibling).initialize()}static resume(t,e){let n=new this(t,e.parentElement(),e.reset(t)).initialize();return n.pushBlock(e),n}constructor(t,e,n){this.pushElement(e,n),this.env=t,this.dom=t.getAppendOperations(),this.updateOperations=t.getDOM()}initialize(){return this.pushAppendingBlock(),this}debugBlocks(){return this.blockStack.toArray()}get element(){return this.cursors.current.element}get nextSibling(){return this.cursors.current.nextSibling}get hasBlocks(){return this.blockStack.size>0}block(){return this.blockStack.current}popElement(){this.cursors.pop(),this.cursors.current}pushAppendingBlock(){return this.pushBlock(new em(this.element))}pushResettableBlock(){return this.pushBlock(new rm(this.element))}pushBlockList(t){return this.pushBlock(new im(this.element,t))}pushBlock(t,e=!1){let n=this.blockStack.current;return null!==n&&(e||n.didAppendBounds(t)),this.__openBlock(),this.blockStack.push(t),t}popBlock(){return this.block().finalize(this),this.__closeBlock(),this.blockStack.pop()}__openBlock(){}__closeBlock(){}openElement(t){let e=this.__openElement(t);return this.constructing=e,e}__openElement(t){return this.dom.createElement(t,this.element)}flushElement(t){let e=this.element,n=this.constructing;this.__flushElement(e,n),this.constructing=null,this.operations=null,this.pushModifiers(t),this.pushElement(n,null),this.didOpenElement(n)}__flushElement(t,e){this.dom.insertBefore(t,e,this.nextSibling)}closeElement(){return this.willCloseElement(),this.popElement(),this.popModifiers()}pushRemoteElement(t,e,n){return this.__pushRemoteElement(t,e,n)}__pushRemoteElement(t,e,n){if(this.pushElement(t,n),void 0===n)for(;t.lastChild;)t.removeChild(t.lastChild);let r=new nm(t);return this.pushBlock(r,!0)}popRemoteElement(){const t=this.popBlock();return this.popElement(),t}pushElement(t,e=null){this.cursors.push(new gg(t,e))}pushModifiers(t){this.modifierStack.push(t)}popModifiers(){return this.modifierStack.pop()}didAppendBounds(t){return this.block().didAppendBounds(t),t}didAppendNode(t){return this.block().didAppendNode(t),t}didOpenElement(t){return this.block().openElement(t),t}willCloseElement(){this.block().closeElement()}appendText(t){return this.didAppendNode(this.__appendText(t))}__appendText(t){let{dom:e,element:n,nextSibling:r}=this,i=e.createTextNode(t);return e.insertBefore(n,i,r),i}__appendNode(t){return this.dom.insertBefore(this.element,t,this.nextSibling),t}__appendFragment(t){let e=t.firstChild;if(e){let n=new mg(this.element,e,t.lastChild);return this.dom.insertBefore(this.element,t,this.nextSibling),n}{const t=this.__appendComment("");return new mg(this.element,t,t)}}__appendHTML(t){return this.dom.insertHTMLBefore(this.element,this.nextSibling,t)}appendDynamicHTML(t){let e=this.trustedContent(t);this.didAppendBounds(e)}appendDynamicText(t){let e=this.untrustedContent(t);return this.didAppendNode(e),e}appendDynamicFragment(t){let e=this.__appendFragment(t);this.didAppendBounds(e)}appendDynamicNode(t){let e=this.__appendNode(t),n=new mg(this.element,e,e);this.didAppendBounds(n)}trustedContent(t){return this.__appendHTML(t)}untrustedContent(t){return this.__appendText(t)}appendComment(t){return this.didAppendNode(this.__appendComment(t))}__appendComment(t){let{dom:e,element:n,nextSibling:r}=this,i=e.createComment(t);return e.insertBefore(n,i,r),i}__setAttribute(t,e,n){this.dom.setAttribute(this.constructing,t,e,n)}__setProperty(t,e){this.constructing[t]=e}setStaticAttribute(t,e,n){this.__setAttribute(t,e,n)}setDynamicAttribute(t,e,n,r){let i=$g(this.constructing,t,r);return i.set(this,e,this.env),i}},em=class{first=null;last=null;nesting=0;constructor(t){this.parent=t}parentElement(){return this.parent}firstNode(){return this.first.firstNode()}lastNode(){return this.last.lastNode()}openElement(t){this.didAppendNode(t),this.nesting++}closeElement(){this.nesting--}didAppendNode(t){0===this.nesting&&(this.first||(this.first=new Jg(t)),this.last=new Qg(t))}didAppendBounds(t){0===this.nesting&&(this.first||(this.first=t),this.last=t)}finalize(t){null===this.first&&t.appendComment("")}},nm=class extends em{constructor(t){super(t),et(this,()=>{this.parentElement()===this.firstNode().parentNode&&vg(this)})}},rm=class extends em{constructor(t){super(t)}reset(){nt(this);let t=vg(this);return this.first=null,this.last=null,this.nesting=0,t}},im=class{constructor(t,e){this.parent=t,this.boundList=e,this.parent=t,this.boundList=e}parentElement(){return this.parent}firstNode(){return this.boundList[0].firstNode()}lastNode(){let t=this.boundList;return t[t.length-1].lastNode()}openElement(t){}closeElement(){}didAppendNode(t){}didAppendBounds(t){}finalize(t){this.boundList.length}};function sm(t,e){return tm.forInitialRender(t,e)}var om={foreignObject:1,desc:1,title:1},am=Object.create(null),lm=class{constructor(t){this.document=t,this.setupUselessElement()}setupUselessElement(){this.uselessElement=this.document.createElement("div")}createElement(t,e){let n,r,i,s;if(e?(n="http://www.w3.org/2000/svg"===e.namespaceURI||"svg"===t,i=e.namespaceURI===Rg||"math"===t,r=!!om[e.tagName]):(n="svg"===t,i="math"===t,r=!1),!i&&!n||r)return this.document.createElement(t);if(am[t])throw new Error(`Cannot create a ${t} inside an SVG context`);return s=i?Rg:"http://www.w3.org/2000/svg",this.document.createElementNS(s,t)}insertBefore(t,e,n){t.insertBefore(e,n)}insertHTMLBefore(t,e,n){if(""===n){const n=this.createComment("");return t.insertBefore(n,e),new mg(t,n,n)}const r=e?e.previousSibling:t.lastChild;let i;if(null===e)t.insertAdjacentHTML("beforeend",n),i=t.lastChild;else if(e instanceof HTMLElement)e.insertAdjacentHTML("beforebegin",n),i=e.previousSibling;else{const{uselessElement:r}=this;t.insertBefore(r,e),r.insertAdjacentHTML("beforebegin",n),i=r.previousSibling,t.removeChild(r)}const s=r?r.nextSibling:t.firstChild;return new mg(t,s,i)}createTextNode(t){return this.document.createTextNode(t)}createComment(t){return this.document.createComment(t)}},cm=class extends lm{createElementNS(t,e){return this.document.createElementNS(t,e)}setAttribute(t,e,n,r=null){r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}};function um(t){return t}function hm(t){return"getDebugCustomRenderTree"in t}new class{validate(t){switch(t){case 4:case 5:case 3:case 2:case 1:case 0:case 6:case 7:case 8:return!0;default:return!1}}expected(){return"Register"}};var dm=Symbol("TYPE"),pm=Symbol("INNER"),fm=Symbol("OWNER"),gm=Symbol("ARGS"),mm=Symbol("RESOLVED"),ym=new WeakSet;function vm(t){return ym.has(t)}function bm(t,e){return vm(t)&&t[dm]===e}var wm=class{[dm];[pm];[fm];[gm];[mm];constructor(t,e,n,r,i=!1){ym.add(this),this[dm]=t,this[pm]=e,this[fm]=n,this[gm]=r,this[mm]=i}};function _m(t){let e,n,r,i,s,o=t;for(;;){let{[gm]:t,[pm]:a}=o;if(null!==t){let{named:r,positional:i}=t;i.length>0&&(e=void 0===e?i:i.concat(e)),void 0===n&&(n=[]),n.unshift(r)}if(!vm(a)){r=a,i=o[fm],s=o[mm];break}o=a}return{definition:r,owner:i,resolved:s,positional:e,named:n}}function xm(t,e,n,r,i=!1){return new wm(t,e,n,r,i)}var Cm=0,km=class{id=Cm++;value;constructor(t){this.value=t}get(){return this.value}release(){this.value=null}toString(){let t=`Ref ${this.id}`;if(null===this.value)return`${t} (released)`;try{return`${t}: ${this.value}`}catch{return t}}},Sm=class{stack=new se;refs=new WeakMap;roots=new Set;nodes=new WeakMap;begin(){this.reset()}create(t,e){let n=zp({},e,{bounds:null,refs:new Set});this.nodes.set(t,n),this.appendChild(n,t),this.enter(t)}update(t){this.enter(t)}didRender(t,e){this.nodeFor(t).bounds=e,this.exit()}willDestroy(t){this.refs.get(t).release()}commit(){this.reset()}capture(){return this.captureRefs(this.roots)}reset(){if(0!==this.stack.size){let t=this.stack.toArray()[0],e=this.refs.get(t);for(void 0!==e&&this.roots.delete(e);!this.stack.isEmpty();)this.stack.pop()}}enter(t){this.stack.push(t)}exit(){this.stack.pop()}nodeFor(t){return this.nodes.get(t)}appendChild(t,e){let n=this.stack.current,r=new km(e);if(this.refs.set(e,r),n){let e=this.nodeFor(n);e.refs.add(r),t.parent=e}else this.roots.add(r)}captureRefs(t){let e=[];return t.forEach(n=>{let r=n.get();r?e.push(this.captureNode(`render-node:${n.id}`,r)):t.delete(n)}),e}captureNode(t,e){let n=this.nodeFor(e),{type:r,name:i,args:s,instance:o,refs:a}=n,l=this.captureBounds(n),c=this.captureRefs(a);return{id:t,type:r,name:i,args:sy(s),instance:o,bounds:l,children:c}}captureBounds(t){let e=t.bounds;return{parentElement:e.parentElement(),firstNode:e.firstNode(),lastNode:e.lastNode()}}},Em=new class{evaluateOpcode=new Array(113).fill(null);constructor(){}add(t,e,n="syscall"){this.evaluateOpcode[t]={syscall:"machine"!==n,evaluate:e}}evaluate(t,e,n){let r=this.evaluateOpcode[n];r.syscall?(e.isMachine,r.syscall,e.isMachine,e.type,r.evaluate(t,e)):(e.isMachine,r.syscall,e.isMachine,e.type,r.evaluate(t.lowlevel,e))}};Em.add(39,t=>t.pushChildScope()),Em.add(40,t=>t.popScope()),Em.add(59,t=>t.pushDynamicScope()),Em.add(60,t=>t.popDynamicScope()),Em.add(28,(t,{op1:e})=>{t.stack.push(t.constants.getValue(e))}),Em.add(29,(t,{op1:e})=>{t.stack.push(pe(t.constants.getValue(e)))}),Em.add(30,(t,{op1:e})=>{let n=t.stack;if(e>=0){let r=t.constants.getValue(e);n.push(r)}else n.push(Tp(e))}),Em.add(31,t=>{let e,n=t.stack,r=um(n.pop());e=void 0===r?ce:null===r?ue:!0===r?he:!1===r?de:le(r),n.push(e)}),Em.add(33,(t,{op1:e,op2:n})=>{let r=um(t.fetchValue(um(e)))-n;t.stack.dup(r)}),Em.add(34,(t,{op1:e})=>{t.stack.pop(e)}),Em.add(35,(t,{op1:e})=>{t.load(um(e))}),Em.add(36,(t,{op1:e})=>{t.fetch(um(e))}),Em.add(58,(t,{op1:e})=>{let n=t.constants.getArray(e);t.bindDynamicScope(n)}),Em.add(69,(t,{op1:e})=>{t.enter(e)}),Em.add(70,t=>{t.exit()}),Em.add(63,(t,{op1:e})=>{t.stack.push(t.constants.getValue(e))}),Em.add(62,t=>{t.stack.push(t.scope())}),Em.add(61,t=>{let e=t.stack,n=e.pop();n?e.push(t.compile(n)):e.push(null)}),Em.add(64,t=>{let{stack:e}=t,n=um(e.pop()),r=um(e.pop()),i=um(e.pop()),s=um(e.pop());if(null===i||null===n)return t.lowlevel.pushFrame(),void t.pushScope(r??t.scope());let o=r;{let t=i.parameters,e=t.length;if(e>0){o=o.child();for(let n=0;n{let n=um(t.stack.pop()),r=Boolean(_e(n));be(n)?r&&t.lowlevel.goto(e):(r&&t.lowlevel.goto(e),t.updateWith(new Rm(n)))}),Em.add(66,(t,{op1:e})=>{let n=um(t.stack.pop()),r=Boolean(_e(n));be(n)?r||t.lowlevel.goto(e):(r||t.lowlevel.goto(e),t.updateWith(new Rm(n)))}),Em.add(67,(t,{op1:e,op2:n})=>{um(t.stack.peek())===n&&t.lowlevel.goto(e)}),Em.add(68,t=>{let e=um(t.stack.peek());be(e)||t.updateWith(new Rm(e))}),Em.add(71,t=>{let{stack:e}=t,n=um(e.pop());e.push(ge(()=>B(_e(n))))});var Rm=class{last;constructor(t){this.ref=t,this.last=_e(t)}evaluate(t){let{last:e,ref:n}=this;e!==_e(n)&&t.throw()}},Lm=class{last;constructor(t,e){this.ref=t,this.filter=e,this.last=e(_e(t))}evaluate(t){let{last:e,ref:n,filter:r}=this;e!==r(_e(n))&&t.throw()}},Tm=class{tag=yt;lastRevision=1;target;finalize(t,e){this.target=e,this.didModify(t)}evaluate(t){let{tag:e,target:n,lastRevision:r}=this;!t.alwaysRevalidate&&ut(e,r)&&(zt(e),t.goto(n))}didModify(t){this.tag=t,this.lastRevision=ct(this.tag),zt(t)}},Pm=class{constructor(t){this.debugLabel=t}evaluate(){Pt(this.debugLabel)}},Im=class{constructor(t){this.target=t}evaluate(){let t=It();this.target.didModify(t)}};Em.add(41,(t,{op1:e})=>{t.tree().appendText(t.constants.getValue(e))}),Em.add(42,(t,{op1:e})=>{t.tree().appendComment(t.constants.getValue(e))}),Em.add(48,(t,{op1:e})=>{t.tree().openElement(t.constants.getValue(e))}),Em.add(49,t=>{let e=um(_e(um(t.stack.pop())));t.tree().openElement(e)}),Em.add(50,t=>{let e=um(t.stack.pop()),n=um(t.stack.pop()),r=um(t.stack.pop()),i=um(_e(e)),s=um(_e(n)),o=_e(r);be(e)||t.updateWith(new Rm(e)),void 0===s||be(n)||t.updateWith(new Rm(n));let a=t.tree().pushRemoteElement(i,o,s);if(t.associateDestroyable(a),void 0!==t.env.debugRenderTree){let r=Xm(void 0===s?{}:{insertBefore:n},[e]);t.env.debugRenderTree.create(a,{type:"keyword",name:"in-element",args:r,instance:null}),et(a,()=>{t.env.debugRenderTree?.willDestroy(a)})}}),Em.add(56,t=>{let e=t.tree().popRemoteElement();void 0!==t.env.debugRenderTree&&t.env.debugRenderTree.didRender(e,e)}),Em.add(54,t=>{let e=um(t.fetchValue(6)),n=null;e&&(n=e.flush(t),t.loadValue(6,null)),t.tree().flushElement(n)}),Em.add(55,t=>{let e=t.tree().closeElement();null!==e&&e.forEach(e=>{t.env.scheduleInstallModifier(e);const n=e.manager.getDestroyable(e.state);null!==n&&t.associateDestroyable(n)})}),Em.add(57,(t,{op1:e})=>{let n=um(t.stack.pop());if(!t.env.isInteractive)return;let r=t.getOwner(),i=t.constants.getValue(e),{manager:s}=i,{constructing:o}=t.tree(),a=n.capture(),l=s.create(r,o,i.state,a),c={manager:s,state:l,definition:i};um(t.fetchValue(6)).addModifier(t,c,a);let u=s.getTag(l);return null!==u?(zt(u),t.updateWith(new Mm(u,c))):void 0}),Em.add(108,t=>{let{stack:e}=t,n=um(e.pop()),r=um(e.pop());if(!t.env.isInteractive)return;let i=r.capture(),{positional:s,named:o}=i,{constructing:a}=t.tree(),l=t.getOwner(),c=ge(()=>{let t,e,r=_e(n);if(!ie(r))return;if(bm(r,2)){let{definition:n,owner:a,positional:l,named:c}=_m(r);e=n,t=a,void 0!==l&&(i.positional=l.concat(s)),void 0!==c&&(i.named=Object.assign({},...c,o))}else e=r,t=l;let c=Mu(e);if(null===c)throw new Error("BUG: modifier manager expected");let u={resolvedName:null,manager:c,state:e};return{manager:c,state:c.create(t,a,u.state,i),definition:u}}),u=_e(c),h=null;return void 0!==u&&(um(t.fetchValue(6)).addModifier(t,u,i),h=u.manager.getTag(u.state),null!==h&&zt(h)),!be(n)||h?t.updateWith(new Am(h,u,c)):void 0});var Mm=class{lastUpdated;constructor(t,e){this.tag=t,this.modifier=e,this.lastUpdated=ct(t)}evaluate(t){let{modifier:e,tag:n,lastUpdated:r}=this;zt(n),ut(n,r)||(t.env.scheduleUpdateModifier(e),this.lastUpdated=ct(n))}},Am=class{lastUpdated;constructor(t,e,n){this.tag=t,this.instance=e,this.instanceRef=n,this.lastUpdated=ct(t??xt)}evaluate(t){let{tag:e,lastUpdated:n,instance:r,instanceRef:i}=this,s=_e(i);if(s!==r){if(void 0!==r){let t=r.manager.getDestroyable(r.state);null!==t&&nt(t)}if(void 0!==s){let{manager:n,state:r}=s,i=n.getDestroyable(r);null!==i&&tt(this,i),e=n.getTag(r),null!==e&&(this.lastUpdated=ct(e)),this.tag=e,t.env.scheduleInstallModifier(s)}this.instance=s}else null===e||ut(e,n)||(t.env.scheduleUpdateModifier(r),this.lastUpdated=ct(e));null!==e&&zt(e)}};Em.add(51,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=r?t.constants.getValue(r):null;t.tree().setStaticAttribute(i,s,o)}),Em.add(52,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=um(t.stack.pop()),a=_e(o),l=r?t.constants.getValue(r):null,c=t.tree().setDynamicAttribute(i,a,s,l);be(o)||t.updateWith(new Om(o,c,t.env))});var Om=class{updateRef;constructor(t,e,n){let r=!1;this.updateRef=ge(()=>{let i=_e(t);r?e.update(i,n):r=!0}),_e(this.updateRef)}evaluate(){_e(this.updateRef)}};Em.add(78,(t,{op1:e})=>{let n=t.constants.getValue(e),{manager:r,capabilities:i}=n,s={definition:n,manager:r,capabilities:i,state:null,handle:null,table:null,lookup:null};t.stack.push(s)}),Em.add(80,(t,{op1:e})=>{let n,r=t.stack,i=um(_e(um(r.pop()))),s=t.constants,o=t.getOwner();if(s.getValue(e),t.loadValue(7,null),"string"==typeof i){let e=function(t,e,n,r){let i=t?.lookupComponent?.(n,r)??null;return e.resolvedComponent(i,n)}(t.context.resolver,s,i,o);n=e}else n=vm(i)?i:s.component(i,o);r.push(n)}),Em.add(81,t=>{let e,n=t.stack,r=_e(um(n.pop())),i=t.constants;e=vm(r)?r:i.component(r,t.getOwner(),!0),n.push(e)}),Em.add(79,t=>{let e,n,{stack:r}=t,i=r.pop();vm(i)?n=e=null:(n=i.manager,e=i.capabilities),r.push({definition:i,capabilities:e,manager:n,state:null,handle:null,table:null})}),Em.add(82,(t,{op1:e,op2:n,op3:r})=>{let i=t.stack,s=t.constants.getArray(e),o=r>>4,a=8&r,l=7&r?t.constants.getArray(n):$p;t.args.setup(i,s,l,o,!!a),i.push(t.args)}),Em.add(83,t=>{let{stack:e}=t;e.push(t.args.empty(e))}),Em.add(86,t=>{let e=t.stack,n=um(e.pop()).capture();e.push(n)}),Em.add(85,(t,{op1:e})=>{let n=t.stack,r=t.fetchValue(um(e)),i=um(n.pop()),{definition:s}=r;if(bm(s,0)){s.manager;let e=t.constants,{definition:n,owner:o,resolved:a,positional:l,named:c}=_m(s);if(a)s=n;else if("string"==typeof n){let r=t.context.resolver?.lookupComponent?.(n,o)??null;s=e.resolvedComponent(r,n)}else s=e.component(n,o);void 0!==c&&i.named.merge(zp({},...c)),void 0!==l&&(i.realloc(l.length),i.positional.prepend(l));let{manager:u}=s;r.definition=s,r.manager=u,r.capabilities=s.capabilities,t.loadValue(7,o)}let{manager:o,state:a}=s;if(!vu(0,r.capabilities,fu.prepareArgs))return void n.push(i);let l=i.blocks.values,c=i.blocks.names,u=o.prepareArgs(a,i);if(u){i.clear();for(let i=0;i{let n=um(t.fetchValue(4)),{definition:r,manager:i,capabilities:s}=n;if(!vu(0,s,fu.createInstance))return;let o=null;vu(0,s,fu.dynamicScope)&&(o=t.dynamicScope());let a=1&e,l=null;vu(0,s,fu.createArgs)&&(l=um(t.stack.peek()));let c=null;vu(0,s,fu.createCaller)&&(c=t.getSelf());let u=i.create(t.getOwner(),r.state,l,t.env,o,c,!!a);n.state=u,vu(0,s,fu.updateHook)&&t.updateWith(new jm(u,i,o))}),Em.add(88,(t,{op1:e})=>{let{manager:n,state:r,capabilities:i}=um(t.fetchValue(um(e))),s=n.getDestroyable(r);s&&t.associateDestroyable(s)}),Em.add(97,(t,{op1:e})=>{t.beginCacheGroup(void 0),t.tree().pushAppendingBlock()}),Em.add(89,t=>{t.loadValue(6,new Nm)}),Em.add(53,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=um(t.stack.pop()),a=r?t.constants.getValue(r):null;um(t.fetchValue(6)).setAttribute(i,o,s,a)}),Em.add(105,(t,{op1:e,op2:n,op3:r})=>{let i=t.constants.getValue(e),s=t.constants.getValue(n),o=r?t.constants.getValue(r):null;um(t.fetchValue(6)).setStaticAttribute(i,s,o)});var Nm=class{attributes=ne();classes=[];modifiers=[];setAttribute(t,e,n,r){let i={value:e,namespace:r,trusting:n};"class"===t&&this.classes.push(e),this.attributes[t]=i}setStaticAttribute(t,e,n){let r={value:e,namespace:n};"class"===t&&this.classes.push(e),this.attributes[t]=r}addModifier(t,e,n){if(this.modifiers.push(e),void 0!==t.env.debugRenderTree){const{manager:r,definition:i,state:s}=e;if(null===s||"object"!=typeof s&&"function"!=typeof s)return;let{element:o,constructing:a}=t.tree(),l=i.resolvedName??r.getDebugName(i.state),c=r.getDebugInstance(s),u=new mg(o,a,a);t.env.debugRenderTree.create(s,{type:"modifier",name:l,args:n,instance:c}),t.env.debugRenderTree.didRender(s,u),t.associateDestroyable(s),t.updateWith(new Bm(s)),t.updateWith(new $m(s,u)),et(s,()=>{t.env.debugRenderTree?.willDestroy(s)})}}flush(t){let e,n=this.attributes;for(let r in this.attributes){if("type"===r){e=n[r];continue}let i=Xt(this.attributes[r]);"class"===r?Fm(t,"class",zm(this.classes),i.namespace,i.trusting):Fm(t,r,i.value,i.namespace,i.trusting)}return void 0!==e&&Fm(t,"type",e.value,e.namespace,e.trusting),this.modifiers}};function zm(t){return 0===t.length?"":1===t.length?t[0]:function(t){return t.every(t=>"string"==typeof t)}(t)?t.join(" "):(e=t,ge(()=>{let t=[];for(const n of e){let e=bg("string"==typeof n?n:_e(n));e&&t.push(e)}return 0===t.length?null:t.join(" ")}));var e}function Fm(t,e,n,r,i=!1){if("string"==typeof n)t.tree().setStaticAttribute(e,n,r);else{let s=t.tree().setDynamicAttribute(e,_e(n),i,r);be(n)||t.updateWith(new Om(n,s,t.env))}}function Dm(t,e,n,r,i){let s=n.table.symbols.indexOf(t),o=r.get(e);-1!==s&&i.scope().bindBlock(s+1,o),n.lookup&&(n.lookup[t]=o)}Em.add(99,(t,{op1:e})=>{let{definition:n,state:r}=um(t.fetchValue(um(e))),{manager:i}=n,s=um(t.fetchValue(6));i.didCreateElement(r,t.tree().constructing,s)}),Em.add(90,(t,{op1:e,op2:n})=>{let{definition:r,state:i}=um(t.fetchValue(um(e))),{manager:s}=r,o=s.getSelf(i);if(void 0!==t.env.debugRenderTree){let r,s=um(t.fetchValue(um(e))),{definition:a,manager:l}=s;if(t.stack.peek()===t.args)r=t.args.capture();else{let e=t.constants.getArray(n);t.args.setup(t.stack,e,[],0,!0),r=t.args.capture()}let c=a.compilable;if(null===c){vu(0,s.capabilities,fu.dynamicLayout);let e=t.context.resolver;c=null===e?null:l.getDynamicLayout(i,e)}if(t.associateDestroyable(s),hm(l))l.getDebugCustomRenderTree(s.definition.state,s.state,r).forEach(e=>{let{bucket:n}=e;t.env.debugRenderTree.create(n,e),et(s,()=>{t.env.debugRenderTree?.willDestroy(n)}),t.updateWith(new Bm(n))});else{let e=function(t,e=t.manager){return t.resolvedName??t.debugName??e.getDebugName(t.state)}(a,l);t.env.debugRenderTree.create(s,{type:"component",name:e,args:r,instance:_e(o)}),et(s,()=>{t.env.debugRenderTree?.willDestroy(s)}),t.updateWith(new Bm(s))}}t.stack.push(o)}),Em.add(91,(t,{op1:e})=>{let{definition:n,state:r}=um(t.fetchValue(um(e))),{manager:i}=n,s=i.getTagName(r);t.stack.push(s)}),Em.add(92,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{manager:r,definition:i}=n,{stack:s}=t,{compilable:o}=i;if(null===o){let{capabilities:e}=n;vu(0,e,fu.dynamicLayout);let i=t.context.resolver;o=null===i?null:r.getDynamicLayout(n.state,i),null===o&&(o=vu(0,e,fu.wrapped)?Ip(t.constants.defaultTemplate).asWrappedLayout():Ip(t.constants.defaultTemplate).asLayout())}let a=o.compile(t.context);s.push(o.symbolTable),s.push(a)}),Em.add(75,(t,{op1:e})=>{let n=um(t.stack.pop()),r=um(t.stack.pop()),{manager:i,capabilities:s}=n,o={definition:n,manager:i,capabilities:s,state:null,handle:r.handle,table:r.symbolTable,lookup:null};t.loadValue(um(e),o)}),Em.add(95,(t,{op1:e})=>{let{stack:n}=t,r=um(n.pop()),i=um(n.pop()),s=um(t.fetchValue(um(e)));s.handle=r,s.table=i}),Em.add(38,(t,{op1:e})=>{let n,{table:r,manager:i,capabilities:s,state:o}=um(t.fetchValue(um(e)));vu(0,s,fu.hasSubOwner)?(n=i.getOwner(o),t.loadValue(7,null)):(n=t.fetchValue(7),null===n?n=t.getOwner():t.loadValue(7,null)),t.pushRootScope(r.symbols.length+1,n)}),Em.add(17,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),r=t.scope(),i=um(t.stack.peek()),s=i.named.atNames;for(let o=s.length-1;o>=0;o--){let t=Xt(s[o]),e=n.table.symbols.indexOf(t),a=i.named.get(t,!0);-1!==e&&r.bindSymbol(e+1,a),n.lookup&&(n.lookup[t]=a)}}),Em.add(18,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{blocks:r}=um(t.stack.peek());for(const[i]of Hp(r.names))Dm(Xt(r.symbolNames[i]),Xt(r.names[i]),n,r,t)}),Em.add(96,(t,{op1:e})=>{let n=um(t.fetchValue(um(e)));t.call(n.handle)}),Em.add(100,(t,{op1:e})=>{let n=um(t.fetchValue(um(e))),{manager:r,state:i,capabilities:s}=n,o=t.tree().popBlock();void 0!==t.env.debugRenderTree&&(hm(r)?r.getDebugCustomRenderTree(n.definition.state,i,ly).reverse().forEach(e=>{let{bucket:n}=e;t.env.debugRenderTree.didRender(n,o),t.updateWith(new $m(n,o))}):(t.env.debugRenderTree.didRender(n,o),t.updateWith(new $m(n,o)))),vu(0,s,fu.createInstance)&&(um(r).didRenderLayout(i,o),t.env.didCreate(n),t.updateWith(new Um(n,o)))}),Em.add(98,t=>{t.commitCacheGroup()});var jm=class{constructor(t,e,n){this.component=t,this.manager=e,this.dynamicScope=n}evaluate(t){let{component:e,manager:n,dynamicScope:r}=this;n.update(e,r)}},Um=class{constructor(t,e){this.component=t,this.bounds=e}evaluate(t){let{component:e,bounds:n}=this,{manager:r,state:i}=e;r.didUpdateLayout(i,n),t.env.didUpdate(e)}},Bm=class{constructor(t){this.bucket=t}evaluate(t){t.env.debugRenderTree?.update(this.bucket)}},$m=class{constructor(t,e){this.bucket=t,this.bounds=e}evaluate(t){t.env.debugRenderTree?.didRender(this.bucket,this.bounds)}},qm=(new class{validate(t){return"object"==typeof t&&null!==t&&oe in t}expected(){return"Reference"}},class{stack=null;positional=new Wm;named=new Hm;blocks=new Km;constructor(){}empty(t){let e=t.registers[3]+1;return this.named.empty(t,e),this.positional.empty(t,e),this.blocks.empty(t,e),this}setup(t,e,n,r,i){this.stack=t;let s=this.named,o=e.length,a=t.registers[3]-o+1;s.setup(t,a,o,e,i);let l=a-r;this.positional.setup(t,l,r);let c=this.blocks,u=n.length,h=l-3*u;c.setup(t,h,u,n)}get base(){return this.blocks.base}get length(){return this.positional.length+this.named.length+3*this.blocks.length}at(t){return this.positional.at(t)}realloc(t){let{stack:e}=this;if(t>0&&null!==e){let{positional:n,named:r}=this,i=n.base+t;for(let t=n.length+r.length-1;t>=0;t--)e.copy(t+n.base,t+i);n.base+=t,r.base+=t,e.registers[3]+=t}}capture(){let t=0===this.positional.length?ay:this.positional.capture();return{named:0===this.named.length?oy:this.named.capture(),positional:t}}clear(){let{stack:t,length:e}=this;e>0&&null!==t&&t.pop(e)}}),Vm=Bp(),Wm=class{base=0;length=0;stack=null;_references=null;constructor(){}empty(t,e){this.stack=t,this.base=e,this.length=0,this._references=Vm}setup(t,e,n){this.stack=t,this.base=e,this.length=n,this._references=0===n?Vm:null}at(t){let{base:e,length:n,stack:r}=this;return t<0||t>=n?ce:um(r.get(t,e))}capture(){return this.references}prepend(t){let e=t.length;if(e>0){let{base:n,length:r,stack:i}=this;this.base=n-=e,this.length=r+e;for(let s=0;s0){let{names:n,length:r,stack:i}=this,s=n.slice();for(const o of e)-1===s.indexOf(o)&&(r=s.push(o),i.push(t[o]));this.length=r,this._references=null,this._names=s,this._atNames=null}}get references(){let t=this._references;if(!t){let{base:e,length:n,stack:r}=this;t=this._references=r.slice(e,e+n)}return t}toSyntheticName(t){return t.slice(1)}toAtName(t){return`@${t}`}};function Gm(t){return`&${t}`}var Zm=Bp(),Km=class{internalValues=null;_symbolNames=null;internalTag=null;names=$p;length=0;base=0;constructor(){}empty(t,e){this.stack=t,this.names=$p,this.base=e,this.length=0,this._symbolNames=null,this.internalTag=yt,this.internalValues=Zm}setup(t,e,n,r){this.stack=t,this.names=r,this.base=e,this.length=n,this._symbolNames=null,0===n?(this.internalTag=yt,this.internalValues=Zm):(this.internalTag=null,this.internalValues=null)}get values(){let t=this.internalValues;if(!t){let{base:e,length:n,stack:r}=this;t=this.internalValues=r.slice(e,e+3*n)}return t}has(t){return-1!==this.names.indexOf(t)}get(t){let e=this.names.indexOf(t);if(-1===e)return null;let{base:n,stack:r}=this,i=um(r.get(3*e,n)),s=um(r.get(3*e+1,n)),o=um(r.get(3*e+2,n));return null===o?null:[o,s,i]}capture(){return new Ym(this.names,this.values)}get symbolNames(){let t=this._symbolNames;return null===t&&(t=this._symbolNames=this.names.map(Gm)),t}},Ym=class{length;constructor(t,e){this.names=t,this.values=e,this.length=t.length}has(t){return-1!==this.names.indexOf(t)}get(t){let e=this.names.indexOf(t);return-1===e?null:[this.values[3*e+2],this.values[3*e+1],this.values[3*e]]}};function Xm(t,e){return{named:t,positional:e}}function Jm(t){let e=ne();for(const[n,r]of Object.entries(t))e[n]=_e(r);return e}function Qm(t){return t.map(_e)}function ty(t){return{named:Jm(t.named),positional:Qm(t.positional)}}var ey=Symbol("ARGUMENT_ERROR");function ny(t){return null!==t&&"object"==typeof t&&t[ey]}function ry(t){return{[ey]:!0,error:t}}function iy(t){let e=ne();for(const[r,i]of Object.entries(t))try{e[r]=_e(i)}catch(n){e[r]=ry(n)}return e}function sy(t){return{named:iy(t.named),positional:(e=t.positional,e.map(t=>{try{return _e(t)}catch(e){return ry(e)}}))};var e}var oy=Object.freeze(Object.create(null)),ay=Vm,ly=Xm(oy,ay),cy=a({FALSE_REFERENCE:()=>de,NULL_REFERENCE:()=>ue,REFERENCE:()=>oe,TRUE_REFERENCE:()=>he,UNDEFINED_REFERENCE:()=>ce,childRefFor:()=>Ce,childRefFromParts:()=>ke,createComputeRef:()=>ge,createConstRef:()=>pe,createDebugAliasRef:()=>{},createInvokableRef:()=>ve,createIteratorItemRef:()=>vy,createIteratorRef:()=>yy,createPrimitiveRef:()=>le,createReadOnlyRef:()=>me,createUnboundRef:()=>fe,isConstRef:()=>be,isInvokableRef:()=>ye,isUpdatableRef:()=>we,updateRef:()=>xe,valueForRef:()=>_e}),uy={},hy=(t,e)=>e,dy=(t,e)=>String(e),py=t=>null===t?uy:t,fy=class{_weakMap;_primitiveMap;get weakMap(){return void 0===this._weakMap&&(this._weakMap=new WeakMap),this._weakMap}get primitiveMap(){return void 0===this._primitiveMap&&(this._primitiveMap=new Map),this._primitiveMap}set(t,e){ie(t)?this.weakMap.set(t,e):this.primitiveMap.set(t,e)}get(t){return ie(t)?this.weakMap.get(t):this.primitiveMap.get(t)}},gy=new fy;function my(t){let e=new fy;return(n,r)=>{let i=t(n,r),s=e.get(i)||0;return e.set(i,s+1),0===s?i:function(t,e){let n=gy.get(t);void 0===n&&(n=[],gy.set(t,n));let r=n[e];return void 0===r&&(r={value:t,count:e},n[e]=r),r}(i,s)}}function yy(t,e){return ge(()=>{let n=_e(t),r=function(t){switch(t){case"@key":return my(hy);case"@index":return my(dy);case"@identity":return my(py);default:return e=t,my(t=>null==t?t:V(t,e))}var e}(e);if(Array.isArray(n))return new wy(n,r);let i=U(n);return null===i?new wy(Up,()=>null):new by(i,r)})}function vy(t){let e=t,n=gt();return ge(()=>(zt(n),e),t=>{e!==t&&(e=t,pt(n))})}var by=class{constructor(t,e){this.inner=t,this.keyFor=e}isEmpty(){return this.inner.isEmpty()}next(){let t=this.inner.next();return null!==t&&(t.key=this.keyFor(t.value,t.memo)),t}},wy=class{current;pos=0;constructor(t,e){this.iterator=t,this.keyFor=e,0===t.length?this.current={kind:"empty"}:this.current={kind:"first",value:t[this.pos]}}isEmpty(){return"empty"===this.current.kind}next(){let t,e=this.current;if("first"===e.kind)this.current={kind:"progress"},t=e.value;else{if(this.pos>=this.iterator.length-1)return null;t=this.iterator[++this.pos]}let{keyFor:n}=this;return{key:n(t,this.pos),value:t,memo:this.pos}}},_y=class t{bucket;constructor(t){this.bucket=t?zp({},t):{}}get(t){return this.bucket[t]}set(t,e){return this.bucket[t]=e}child(){return new t(this.bucket)}},xy=class t{static root(e,{self:n,size:r=0}){let i=new Array(r+1).fill(ce);return new t(e,i,null).init({self:n})}static sized(e,n=0){let r=new Array(n+1).fill(ce);return new t(e,r,null)}owner;slots;callerScope;constructor(t,e,n){this.owner=t,this.slots=e,this.callerScope=n}init({self:t}){return this.slots[0]=t,this}snapshot(){return this.slots.slice()}getSelf(){return this.get(0)}getSymbol(t){return this.get(t)}getBlock(t){let e=this.get(t);return e===ce?null:e}bind(t,e){this.set(t,e)}bindSelf(t){this.set(0,t)}bindSymbol(t,e){this.set(t,e)}bindBlock(t,e){this.set(t,e)}bindCallerScope(t){this.callerScope=t}getCallerScope(){return this.callerScope}child(){return new t(this.owner,this.slots.slice(),this.callerScope)}get(t){if(t>=this.slots.length)throw new RangeError(`BUG: cannot get $${t} from scope; length=${this.slots.length}`);return this.slots[t]}set(t,e){if(t>=this.slots.length)throw new RangeError(`BUG: cannot get $${t} from scope; length=${this.slots.length}`);this.slots[t]=e}};["b","big","blockquote","body","br","center","code","dd","div","dl","dt","em","embed","h1","h2","h3","h4","h5","h6","head","hr","i","img","li","listing","main","meta","nobr","ol","p","pre","ruby","s","small","span","strong","strike","sub","sup","table","tt","u","ul","var"].forEach(t=>am[t]=1);var Cy=/[\t\n\v\f\r \xa0\u{1680}\u{180e}\u{2000}-\u{200a}\u{2028}\u{2029}\u{202f}\u{205f}\u{3000}\u{feff}]/u;function ky(t){return Cy.test(t)}var Sy=class extends lm{namespace;constructor(t){super(t),this.document=t,this.namespace=null}setAttribute(t,e,n){t.setAttribute(e,n)}removeAttribute(t,e){t.removeAttribute(e)}insertAfter(t,e,n){this.insertBefore(t,e,n.nextSibling)}},Ey=Sy,Ry=Symbol("TRANSACTION"),Ly=class{scheduledInstallModifiers=[];scheduledUpdateModifiers=[];createdComponents=[];updatedComponents=[];didCreate(t){this.createdComponents.push(t)}didUpdate(t){this.updatedComponents.push(t)}scheduleInstallModifier(t){this.scheduledInstallModifiers.push(t)}scheduleUpdateModifier(t){this.scheduledUpdateModifiers.push(t)}commit(){let{createdComponents:t,updatedComponents:e}=this;for(const{manager:i,state:s}of t)i.didCreate(s);for(const{manager:i,state:s}of e)i.didUpdate(s);let{scheduledInstallModifiers:n,scheduledUpdateModifiers:r}=this;for(const{manager:i,state:s,definition:o}of n){let t=i.getTag(s);if(null!==t){let e=Vt(()=>i.install(s));ft(t,e)}else i.install(s)}for(const{manager:i,state:s,definition:o}of r){let t=i.getTag(s);if(null!==t){let e=Vt(()=>i.update(s));ft(t,e)}else i.update(s)}}},Ty=class{[Ry]=null;updateOperations;isInteractive;isArgumentCaptureError;debugRenderTree;constructor(t,e){this.delegate=e,this.isInteractive=e.isInteractive,this.debugRenderTree=this.delegate.enableDebugTooling?new Sm:void 0,this.isArgumentCaptureError=this.delegate.enableDebugTooling?ny:void 0,t.appendOperations?(this.appendOperations=t.appendOperations,this.updateOperations=t.updateOperations):t.document&&(this.appendOperations=new cm(t.document),this.updateOperations=new Sy(t.document))}getAppendOperations(){return this.appendOperations}getDOM(){return this.updateOperations}begin(){this[Ry],this.debugRenderTree?.begin(),this[Ry]=new Ly}get transaction(){return this[Ry]}didCreate(t){this.transaction.didCreate(t)}didUpdate(t){this.transaction.didUpdate(t)}scheduleInstallModifier(t){this.isInteractive&&this.transaction.scheduleInstallModifier(t)}scheduleUpdateModifier(t){this.isInteractive&&this.transaction.scheduleUpdateModifier(t)}commit(){let t=this.transaction;this[Ry]=null,t.commit(),this.debugRenderTree?.commit(),this.delegate.onTransactionCommit()}};function Py(t,e,n,r){return{env:new Ty(t,e),program:new cg(n.constants,n.heap),resolver:r}}function Iy(t,e){if(t[Ry])e();else{t.begin();try{e()}finally{t.commit()}}}function My(t){return"string"==typeof t?t:"function"!=typeof t.toString?"":String(t)}function Ay(t){let e,n=Nu(t);return e=null===n?null:"function"==typeof n?n:n.getHelper(t),e}function Oy(t){return t===ce}Em.add(77,(t,{op1:e,op2:n})=>{let r=t.stack,i=r.pop(),s=r.pop(),o=t.getOwner();t.context.resolver,t.loadValue(8,function(t,e,n,r){let i,s;return ge(()=>{let o=_e(e);return o===i||(s=bm(o,t)?r?xm(t,o,n,r):r:0===t&&"string"==typeof o&&o||ie(o)?xm(t,o,n,r):null,i=o),s})}(e,i,o,s))}),Em.add(107,t=>{let e,n=t.stack,r=n.pop(),i=n.pop().capture(),s=t.getOwner(),o=ge(()=>{void 0!==e&&nt(e);let t=_e(r);if(bm(t,1)){let{definition:n,owner:r,positional:s,named:a}=_m(t),l=Ay(n);void 0!==a&&(i.named=zp({},...a,i.named)),void 0!==s&&(i.positional=s.concat(i.positional)),e=l(i,r),tt(o,e)}else ie(t)?(e=Ay(t)(i,s),rt(e)&&tt(o,e)):e=ce}),a=ge(()=>(_e(o),_e(e)));t.associateDestroyable(o),t.loadValue(8,a)}),Em.add(16,(t,{op1:e})=>{let n=t.stack,r=t.constants.getValue(e)(n.pop().capture(),t.getOwner(),t.dynamicScope());rt(r)&&t.associateDestroyable(r),t.loadValue(8,r)}),Em.add(21,(t,{op1:e})=>{let n=t.referenceForSymbol(e);t.stack.push(n)}),Em.add(19,(t,{op1:e})=>{let n=t.stack.pop();t.scope().bindSymbol(e,n)}),Em.add(20,(t,{op1:e})=>{let n=t.stack.pop(),r=t.stack.pop(),i=t.stack.pop();t.scope().bindBlock(e,[n,r,i])}),Em.add(37,(t,{op1:e})=>{t.pushRootScope(e,t.getOwner())}),Em.add(22,(t,{op1:e})=>{let n=t.constants.getValue(e),r=t.stack.pop();t.stack.push(Ce(r,n))}),Em.add(23,(t,{op1:e})=>{let{stack:n}=t,r=t.scope().getBlock(e);n.push(r)}),Em.add(24,t=>{let{stack:e}=t,n=e.pop();if(n&&!Oy(n)){let[t,r,i]=n;e.push(i),e.push(r),e.push(t)}else e.push(null),e.push(null),e.push(null)}),Em.add(25,t=>{let{stack:e}=t,n=e.pop();n&&!Oy(n)?e.push(he):e.push(de)}),Em.add(26,t=>{t.stack.pop(),t.stack.pop();let e=t.stack.pop(),n=e&&e.parameters.length;t.stack.push(n?he:de)}),Em.add(27,(t,{op1:e})=>{let n=new Array(e);for(let i=e;i>0;i--)n[i-1]=um(t.stack.pop());var r;t.stack.push((r=n,ge(()=>{const t=[];for(const e of r){const n=_e(e);null!=n&&t.push(My(n))}return t.length>0?t.join(""):null})))}),Em.add(109,t=>{let e=t.stack.pop(),n=t.stack.pop(),r=t.stack.pop();t.stack.push(ge(()=>B(_e(e))?_e(n):_e(r)))}),Em.add(110,t=>{let e=t.stack.pop();t.stack.push(ge(()=>!B(_e(e))))}),Em.add(111,t=>{let e=t.dynamicScope(),n=t.stack,r=n.pop();n.push(ge(()=>{let t=String(_e(r));return _e(e.get(t))}))}),Em.add(112,t=>{let{positional:e}=t.stack.pop().capture();t.loadValue(8,ge(()=>{console.log(...Qm(e))}))});var Ny=class{constructor(t,e,n){this.node=t,this.reference=e,this.lastValue=n}evaluate(){let t,e=_e(this.reference),{lastValue:n}=this;e!==n&&(t=wg(e)?"":Cg(e)?e:String(e),t!==n)&&(this.node.nodeValue=this.lastValue=t)}};function zy(t){return function(t){return Cg(t)||wg(t)||"boolean"==typeof t||"number"==typeof t}(t)?2:bm(t,0)||Du(t)?0:bm(t,1)||ju(t)?1:xg(t)?4:function(t){return _g(t)&&11===t.nodeType}(t)?5:function(t){return _g(t)&&"number"==typeof t.nodeType}(t)?6:2}function Fy(t){return ie(t)?bm(t,0)||Du(t)?0:1:2}function Dy(t,e){console.info("Use `context`, and `get()` to debug this template."),e("this")}Em.add(76,t=>{let e=t.stack.peek();t.stack.push(zy(_e(e))),be(e)||t.updateWith(new Lm(e,zy))}),Em.add(106,t=>{let e=t.stack.peek();t.stack.push(Fy(_e(e))),be(e)||t.updateWith(new Lm(e,Fy))}),Em.add(43,t=>{let e=_e(t.stack.pop()),n=wg(e)?"":String(e);t.tree().appendDynamicHTML(n)}),Em.add(44,t=>{let e=_e(t.stack.pop()).toHTML(),n=wg(e)?"":e;t.tree().appendDynamicHTML(n)}),Em.add(47,t=>{let e=t.stack.pop(),n=_e(e),r=wg(n)?"":String(n),i=t.tree().appendDynamicText(r);be(e)||t.updateWith(new Ny(i,e,r))}),Em.add(45,t=>{let e=_e(t.stack.pop());t.tree().appendDynamicFragment(e)}),Em.add(46,t=>{let e=_e(t.stack.pop());t.tree().appendDynamicNode(e)});var jy=Dy;function Uy(t){jy=t}function By(){jy=Dy}var $y=class{#h;constructor(t,e){this.scope=t,this.#h=e}get(t){let e,{scope:n}=this,r=this.#h,i=t.split("."),[s,...o]=t.split(".");return"this"===s?e=n.getSelf():r.locals[s]?e=n.getSymbol(r.locals[s]):(e=this.scope.getSelf(),o=i),o.reduce((t,e)=>Ce(t,e),e)}};Em.add(103,(t,{op1:e})=>{let n=t.constants.getValue(e),r=new $y(t.scope(),n);jy(_e(t.getSelf()),t=>_e(r.get(t)))}),Em.add(72,(t,{op1:e,op2:n})=>{let r=t.stack,i=r.pop(),s=_e(r.pop()),o=yy(i,null===s?"@identity":String(s)),a=_e(o);t.updateWith(new Lm(o,t=>t.isEmpty())),a.isEmpty()?t.lowlevel.goto(n+1):(t.enterList(o,e),t.stack.push(a))}),Em.add(73,t=>{t.exitList()}),Em.add(74,(t,{op1:e})=>{let n=t.stack.peek().next();null!==n?t.registerItem(t.enterItem(n)):t.lowlevel.goto(e)});var qy=class{currentOpSize=0;registers;context;constructor(t,e,n,r){this.stack=t,this.externs=n,this.context=e,this.registers=r}fetchRegister(t){return this.registers[t]}loadRegister(t,e){this.registers[t]=e}setPc(t){this.registers[0]=t}pushFrame(){this.stack.push(this.registers[1]),this.stack.push(this.registers[2]),this.registers[2]=this.registers[3]-1}popFrame(){this.registers[3]=this.registers[2]-1,this.registers[1]=this.stack.get(0),this.registers[2]=this.stack.get(1)}pushSmallFrame(){this.stack.push(this.registers[1])}popSmallFrame(){this.registers[1]=this.stack.pop()}goto(t){this.setPc(this.target(t))}target(t){return this.registers[0]+t-this.currentOpSize}call(t){this.registers[1]=this.registers[0],this.setPc(this.context.program.heap.getaddr(t))}returnTo(t){this.registers[1]=this.target(t)}return(){this.setPc(this.registers[1])}nextStatement(){let{registers:t,context:e}=this,n=t[0];if(-1===n)return null;let r=e.program.opcode(n),i=this.currentOpSize=r.size;return this.registers[0]+=i,r}evaluateOuter(t,e){this.evaluateInner(t,e)}evaluateInner(t,e){t.isMachine?this.evaluateMachine(t,e):this.evaluateSyscall(t,e)}evaluateMachine(t,e){switch(t.type){case 0:return void this.pushFrame();case 1:return void this.popFrame();case 3:return void this.call(t.op1);case 2:return void e.call(this.stack.pop());case 4:return void this.goto(t.op1);case 5:return void e.return();case 6:return void this.returnTo(t.op1)}}evaluateSyscall(t,e){Em.evaluate(e,t,t.type)}},Vy=class{env;dom;alwaysRevalidate;frameStack=new se;constructor(t,{alwaysRevalidate:e=!1}){this.env=t,this.dom=t.getDOM(),this.alwaysRevalidate=e}execute(t,e){this._execute(t,e)}_execute(t,e){let{frameStack:n}=this;for(this.try(t,e);!n.isEmpty();){let t=this.frame.nextStatement();void 0!==t?t.evaluate(this):n.pop()}}get frame(){return this.frameStack.current}goto(t){this.frame.goto(t)}try(t,e){this.frameStack.push(new Ky(t,e))}throw(){this.frame.handleException(),this.frameStack.pop()}},Wy=class{children;bounds;constructor(t,e,n,r){this.state=t,this.context=e,this.children=r,this.bounds=n}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}evaluate(t){t.try(this.children,null)}},Hy=class extends Wy{type="try";evaluate(t){t.try(this.children,this)}handleException(){let{state:t,bounds:e,context:{env:n}}=this;!function(t){let{children:e}=Q(t);X(e,nt)}(this);let r=tm.resume(n,e),i=t.evaluate(r),s=this.children=[],o=i.execute(t=>{t.updateWith(this),t.pushUpdating(s)});tt(this,o.drop)}},Gy=class extends Hy{retained=!1;index=-1;constructor(t,e,n,r,i,s){super(t,e,n,[]),this.key=r,this.memo=i,this.value=s}shouldRemove(){return!this.retained}reset(){this.retained=!1}},Zy=class extends Wy{type="list-block";opcodeMap=new Map;marker=null;lastIterator;constructor(t,e,n,r,i){super(t,e,n,r),this.iterableRef=i,this.lastIterator=_e(i)}initializeChild(t){t.index=this.children.length-1,this.opcodeMap.set(t.key,t)}evaluate(t){let e=_e(this.iterableRef);if(this.lastIterator!==e){let{bounds:n}=this,{dom:r}=t,i=this.marker=r.createComment("");r.insertAfter(n.parentElement(),i,n.lastNode()),this.sync(e),this.parentElement().removeChild(i),this.marker=null,this.lastIterator=e}super.evaluate(t)}sync(t){let{opcodeMap:e,children:n}=this,r=0,i=0;for(this.children=this.bounds.boundList=[];;){let s=t.next();if(null===s)break;let o=n[r],{key:a}=s;for(;void 0!==o&&o.retained;)o=n[++r];if(void 0!==o&&o.key===a)this.retainItem(o,s),r++;else if(e.has(a)){let t=e.get(a);if(t.index{let r=e.enterItem(t);r.index=s.length,s.push(r),n.set(a,r),tt(this,r)})}moveItem(t,e,n){let r,i,{children:s}=this;xe(t.memo,e.memo),xe(t.value,e.value),t.retained=!0,void 0===n?yg(t,this.marker):(r=t.lastNode().nextSibling,i=n.firstNode(),r!==i&&yg(t,i)),t.index=s.length,s.push(t)}deleteItem(t){nt(t),vg(t),this.opcodeMap.delete(t.key)}},Ky=class{current=0;constructor(t,e){this.ops=t,this.exceptionHandler=e}goto(t){this.current=t}nextStatement(){return this.ops[this.current++]}handleException(){this.exceptionHandler&&this.exceptionHandler.handleException()}},Yy=class{constructor(t,e,n,r){this.env=t,this.updating=e,this.bounds=n,this.drop=r,tt(this,r),et(this,()=>vg(this.bounds))}rerender({alwaysRevalidate:t=!1}={alwaysRevalidate:!1}){let{env:e,updating:n}=this;new Vy(e,{alwaysRevalidate:t}).execute(n,this)}parentElement(){return this.bounds.parentElement()}firstNode(){return this.bounds.firstNode()}lastNode(){return this.bounds.lastNode()}handleException(){}},Xy=class{static restore(t,e){const n=new this(t.slice(),function(t){return[0,-1,t,0]}(t.length-1));return n.registers[0]=e,n.registers[3]=t.length-1,n.registers[2]=-1,n}registers;constructor(t=[],e){this.stack=t,this.registers=e}push(t){this.stack[++this.registers[3]]=t}dup(t=this.registers[3]){this.stack[++this.registers[3]]=this.stack[t]}copy(t,e){this.stack[e]=this.stack[t]}pop(t=1){let e=this.stack[this.registers[3]];return this.registers[3]-=t,e}peek(t=0){return this.stack[this.registers[3]-t]}get(t,e=this.registers[2]){return this.stack[e+t]}set(t,e,n=this.registers[2]){this.stack[n+e]=t}slice(t,e){return this.stack.slice(t,e)}capture(t){let e=this.registers[3]+1,n=e-t;return this.stack.slice(n,e)}reset(){this.stack.length=0}},Jy=class{drop={};scope=new se;dynamicScope=new se;updating=new se;cache=new se;list=new se;destroyable=new se;constructor(t,e){this.scope.push(t),this.dynamicScope.push(e),this.destroyable.push(this.drop)}},Qy=class t{#d;args;lowlevel;debug;trace;get stack(){return this.lowlevel.stack}get pc(){return this.lowlevel.fetchRegister(0)}#p=[null,null,null,null,null,null,null,null,null];fetch(t){let e=this.fetchValue(t);this.stack.push(e)}load(t){let e=this.stack.pop();this.loadValue(t,e)}loadValue(t,e){this.#p[t]=e}fetchValue(t){return function(t){return t<=3}(t)?this.lowlevel.fetchRegister(t):this.#p[t]}call(t){null!==t&&this.lowlevel.call(t)}return(){this.lowlevel.return()}#f;context;constructor({scope:t,dynamicScope:e,stack:n,pc:r},i,s){let o=Xy.restore(n,r);this.#f=s,this.context=i,this.#d=new Jy(t,e),this.args=new qm,this.lowlevel=new qy(o,i,void 0,o.registers),this.pushUpdating()}static initial(e,n){let r=xy.root(n.owner,n.scope??{self:ce,size:0});const i=function(t,e,n){return{pc:t,scope:e,dynamicScope:n,stack:[]}}(e.program.heap.getaddr(n.handle),r,n.dynamicScope);return new t(i,e,n.tree)}compile(t){return Pp(t.compile(this.context))}get constants(){return this.context.program.constants}get program(){return this.context.program}get env(){return this.context.env}captureClosure(t,e=this.lowlevel.fetchRegister(0)){return{pc:e,scope:this.scope(),dynamicScope:this.dynamicScope(),stack:this.stack.capture(t)}}capture(t,e=this.lowlevel.fetchRegister(0)){return new tv(this.captureClosure(t,e),this.context)}beginCacheGroup(t){let e=this.updating(),n=new Tm;e.push(n),e.push(new Pm(t)),this.#d.cache.push(n),Pt()}commitCacheGroup(){let t=this.updating(),e=this.#d.cache.pop(),n=It();t.push(new Im(e)),e.finalize(n,t.length)}enter(t){let e=this.capture(t),n=this.tree().pushResettableBlock(),r=new Hy(e,this.context,n,[]);this.didEnter(r)}enterItem({key:t,value:e,memo:n}){let{stack:r}=this,i=vy(e),s=vy(n);r.push(i),r.push(s);let o=this.capture(2),a=this.tree().pushResettableBlock(),l=new Gy(o,this.context,a,t,s,i);return this.didEnter(l),l}registerItem(t){this.listBlock().initializeChild(t)}enterList(t,e){let n=[],r=this.lowlevel.target(e),i=this.capture(0,r),s=this.tree().pushBlockList(n),o=new Zy(i,this.context,s,n,t);this.#d.list.push(o),this.didEnter(o)}didEnter(t){this.associateDestroyable(t),this.#d.destroyable.push(t),this.updateWith(t),this.pushUpdating(t.children)}exit(){this.#d.destroyable.pop(),this.#f.popBlock(),this.popUpdating()}exitList(){this.exit(),this.#d.list.pop()}pushRootScope(t,e){let n=xy.sized(e,t);return this.#d.scope.push(n),n}pushChildScope(){this.#d.scope.push(this.scope().child())}pushScope(t){this.#d.scope.push(t)}popScope(){this.#d.scope.pop()}pushDynamicScope(){let t=this.dynamicScope().child();return this.#d.dynamicScope.push(t),t}bindDynamicScope(t){let e=this.dynamicScope();for(const n of Wp(t))e.set(n,this.stack.pop())}pushUpdating(t=[]){this.#d.updating.push(t)}popUpdating(){return this.#d.updating.pop()}updateWith(t){this.updating().push(t)}listBlock(){return this.#d.list.current}associateDestroyable(t){tt(this.#d.destroyable.current,t)}updating(){return this.#d.updating.current}tree(){return this.#f}scope(){return this.#d.scope.current}dynamicScope(){return this.#d.dynamicScope.current}popDynamicScope(){this.#d.dynamicScope.pop()}getOwner(){return this.scope().owner}getSelf(){return this.scope().getSelf()}referenceForSymbol(t){return this.scope().getSymbol(t)}execute(t){return this._execute(t)}_execute(t){let e;t&&t(this);do{e=this.next()}while(!e.done);return e.value}next(){let t,{env:e}=this,n=this.lowlevel.nextStatement();return null!==n?(this.lowlevel.evaluateOuter(n,this),t={done:!1,value:null}):(this.stack.reset(),t={done:!0,value:new Yy(e,this.popUpdating(),this.#f.popBlock(),this.#d.drop)}),t}},tv=class{state;context;constructor(t,e){this.state=t,this.context=e}evaluate(t){return new Qy(this.state,this.context,t)}},ev=class{constructor(t){this.vm=t}next(){return this.vm.next()}sync(){return this.vm.execute()}};function nv(t,e){let n;return Iy(t,()=>n=e.sync()),n}function rv(t,e,n,r,i,s=new _y){let o=Pp(i.compile(t)),a=i.symbolTable.symbols.length,l=Qy.initial(t,{scope:{self:n,size:a},dynamicScope:s,tree:r,handle:o,owner:e});return new ev(l)}function iv(t,e,n,r,i={},s=new _y){return function(t,e,n,r,i){const s=Object.keys(i).map(t=>[t,i[t]]),o=["main","else","attrs"],a=s.map(([t])=>`@${t}`);let l=t.constants.component(r,n,void 0,"{ROOT}");t.lowlevel.pushFrame();for(let h=0;h<3*o.length;h++)t.stack.push(null);t.stack.push(null),s.forEach(([,e])=>{t.stack.push(e)}),t.args.setup(t.stack,a,o,0,!0);const c=l.compilable,u={handle:Pp(c.compile(e)),symbolTable:c.symbolTable};return t.stack.push(t.args),t.stack.push(u),t.stack.push(l),new ev(t)}(Qy.initial(t,{tree:e,handle:t.stdlib.main,dynamicScope:s,owner:n}),t,n,r,function(t){const e=pe(t);return Object.keys(t).reduce((t,n)=>(t[n]=Ce(e,n),t),{})}(i))}var sv=a({_instrumentStart:()=>dv,flaggedInstrument:()=>uv,instrument:()=>cv,reset:()=>gv,subscribe:()=>pv,subscribers:()=>ov,unsubscribe:()=>fv}),ov=[],av={},lv=()=>performance.now();function cv(t,e,n,r){let i,s,o;if(arguments.length<=3&&"function"==typeof e?(s=e,o=n):(i=e,s=n,o=r),0===ov.length)return s.call(o);let a=i||{},l=dv(t,()=>a);return l===hv?s.call(o):function(t,e,n,r){try{return t.call(r)}catch(i){throw n.exception=i,i}finally{e()}}(s,l,a,o)}function uv(t,e,n){return n()}function hv(){}function dv(t,e,n){if(0===ov.length)return hv;let r=av[t];if(r||(r=function(t){let e=[];for(let n of ov)n.regex.test(t)&&e.push(n.object);return av[t]=e,e}(t)),0===r.length)return hv;let i,s=e(n),o=N.STRUCTURED_PROFILE;o&&(i=`${t}: ${s.object}`,console.time(i));let a=[],l=lv();for(let u of r)a.push(u.before(t,l,s));const c=r;return function(){let e=lv();for(let n=0;n-1?vv(e,i.split(".")):Ce(e,i);r.setAttribute(s,a,!1,null)}function _v(t,e){let n;return ge(()=>{let r=_e(t);return!0===r?n||(n=sp(e)):r||0===r?String(r):null})}function xv(){}var Cv=class{classRef=null;rootRef;argsRevision;constructor(t,e,n,r,i,s){this.component=t,this.args=e,this.argsTag=n,this.finalizer=r,this.hasWrappedElement=i,this.isInteractive=s,this.classRef=null,this.argsRevision=null===e?0:ct(n),this.rootRef=pe(t),et(this,()=>this.willDestroy(),!0),et(this,()=>this.component.destroy())}willDestroy(){let{component:t,isInteractive:e}=this;if(e){Mt(),t.trigger("willDestroyElement"),t.trigger("willClearRender"),At();let e=Ql(t);e&&(nc(e),rc(t))}t.renderer.unregister(t)}finalize(){let{finalizer:t}=this;t(),this.finalizer=xv}};function kv(t){let e=Object.create(null),n=Object.create(null);for(let r in t){let i=t[r],s=_e(i);we(i)?e[r]=new Ev(i,s):e[r]=s,n[r]=s}return n.attrs=e,n}var Sv=Symbol("REF"),Ev=class{value;[mv];[Sv];constructor(t,e){this[mv]=!0,this[Sv]=t,this.value=e}update(t){xe(this[Sv],t)}},Rv=new WeakMap,Lv=Symbol("DIRTY_TAG"),Tv=Symbol("IS_DISPATCHING_ATTRS"),Pv=Symbol("BOUNDS"),Iv=le("ember-view"),Mv=class{templateFor(t){let e,{layout:n,layoutName:r}=t,i=Br(t);if(void 0===n){if(void 0===r)return null;e=i.lookup(`template:${r}`)}else{if("function"!=typeof n)return null;e=n}return yv(e(i)).asWrappedLayout()}getDynamicLayout(t){return this.templateFor(t.component)}getTagName(t){let{component:e,hasWrappedElement:n}=t;return n?e&&e.tagName||"div":null}getCapabilities(){return Nv}prepareArgs(t,e){if(e.named.has("__ARGS__")){let{__ARGS__:t,...n}=e.named.capture(),r=_e(t);return{positional:r.positional,named:{...n,...r.named}}}const{positionalParams:n}=t.class??t;if(null==n||0===e.positional.length)return null;let r;if("string"==typeof n){let t=e.positional.capture();r={[n]:ge(()=>Qm(t))},Object.assign(r,e.named.capture())}else{if(!(Array.isArray(n)&&n.length>0))return null;{const t=Math.min(n.length,e.positional.length);r={},Object.assign(r,e.named.capture());for(let i=0;i{s.setAttribute("class",le(t),!1,null)}),l&&l.length&&l.forEach(t=>{!function(t,e,n){let[r,i,s]=e.split(":");if(""===r)n.setAttribute("class",le(i),!0,null);else{let e,o=r.indexOf(".")>-1,a=o?r.split("."):[],l=o?vv(t,a):Ce(t,r);e=void 0===i?_v(l,o?a[a.length-1]:r):function(t,e,n){return ge(()=>_e(t)?e:n)}(l,i,s),n.setAttribute("class",e,!1,null)}}(r,t,s)}),s.setAttribute("class",Iv,!1,null),"ariaRole"in t&&s.setAttribute("role",Ce(r,"ariaRole"),!1,null),t._transitionTo("hasElement"),n&&(Mt(),t.trigger("willInsertElement"),At())}didRenderLayout(t,e){t.component[Pv]=e,t.finalize()}didCreate({component:t,isInteractive:e}){e&&(t._transitionTo("inDOM"),t.trigger("didInsertElement"),t.trigger("didRender"))}update(t){let{component:e,args:n,argsTag:r,argsRevision:i,isInteractive:s}=t;if(t.finalizer=dv("render.component",Ov,e),Mt(),null!==n&&!ut(r,i)){Pt();let i=kv(n);r=t.argsTag=It(),t.argsRevision=ct(r),e[Tv]=!0,e.setProperties(i),e[Tv]=!1,e.trigger("didUpdateAttrs"),e.trigger("didReceiveAttrs")}s&&(e.trigger("willUpdate"),e.trigger("willRender")),At(),zt(r),zt(e[Lv])}didUpdateLayout(t){t.finalize()}didUpdate({component:t,isInteractive:e}){e&&(t.trigger("didUpdate"),t.trigger("didRender"))}getDestroyable(t){return t}};function Av(t){return t.instrumentDetails({initialRender:!0})}function Ov(t){return t.instrumentDetails({initialRender:!1})}var Nv={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!0,createArgs:!0,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!0,hasSubOwner:!1},zv=new Mv;function Fv(t){return t===zv}function Dv(t){let e=hr(t,"content");return ft(Ne(t),Ne(e)),e}function jv(t,e,n){let r=Zt(t),i=Kt(t,e,r);if(e in t)return i;{let s=[i,Kt(t,"content",r)],o=Dv(t);return Yt(o)&&s.push(Oe(o,e,n)),Ct(s)}}var Uv=_l.create({content:null,init(){this._super(...arguments),rr(this),Ne(this),Re(this,jv)},willDestroy(){this.set("content",null),this._super(...arguments)},isTruthy:Xn("content",function(){return Boolean(hr(this,"content"))}),unknownProperty(t){let e=Dv(this);return e?hr(e,t):void 0},setUnknownProperty(t,e){let n=_(this);return n.isInitializing()||n.isPrototypeMeta(this)?(Dn(this,t,null,e),e):mr(Dv(this),t,e)}});function Bv(t){return Au(t,{})}var $v=class{__string;constructor(t){this.__string=t}toString(){return`${this.__string}`}toHTML(){return this.toString()}},qv=function(t){return null==t?t="":"string"!=typeof t&&(t=String(t)),new $v(t)};function Vv(t){return Au(t,{})}var Wv=Vv(({positional:t})=>ge(()=>Qm(t),null)),Hv=Vv(({positional:t})=>{let e=t[0];return ge(()=>(...n)=>{let[r,...i]=Qm(t);if(ye(e)){let t=i.length>0?i[0]:n[0];return void xe(e,t)}return r.call(null,...i,...n)},null)}),Gv=Vv(({named:t})=>{let e=ge(()=>Jm(t),null),n=new Map;for(let r in t)n.set(r,t[r]);return e.children=n,e}),Zv=t=>(t=>null==t||"function"!=typeof t.toString)(t)?"":String(t),Kv=Vv(({positional:t})=>ge(()=>Qm(t).map(Zv).join(""),null)),Yv=Vv(({positional:t})=>{let e=t[0]??ce,n=t[1]??ce;return ge(()=>{let t=_e(e);if(re(t))return V(t,String(_e(n)))},t=>{let r=_e(e);if(re(r))return W(r,String(_e(n)),t)})}),Xv=class{tag=mt();element;args;listener=null;constructor(t,e){this.element=t,this.args=e,et(this,()=>{let{element:t,listener:e}=this;if(e){let{eventName:n,callback:r,options:i}=e;tb(t,n,r,i)}})}updateListener(){let t,e,n,{element:r,args:i,listener:s}=this,o=i.positional[0],a=o?_e(o):void 0,l=i.positional[1],c=l?_e(l):void 0;{let{once:r,passive:s,capture:o}=i.named;r&&(t=_e(r)),s&&(e=_e(s)),o&&(n=_e(o))}let u,h=!1;if(h=null===s||a!==s.eventName||c!==s.userProvidedCallback||t!==s.once||e!==s.passive||n!==s.capture,h&&(void 0===t&&void 0===e&&void 0===n||(u={once:t,passive:e,capture:n})),h){let i=c;this.listener={eventName:a,callback:i,userProvidedCallback:c,once:t,passive:e,capture:n,options:u},s&&tb(r,s.eventName,s.callback,s.options),function(t,e,n,r){Jv++,t.addEventListener(e,n,r)}(r,a,i,u)}}},Jv=0,Qv=0;function tb(t,e,n,r){Qv++,t.removeEventListener(e,n,r)}var eb,nb=Iu(new class{getDebugName(){return"on"}getDebugInstance(){return null}get counters(){return{adds:Jv,removes:Qv}}create(t,e,n,r){return new Xv(e,r)}getTag({tag:t}){return t}install(t){t.updateListener()}update(t){t.updateListener()}getDestroyable(t){return t}},{}),rb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!1,wrapped:!1,willDestroy:!1,hasSubOwner:!1},ib=class{getCapabilities(){return rb}getDebugName({name:t}){return t}getSelf(){return ue}getDestroyable(){return null}},sb=new ib,ob=class{constructor(t="@glimmer/component/template-only",e="(unknown template-only component)"){this.moduleName=t,this.name=e}toString(){return this.moduleName}};function ab(t,e){return new ob(t,e)}zu(sb,ob.prototype);var lb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1};function cb(t,e={}){let n=Boolean(e.updateHook);return{asyncLifeCycleCallbacks:Boolean(e.asyncLifecycleCallbacks),destructor:Boolean(e.destructor),updateHook:n}}function ub(t){return t.capabilities.asyncLifeCycleCallbacks}function hb(t){return t.capabilities.updateHook}var db=class{componentManagerDelegates=new WeakMap;constructor(t){this.factory=t}getDelegateFor(t){let{componentManagerDelegates:e}=this,n=e.get(t);if(void 0===n){let{factory:r}=this;n=r(t),e.set(t,n)}return n}create(t,e,n){let r=this.getDelegateFor(t),i=Ie(n.capture()),s=r.createComponent(e,i);return new pb(s,r,i)}getDebugName(t){return"function"==typeof t?t.name:t.toString()}update(t){let{delegate:e}=t;if(hb(e)){let{component:n,args:r}=t;e.updateComponent(n,r)}}didCreate({component:t,delegate:e}){ub(e)&&e.didCreateComponent(t)}didUpdate({component:t,delegate:e}){(function(t){return ub(t)&&hb(t)})(e)&&e.didUpdateComponent(t)}didRenderLayout(){}didUpdateLayout(){}getSelf({component:t,delegate:e}){return pe(e.getContext(t))}getDestroyable(t){const{delegate:e}=t;if(function(t){return t.capabilities.destructor}(e)){const{component:n}=t;return et(t,()=>e.destroyComponent(n)),t}return null}getCapabilities(){return lb}},pb=class{constructor(t,e,n){this.component=t,this.delegate=e,this.args=n}};function fb(t,e={}){return{disableAutoTracking:Boolean(e.disableAutoTracking)}}var gb=class{componentManagerDelegates=new WeakMap;constructor(t){this.factory=t}getDelegateFor(t){let{componentManagerDelegates:e}=this,n=e.get(t);if(void 0===n){let{factory:r}=this;n=r(t),e.set(t,n)}return n}create(t,e,n,r){let i,s=this.getDelegateFor(t),o=Ie(r),a=s.createModifier(n,o);return i={tag:mt(),element:e,delegate:s,args:o,modifier:a},et(i,()=>s.destroyModifier(a,o)),i}getDebugName(t){return"function"==typeof t?t.name||t.toString():""}getDebugInstance({modifier:t}){return t}getTag({tag:t}){return t}install({element:t,args:e,modifier:n,delegate:r}){let{capabilities:i}=r;i.disableAutoTracking?Wt(()=>r.installModifier(n,t,e)):r.installModifier(n,t,e)}update({args:t,modifier:e,delegate:n}){let{capabilities:r}=n;r.disableAutoTracking?Wt(()=>n.updateModifier(e,t)):n.updateModifier(e,t)}getDestroyable(t){return t}};function mb(t,e){return zu(new db(t),e)}function yb(t,e){return Iu(new gb(t),e)}function vb(t,e){return Au(new Cu(t),e)}var bb=Symbol("RECOMPUTE_TAG"),wb=Symbol("IS_CLASSIC_HELPER"),_b=class extends Xc{static isHelperFactory=!0;static[wb]=!0;static helper=Eb;init(t){super.init(t),this[bb]=gt()}recompute(){xs(()=>pt(this[bb]))}},xb=class{capabilities=wu(0,{hasValue:!0,hasDestroyable:!0});ownerInjection;constructor(t){let e={};$r(e,t),this.ownerInjection=e}createHelper(t,e){return{instance:(n=t,null!=n&&"class"in n?t.create():t.create(this.ownerInjection)),args:e};var n}getDestroyable({instance:t}){return t}getValue({instance:t,args:e}){let{positional:n,named:r}=e,i=t.compute(n,r);return zt(t[bb]),i}getDebugName(t){return eb((t.class||t).prototype)}};vb(t=>new xb(t),_b);var Cb=Nu(_b),kb=class{isHelperFactory=!0;constructor(t){this.compute=t}create(){return{compute:this.compute}}},Sb=new class{capabilities=wu(0,{hasValue:!0});createHelper(t,e){return()=>t.compute.call(null,e.positional,e.named)}getValue(t){return t()}getDebugName(t){return eb(t.compute)}};function Eb(t){return new kb(t)}vb(()=>Sb,kb.prototype);var Rb=Bv(()=>pe("30000000-1000-4000-2000-100000000000".replace(/[0-3]/g,t=>(4*t^16*Math.random()>>(2&t)).toString(16)))),Lb=class{constructor(t,e,n,r,i){this.main=t,this.trustingGuardedAppend=e,this.cautiousGuardedAppend=n,this.trustingNonDynamicAppend=r,this.cautiousNonDynamicAppend=i}get"trusting-append"(){return this.trustingGuardedAppend}get"cautious-append"(){return this.cautiousGuardedAppend}get"trusting-non-dynamic-append"(){return this.trustingNonDynamicAppend}get"cautious-non-dynamic-append"(){return this.cautiousNonDynamicAppend}getAppend(t){return t?this.trustingGuardedAppend:this.cautiousGuardedAppend}};function Tb(t,e,n){Uf(t,()=>t(76),r=>{r(2,()=>{e?(t(68),t(43)):t(47)}),"number"==typeof n?(r(0,()=>{t(68),t(81),t(79),function(t){t(36,4),t(33,3,1),t(35,4),t(0),t(83),t(85,4),Gf(t,!1,!1,!0,()=>{t(92,4),t(95,4)}),t(35,4)}(t)}),r(1,()=>{Rf(t,null,null,()=>{t(3,n)})})):(r(0,()=>{t(47)}),r(1,()=>{t(47)})),r(4,()=>{t(68),t(44)}),r(5,()=>{t(68),t(45)}),r(6,()=>{t(68),t(46)})})}var Pb={symbols:{locals:null,upvars:null},moduleName:"stdlib",scopeValues:null,isStrictMode:!0,owner:null,size:0};function Ib(t,e){let n=new vf(t.program.heap,Pb);e(function(...e){yf(n,t,Pb,e)});let r=n.commit(0);if("number"!=typeof r)throw new Error("Unexpected errors compiling std");return r}var Mb=class{constants;heap;resolver;stdlib;createOp;env;program;constructor({constants:t,heap:e},n,r){this.constants=t,this.heap=e,this.resolver=r.resolver,this.createOp=n,this.env=r.env,this.program=r.program,this.stdlib=function(t){let e=Ib(t,t=>function(t){t(75,4),Gf(t,!1,!1,!0)}(t)),n=Ib(t,t=>Tb(t,!0,null)),r=Ib(t,t=>Tb(t,!1,null)),i=Ib(t,t=>Tb(t,!0,n)),s=Ib(t,t=>Tb(t,!1,r));return new Lb(e,i,s,n,r)}(this)}};function Ab(t){return{object:`${t.name}:main`}}var Ob,Nb={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!1,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!0,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},zb=mu(Nb),Fb=new class{create(t,e,n,r,i){let s=i.get("outletState"),o=e.ref;i.set("outletState",o);let a={finalize:dv("render.outlet",Ab,e)};if(void 0!==r.debugRenderTree){let t=_e(s)?.render?.owner,e=_e(o)?.render?.owner;if(t&&t!==e){let t=e,{mountPoint:n}=t;n&&(a.engine={mountPoint:n,instance:t})}}return a}getDebugName({name:t}){return`{{outlet}} for ${t}`}getDebugCustomRenderTree(t,e){let n=[];return n.push({bucket:e,type:"outlet",name:"main",args:ly,instance:void 0}),e.engine&&n.push({bucket:e.engine,type:"engine",name:e.engine.mountPoint,args:ly,instance:e.engine.instance}),n}getCapabilities(){return Nb}getSelf(){return ce}didCreate(){}didUpdate(){}didRenderLayout(t){t.finalize()}didUpdateLayout(){}getDestroyable(){return null}},Db=ig({id:null,block:'[[[8,[30,1],null,[["@controller","@model"],[[30,2],[30,3]]],null]],["@Component","@controller","@model"],[]]',moduleName:"(unknown template module)",isStrictMode:!0}),jb=class{handle=-1;resolvedName=null;manager=Fb;capabilities=zb;compilable;constructor(t,e){this.state=e,this.compilable=yv(Db(t)).asLayout()}},Ub=class extends Mv{component;constructor(t){super(),this.component=t}create(t,e,n,{isInteractive:r},i){let s=this.component,o=dv("render.component",Av,s);i.view=s;let a=""!==s.tagName;a||(r&&s.trigger("willRender"),s._transitionTo("hasElement"),r&&s.trigger("willInsertElement"));let l=new Cv(s,null,yt,o,a,r);return zt(s[Lv]),l}},Bb={dynamicLayout:!0,dynamicTag:!0,prepareArgs:!1,createArgs:!1,attributeHook:!0,elementHook:!0,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!0,willDestroy:!1,hasSubOwner:!1},$b=class{handle=-1;resolvedName="-top-level";state;manager;capabilities=mu(Bb);compilable=null;constructor(t){this.manager=new Ub(t);let e=Xa(t);this.state=e}},qb=class{constructor(t){this.inner=t}},Vb=Bv(({positional:t})=>{const e=t[0];return ge(()=>{let t=_e(e);return zt(Ne(t)),nr(t)&&(t=Dv(t)),new qb(t)})}),Wb=class{position=0;constructor(t){this.length=t}isEmpty(){return!1}memoFor(t){return t}next(){let{length:t,position:e}=this;if(e>=t)return null;let n=this.valueFor(e),r=this.memoFor(e);return this.position++,{value:n,memo:r}}},Hb=class extends Wb{static from(t){return t.length>0?new this(t):null}static fromForEachable(t){let e=[];return t.forEach(t=>e.push(t)),this.from(e)}constructor(t){super(t.length),this.array=t}valueFor(t){return this.array[t]}},Gb=class extends Wb{static from(t){return t.length>0?new this(t):null}constructor(t){super(t.length),this.array=t}valueFor(t){return Me(this.array,t)}},Zb=class extends Wb{static fromIndexable(t){let e=Object.keys(t);if(0===e.length)return null;{let n=[];for(let r of e){let e;e=t[r],Nt()&&(zt(Kt(t,r)),Array.isArray(e)&&zt(Kt(e,"[]"))),n.push(e)}return new this(e,n)}}static fromForEachable(t){let e=[],n=[],r=0,i=!1;return t.forEach(function(t,s){i=i||arguments.length>=2,i&&e.push(s),n.push(t),r++}),0===r?null:i?new this(e,n):new Hb(n)}constructor(t,e){super(e.length),this.keys=t,this.values=e}valueFor(t){return this.values[t]}memoFor(t){return this.keys[t]}},Kb=class{static from(t){let e=t[Symbol.iterator](),n=e.next(),{done:r}=n;return r?null:new this(e,n)}position=0;constructor(t,e){this.iterable=t,this.result=e}isEmpty(){return!1}next(){let{iterable:t,result:e,position:n}=this;if(e.done)return null;let r=this.valueFor(e,n),i=this.memoFor(e,n);return this.position++,this.result=t.next(),{value:r,memo:i}}},Yb=class extends Kb{valueFor(t){return t.value}memoFor(t,e){return e}},Xb=class extends Kb{valueFor(t){return t.value[1]}memoFor(t){return t.value[0]}};function Jb(t){return null!=t&&"function"==typeof t.forEach}function Qb(t){return null!=t&&"function"==typeof t[Symbol.iterator]}Ob={scheduleRevalidate(){ws.ensureInstance()},toBool:function(t){return nr(t)?(zt(Oe(t,"content")),Boolean(hr(t,"isTruthy"))):Ic(t)?(zt(Oe(t,"[]")),0!==t.length):function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.toHTML}(t)?Boolean(t.toString()):Boolean(t)},toIterator:function(t){return t instanceof qb?function(t){return null===(e=t)||"object"!=typeof e&&"function"!=typeof e?null:Array.isArray(t)||sr(t)?Zb.fromIndexable(t):Qb(t)?Xb.from(t):Jb(t)?Zb.fromForEachable(t):Zb.fromIndexable(t);var e}(t.inner):function(t){return Yt(t)?Array.isArray(t)?Hb.from(t):sr(t)?Gb.from(t):Qb(t)?Yb.from(t):Jb(t)?Hb.fromForEachable(t):null:null}(t)},getProp:dr,setProp:yr,getPath:hr,setPath:mr,scheduleDestroy(t,e){Es("actions",null,e,t)},scheduleDestroyed(t){Es("destroy",null,t)},warnIfStyleNotTrusted(t){},assert(t,e,n){},deprecate(t,e,n){}},H=Ob.scheduleRevalidate,D=Ob.scheduleDestroy,j=Ob.scheduleDestroyed,U=Ob.toIterator,B=Ob.toBool,$=Ob.getProp,q=Ob.setProp,V=Ob.getPath,W=Ob.setPath;var tw=class{enableDebugTooling=N._DEBUG_RENDER_TREE;constructor(t,e){this.owner=t,this.isInteractive=e}onTransactionCommit(){}},ew=Bv(({positional:t,named:e})=>{const n=t[0];let r=e.type,i=e.loc,s=e.original;return _e(r),_e(i),_e(s),ge(()=>_e(n))}),nw=Bv(t=>t.positional[0]),rw=Bv(({positional:t})=>ge(()=>{let e=t[0],n=t[1],r=_e(e).split("."),i=r[r.length-1],s=_e(n);return!0===s?sp(i):s||0===s?String(s):""})),iw=Bv(({positional:t},e)=>{let n=_e(t[0]);return pe(e.factoryFor(n)?.class)}),sw=Bv(({positional:t})=>{const e=t[0];return ge(()=>{let t=_e(e);return Yt(t)&&zt(Oe(t,"[]")),t})}),ow=Bv(({positional:t})=>ve(t[0])),aw=Bv(({positional:t})=>me(t[0])),lw=Bv(({positional:t,named:e})=>fe(_e(t[0]))),cw={dynamicLayout:!0,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!0,updateHook:!0,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!0},uw=new class{getDynamicLayout(t){return yv(t.engine.lookup("template:application")(t.engine)).asLayout()}getCapabilities(){return cw}getOwner(t){return t.engine}create(t,{name:e},n,r){let i=t.buildChildEngineInstance(e);i.boot();let s,o,a,l,c=i.factoryFor("controller:application")||Fh(i,"application");if(n.named.has("model")&&(l=n.named.get("model")),void 0===l)s=c.create(),o=pe(s),a={engine:i,controller:s,self:o,modelRef:l};else{let t=_e(l);s=c.create({model:t}),o=pe(s),a={engine:i,controller:s,self:o,modelRef:l}}return r.debugRenderTree&&tt(i,s),a}getDebugName({name:t}){return t}getDebugCustomRenderTree(t,e,n){return[{bucket:e.engine,instance:e.engine,type:"engine",name:t.name,args:n},{bucket:e.controller,instance:e.controller,type:"route-template",name:"application",args:n}]}getSelf({self:t}){return t}getDestroyable(t){return t.engine}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}update(t){let{controller:e,modelRef:n}=t;void 0!==n&&e.set("model",_e(n))}},hw=class{handle=-1;state;manager=uw;compilable=null;capabilities=mu(cw);constructor(t){this.resolvedName=t,this.state={name:t}}},dw=Bv((t,e)=>{let n,r,i,s=t.positional[0];return n=Xm(t.named,ay),ge(()=>{let t=_e(s);return"string"==typeof t?(r===t||(r=t,i=xm(0,new hw(t),e,n,!0)),i):(i=null,r=null,null)})}),pw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!1,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},fw=mu(pw),gw=new class{create(t,e,n){let r=n.named.get("controller");return{self:r,controller:_e(r)}}getSelf({self:t}){return t}getDebugName({name:t}){return`route-template (${t})`}getDebugCustomRenderTree({name:t},e,n){return[{bucket:e,type:"route-template",name:t,args:n,instance:e.controller}]}getCapabilities(){return pw}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}getDestroyable(){return null}},mw=class{handle=-1;resolvedName;state;manager=gw;capabilities=fw;compilable;constructor(t,e){let n=yv(e);this.resolvedName=t,this.state={name:t},this.compilable=n.asLayout()}};function yw(t,e,n){return xm(0,new mw(e,n),t,null,!0)}var vw=Bv((t,e,n)=>{let r=ge(()=>_e(n.get("outletState"))?.outlets?.main),i=null,s=null;return ge(()=>{let t=_e(r),n=function(t,e){if(void 0===e)return null;let n=e.render;if(void 0===n)return null;let r=n.template;return null==r?null:{ref:t,name:n.name,template:r,controller:n.controller}}(r,t);if(!function(t,e){return null!==t&&null!==e&&t.template===e.template&&t.controller===e.controller}(n,i))if(i=n,null!==n){let o,a=t?.render?.owner??e,l=ne(),c=n.template;o=Du(c)?c:yw(a,n.name,c),l.Component=pe(o),l.controller=pe(n.controller);let u=ke(r,["render","model"]),h=_e(u);l.model=ge(()=>(i===n&&(h=_e(u)),h));let d=Xm(l,ay);s=xm(0,new jb(e,n),a,d,!0)}else s=null;return s})});function bw(t){return{object:`component:${t}`}}var ww={mut:ow,readonly:aw,unbound:lw,"-hash":Gv,"-each-in":Vb,"-normalize-class":rw,"-resolve":iw,"-track-array":sw,"-mount":dw,"-outlet":vw,"-in-el-null":nw},_w={...ww,array:Wv,concat:Kv,fn:Hv,get:Yv,hash:Gv,"unique-id":Rb};_w["-disallow-dynamic-resolution"]=ew;var xw={},Cw={...xw,on:nb},kw=class{componentDefinitionCache=new Map;lookupPartial(){return null}lookupHelper(t,e){let n=_w[t];if(void 0!==n)return n;let r=e.factoryFor(`helper:${t}`);if(void 0===r)return null;let i=r.class;return void 0===i?null:"function"==typeof i&&!0===i[wb]?(Au(Cb,r),r):i}lookupBuiltInHelper(t){return ww[t]??null}lookupModifier(t,e){let n=Cw[t];if(void 0!==n)return n;let r=e.factoryFor(`modifier:${t}`);return void 0===r?null:r.class||null}lookupBuiltInModifier(t){return xw[t]??null}lookupComponent(t,e){let n=function(t,e){let n=function(t,e){let n=`component:${t}`;return e.factoryFor(n)||null}(e,t);if(null!=(r=n)&&"function"==typeof r.create&&n.class){let t=Np(n.class);if(void 0!==t)return{component:n,layout:t}}var r;return null===n?null:{component:n,layout:null}}(e,t);if(null===n)return null;let r,i=null;r=null===n.component?i=n.layout(e):n.component;let s=this.componentDefinitionCache.get(r);if(void 0!==s)return s;null===i&&null!==n.layout&&(i=n.layout(e));let o=dv("render.getComponentDefinition",bw,t),a=null;if(null===n.component)a={state:ab(void 0,t),manager:sb,template:i};else{let t=n.component,e=t.class,r=Fu(e);a={state:Fv(r)?t:e,manager:r,template:i}}return o(),this.componentDefinitionCache.set(r,a),a}},Sw="-top-level",Ew=class t{static extend(e){return class extends t{static create(t){return t?super.create(Object.assign({},e,t)):super.create(e)}}}static reopenClass(t){Object.assign(this,t)}static create(e){let{environment:n,application:r,template:i}=e,s=Br(e),o=i(s);return new t(n,s,o,r)}ref;state;constructor(t,e,n,r){this._environment=t,this.owner=e,this.template=n,this.namespace=r;let i=gt(),s={outlets:{main:void 0},render:{owner:e,name:Sw,controller:void 0,model:void 0,template:n}},o=this.ref=ge(()=>(zt(i),s),t=>{pt(i),s.outlets.main=t});this.state={ref:o,name:Sw,template:n,controller:void 0}}appendTo(t){let e;e=this._environment.hasDOM&&"string"==typeof t?document.querySelector(t):t,Es("render",this.owner.lookup("renderer:-dom"),"appendOutletView",this,e)}rerender(){}setOutletState(t){xe(this.ref,t)}destroy(){}},Rw=class t{constructor(t,e){this.view=t,this.outletState=e}child(){return new t(this.view,this.outletState)}get(t){return this.outletState}set(t,e){return this.outletState=e,e}},Lw=()=>{},Tw=class{type="component";#g;#m;constructor(t,e,n){this.#m=()=>{let r=iv(t.context,t.builder(t.env,n.into),t.owner,e,n?.args),i=this.#g=r.sync();tt(this,this.#g),this.#m=()=>{if(!it(i)&&!st(i))return i.rerender({alwaysRevalidate:!1})}}}isFor(t){return!1}render(){this.#m()}destroy(){nt(this)}get destroyed(){return st(this)}get result(){return this.#g}},Pw=class{type="classic";id;result;destroyed;render;env;constructor(t,e,n,r,i,s,o,a){this.root=t,this.id=t instanceof Ew?ll(t):Kl(t),this.result=void 0,this.destroyed=!1,this.env=e.env,this.render=()=>{let t=yv(r).asLayout(),l=rv(e,n,i,a(e.env,{element:s,nextSibling:null}),t,o),c=this.result=l.sync();tt(this,c),this.render=()=>{if(!it(c)&&!st(c))return c.rerender({alwaysRevalidate:!1})}}}isFor(t){return this.root===t}destroy(){let{result:t,env:e}=this;this.destroyed=!0,this.root=null,this.result=void 0,this.render=void 0,void 0!==t&&Iy(e,()=>nt(t))}},Iw=[];function Mw(t){let e=Iw.indexOf(t);Iw.splice(e,1)}var Aw=null,Ow=0;ws.on("begin",function(){for(let t of Iw)t.rerender()}),ws.on("end",function(){for(let t of Iw)if(!t.isValid()){if(Ow>N._RERENDER_LOOP_LIMIT)throw Ow=0,t.destroy(),new Error("infinite rendering invalidation detected");return Ow++,ws.join(null,Lw)}Ow=0,function(){if(null!==Aw){let t=Aw.resolve;Aw=null,ws.join(null,t)}}()});var Nw=class t{static create(e,n){const r=new t(e,n);return tt(n,r),r}#y;#v=-1;#b=!1;#w=!1;#_=[];#x=[];constructor(t,e){this.#y=t,et(this,()=>{this.clearAllRoots(e)})}get debug(){return{roots:this.#_,inRenderTransaction:this.#b,isInteractive:this.isInteractive}}get roots(){return this.#_}get owner(){return this.#y.owner}get builder(){return this.#y.builder}get context(){return this.#y.context}get env(){return this.context.env}get isInteractive(){return this.#y.context.env.isInteractive}renderRoot(t,e){let n=this.#_;return n.push(t),tt(this,t),1===n.length&&function(t){Iw.push(t)}(e),this.#C(e),t}#C(t){if(this.#b)return;this.#b=!0;let e=!1;try{this.renderRoots(t),e=!0}finally{e||(this.#v=ct(xt)),this.#b=!1}}renderRoots(t){let e,n=this.#_,r=this.#x;do{e=n.length,Iy(this.context.env,()=>{for(let t=0;t=e||i.render()}this.#v=ct(xt)})}while(n.length>e);for(;r.length;){let t=r.pop(),e=n.indexOf(t);n.splice(e,1)}0===this.#_.length&&Mw(t)}scheduleRevalidate(t){ws.scheduleOnce("render",this,this.revalidate,t)}isValid(){return this.#w||0===this.#_.length||ut(xt,this.#v)}revalidate(t){this.isValid()||this.#C(t)}clearAllRoots(t){let e=this.#_;for(let n of e)nt(n);this.#x.length=0,this.#_=[],e.length&&Mw(t)}},zw=class t{static strict(e,n,r){return new t(e,{hasDOM:Ao,...r},n,new kw,sm)}state;constructor(t,e,n,r,i){let s={constants:new fg,heap:new lg},o=Py({document:n},new tw(t,e.isInteractive),s,r),a=new Mb(s,t=>new og(t),o);this.state=Nw.create({owner:t,context:a,builder:i},this)}get debugRenderTree(){let{debugRenderTree:t}=this.state.env;return t}isValid(){return this.state.isValid()}destroy(){nt(this)}render(t,e){const n=new Tw(this.state,t,{args:e.args,into:(r=e.into,"element"in r?r:{element:r,nextSibling:null})});var r;return this.state.renderRoot(n,this)}rerender(){this.state.scheduleRevalidate(this)}},Fw=class extends zw{static strict(t,e,n){return new zw(t,{hasDOM:Ao,...n},e,new kw,sm)}_rootTemplate;_viewRegistry;static create(t){let{_viewRegistry:e}=t,n=Br(t),r=n.lookup("service:-document"),i=n.lookup("-environment:main"),s=n.lookup(yc`template:-root`),o=n.lookup("service:-dom-builder");return new this(n,r,i,s,e,o)}constructor(t,e,n,r,i,s=sm,o=new kw){super(t,n,e,o,s),this._rootTemplate=r(t),this._viewRegistry=i||t.lookup("-view-registry:main")}appendOutletView(t,e){let n=new jb((r=t).owner,r.state);var r;let{name:i,template:s}=t.state,o=ne();o.Component=pe(yw(t.owner,i,s)),o.controller=ce,o.model=ce;let a=Xm(o,ay);this._appendDefinition(t,xm(0,n,t.owner,a,!0),e)}appendTo(t,e){let n=new $b(t);this._appendDefinition(t,xm(0,n,this.state.owner,null,!0),e)}_appendDefinition(t,e,n){let r=pe(e),i=new Rw(null,ce),s=new Pw(t,this.state.context,this.state.owner,this._rootTemplate,r,n,i,this.state.builder);this.state.renderRoot(s,this)}cleanupRootFor(t){if(st(this))return;let e=this.state.roots,n=e.length;for(;n--;){let r=e[n];"classic"===r.type&&r.isFor(t)&&(r.destroy(),e.splice(n,1))}}remove(t){t._transitionTo("destroying"),this.cleanupRootFor(t),this.state.isInteractive&&t.trigger("didDestroyElement")}get _roots(){return this.state.debug.roots}get _inRenderTransaction(){return this.state.debug.inRenderTransaction}get _isInteractive(){return this.state.debug.isInteractive}get _context(){return this.state.context}register(t){let e=Kl(t);this._viewRegistry[e]=t}unregister(t){delete this._viewRegistry[Kl(t)]}getElement(t){if(this._isInteractive)return Ql(t);throw new Error("Accessing `this.element` is not allowed in non-interactive environments (such as FastBoot).")}getBounds(t){let e=t[Pv];return{parentElement:e.parentElement(),firstNode:e.firstNode(),lastNode:e.lastNode()}}},Dw=class extends hu{rootElement=null;init(t){super.init(t),this.application._watchInstance(this),this.register("-application-instance:main",this,{instantiate:!1})}_bootSync(t){return this._booted||(t=new jw(t),this.setupRegistry(t),t.rootElement?this.rootElement=t.rootElement:this.rootElement=this.application.rootElement,t.location&&mr(this.router,"location",t.location),this.application.runInstanceInitializers(this),t.isInteractive&&this.setupEventDispatcher(),this._booted=!0),this}setupRegistry(t){this.constructor.setupRegistry(this.__registry__,t)}_router;get router(){if(!this._router){let t=this.lookup("router:main");this._router=t}return this._router}didCreateRootView(t){t.appendTo(this.rootElement)}startRouting(){this.router.startRouting()}setupRouter(){this.router.setupRouter()}handleURL(t){return this.setupRouter(),this.router.handleURL(t)}setupEventDispatcher(){let t=this.lookup("event_dispatcher:main"),e=hr(this.application,"customEvents"),n=hr(this,"customEvents"),r=Object.assign({},e,n);return t.setup(r,this.rootElement),t}getURL(){return this.router.url}visit(t){this.setupRouter();let e=this.__container__.lookup("-environment:main"),n=this.router,r=hr(n,"location");return r.setURL(t),n.handleURL(r.getURL()).followRedirects().then(()=>e.options.shouldRender?function(){if(null===Aw){let t;Aw={promise:new Promise(e=>t=e),resolve:t},ys()||ws.schedule("actions",null,Lw)}return Aw.promise}().then(()=>this):this,t=>{throw t.error&&t.error instanceof Error?t.error:"TransitionAborted"===t.name?new Error(t.message):t})}willDestroy(){super.willDestroy(),this.application._unwatchInstance(this)}static setupRegistry(t,e={}){let n=e instanceof jw?e:new jw(e);t.register("-environment:main",n.toEnvironment(),{instantiate:!1}),t.register("service:-document",n.document,{instantiate:!1}),super.setupRegistry(t,n)}},jw=class{isInteractive;_renderMode;isBrowser;location=null;shouldRender;document;rootElement;constructor(t={}){this.isInteractive=Boolean(Ao),this._renderMode=t._renderMode,void 0!==t.isBrowser?this.isBrowser=Boolean(t.isBrowser):this.isBrowser=Boolean(Ao),this.isBrowser||(this.isInteractive=!1,this.location="none"),void 0!==t.shouldRender?this.shouldRender=Boolean(t.shouldRender):this.shouldRender=!0,this.shouldRender||(this.isInteractive=!1),t.document?this.document=t.document:this.document="undefined"!=typeof document?document:null,t.rootElement&&(this.rootElement=t.rootElement),void 0!==t.location&&(this.location=t.location),void 0!==t.isInteractive&&(this.isInteractive=Boolean(t.isInteractive))}toEnvironment(){return{...Ep,hasDOM:this.isBrowser,isInteractive:this.isInteractive,_renderMode:this._renderMode,options:this}}},Uw=a({default:()=>Bw}),Bw=class extends Bl{static NAMESPACES=li;static NAMESPACES_BY_ID=ci;static processAll=gi;static byName=pi;init(t){super.init(t),ui(this)}toString(){let t=hr(this,"name")||hr(this,"modulePrefix");if(t)return t;di();let e=ri(this);return void 0===e&&(e=ll(this),ni(this,e)),e}nameClasses(){fi(this)}destroy(){return hi(this),super.destroy()}};Bw.prototype.isNamespace=!0;var $w=function(){function t(){this._vertices=new qw}return t.prototype.add=function(t,e,n,r){if(!t)throw new Error("argument `key` is required");var i=this._vertices,s=i.add(t);if(s.val=e,n)if("string"==typeof n)i.addEdge(s,i.add(n));else for(var o=0;o0){var r="cycle detected: "+e;throw this.each(this.path,function(t){r+=" <- "+t}),new Error(r)}}},t.prototype.reset=function(){this.stack.length=0,this.path.length=0,this.result.length=0;for(var t=0,e=this.length;t=0){var a=this[o];if(a.flag)continue;if(a.flag=!0,i.push(o),e===a.key)break;r.push(~o),this.pushIncoming(a)}else i.pop(),s.push(~o)}},t.prototype.pushIncoming=function(t){for(var e=this.stack,n=t.length-1;n>=0;n--){var r=t[n];this[r].flag||e.push(r)}},t.prototype.each=function(t,e){for(var n=0,r=t.length;n{for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&r.test(e)&&"class"===Sc(t[e])&&n.push(sp(e.replace(r,"")))}),n}},Hw=nb;function Gw(){}var Zw=class{static toString(){return"internal component"}constructor(t,e,n){this.owner=t,this.args=e,this.caller=n,$r(this,t)}get id(){return ll(this)}get class(){return"ember-view"}validateArguments(){for(let t of Object.keys(this.args.named))this.isSupportedArgument(t)||this.onUnsupportedArgument(t)}named(t){let e=this.args.named[t];return e?_e(e):void 0}positional(t){let e=this.args.positional[t];return e?_e(e):void 0}listenerFor(t){return this.named(t)||Gw}isSupportedArgument(t){return!1}onUnsupportedArgument(t){}toString(){return`<${this.constructor}:${ll(this)}>`}},Kw=new WeakMap;function Yw(t,e){let n={create(){throw void 0},toString:()=>t.toString()};return Kw.set(n,t),zu(Jw,n),Op(e,n),n}var Xw={dynamicLayout:!1,dynamicTag:!1,prepareArgs:!1,createArgs:!0,attributeHook:!1,elementHook:!1,createCaller:!0,dynamicScope:!1,updateHook:!1,createInstance:!0,wrapped:!1,willDestroy:!1,hasSubOwner:!1},Jw=new class{getCapabilities(){return Xw}create(t,e,n,r,i,s){let o=new(a=e,Kw.get(a))(t,n.capture(),_e(s));var a;return Wt(o.validateArguments.bind(o)),o}didCreate(){}didUpdate(){}didRenderLayout(){}didUpdateLayout(){}getDebugName(t){return t.toString()}getSelf(t){return pe(t)}getDestroyable(t){return t}},Qw=ig({id:null,block:'[[[11,"input"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,4,[30,0,["type"]]],[16,"checked",[30,0,["checked"]]],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/input.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),t_=Object.freeze({});function e_(t){return function(t){return t.target}(t).value}function n_(t){return void 0===t?new i_(void 0):be(t)?new i_(_e(t)):we(t)?new s_(t):new o_(t)}var r_,i_=class{static{Zh(this.prototype,"value",[Wr])}#k=void Yh(this,"value");constructor(t){this.value=t}get(){return this.value}set(t){this.value=t}},s_=class{constructor(t){this.reference=t}get(){return _e(this.reference)}set(t){xe(this.reference,t)}},o_=class{local;upstream;lastUpstreamValue=t_;constructor(t){this.upstream=new s_(t)}get(){let t=this.upstream.get();return t!==this.lastUpstreamValue&&(this.lastUpstreamValue=t,this.local=new i_(t)),this.local.get()}set(t){this.local.set(t)}},a_=class extends Zw{validateArguments(){super.validateArguments()}_value=n_(this.args.named.value);get value(){return this._value.get()}set value(t){this._value.set(t)}valueDidChange(t){this.value=e_(t)}static{Kh(this.prototype,"valueDidChange",[Vl])}change(t){this.valueDidChange(t)}input(t){this.valueDidChange(t)}keyUp(t){switch(t.key){case"Enter":this.listenerFor("enter")(t),this.listenerFor("insert-newline")(t);break;case"Escape":this.listenerFor("escape-press")(t)}}static{Kh(this.prototype,"keyUp",[Vl])}listenerFor(t){let e=super.listenerFor(t);return this.isVirtualEventListener(t,e)?function(t){return e=>t(e_(e),e)}(e):e}isVirtualEventListener(t,e){return-1!==["enter","insert-newline","escape-press"].indexOf(t)}};if(Ao){const t=Object.create(null),e=document.createElement("input");t[""]=!1,t.text=!0,t.checkbox=!0,r_=n=>{let r=t[n];if(void 0===r){try{e.type=n,r=e.type===n}catch(i){r=!1}finally{e.type="text"}t[n]=r}return r}}else r_=t=>""!==t;var l_=class extends a_{static toString(){return"Input"}get class(){return this.isCheckbox?"ember-checkbox ember-view":"ember-text-field ember-view"}get type(){let t=this.named("type");return null==t?"text":r_(t)?t:"text"}get isCheckbox(){return"checkbox"===this.named("type")}_checked=n_(this.args.named.checked);get checked(){return this.isCheckbox?this._checked.get():void 0}set checked(t){this._checked.set(t)}change(t){this.isCheckbox?this.checkedDidChange(t):super.change(t)}static{Kh(this.prototype,"change",[Vl])}input(t){this.isCheckbox||super.input(t)}static{Kh(this.prototype,"input",[Vl])}checkedDidChange(t){let e=t.target;this.checked=e.checked}static{Kh(this.prototype,"checkedDidChange",[Vl])}isSupportedArgument(t){return-1!==["type","value","checked","enter","insert-newline","escape-press"].indexOf(t)||super.isSupportedArgument(t)}},c_=Yw(l_,Qw),u_=ig({id:null,block:'[[[11,"textarea"],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[17,1],[16,2,[30,0,["value"]]],[4,[32,0],["change",[30,0,["change"]]],null],[4,[32,0],["input",[30,0,["input"]]],null],[4,[32,0],["keyup",[30,0,["keyUp"]]],null],[4,[32,0],["paste",[30,0,["valueDidChange"]]],null],[4,[32,0],["cut",[30,0,["valueDidChange"]]],null],[12],[13]],["&attrs"],[]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/textarea.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),h_=class extends a_{static toString(){return"Textarea"}get class(){return"ember-text-area ember-view"}change(t){super.change(t)}static{Kh(this.prototype,"change",[Vl])}input(t){super.input(t)}static{Kh(this.prototype,"input",[Vl])}isSupportedArgument(t){return-1!==["type","value","enter","insert-newline","escape-press"].indexOf(t)||super.isSupportedArgument(t)}},d_=Yw(h_,u_),p_=ig({id:null,block:'[[[11,3],[16,1,[30,0,["id"]]],[16,0,[30,0,["class"]]],[16,"role",[30,0,["role"]]],[16,"title",[30,0,["title"]]],[16,"rel",[30,0,["rel"]]],[16,"tabindex",[30,0,["tabindex"]]],[16,"target",[30,0,["target"]]],[17,1],[16,6,[30,0,["href"]]],[4,[32,0],["click",[30,0,["click"]]],null],[12],[18,2,null],[13]],["&attrs","&default"],["yield"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/link-to.hbs",scope:()=>({on:Hw}),isStrictMode:!0}),f_=[],g_={};function m_(t){return null==t}function y_(t){return"object"==typeof t&&null!==t&&!0===t.isQueryParams}var v_=class extends Zw{static toString(){return"LinkTo"}static{Zh(this.prototype,"routing",[pp("-routing")])}#S=void Yh(this,"routing");validateArguments(){super.validateArguments()}get class(){let t="ember-view";return this.isActive?(t+=this.classFor("active"),!1===this.willBeActive&&(t+=" ember-transitioning-out")):this.willBeActive&&(t+=" ember-transitioning-in"),this.isLoading&&(t+=this.classFor("loading")),this.isDisabled&&(t+=this.classFor("disabled")),t}get href(){if(this.isLoading)return"#";let{routing:t,route:e,models:n,query:r}=this;return zt(Kt(t,"currentState")),t.generateURL(e,n,r)}click(t){if(!Hl(t))return;let e=t.currentTarget,n=e instanceof SVGAElement?e.target.baseVal:e.target;if(""!==n&&"_self"!==n)return;if(this.preventDefault(t),this.isDisabled)return;if(this.isLoading)return;let{routing:r,route:i,models:s,query:o,replace:a}=this,l={transition:void 0};uv(0,0,()=>{l.transition=r.transitionTo(i,s,o,a)})}static{Kh(this.prototype,"click",[Vl])}get route(){if("route"in this.args.named){let t=this.named("route");return t&&this.namespaceRoute(t)}return this.currentRoute}currentRouteCache=Bt(()=>(zt(Kt(this.routing,"currentState")),Wt(()=>this.routing.currentRouteName)));get currentRoute(){return $t(this.currentRouteCache)}get models(){return"models"in this.args.named?this.named("models"):"model"in this.args.named?[this.named("model")]:f_}get query(){return"query"in this.args.named?{...this.named("query")}:g_}get replace(){return!0===this.named("replace")}get isActive(){return this.isActiveForState(this.routing.currentState)}get willBeActive(){let t=this.routing.currentState,e=this.routing.targetState;return t===e?null:this.isActiveForState(e)}get isLoading(){return m_(this.route)||this.models.some(t=>m_(t))}get isDisabled(){return Boolean(this.named("disabled"))}get isEngine(){return void 0!==au(this.owner)}get engineMountPoint(){return this.owner.mountPoint}classFor(t){let e=this.named(`${t}Class`);return!0===e||m_(e)?` ${t}`:e?` ${e}`:""}namespaceRoute(t){let{engineMountPoint:e}=this;return void 0===e?t:"application"===t?e:`${e}.${t}`}isActiveForState(t){if(m_(t))return!1;if(this.isLoading)return!1;let e=this.named("current-when");if("boolean"==typeof e)return e;if("string"==typeof e){let{routing:n}=this;return e.split(" ").some(e=>n.isActiveForRoute([],void 0,this.namespaceRoute(e),t))}{let{route:e,models:n,query:r,routing:i}=this;return i.isActiveForRoute(n,r,e,t)}}preventDefault(t){t.preventDefault()}isSupportedArgument(t){return-1!==["route","model","models","query","replace","disabled","current-when","activeClass","loadingClass","disabledClass"].indexOf(t)||super.isSupportedArgument(t)}},{prototype:b_}=v_,w_=(t,e)=>t?Object.getOwnPropertyDescriptor(t,e)||w_(Object.getPrototypeOf(t),e):null;{let t=b_.onUnsupportedArgument;Object.defineProperty(b_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(e){"href"===e||t.call(this,e)}})}{let t=w_(b_,"models").get;Object.defineProperty(b_,"models",{configurable:!0,enumerable:!1,get:function(){let e=t.call(this);return e.length>0&&!("query"in this.args.named)&&y_(e[e.length-1])&&(e=e.slice(0,-1)),e}});let e=w_(b_,"query").get;Object.defineProperty(b_,"query",{configurable:!0,enumerable:!1,get:function(){if("query"in this.args.named){let t=e.call(this);return y_(t)?t.values??g_:t}{let e=t.call(this);if(e.length>0){let t=e[e.length-1];if(y_(t)&&null!==t.values)return t.values}return g_}}})}{let t=b_.onUnsupportedArgument;Object.defineProperty(b_,"onUnsupportedArgument",{configurable:!0,enumerable:!1,value:function(e){"params"!==e&&t.call(this,e)}})}var __=Yw(v_,p_),x_="%+b:0%";function C_(t){return t.nodeValue===x_}var k_=class extends gg{candidate=null;openBlockDepth;injectedOmittedNode=!1;constructor(t,e,n){super(t,e),this.startingBlockDepth=n,this.openBlockDepth=n-1}},S_=class extends tm{unmatchedAttributes=null;blockDepth=0;startingBlockOffset;constructor(t,e,n){if(super(t,e,n),n)throw new Error("Rehydration with nextSibling not supported");let r=this.currentCursor.element.firstChild;for(;null!==r&&!E_(r);)r=r.nextSibling;this.candidate=r;const i=L_(r);if(0!==i){const t=i-1,e=this.dom.createComment(`%+b:${t}%`);r.parentNode.insertBefore(e,this.candidate);let n=r.nextSibling;for(;null!==n&&(!R_(n)||L_(n)!==i);)n=n.nextSibling;const s=this.dom.createComment(`%-b:${t}%`);r.parentNode.insertBefore(s,n.nextSibling),this.candidate=e,this.startingBlockOffset=t}else this.startingBlockOffset=0}get currentCursor(){return this.cursors.current}get candidate(){return this.currentCursor?this.currentCursor.candidate:null}set candidate(t){this.currentCursor.candidate=t}disableRehydration(t){const e=this.currentCursor;e.candidate=null,e.nextSibling=t}enableRehydration(t){const e=this.currentCursor;e.candidate=t,e.nextSibling=null}pushElement(t,e=null){const n=new k_(t,e,this.blockDepth||0);null!==this.candidate&&(n.candidate=t.firstChild,this.candidate=t.nextSibling),this.cursors.push(n)}clearMismatch(t){let e=t;const n=this.currentCursor;if(null!==n){const t=n.openBlockDepth;if(t>=n.startingBlockDepth)for(;e&&!(R_(e)&&t>=T_(e,this.startingBlockOffset));)e=this.remove(e);else for(;null!==e;)e=this.remove(e);this.disableRehydration(e)}}__openBlock(){const{currentCursor:t}=this;if(null===t)return;const e=this.blockDepth;this.blockDepth++;const{candidate:n}=t;if(null===n)return;const{tagName:r}=t.element;E_(n)&&T_(n,this.startingBlockOffset)===e?(this.candidate=this.remove(n),t.openBlockDepth=e):"TITLE"!==r&&"SCRIPT"!==r&&"STYLE"!==r&&this.clearMismatch(n)}__closeBlock(){const{currentCursor:t}=this;if(null===t)return;const e=t.openBlockDepth;this.blockDepth--;const{candidate:n}=t;let r=!1;if(null!==n)if(r=!0,R_(n)&&T_(n,this.startingBlockOffset)===e){const e=this.remove(n);this.candidate=e,t.openBlockDepth--}else this.clearMismatch(n),r=!1;if(!r){const e=t.nextSibling;if(null!==e&&R_(e)&&T_(e,this.startingBlockOffset)===this.blockDepth){const n=this.remove(e);this.enableRehydration(n),t.openBlockDepth--}}}__appendNode(t){const{candidate:e}=this;return e||super.__appendNode(t)}__appendHTML(t){const e=this.markerBounds();if(e){const t=e.firstNode(),n=e.lastNode(),r=new mg(this.element,t.nextSibling,n.previousSibling),i=this.remove(t);return this.remove(n),null!==i&&M_(i)&&(this.candidate=this.remove(i),null!==this.candidate&&this.clearMismatch(this.candidate)),r}return super.__appendHTML(t)}remove(t){const e=t.parentNode,n=t.nextSibling;return e.removeChild(t),n}markerBounds(){const t=this.candidate;if(t&&I_(t)){const e=t;let n=e.nextSibling;for(;!I_(n);)n=Jt(n.nextSibling);return new mg(this.element,e,n)}return null}__appendText(t){const{candidate:e}=this;return e?3===e.nodeType?(e.nodeValue!==t&&(e.nodeValue=t),this.candidate=e.nextSibling,e):8===(n=e).nodeType&&"%|%"===n.nodeValue||M_(e)&&""===t?(this.candidate=this.remove(e),this.__appendText(t)):(this.clearMismatch(e),super.__appendText(t)):super.__appendText(t);var n}__appendComment(t){const e=this.candidate;return e&&8===e.nodeType?(e.nodeValue!==t&&(e.nodeValue=t),this.candidate=e.nextSibling,e):(e&&this.clearMismatch(e),super.__appendComment(t))}__openElement(t){const e=this.candidate;if(e&&P_(e)&&function(t,e){return"http://www.w3.org/2000/svg"===t.namespaceURI?t.tagName===e:t.tagName===e.toUpperCase()}(e,t))return this.unmatchedAttributes=[].slice.call(e.attributes),e;if(e){if(P_(e)&&"TBODY"===e.tagName)return this.pushElement(e,null),this.currentCursor.injectedOmittedNode=!0,this.__openElement(t);this.clearMismatch(e)}return super.__openElement(t)}__setAttribute(t,e,n){const r=this.unmatchedAttributes;if(r){const n=A_(r,t);if(n)return n.value!==e&&(n.value=e),void r.splice(r.indexOf(n),1)}return super.__setAttribute(t,e,n)}__setProperty(t,e){const n=this.unmatchedAttributes;if(n){const r=A_(n,t);if(r)return r.value!==e&&(r.value=e),void n.splice(n.indexOf(r),1)}return super.__setProperty(t,e)}__flushElement(t,e){const{unmatchedAttributes:n}=this;if(n){for(const t of n)this.constructing.removeAttribute(t.name);this.unmatchedAttributes=null}else super.__flushElement(t,e)}willCloseElement(){const{candidate:t,currentCursor:e}=this;null!==t&&this.clearMismatch(t),e&&e.injectedOmittedNode&&this.popElement(),super.willCloseElement()}getMarker(t,e){const n=t.querySelector(`script[glmr="${e}"]`);return n?(function(t){t.nodeType}(r=n),r):null;var r}__pushRemoteElement(t,e,n){const r=this.getMarker(t,e);if(!r||r.parentNode,void 0===n){for(;null!==t.firstChild&&t.firstChild!==r;)this.remove(t.firstChild);n=null}const i=new k_(t,null,this.blockDepth);this.cursors.push(i),null===r?this.disableRehydration(n):this.candidate=this.remove(r);const s=new nm(t);return this.pushBlock(s,!0)}didAppendBounds(t){if(super.didAppendBounds(t),this.candidate){const e=t.lastNode();this.candidate=e.nextSibling}return t}};function E_(t){return 8===t.nodeType&&0===t.nodeValue.lastIndexOf("%+b:",0)}function R_(t){return 8===t.nodeType&&0===t.nodeValue.lastIndexOf("%-b:",0)}function L_(t){return parseInt(t.nodeValue.slice(4),10)}function T_(t,e){return L_(t)-e}function P_(t){return 1===t.nodeType}function I_(t){return 8===t.nodeType&&"%glmr%"===t.nodeValue}function M_(t){return 8===t.nodeType&&"% %"===t.nodeValue}function A_(t,e){for(const n of t)if(n.name===e)return n}function O_(t,e){return S_.forInitialRender(t,e)}var N_=new WeakMap,z_=class extends tm{serializeBlockDepth=0;__openBlock(){let{tagName:t}=this.element;if("TITLE"!==t&&"SCRIPT"!==t&&"STYLE"!==t){let t=this.serializeBlockDepth++;this.__appendComment(`%+b:${t}%`)}super.__openBlock()}__closeBlock(){let{tagName:t}=this.element;if(super.__closeBlock(),"TITLE"!==t&&"SCRIPT"!==t&&"STYLE"!==t){let t=--this.serializeBlockDepth;this.__appendComment(`%-b:${t}%`)}}__appendHTML(t){let{tagName:e}=this.element;if("TITLE"===e||"SCRIPT"===e||"STYLE"===e)return super.__appendHTML(t);let n=this.__appendComment("%glmr%");if("TABLE"===e){let e=t.indexOf("<");e>-1&&"tr"===t.slice(e+1,e+3)&&(t=`${t}`)}""===t?this.__appendComment("% %"):super.__appendHTML(t);let r=this.__appendComment("%glmr%");return new mg(this.element,n,r)}__appendText(t){let{tagName:e}=this.element,n=function(t){let{element:e,nextSibling:n}=t;return null===n?e.lastChild:n.previousSibling}(this);return"TITLE"===e||"SCRIPT"===e||"STYLE"===e?super.__appendText(t):""===t?this.__appendComment("% %"):(n&&3===n.nodeType&&this.__appendComment("%|%"),super.__appendText(t))}closeElement(){return N_.has(this.element)&&(N_.delete(this.element),super.closeElement()),super.closeElement()}openElement(t){return"tr"===t&&"TBODY"!==this.element.tagName&&"THEAD"!==this.element.tagName&&"TFOOT"!==this.element.tagName&&(this.openElement("tbody"),N_.set(this.constructing,!0),this.flushElement(null)),super.openElement(t)}pushRemoteElement(t,e,n=null){let{dom:r}=this,i=r.createElement("script");return i.setAttribute("glmr",e),r.insertBefore(t,i,n),super.pushRemoteElement(t,e,n)}};function F_(t,e){return z_.forInitialRender(t,e)}var D_=ig({id:null,block:'[[[46,[30,0],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/root.hbs",isStrictMode:!0}),j_=ig({id:null,block:'[[[46,[28,[32,0],null,null],null,null,null]],[],["component"]]',moduleName:"packages/@ember/-internals/glimmer/lib/templates/outlet.hbs",scope:()=>({outletHelper:vw}),isStrictMode:!0});function U_(t){t.register("service:-dom-builder",{create(t){switch(Br(t).lookup("-environment:main")._renderMode){case"serialize":return F_.bind(null);case"rehydrate":return O_.bind(null);default:return sm.bind(null)}}}),t.register(yc`template:-root`,D_),t.register("renderer:-dom",Fw)}var B_=class t{moduleBasedResolver=!0;#E=new Map;original;static create({namespace:e}){return new t(e.modules)}constructor(t){this.addModules(t)}addModules(t){for(let[e,n]of Object.entries(t))this.#E.set(this.#R(e),n)}#R(t){return t.replace($_,"").replace(q_,"")}#L(t){return"config"===t?t:t+"s"}resolve(t){let[e,n]=t.split(":");n=this.#T(e,n);for(let r of[this.#P,this.#I,this.#M,this.#A]){let t=r.call(this,e,n);if(t)return this.#O(t.hit)}}#O(t){return t&&t.default&&(t=t.default),t}normalize(t){let[e,n]=t.split(":");return n=this.#T(e,n),`${e}:${n}`}#T(t,e){return"component"===t||"helper"===t||"modifier"===t||"template"===t&&0===e.indexOf("components/")?e.replace(/_/g,"-"):function(t){return t.replace(V_,"$1_$2").toLowerCase().replace(W_,"-")}(e.replace(/\./g,"/"))}#P(t,e){if("resolver"===t&&"current"===e)return{hit:{create:()=>this}}}#I(t,e){if("main"===e){let e=this.#E.get(t);if(e)return{hit:e}}}#M(t,e){let n=`${this.#L(t)}/${e}`,r=this.#E.get(n);if(r)return{hit:r}}#A(t,e){if("component"!==t)return;let n=`${this.#L(t)}/${e}/index`,r=this.#E.get(n);return r?{hit:r}:void 0}},$_=/\.\w{1,4}$/,q_=/^\.\//,V_=/([a-z\d])([A-Z])/g,W_=/[ _]/g,H_=class extends(Bw.extend(cu)){static initializers=Object.create(null);static instanceInitializers=Object.create(null);static initializer=Z_("initializers");static instanceInitializer=Z_("instanceInitializers");static buildRegistry(t){let e=new fc({resolver:G_(t)});return e.set=mr,e.register("application:main",t,{instantiate:!1}),function(t){t.optionsForType("component",{singleton:!1}),t.optionsForType("view",{singleton:!1}),t.register("controller:basic",eu,{instantiate:!1}),t.register("service:-routing",vp),t.register("resolver-for-debugging:main",t.resolver,{instantiate:!1}),t.register("container-debug-adapter:main",Ww)}(e),function(t){t.optionsForType("template",{instantiate:!1}),t.register("view:-outlet",Ew),t.register("template:-outlet",j_),t.optionsForType("helper",{instantiate:!1}),t.register("component:input",c_),t.register("component:link-to",__),t.register("component:textarea",d_)}(e),e}Resolver=B_;init(t){super.init(t),this.buildRegistry()}_initializersRan=!1;ensureInitializers(){this._initializersRan||(this.runInitializers(),this._initializersRan=!0)}buildInstance(t={}){return this.ensureInitializers(),hu.create({...t,base:this})}buildRegistry(){return this.__registry__=this.constructor.buildRegistry(this)}initializer(t){this.constructor.initializer(t)}instanceInitializer(t){this.constructor.instanceInitializer(t)}runInitializers(){this._runInitializer("initializers",(t,e)=>{e.initialize(this)})}runInstanceInitializers(t){this._runInitializer("instanceInitializers",(e,n)=>{n.initialize(t)})}_runInitializer(t,e){let n,r=hr(this.constructor,t),i=function(t){let e=[];for(let n in t)e.push(n);return e}(r),s=new $w;for(let o of i)n=r[o],s.add(n.name,n,n.before,n.after);s.topsort(e)}};function G_(t){let e={namespace:t};return t.Resolver.create(e)}function Z_(t){return function(e){let n=this.superclass;if(void 0!==n[t]&&n[t]===this[t]){let e={[t]:Object.create(this[t])};this.reopenClass(e)}this[t][e.name]=e}}var K_=a({default:()=>J_,getOwner:()=>Y_,setOwner:()=>X_}),Y_=Io,X_=$r,J_=class extends H_{static buildRegistry(t){let e=super.buildRegistry(t);return function(t){t.register("router:main",Ad),t.register("-view-registry:main",{create:()=>Mo(null)}),t.register("route:basic",Qh),t.register("event_dispatcher:main",dc),t.register("location:hash",Wd),t.register("location:history",Gd),t.register("location:none",Zd),t.register(yc`-bucket-cache:main`,{create:()=>new bp}),t.register("service:router",yp)}(e),U_(e),e}static initializer=Z_("initializers");static instanceInitializer=Z_("instanceInitializers");init(t){super.init(t),this.rootElement??="body",this._document??=null,this.eventDispatcher??=null,this.customEvents??=null,this.autoboot??=!0,this._document??=Ao?window.document:null,this._readinessDeferrals=1,this._booted=!1,this._applicationInstances=new Set,this.autoboot=Boolean(this.autoboot),this.autoboot&&(this.Router=(this.Router||Ad).extend(),this._buildDeprecatedInstance(),this.waitForDOMReady())}buildInstance(t={}){return Dw.create({...t,base:this,application:this})}_watchInstance(t){this._applicationInstances.add(t)}_unwatchInstance(t){return this._applicationInstances.delete(t)}Router;__deprecatedInstance__;__container__;_buildDeprecatedInstance(){let t=this.buildInstance();this.__deprecatedInstance__=t,this.__container__=t.__container__}waitForDOMReady(){const t=this._document;if(null===t||"loading"!==t.readyState)Es("actions",this,this.domReady);else{let e=()=>{t.removeEventListener("DOMContentLoaded",e),_s(this,this.domReady)};t.addEventListener("DOMContentLoaded",e)}}domReady(){this.isDestroying||this.isDestroyed||this._bootSync()}deferReadiness(){this._readinessDeferrals++}advanceReadiness(){this._readinessDeferrals--,0===this._readinessDeferrals&&Ps(this,this.didBecomeReady)}_bootPromise=null;boot(){if(this._bootPromise)return this._bootPromise;try{this._bootSync()}catch(t){}return this._bootPromise}_bootResolver=null;_bootSync(){if(this._booted||this.isDestroying||this.isDestroyed)return;let t=this._bootResolver=$a.defer();this._bootPromise=t.promise;try{this.runInitializers(),this.advanceReadiness()}catch(s7){throw t.reject(s7),s7}}reset(){let t=this.__deprecatedInstance__;this._readinessDeferrals=1,this._bootPromise=null,this._bootResolver=null,this._booted=!1,xs(this,function(){_s(t,"destroy"),this._buildDeprecatedInstance(),Es("actions",this,"_bootSync")})}didBecomeReady(){if(!this.isDestroying&&!this.isDestroyed)try{if(this.autoboot){let t=this.__deprecatedInstance__;t._bootSync(),this.ready(),t.startRouting()}this._bootResolver.resolve(this),this._booted=!0}catch(s7){throw this._bootResolver.reject(s7),s7}}ready(){return this}willDestroy(){super.willDestroy(),this._applicationInstances.size&&(this._applicationInstances.forEach(t=>t.destroy()),this._applicationInstances.clear())}visit(t,e){return this.boot().then(()=>{let n=this.buildInstance();return n.boot(e).then(()=>n.visit(t)).catch(t=>{throw _s(n,"destroy"),t})})}},Q_=Object.assign({},{});function tx(){return ex.global}var ex=globalThis.__embroider_macros__runtime_config__||={};ex.packages||={},ex.global||={};Object.assign(ex.packages,{}),Object.assign(ex.global,{});var nx="undefined"!=typeof window?window._embroider_macros_runtime_config:void 0;if(nx){let t={config:function(t){return ex.packages[t]},getGlobalConfig:tx,setConfig(t,e){ex.packages[t]=e},setGlobalConfig(t,e){ex.global[t]=e}};for(let e of nx)e(t)}var rx=a({default:()=>ix,enterTestMode:()=>sx}),ix={modulePrefix:"marco",environment:"production",rootURL:"/",locationType:"history",EmberENV:{},APP:{}};function sx(){ix.locationType="none",ix.APP.rootElement="#ember-testing",ix.APP.autoboot=!1;const t=tx()["@embroider/macros"];t&&(t.isTesting=!0)}var ox=()=>{},ax=()=>{};function lx(t){let e=t.lookup("renderer:-dom");if(!e)throw new Error("BUG: owner is missing renderer");return e.debugRenderTree.capture()}var cx=a({_warnIfUsingStrippedFeatureFlags:()=>{},assert:()=>kn,captureRenderTree:()=>lx,debug:()=>px,debugFreeze:()=>gx,debugSeal:()=>fx,deprecate:()=>wx,deprecateFunc:()=>bx,getDebugFunction:()=>vx,info:()=>hx,inspect:()=>Mn,isTesting:()=>iu,registerDeprecationHandler:()=>ox,registerWarnHandler:()=>ax,runInDebug:()=>mx,setDebugFunction:()=>yx,setTesting:()=>su,warn:()=>dx}),ux=()=>{},hx=ux,dx=ux,px=ux,fx=ux,gx=ux,mx=ux,yx=ux,vx=ux,bx=function(){return arguments[arguments.length-1]};function wx(){}var _x,xx=a({});_x={throwOnUnhandled:!1,workflow:[]},self.deprecationWorkflow=self.deprecationWorkflow||{},self.deprecationWorkflow.deprecationLog={messages:new Set},self.deprecationWorkflow.flushDeprecations=t=>function({handler:t="silence",config:e={}}={}){let n=self.deprecationWorkflow.deprecationLog.messages,r=e.workflow??[],i=n.values().filter(t=>!r.some(e=>e.matchId===t)).map(e=>({handler:t,matchId:e})),s={...e,workflow:[...r,...i]};return`import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow';\n\nsetupDeprecationWorkflow(${JSON.stringify(s,void 0,2)});`}({config:_x,...t}),function(){const t="TEST_WAITERS",e="undefined"!=typeof Symbol?Symbol.for(t):t,n=function(){if("undefined"!=typeof globalThis)return globalThis;if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;throw new Error("unable to locate global object")}();let r=n[e];void 0===r&&(r=n[e]=new Map)}();var Cx=class{name;constructor(t){this.name=t}beginAsync(){return this}endAsync(){}waitUntil(){return!0}debugInfo(){return[]}reset(){}};function kx(t){return new Cx(t)}kx("@ember/test-waiters:promise-waiter"),kx("@ember/test-waiters:generator-waiter");var Sx,Ex=a({assertDestroyablesDestroyed:()=>{},associateDestroyableChild:()=>tt,destroy:()=>nt,enableDestroyableTracking:()=>{},isDestroyed:()=>st,isDestroying:()=>it,registerDestructor:()=>Rx,unregisterDestructor:()=>Lx});function Rx(t,e){return et(t,e)}function Lx(t,e){return function(t,e,n=!1){let r=Q(t),i=n?"eagerDestructors":"destructors";r[i]=J(r[i],e)}(t,e)}(Sx=Po,Sx?.__esModule?Sx:{default:Sx,...Sx}).getOwner;var Tx=Ad,Px=a({default:()=>Ix}),Ix=class extends Tx{location=ix.locationType;rootURL=ix.rootURL};function Mx(t){return"function"==typeof t}function Ax(t){return function(e){if(function(t){return Mx(null==t?void 0:t.lift)}(e))return e.lift(function(e){try{return t(e,this)}catch(PD){this.error(PD)}});throw new TypeError("Unable to lift unknown Observable type")}}Ix.map(function(){this.route("place",{path:"/place/:place_id"}),this.route("place.new",{path:"/place/new"}),this.route("search"),this.route("menu"),this.route("lists",function(){this.route("list",{path:"/:list_id"})}),this.route("contributions"),this.route("activity"),this.route("oauth",function(){this.route("osm-callback",{path:"/osm/callback"})})});var Ox=function(t,e){return Ox=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Ox(t,e)};function Nx(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Ox(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var zx=function(){return zx=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function jx(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,s=n.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(s7){i={error:s7}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function Ux(t,e,n){if(n||2===arguments.length)for(var r,i=0,s=e.length;i1||a(t,e)})},e&&(r[t]=e(r[t])))}function a(t,e){try{(n=i[t](e)).value instanceof Bx?Promise.resolve(n.value.v).then(l,c):u(s[0][2],n)}catch(r){u(s[0][3],r)}var n}function l(t){a("next",t)}function c(t){a("throw",t)}function u(t,e){t(e),s.shift(),s.length&&a(s[0][0],s[0][1])}}(this,arguments)}function bC(t){return Mx(null==t?void 0:t.getReader)}function wC(t){if(t instanceof hC)return t;if(null!=t){if(pC(t))return r=t,new hC(function(t){var e=r[cC]();if(Mx(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")});if($x(t))return function(t){return new hC(function(e){for(var n=0;n=0?DC(n,s,c,o,!0):i=!0,c();var u=xC(n,function(t){var e,n,i=r.slice();try{for(var s=Dx(i),o=s.next();!o.done;o=s.next()){var c=o.value,u=c.buffer;u.push(t),a<=u.length&&l(c)}}catch(h){e={error:h}}finally{try{o&&!o.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}},function(){for(;null==r?void 0:r.length;)n.next(r.shift().buffer);null==u||u.unsubscribe(),n.complete(),n.unsubscribe()},void 0,function(){return r=null});e.subscribe(u)})}function UC(t){return Ax(function(e,n){var r,i=null,s=!1;i=e.subscribe(xC(n,void 0,void 0,function(o){r=wC(t(o,UC(t)(e))),i?(i.unsubscribe(),i=null,r.subscribe(n)):s=!0})),s&&(i.unsubscribe(),i=null,r.subscribe(n))})}var BC=Array.isArray,$C=Object.getPrototypeOf,qC=Object.prototype,VC=Object.keys;function WC(t,e){return void 0===e&&(e=0),Ax(function(n,r){n.subscribe(xC(r,function(n){return DC(r,t,function(){return r.next(n)},e)},function(){return DC(r,t,function(){return r.complete()},e)},function(n){return DC(r,t,function(){return r.error(n)},e)}))})}function HC(t,e){return void 0===e&&(e=0),Ax(function(n,r){r.add(t.schedule(function(){return n.subscribe(r)},e))})}function GC(t,e){if(!t)throw new Error("Iterable cannot be null");return new hC(function(n){DC(n,e,function(){var r=t[Symbol.asyncIterator]();DC(n,e,function(){r.next().then(function(t){t.done?n.complete():n.next(t.value)})},0,!0)})})}function ZC(t,e){return e?function(t,e){if(null!=t){if(pC(t))return function(t,e){return wC(t).pipe(HC(e),WC(e))}(t,e);if($x(t))return function(t,e){return new hC(function(n){var r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}(t,e);if(qx(t))return function(t,e){return wC(t).pipe(HC(e),WC(e))}(t,e);if(fC(t))return GC(t,e);if(yC(t))return function(t,e){return new hC(function(n){var r;return DC(n,e,function(){r=t[mC](),DC(n,e,function(){var t,e,i;try{e=(t=r.next()).value,i=t.done}catch(PD){return void n.error(PD)}i?n.complete():n.next(e)},0,!0)}),function(){return Mx(null==r?void 0:r.return)&&r.return()}})}(t,e);if(bC(t))return function(t,e){return GC(vC(t),e)}(t,e)}throw gC(t)}(t,e):wC(t)}function KC(t,e){return Ax(function(n,r){var i=0;n.subscribe(xC(r,function(n){r.next(t.call(e,n,i++))}))})}var YC=Array.isArray;function XC(){for(var t=[],e=0;e0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=this,r=n.hasError,i=n.isStopped,s=n.observers;return r||i?Zx:(this.currentObservers=null,s.push(t),new Gx(function(){e.currentObservers=null,Hx(s,t)}))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,r=e.thrownError,i=e.isStopped;n?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new hC;return t.source=this,t},e.create=function(t,e){return new ak(t,e)},e}(hC),ak=function(t){function e(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return Nx(e,t),e.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},e.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:Zx},e}(ok),lk={connector:function(){return new ok}};function ck(t,e){void 0===e&&(e=lk);var n=e.connector;return Ax(function(e,r){var i,s=n();wC(t((i=s,new hC(function(t){return i.subscribe(t)})))).subscribe(r),r.add(e.subscribe(s))})}function uk(){for(var t=[],e=0;e=2,!0))}function Tk(t){void 0===t&&(t={});var e=t.connector,n=void 0===e?function(){return new ok}:e,r=t.resetOnError,i=void 0===r||r,s=t.resetOnComplete,o=void 0===s||s,a=t.resetOnRefCountZero,l=void 0===a||a;return function(t){var e,r,s,a=0,c=!1,u=!1,h=function(){null==r||r.unsubscribe(),r=void 0},d=function(){h(),e=s=void 0,c=u=!1},p=function(){var t=e;d(),null==t||t.unsubscribe()};return Ax(function(t,f){a++,u||c||h();var g=s=null!=s?s:n();f.add(function(){0!==--a||u||c||(r=Pk(p,l))}),g.subscribe(f),!e&&a>0&&(e=new sC({next:function(t){return g.next(t)},error:function(t){u=!0,h(),r=Pk(d,i,t),g.error(t)},complete:function(){c=!0,h(),r=Pk(d,o),g.complete()}}),wC(t).subscribe(e))})(t)}}function Pk(t,e){for(var n=[],r=2;r0&&h(i)},void 0,void 0,function(){(null==s?void 0:s.closed)||null==s||s.unsubscribe(),a=null})),!c&&h(null!=r?"number"==typeof r?r:+r-l.now():i)})}function jk(t){throw new Fk(t)}function Uk(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function Bk(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function $k(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}var qk="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Vk=t=>t instanceof Uint8Array,Wk=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Hk=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");function Gk(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!Vk(t))throw new Error("expected Uint8Array, got "+typeof t);return t}var Zk=class{clone(){return this._cloneInto()}};function Kk(t){const e=e=>t().update(Gk(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Yk(t=32){if(qk&&"function"==typeof qk.getRandomValues)return qk.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}var Xk=class extends Zk{constructor(t,e,n,r){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Wk(this.buffer)}update(t){$k(this);const{view:e,buffer:n,blockLen:r}=this,i=(t=Gk(t)).length;for(let s=0;sr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=Wk(t),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 u=0;ut&e^~t&n,Qk=(t,e,n)=>t&e^t&n^e&n,tS=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]),eS=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),nS=new Uint32Array(64),rS=class extends Xk{constructor(){super(64,32,8,!1),this.A=0|eS[0],this.B=0|eS[1],this.C=0|eS[2],this.D=0|eS[3],this.E=0|eS[4],this.F=0|eS[5],this.G=0|eS[6],this.H=0|eS[7]}get(){const{A:t,B:e,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[t,e,n,r,i,s,o,a]}set(t,e,n,r,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let u=0;u<16;u++,e+=4)nS[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const t=nS[u-15],e=nS[u-2],n=Hk(t,7)^Hk(t,18)^t>>>3,r=Hk(e,17)^Hk(e,19)^e>>>10;nS[u]=r+nS[u-7]+n+nS[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(Hk(o,6)^Hk(o,11)^Hk(o,25))+Jk(o,a,l)+tS[u]+nS[u]|0,e=(Hk(n,2)^Hk(n,13)^Hk(n,22))+Qk(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){nS.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},iS=Kk(()=>new rS),sS=a({bitGet:()=>SS,bitLen:()=>kS,bitMask:()=>RS,bitSet:()=>ES,bytesToHex:()=>hS,bytesToNumberBE:()=>gS,bytesToNumberLE:()=>mS,concatBytes:()=>_S,createHmacDrbg:()=>PS,ensureBytes:()=>wS,equalBytes:()=>xS,hexToBytes:()=>fS,hexToNumber:()=>pS,numberToBytesBE:()=>yS,numberToBytesLE:()=>vS,numberToHexUnpadded:()=>dS,numberToVarBytesBE:()=>bS,utf8ToBytes:()=>CS,validateObject:()=>MS}),oS=BigInt(0),aS=BigInt(1),lS=BigInt(2),cS=t=>t instanceof Uint8Array,uS=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function hS(t){if(!cS(t))throw new Error("Uint8Array expected");let e="";for(let n=0;nt+e.length,0));let n=0;return t.forEach(t=>{if(!cS(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}function xS(t,e){if(t.length!==e.length)return!1;for(let n=0;noS;t>>=aS,e+=1);return e}function SS(t,e){return t>>BigInt(e)&aS}var ES=(t,e,n)=>t|(n?aS:oS)<(lS<new Uint8Array(t),TS=t=>Uint8Array.from(t);function PS(t,e,n){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=LS(t),i=LS(t),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},a=(...t)=>n(i,r,...t),l=(t=LS())=>{i=a(TS([0]),t),r=a(),0!==t.length&&(i=a(TS([1]),t),r=a())},c=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const n=[];for(;t{let n;for(o(),l(t);!(n=e(c()));)l();return o(),n}}var IS={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function MS(t,e,n={}){const r=(e,n,r)=>{const i=IS[n];if("function"!=typeof i)throw new Error(`Invalid validator "${n}", expected function`);const s=t[e];if(!(r&&void 0===s||i(s,t)))throw new Error(`Invalid param ${String(e)}=${s} (${typeof s}), expected ${n}`)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}var AS=BigInt(0),OS=BigInt(1),NS=BigInt(2),zS=BigInt(3),FS=BigInt(4),DS=BigInt(5),jS=BigInt(8);function US(t,e){const n=t%e;return n>=AS?n:e+n}function BS(t,e,n){if(n<=AS||e 0");if(n===OS)return AS;let r=OS;for(;e>AS;)e&OS&&(r=r*t%n),t=t*t%n,e>>=OS;return r}function $S(t,e,n){let r=t;for(;e-- >AS;)r*=r,r%=n;return r}function qS(t,e){if(t===AS||e<=AS)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=US(t,e),r=e,i=AS,s=OS,o=OS,a=AS;for(;n!==AS;){const t=r/n,e=r%n,l=i-o*t,c=s-a*t;r=n,n=e,i=o,s=a,o=l,a=c}if(r!==OS)throw new Error("invert: does not exist");return US(i,e)}BigInt(9),BigInt(16);var VS=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function WS(t,e){const n=void 0!==e?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function HS(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function GS(t){const e=HS(t);return e+Math.ceil(e/2)}var ZS=BigInt(0),KS=BigInt(1);function YS(t){return function(t){const e=VS.reduce((t,e)=>(t[e]="function",t),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});MS(t,e)}(t.Fp),MS(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...WS(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var{bytesToNumberBE:XS,hexToBytes:JS}=sS,QS={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=QS;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const n=t[1],r=t.subarray(2,n+2);if(!n||r.length!==n)throw new e("Invalid signature integer: wrong length");if(128&r[0])throw new e("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:XS(r),l:t.subarray(n+2)}},toSig(t){const{Err:e}=QS,n="string"==typeof t?JS(t):t;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new e("Invalid signature tag");if(n[1]!==r-2)throw new e("Invalid signature: incorrect length");const{d:i,l:s}=QS._parseInt(n.subarray(2)),{d:o,l:a}=QS._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,n=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},r=e(n(t.s)),i=e(n(t.r)),s=r.length/2,o=i.length/2,a=n(s),l=n(o);return`30${n(o+s+4)}02${l}${i}02${a}${r}`}},tE=BigInt(0),eE=BigInt(1),nE=BigInt(3);var rE=class extends Zk{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Uk(t.outputLen),Uk(t.blockLen)}(t);const n=Gk(e);if(this.iHash=t.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,i=new Uint8Array(r);i.set(n.length>r?t.create().update(n).digest():n);for(let s=0;snew rE(t,e).update(n).digest();function sE(t){return{hash:t,hmac:(e,...n)=>iE(t,e,function(...t){const e=new Uint8Array(t.reduce((t,e)=>t+e.length,0));let n=0;return t.forEach(t=>{if(!Vk(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}(...n)),randomBytes:Yk}}iE.create=(t,e)=>new rE(t,e);var oE=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),aE=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),lE=BigInt(1),cE=BigInt(2),uE=(t,e)=>(t+e/cE)/e;function hE(t){const e=oE,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),l=BigInt(88),c=t*t*t%e,u=c*c*t%e,h=$S(u,n,e)*u%e,d=$S(h,n,e)*u%e,p=$S(d,cE,e)*c%e,f=$S(p,i,e)*p%e,g=$S(f,s,e)*f%e,m=$S(g,a,e)*g%e,y=$S(m,l,e)*m%e,v=$S(y,a,e)*g%e,b=$S(v,n,e)*u%e,w=$S(b,o,e)*f%e,_=$S(w,r,e)*c%e,x=$S(_,cE,e);if(!dE.eql(dE.sqr(x),t))throw new Error("Cannot find square root");return x}var dE=function(t,e,n=!1,r={}){if(t<=AS)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:i,nByteLength:s}=WS(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=function(t){if(t%FS===zS){const e=(t+OS)/FS;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}if(t%jS===DS){const e=(t-DS)/jS;return function(t,n){const r=t.mul(n,NS),i=t.pow(r,e),s=t.mul(n,i),o=t.mul(t.mul(s,NS),i),a=t.mul(s,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(t){const e=(t-OS)/NS;let n,r,i;for(n=t-OS,r=0;n%NS===AS;n/=NS,r++);for(i=NS;iUS(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return AS<=e&&et===AS,isOdd:t=>(t&OS)===OS,neg:e=>US(-e,t),eql:(t,e)=>t===e,sqr:e=>US(e*e,t),add:(e,n)=>US(e+n,t),sub:(e,n)=>US(e-n,t),mul:(e,n)=>US(e*n,t),pow:(t,e)=>function(t,e,n){if(n 0");if(n===AS)return t.ONE;if(n===OS)return e;let r=t.ONE,i=e;for(;n>AS;)n&OS&&(r=t.mul(r,i)),i=t.sqr(i),n>>=OS;return r}(a,t,e),div:(e,n)=>US(e*qS(n,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>qS(e,t),sqrt:r.sqrt||(t=>o(a,t)),invertBatch:t=>function(t,e){const n=new Array(e.length),r=e.reduce((e,r,i)=>t.is0(r)?e:(n[i]=e,t.mul(e,r)),t.ONE),i=t.inv(r);return e.reduceRight((e,r,i)=>t.is0(r)?e:(n[i]=t.mul(e,n[i]),t.mul(e,r)),i),n}(a,t),cmov:(t,e,n)=>n?e:t,toBytes:t=>n?vS(t,s):yS(t,s),fromBytes:t=>{if(t.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${t.length}`);return n?mS(t):gS(t)}});return Object.freeze(a)}(oE,void 0,void 0,{sqrt:hE}),pE=function(t,e){const n=e=>function(t){const e=function(t){const e=YS(t);return MS(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:n,n:r}=e,i=n.BYTES+1,s=2*n.BYTES+1;function o(t){return US(t,r)}function a(t){return qS(t,r)}const{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:h}=function(t){const e=function(t){const e=YS(t);MS(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:i}=e;if(n){if(!r.eql(i,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({...e})}(t),{Fp:n}=e,r=e.toBytes||((t,e)=>{const r=e.toAffine();return _S(Uint8Array.from([4]),n.toBytes(r.x),n.toBytes(r.y))}),i=e.fromBytes||(t=>{const e=t.subarray(1);return{x:n.fromBytes(e.subarray(0,n.BYTES)),y:n.fromBytes(e.subarray(n.BYTES,2*n.BYTES))}});function s(t){const{a:r,b:i}=e,s=n.sqr(t),o=n.mul(s,t);return n.add(n.add(o,n.mul(t,r)),i)}if(!n.eql(n.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(t){return"bigint"==typeof t&&tEn.eql(t,n.ZERO);return i(e)&&i(r)?h.ZERO:new h(e,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=n.invertBatch(t.map(t=>t.pz));return t.map((t,n)=>t.toAffine(e[n])).map(h.fromAffine)}static fromHex(t){const e=h.fromAffine(i(wS("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return h.BASE.multiply(l(t))}_setWindowSize(t){this._WINDOW_SIZE=t,c.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:r}=this.toAffine();if(!n.isValid(t)||!n.isValid(r))throw new Error("bad point: x or y not FE");const i=n.sqr(r),o=s(t);if(!n.eql(i,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(n.isOdd)return!n.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){u(t);const{px:e,py:r,pz:i}=this,{px:s,py:o,pz:a}=t,l=n.eql(n.mul(e,a),n.mul(s,i)),c=n.eql(n.mul(r,a),n.mul(o,i));return l&&c}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,i=n.mul(r,nE),{px:s,py:o,pz:a}=this;let l=n.ZERO,c=n.ZERO,u=n.ZERO,d=n.mul(s,s),p=n.mul(o,o),f=n.mul(a,a),g=n.mul(s,o);return g=n.add(g,g),u=n.mul(s,a),u=n.add(u,u),l=n.mul(t,u),c=n.mul(i,f),c=n.add(l,c),l=n.sub(p,c),c=n.add(p,c),c=n.mul(l,c),l=n.mul(g,l),u=n.mul(i,u),f=n.mul(t,f),g=n.sub(d,f),g=n.mul(t,g),g=n.add(g,u),u=n.add(d,d),d=n.add(u,d),d=n.add(d,f),d=n.mul(d,g),c=n.add(c,d),f=n.mul(o,a),f=n.add(f,f),d=n.mul(f,g),l=n.sub(l,d),u=n.mul(f,p),u=n.add(u,u),u=n.add(u,u),new h(l,c,u)}add(t){u(t);const{px:r,py:i,pz:s}=this,{px:o,py:a,pz:l}=t;let c=n.ZERO,d=n.ZERO,p=n.ZERO;const f=e.a,g=n.mul(e.b,nE);let m=n.mul(r,o),y=n.mul(i,a),v=n.mul(s,l),b=n.add(r,i),w=n.add(o,a);b=n.mul(b,w),w=n.add(m,y),b=n.sub(b,w),w=n.add(r,s);let _=n.add(o,l);return w=n.mul(w,_),_=n.add(m,v),w=n.sub(w,_),_=n.add(i,s),c=n.add(a,l),_=n.mul(_,c),c=n.add(y,v),_=n.sub(_,c),p=n.mul(f,w),c=n.mul(g,v),p=n.add(c,p),c=n.sub(y,p),p=n.add(y,p),d=n.mul(c,p),y=n.add(m,m),y=n.add(y,m),v=n.mul(f,v),w=n.mul(g,w),y=n.add(y,v),v=n.sub(m,v),v=n.mul(f,v),w=n.add(w,v),m=n.mul(y,w),d=n.add(d,m),m=n.mul(_,w),c=n.mul(b,c),c=n.sub(c,m),m=n.mul(b,y),p=n.mul(_,p),p=n.add(p,m),new h(c,d,p)}subtract(t){return this.add(t.negate())}is0(){return this.equals(h.ZERO)}wNAF(t){return p.wNAFCached(this,c,t,t=>{const e=n.invertBatch(t.map(t=>t.pz));return t.map((t,n)=>t.toAffine(e[n])).map(h.fromAffine)})}multiplyUnsafe(t){const r=h.ZERO;if(t===tE)return r;if(a(t),t===eE)return this;const{endo:i}=e;if(!i)return p.unsafeLadder(this,t);let{k1neg:s,k1:o,k2neg:l,k2:c}=i.splitScalar(t),u=r,d=r,f=this;for(;o>tE||c>tE;)o&eE&&(u=u.add(f)),c&eE&&(d=d.add(f)),f=f.double(),o>>=eE,c>>=eE;return s&&(u=u.negate()),l&&(d=d.negate()),d=new h(n.mul(d.px,i.beta),d.py,d.pz),u.add(d)}multiply(t){a(t);let r,i,s=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:a,k2:l}=o.splitScalar(s);let{p:c,f:u}=this.wNAF(e),{p:d,f:f}=this.wNAF(l);c=p.constTimeNegate(t,c),d=p.constTimeNegate(a,d),d=new h(n.mul(d.px,o.beta),d.py,d.pz),r=c.add(d),i=u.add(f)}else{const{p:t,f:e}=this.wNAF(s);r=t,i=e}return h.normalizeZ([r,i])[0]}multiplyAndAddUnsafe(t,e,n){const r=h.BASE,i=(t,e)=>e!==tE&&e!==eE&&t.equals(r)?t.multiply(e):t.multiplyUnsafe(e),s=i(this,e).add(i(t,n));return s.is0()?void 0:s}toAffine(t){const{px:e,py:r,pz:i}=this,s=this.is0();null==t&&(t=s?n.ONE:n.inv(i));const o=n.mul(e,t),a=n.mul(r,t),l=n.mul(i,t);if(s)return{x:n.ZERO,y:n.ZERO};if(!n.eql(l,n.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:t,isTorsionFree:n}=e;if(t===eE)return!0;if(n)return n(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:n}=e;return t===eE?this:n?n(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),r(h,this,t)}toHex(t=!0){return hS(this.toRawBytes(t))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const d=e.nBitLength,p=function(t,e){const n=(t,e)=>{const n=e.negate();return t?n:e},r=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:n,unsafeLadder(e,n){let r=t.ZERO,i=e;for(;n>ZS;)n&KS&&(r=r.add(i)),i=i.double(),n>>=KS;return r},precomputeWindow(t,e){const{windows:n,windowSize:i}=r(e),s=[];let o=t,a=o;for(let r=0;r>=d,r>a&&(r-=h,s+=KS);const o=e,p=e+Math.abs(r)-1,f=t%2!=0,g=r<0;0===r?c=c.add(n(f,i[o])):l=l.add(n(g,i[p]))}return{p:l,f:c}},wNAFCached(t,e,n,r){const i=t._WINDOW_SIZE||1;let s=e.get(t);return s||(s=this.precomputeWindow(t,i),1!==i&&e.set(t,r(s))),this.wNAF(i,s,n)}}}(h,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:l,weierstrassEquation:s,isWithinCurveOrder:o}}({...e,toBytes(t,e,r){const i=e.toAffine(),s=n.toBytes(i.x),o=_S;return r?o(Uint8Array.from([e.hasEvenY()?2:3]),s):o(Uint8Array.from([4]),s,n.toBytes(i.y))},fromBytes(t){const e=t.length,r=t[0],o=t.subarray(1);if(e!==i||2!==r&&3!==r){if(e===s&&4===r)return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))};throw new Error(`Point of length ${e} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}{const t=gS(o);if(!(tE<(a=t)&&ahS(yS(t,e.nByteLength));function p(t){return t>r>>eE}const f=(t,e,n)=>gS(t.slice(e,n));class g{constructor(t,e,n){this.r=t,this.s=e,this.recovery=n,this.assertValidity()}static fromCompact(t){const n=e.nByteLength;return t=wS("compactSignature",t,2*n),new g(f(t,0,n),f(t,n,2*n))}static fromDER(t){const{r:e,s:n}=QS.toSig(wS("DER",t));return new g(e,n)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(t){return new g(this.r,this.s,t)}recoverPublicKey(t){const{r:r,s:i,recovery:s}=this,c=b(wS("msgHash",t));if(null==s||![0,1,2,3].includes(s))throw new Error("recovery id invalid");const u=2===s||3===s?r+e.n:r;if(u>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&s?"03":"02",p=l.fromHex(h+d(u)),f=a(u),g=o(-c*f),m=o(i*f),y=l.BASE.multiplyAndAddUnsafe(p,g,m);if(!y)throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return fS(this.toDERHex())}toDERHex(){return QS.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return fS(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}const m={isValidPrivateKey(t){try{return c(t),!0}catch(s7){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const t=GS(e.n);return function(t,e,n=!1){const r=t.length,i=HS(e),s=GS(e);if(r<16||r1024)throw new Error(`expected ${s}-1024 bytes of input, got ${r}`);const o=US(n?gS(t):mS(t),e-OS)+OS;return n?vS(o,i):yS(o,i)}(e.randomBytes(t),e.n)},precompute:(t=8,e=l.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function y(t){const e=t instanceof Uint8Array,n="string"==typeof t,r=(e||n)&&t.length;return e?r===i||r===s:n?r===2*i||r===2*s:t instanceof l}const v=e.bits2int||function(t){const n=gS(t),r=8*t.length-e.nBitLength;return r>0?n>>BigInt(r):n},b=e.bits2int_modN||function(t){return o(v(t))},w=RS(e.nBitLength);function _(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(tE<=t&&tt in i))throw new Error("sign() legacy options not supported");const{hash:s,randomBytes:u}=e;let{lowS:d,prehash:f,extraEntropy:m}=i;null==d&&(d=!0),t=wS("msgHash",t),f&&(t=wS("prehashed msgHash",s(t)));const y=b(t),w=c(r),C=[_(w),_(y)];if(null!=m){const t=!0===m?u(n.BYTES):m;C.push(wS("extraEntropy",t))}const k=_S(...C),S=y;return{seed:k,k2sig:function(t){const e=v(t);if(!h(e))return;const n=a(e),r=l.BASE.multiply(e).toAffine(),i=o(r.x);if(i===tE)return;const s=o(n*o(S+i*w));if(s===tE)return;let c=(r.x===i?0:2)|Number(r.y&eE),u=s;return d&&p(s)&&(u=function(t){return p(t)?o(-t):t}(s),c^=1),new g(i,u,c)}}}(t,r,i),d=e;return PS(d.hash.outputLen,d.nByteLength,d.hmac)(s,u)},verify:function(t,n,r,i=C){const s=t;if(n=wS("msgHash",n),r=wS("publicKey",r),"strict"in i)throw new Error("options.strict was renamed to lowS");const{lowS:c,prehash:u}=i;let h,d;try{if("string"==typeof s||s instanceof Uint8Array)try{h=g.fromDER(s)}catch(x){if(!(x instanceof QS.Err))throw x;h=g.fromCompact(s)}else{if("object"!=typeof s||"bigint"!=typeof s.r||"bigint"!=typeof s.s)throw new Error("PARSE");{const{r:t,s:e}=s;h=new g(t,e)}}d=l.fromHex(r)}catch(s7){if("PARSE"===s7.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(c&&h.hasHighS())return!1;u&&(n=e.hash(n));const{r:p,s:f}=h,m=b(n),y=a(f),v=o(m*y),w=o(p*y),_=l.BASE.multiplyAndAddUnsafe(d,v,w)?.toAffine();return!!_&&o(_.x)===p},ProjectivePoint:l,Signature:g,utils:m}}({...t,...sE(e)});return Object.freeze({...n(e),create:n})}({a:BigInt(0),b:BigInt(7),Fp:dE,n:aE,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=aE,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-lE*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=uE(s*t,e),l=uE(-r*t,e);let c=US(t-a*n-l*i,e),u=US(-a*r-l*s,e);const h=c>o,d=u>o;if(h&&(c=e-c),d&&(u=e-u),c>o||u>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:c,k2neg:d,k2:u}}}},iS),fE=BigInt(0),gE=t=>"bigint"==typeof t&&fEt.charCodeAt(0)));n=_S(e,e),mE[t]=n}return iS(_S(n,...e))}var vE=t=>t.toRawBytes(!0).slice(1),bE=t=>yS(t,32),wE=t=>US(t,oE),_E=t=>US(t,aE),xE=pE.ProjectivePoint;function CE(t){let e=pE.utils.normPrivateKeyToScalar(t),n=xE.fromPrivateKey(e);return{scalar:n.hasEvenY()?e:_E(-e),bytes:vE(n)}}function kE(t){if(!gE(t))throw new Error("bad x: need 0 < x < p");const e=wE(t*t);let n=hE(wE(e*t+BigInt(7)));n%cE!==fE&&(n=wE(-n));const r=new xE(t,n,lE);return r.assertValidity(),r}function SE(...t){return _E(gS(yE("BIP0340/challenge",...t)))}function EE(t){return CE(t).bytes}function RE(t,e,n=Yk(32)){const r=wS("message",t),{bytes:i,scalar:s}=CE(e),o=wS("auxRand",n,32),a=yE("BIP0340/nonce",bE(s^gS(yE("BIP0340/aux",o))),i,r),l=_E(gS(a));if(l===fE)throw new Error("sign failed: k is zero");const{bytes:c,scalar:u}=CE(l),h=SE(c,i,r),d=new Uint8Array(64);if(d.set(c,0),d.set(bE(_E(u+h*s)),32),!LE(d,r,i))throw new Error("sign: Invalid signature produced");return d}function LE(t,e,n){const r=wS("signature",t,64),i=wS("message",e),s=wS("publicKey",n,32);try{const t=kE(gS(s)),e=gS(r.subarray(0,32));if(!gE(e))return!1;const n=gS(r.subarray(32,64));if(!(t=>"bigint"==typeof t&&fE({getPublicKey:EE,sign:RE,verify:LE,utils:{randomPrivateKey:pE.utils.randomPrivateKey,lift_x:kE,pointToBytes:vE,numberToBytesBE:yS,bytesToNumberBE:gS,taggedHash:yE,mod:US}}))(),PE="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,IE=t=>t instanceof Uint8Array,ME=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),AE=(t,e)=>t<<32-e|t>>>e;if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var OE=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function NE(t){if(!IE(t))throw new Error("Uint8Array expected");let e="";for(let n=0;nt+e.length,0));let n=0;return t.forEach(t=>{if(!IE(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length}),e}var jE=class{clone(){return this._cloneInto()}};function UE(t){const e=e=>t().update(FE(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function BE(t=32){if(PE&&"function"==typeof PE.getRandomValues)return PE.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function $E(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function qE(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}var VE,WE,HE,GE,ZE,KE,YE,XE,JE,QE,tR,eR,nR,rR,iR,sR,oR,aR,lR,cR,uR,hR,dR,pR,fR,gR,mR,yR,vR={number:$E,bool:function(t){if("boolean"!=typeof t)throw new Error(`Expected boolean, not ${t}`)},bytes:qE,hash:function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");$E(t.outputLen),$E(t.blockLen)},exists:function(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")},output:function(t,e){qE(t);const n=e.outputLen;if(t.lengthr-s&&(this.process(n,0),s=0);for(let u=s;u>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=ME(t),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 u=0;ut&e^~t&n,_R=(t,e,n)=>t&e^t&n^e&n,xR=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]),CR=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kR=new Uint32Array(64),SR=class extends bR{constructor(){super(64,32,8,!1),this.A=0|CR[0],this.B=0|CR[1],this.C=0|CR[2],this.D=0|CR[3],this.E=0|CR[4],this.F=0|CR[5],this.G=0|CR[6],this.H=0|CR[7]}get(){const{A:t,B:e,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[t,e,n,r,i,s,o,a]}set(t,e,n,r,i,s,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(t,e){for(let u=0;u<16;u++,e+=4)kR[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){const t=kR[u-15],e=kR[u-2],n=AE(t,7)^AE(t,18)^t>>>3,r=AE(e,17)^AE(e,19)^e>>>10;kR[u]=r+kR[u-7]+n+kR[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(AE(o,6)^AE(o,11)^AE(o,25))+wR(o,a,l)+xR[u]+kR[u]|0,e=(AE(n,2)^AE(n,13)^AE(n,22))+_R(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){kR.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},ER=class extends SR{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}},RR=UE(()=>new SR),LR=(UE(()=>new ER),a({assertNumber:()=>TR,base16:()=>GE,base32:()=>ZE,base32crockford:()=>YE,base32hex:()=>KE,base58:()=>tR,base58check:()=>sR,base58flickr:()=>eR,base58xmr:()=>iR,base58xrp:()=>nR,base64:()=>XE,base64url:()=>JE,bech32:()=>lR,bech32m:()=>cR,bytes:()=>yR,bytesToString:()=>fR,hex:()=>hR,str:()=>gR,stringToBytes:()=>mR,utf8:()=>uR,utils:()=>HE}));function TR(t){if(!Number.isSafeInteger(t))throw new Error(`Wrong integer: ${t}`)}function PR(...t){const e=(t,e)=>n=>t(e(n));return{encode:Array.from(t).reverse().reduce((t,n)=>t?e(t,n.encode):n.encode,void 0),decode:t.reduce((t,n)=>t?e(t,n.decode):n.decode,void 0)}}function IR(t){return{encode:e=>{if(!Array.isArray(e)||e.length&&"number"!=typeof e[0])throw new Error("alphabet.encode input should be an array of numbers");return e.map(e=>{if(TR(e),e<0||e>=t.length)throw new Error(`Digit index outside alphabet: ${e} (alphabet: ${t.length})`);return t[e]})},decode:e=>{if(!Array.isArray(e)||e.length&&"string"!=typeof e[0])throw new Error("alphabet.decode input should be array of strings");return e.map(e=>{if("string"!=typeof e)throw new Error(`alphabet.decode: not string element=${e}`);const n=t.indexOf(e);if(-1===n)throw new Error(`Unknown letter: "${e}". Allowed: ${t}`);return n})}}}function MR(t=""){if("string"!=typeof t)throw new Error("join separator should be string");return{encode:e=>{if(!Array.isArray(e)||e.length&&"string"!=typeof e[0])throw new Error("join.encode input should be array of strings");for(let t of e)if("string"!=typeof t)throw new Error(`join.encode: non-string input=${t}`);return e.join(t)},decode:e=>{if("string"!=typeof e)throw new Error("join.decode input should be string");return e.split(t)}}}function AR(t,e="="){if(TR(t),"string"!=typeof e)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 t of n)if("string"!=typeof t)throw new Error(`padding.encode: non-string input=${t}`);for(;n.length*t%8;)n.push(e);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 t of n)if("string"!=typeof t)throw new Error(`padding.decode: non-string input=${t}`);let r=n.length;if(r*t%8)throw new Error("Invalid padding: string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if(!((r-1)*t%8))throw new Error("Invalid padding: string has too much padding");return n.slice(0,r)}}}function OR(t){if("function"!=typeof t)throw new Error("normalize fn should be function");return{encode:t=>t,decode:e=>t(e)}}function NR(t,e,n){if(e<2)throw new Error(`convertRadix: wrong from=${e}, 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(t))throw new Error("convertRadix: data should be array");if(!t.length)return[];let r=0;const i=[],s=Array.from(t);for(s.forEach(t=>{if(TR(t),t<0||t>=e)throw new Error(`Wrong integer: ${t}`)});;){let t=0,o=!0;for(let i=r;i32)throw new Error(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(WE(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${WE(e,n)}`);let i=0,s=0;const o=2**n-1,a=[];for(const l of t){if(TR(l),l>=2**e)throw new Error(`convertRadix2: invalid data word=${l} from=${e}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)a.push((i>>s-n&o)>>>0);i&=2**s-1}if(i=i<=e)throw new Error("Excess padding");if(!r&&i)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&a.push(i>>>0),a}function FR(t){return TR(t),{encode:e=>{if(!(e instanceof Uint8Array))throw new Error("radix.encode input should be Uint8Array");return NR(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(NR(e,t,256))}}}function DR(t,e=!1){if(TR(t),t<=0||t>32)throw new Error("radix2: bits should be in (0..32]");if(WE(8,t)>32||WE(t,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 zR(Array.from(n),8,t,!e)},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(zR(n,t,8,e))}}}function jR(t){if("function"!=typeof t)throw new Error("unsafeWrapper fn should be function");return function(...e){try{return t.apply(null,e)}catch(n){}}}function UR(t,e){if(TR(t),"function"!=typeof e)throw new Error("checksum fn should be function");return{encode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.encode: input should be Uint8Array");const r=e(n).slice(0,t),i=new Uint8Array(n.length+t);return i.set(n),i.set(r,n.length),i},decode(n){if(!(n instanceof Uint8Array))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-t),i=e(r).slice(0,t),s=n.slice(-t);for(let e=0;e>25;let n=(33554431&t)<<5;for(let r=0;r>r&1)&&(n^=aR[r]);return n}function $R(t,e,n=1){const r=t.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${t})`);i=BR(i)^e>>5}i=BR(i);for(let s=0;sn)throw new TypeError(`Wrong string length: ${t.length} (${t}). Expected (8..${n})`);const r=t.toLowerCase();if(t!==r&&t!==t.toUpperCase())throw new Error("String must be lowercase or uppercase");const i=(t=r).lastIndexOf("1");if(0===i||-1===i)throw new Error('Letter "1" must be present between prefix and data only');const s=t.slice(0,i),o=t.slice(i+1);if(o.length<6)throw new Error("Data must be at least 6 characters long");const a=oR.decode(o).slice(0,-6),l=$R(s,a,e);if(!o.endsWith(l))throw new Error(`Invalid checksum in ${t}: expected "${l}"`);return{prefix:s,words:a}}return{encode:function(t,n,r=90){if("string"!=typeof t)throw new Error("bech32.encode prefix should be string, not "+typeof t);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 i=t.length+7+n.length;if(!1!==r&&i>r)throw new TypeError(`Length ${i} exceeds limit ${r}`);return`${t=t.toLowerCase()}1${oR.encode(n)}${$R(t,n,e)}`},decode:o,decodeToBytes:function(t){const{prefix:e,words:n}=o(t,!1);return{prefix:e,words:n,bytes:r(n)}},decodeUnsafe:jR(o),fromWords:r,fromWordsUnsafe:s,toWords:i}}var VR=((t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(r){throw n=[r],r}})(()=>{VE=(t,e)=>e?VE(e,t%e):t,WE=(t,e)=>t+(e-VE(t,e)),HE={alphabet:IR,chain:PR,checksum:UR,radix:FR,radix2:DR,join:MR,padding:AR},GE=PR(DR(4),IR("0123456789ABCDEF"),MR("")),ZE=PR(DR(5),IR("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),AR(5),MR("")),KE=PR(DR(5),IR("0123456789ABCDEFGHIJKLMNOPQRSTUV"),AR(5),MR("")),YE=PR(DR(5),IR("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),MR(""),OR(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1"))),XE=PR(DR(6),IR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),AR(6),MR("")),JE=PR(DR(6),IR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),AR(6),MR("")),tR=(QE=t=>PR(FR(58),IR(t),MR("")))("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),eR=QE("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"),nR=QE("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"),rR=[0,2,3,5,6,7,9,10,11],iR={encode(t){let e="";for(let n=0;nPR(UR(4,e=>t(t(e))),tR),oR=PR(IR("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),MR("")),aR=[996825010,642813549,513874426,1027748829,705979059],lR=qR("bech32"),cR=qR("bech32m"),uR={encode:t=>(new TextDecoder).decode(t),decode:t=>(new TextEncoder).encode(t)},hR=PR(DR(4),IR("0123456789abcdef"),MR(""),OR(t=>{if("string"!=typeof t||t.length%2)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()})),dR={utf8:uR,hex:hR,base16:GE,base32:ZE,base64:XE,base64url:JE,base58:tR,base58xmr:iR},pR=`Invalid encoding type. Available types: ${Object.keys(dR).join(", ")}`,fR=(t,e)=>{if("string"!=typeof t||!dR.hasOwnProperty(t))throw new TypeError(pR);if(!(e instanceof Uint8Array))throw new TypeError("bytesToString() expects Uint8Array");return dR[t].encode(e)},gR=fR,mR=(t,e)=>{if(!dR.hasOwnProperty(t))throw new TypeError(pR);if("string"!=typeof e)throw new TypeError("stringToBytes() expects string");return dR[t].decode(e)},yR=mR});function WR(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`positive integer expected, not ${t}`)}function HR(t){if("boolean"!=typeof t)throw new Error(`boolean expected, not ${t}`)}function GR(t){return t instanceof Uint8Array||null!=t&&"object"==typeof t&&"Uint8Array"===t.constructor.name}function ZR(t,...e){if(!GR(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function KR(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function YR(t,e){ZR(t);const n=e.outputLen;if(t.lengthnew Uint8Array(t.buffer,t.byteOffset,t.byteLength),JR=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),QR=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);if(68!==new Uint8Array(new Uint32Array([287454020]).buffer)[0])throw new Error("Non little-endian hardware is not supported");var tL=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function eL(t){ZR(t);let e="";for(let n=0;n=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0}function rL(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i(Object.assign(e,t),e);function aL(t,e,n,r){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),l=r?4:0,c=r?0:4;t.setUint32(e+l,o,r),t.setUint32(e+c,a,r)}var lL=16,cL=new Uint8Array(16),uL=JR(cL),hL=(t,e,n,r)=>({s3:n<<31|r>>>1,s2:e<<31|n>>>1,s1:t<<31|e>>>1,s0:t>>>1^225<<24&-(1&r)}),dL=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255,pL=class{constructor(t,e){this.blockLen=lL,this.outputLen=lL,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,ZR(t=iL(t),16);const n=QR(t);let r=n.getUint32(0,!1),i=n.getUint32(4,!1),s=n.getUint32(8,!1),o=n.getUint32(12,!1);const a=[];for(let d=0;d<128;d++)a.push({s0:dL(r),s1:dL(i),s2:dL(s),s3:dL(o)}),({s0:r,s1:i,s2:s,s3:o}=hL(r,i,s,o));const l=(t=>t>65536?8:t>1024?4:2)(e||1024);if(![1,2,4,8].includes(l))throw new Error(`ghash: wrong window size=${l}, should be 2, 4 or 8`);this.W=l;const c=128/l,u=this.windowSize=2**l,h=[];for(let d=0;d>>l-s-1&1))continue;const{s0:o,s1:c,s2:u,s3:h}=a[l*d+s];e^=o,n^=c,r^=u,i^=h}h.push({s0:e,s1:n,s2:r,s3:i})}this.t=h}_updateBlock(t,e,n,r){t^=this.s0,e^=this.s1,n^=this.s2,r^=this.s3;const{W:i,t:s,windowSize:o}=this;let a=0,l=0,c=0,u=0;const h=(1<>>8*t&255;for(let t=8/i-1;t>=0;t--){const n=e>>>i*t&h,{s0:r,s1:p,s2:f,s3:g}=s[d*o+n];a^=r,l^=p,c^=f,u^=g,d+=1}}this.s0=a,this.s1=l,this.s2=c,this.s3=u}update(t){t=iL(t),KR(this);const e=JR(t),n=Math.floor(t.length/lL),r=t.length%lL;for(let i=0;i>>1|n,n=(1&e)<<7}return t[0]^=225&-e,t}((t=iL(t)).slice());super(n,e),n.fill(0)}update(t){t=iL(t),KR(this);const e=JR(t),n=t.length%lL,r=Math.floor(t.length/lL);for(let i=0;it(n,e.length).update(iL(e)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(e,n)=>t(e,n),e}var mL=gL((t,e)=>new pL(t,e)),yL=gL((t,e)=>new fL(t,e)),vL=16,bL=new Uint8Array(vL);function wL(t){return t<<1^283&-(t>>7)}function _L(t,e){let n=0;for(;e>0;e>>=1)n^=t&-(1&e),t=wL(t);return n}var xL=(()=>{let t=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=wL(r))t[n]=r;const e=new Uint8Array(256);e[0]=99;for(let n=0;n<255;n++){let r=t[255-n];r|=r<<8,e[t[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return e})(),CL=xL.map((t,e)=>xL.indexOf(e)),kL=t=>t<<24|t>>>8,SL=t=>t<<8|t>>>24;function EL(t,e){if(256!==t.length)throw new Error("Wrong sbox length");const n=new Uint32Array(256).map((n,r)=>e(t[r])),r=n.map(SL),i=r.map(SL),s=i.map(SL),o=new Uint32Array(65536),a=new Uint32Array(65536),l=new Uint16Array(65536);for(let c=0;c<256;c++)for(let e=0;e<256;e++){const u=256*c+e;o[u]=n[c]^r[e],a[u]=i[c]^s[e],l[u]=t[c]<<8|t[e]}return{sbox:t,sbox2:l,T0:n,T1:r,T2:i,T3:s,T01:o,T23:a}}var RL=EL(xL,t=>_L(t,3)<<24|t<<16|t<<8|_L(t,2)),LL=EL(CL,t=>_L(t,11)<<24|_L(t,13)<<16|_L(t,9)<<8|_L(t,14)),TL=(()=>{const t=new Uint8Array(16);for(let e=0,n=1;e<16;e++,n=wL(n))t[e]=n;return t})();function PL(t){ZR(t);const e=t.length;if(![16,24,32].includes(e))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${e}`);const{sbox2:n}=RL,r=JR(t),i=r.length,s=t=>AL(n,t,t,t,t),o=new Uint32Array(e+28);o.set(r);for(let a=i;a6&&a%i===4&&(t=s(t)),o[a]=o[a-i]^t}return o}function IL(t){const e=PL(t),n=e.slice(),r=e.length,{sbox2:i}=RL,{T0:s,T1:o,T2:a,T3:l}=LL;for(let c=0;c>>8&255]^a[e>>>16&255]^l[e>>>24]}return n}function ML(t,e,n,r,i,s){return t[n<<8&65280|r>>>8&255]^e[i>>>8&65280|s>>>24&255]}function AL(t,e,n,r,i){return t[255&e|65280&n]|t[r>>>16&255|i>>>16&65280]<<16}function OL(t,e,n,r,i){const{sbox2:s,T01:o,T23:a}=RL;let l=0;e^=t[l++],n^=t[l++],r^=t[l++],i^=t[l++];const c=t.length/4-2;for(let u=0;u>>0,a.setUint32(u,d,e),({s0:p,s1:f,s2:g,s3:m}=OL(t,o[0],o[1],o[2],o[3]));const y=vL*Math.floor(l.length/4);if(y16)throw new Error(`aes/pcks5: wrong padding byte: ${r}`);const i=t.subarray(0,-r);for(let s=0;s=0;t--)e=e+(255&s[t])|0,s[t]=255&e,e>>>=8;({s0:a,s1:l,s2:c,s3:u}=OL(t,o[0],o[1],o[2],o[3]))}const p=vL*Math.floor(h.length/4);if(pn(t,e),decrypt:(t,e)=>n(t,e)}}),oL({blockSize:16},function(t,e={}){ZR(t);const n=!e.disablePadding;return{encrypt:(e,r)=>{ZR(e);const{b:i,o:s,out:o}=jL(e,n,r),a=PL(t);let l=0;for(;l+4<=i.length;){const{s0:t,s1:e,s2:n,s3:r}=OL(a,i[l+0],i[l+1],i[l+2],i[l+3]);s[l++]=t,s[l++]=e,s[l++]=n,s[l++]=r}if(n){const t=BL(e.subarray(4*l)),{s0:n,s1:r,s2:i,s3:o}=OL(a,t[0],t[1],t[2],t[3]);s[l++]=n,s[l++]=r,s[l++]=i,s[l++]=o}return a.fill(0),o},decrypt:(e,r)=>{DL(e);const i=IL(t),s=zL(e.length,r),o=JR(e),a=JR(s);for(let t=0;t+4<=o.length;){const{s0:e,s1:n,s2:r,s3:s}=NL(i,o[t+0],o[t+1],o[t+2],o[t+3]);a[t++]=e,a[t++]=n,a[t++]=r,a[t++]=s}return i.fill(0),UL(s,n)}}});var $L=oL({blockSize:16,nonceLength:16},function(t,e,n={}){ZR(t),ZR(e,16);const r=!n.disablePadding;return{encrypt:(n,i)=>{const s=PL(t),{b:o,o:a,out:l}=jL(n,r,i),c=JR(e);let u=c[0],h=c[1],d=c[2],p=c[3],f=0;for(;f+4<=o.length;)u^=o[f+0],h^=o[f+1],d^=o[f+2],p^=o[f+3],({s0:u,s1:h,s2:d,s3:p}=OL(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p;if(r){const t=BL(n.subarray(4*f));u^=t[0],h^=t[1],d^=t[2],p^=t[3],({s0:u,s1:h,s2:d,s3:p}=OL(s,u,h,d,p)),a[f++]=u,a[f++]=h,a[f++]=d,a[f++]=p}return s.fill(0),l},decrypt:(n,i)=>{DL(n);const s=IL(t),o=JR(e),a=zL(n.length,i),l=JR(n),c=JR(a);let u=o[0],h=o[1],d=o[2],p=o[3];for(let t=0;t+4<=l.length;){const e=u,n=h,r=d,i=p;u=l[t+0],h=l[t+1],d=l[t+2],p=l[t+3];const{s0:o,s1:a,s2:f,s3:g}=NL(s,u,h,d,p);c[t++]=o^e,c[t++]=a^n,c[t++]=f^r,c[t++]=g^i}return s.fill(0),UL(a,r)}}});function qL(t,e,n,r,i){const s=t.create(n,r.length+(i?.length||0));i&&s.update(i),s.update(r);const o=new Uint8Array(16),a=QR(o);return i&&aL(a,0,BigInt(8*i.length),e),aL(a,8,BigInt(8*r.length),e),s.update(o),s.digest()}oL({blockSize:16,nonceLength:16},function(t,e){function n(n,r,i){const s=PL(t),o=n.length;i=zL(o,i);const a=JR(n),l=JR(i),c=r?l:a,u=JR(e);let h=u[0],d=u[1],p=u[2],f=u[3];for(let t=0;t+4<=a.length;){const{s0:e,s1:n,s2:r,s3:i}=OL(s,h,d,p,f);l[t+0]=a[t+0]^e,l[t+1]=a[t+1]^n,l[t+2]=a[t+2]^r,l[t+3]=a[t+3]^i,h=c[t++],d=c[t++],p=c[t++],f=c[t++]}const g=vL*Math.floor(a.length/4);if(gn(t,!0,e),decrypt:(t,e)=>n(t,!1,e)}}),oL({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){if(ZR(e),0===e.length)throw new Error("aes/gcm: empty nonce");function r(t,e,r){const i=qL(mL,!1,t,r,n);for(let n=0;n{ZR(t);const{xk:e,authKey:n,counter:s,tagMask:o}=i(),a=new Uint8Array(t.length+16);FL(e,!1,s,t,a);const l=r(n,o,a.subarray(0,a.length-16));return a.set(l,t.length),e.fill(0),a},decrypt:t=>{if(ZR(t),t.length<16)throw new Error("aes/gcm: ciphertext less than tagLen (16)");const{xk:e,authKey:n,counter:s,tagMask:o}=i(),a=t.subarray(0,-16),l=t.subarray(-16);if(!sL(r(n,o,a),l))throw new Error("aes/gcm: invalid ghash tag");const c=FL(e,!1,s,a);return n.fill(0),o.fill(0),e.fill(0),c}}});var VL=(t,e,n)=>r=>{if(!Number.isSafeInteger(r)||e>r||r>n)throw new Error(`${t}: invalid value=${r}, must be [${e}..${n}]`)},WL=(oL({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){const r=VL("AAD",0,2**36),i=VL("plaintext",0,2**36),s=VL("nonce",12,12),o=VL("ciphertext",16,2**36+16);function a(){const n=t.length;if(16!==n&&24!==n&&32!==n)throw new Error(`key length must be 16, 24 or 32 bytes, got: ${n} bytes`);const r=PL(t),i=new Uint8Array(n),s=new Uint8Array(16),o=JR(e);let a=0,l=o[0],c=o[1],u=o[2],h=0;for(const t of[s,i].map(JR)){const e=JR(t);for(let t=0;t{ZR(t),i(t.length);const{encKey:e,authKey:n}=a(),r=l(e,n,t),s=new Uint8Array(t.length+16);return s.set(r,t.length),s.set(c(e,r,t)),e.fill(0),n.fill(0),s},decrypt:t=>{ZR(t),o(t.length);const e=t.subarray(-16),{encKey:n,authKey:r}=a(),i=c(n,e,t.subarray(0,-16)),s=l(n,r,i);if(n.fill(0),r.fill(0),!sL(e,s))throw new Error("invalid polyval tag");return i}}}),(t,e)=>255&t[e++]|(255&t[e++])<<8),HL=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,ZR(t=iL(t),32);const e=WL(t,0),n=WL(t,2),r=WL(t,4),i=WL(t,6),s=WL(t,8),o=WL(t,10),a=WL(t,12),l=WL(t,14);this.r[0]=8191&e,this.r[1]=8191&(e>>>13|n<<3),this.r[2]=7939&(n>>>10|r<<6),this.r[3]=8191&(r>>>7|i<<9),this.r[4]=255&(i>>>4|s<<12),this.r[5]=s>>>1&8190,this.r[6]=8191&(s>>>14|o<<2),this.r[7]=8065&(o>>>11|a<<5),this.r[8]=8191&(a>>>8|l<<8),this.r[9]=l>>>5&127;for(let c=0;c<8;c++)this.pad[c]=WL(t,16+2*c)}process(t,e,n=!1){const r=n?0:2048,{h:i,r:s}=this,o=s[0],a=s[1],l=s[2],c=s[3],u=s[4],h=s[5],d=s[6],p=s[7],f=s[8],g=s[9],m=WL(t,e+0),y=WL(t,e+2),v=WL(t,e+4),b=WL(t,e+6),w=WL(t,e+8),_=WL(t,e+10),x=WL(t,e+12),C=WL(t,e+14);let k=i[0]+(8191&m),S=i[1]+(8191&(m>>>13|y<<3)),E=i[2]+(8191&(y>>>10|v<<6)),R=i[3]+(8191&(v>>>7|b<<9)),L=i[4]+(8191&(b>>>4|w<<12)),T=i[5]+(w>>>1&8191),P=i[6]+(8191&(w>>>14|_<<2)),I=i[7]+(8191&(_>>>11|x<<5)),M=i[8]+(8191&(x>>>8|C<<8)),A=i[9]+(C>>>5|r),O=0,N=O+k*o+S*(5*g)+E*(5*f)+R*(5*p)+L*(5*d);O=N>>>13,N&=8191,N+=T*(5*h)+P*(5*u)+I*(5*c)+M*(5*l)+A*(5*a),O+=N>>>13,N&=8191;let z=O+k*a+S*o+E*(5*g)+R*(5*f)+L*(5*p);O=z>>>13,z&=8191,z+=T*(5*d)+P*(5*h)+I*(5*u)+M*(5*c)+A*(5*l),O+=z>>>13,z&=8191;let F=O+k*l+S*a+E*o+R*(5*g)+L*(5*f);O=F>>>13,F&=8191,F+=T*(5*p)+P*(5*d)+I*(5*h)+M*(5*u)+A*(5*c),O+=F>>>13,F&=8191;let D=O+k*c+S*l+E*a+R*o+L*(5*g);O=D>>>13,D&=8191,D+=T*(5*f)+P*(5*p)+I*(5*d)+M*(5*h)+A*(5*u),O+=D>>>13,D&=8191;let j=O+k*u+S*c+E*l+R*a+L*o;O=j>>>13,j&=8191,j+=T*(5*g)+P*(5*f)+I*(5*p)+M*(5*d)+A*(5*h),O+=j>>>13,j&=8191;let U=O+k*h+S*u+E*c+R*l+L*a;O=U>>>13,U&=8191,U+=T*o+P*(5*g)+I*(5*f)+M*(5*p)+A*(5*d),O+=U>>>13,U&=8191;let B=O+k*d+S*h+E*u+R*c+L*l;O=B>>>13,B&=8191,B+=T*a+P*o+I*(5*g)+M*(5*f)+A*(5*p),O+=B>>>13,B&=8191;let $=O+k*p+S*d+E*h+R*u+L*c;O=$>>>13,$&=8191,$+=T*l+P*a+I*o+M*(5*g)+A*(5*f),O+=$>>>13,$&=8191;let q=O+k*f+S*p+E*d+R*h+L*u;O=q>>>13,q&=8191,q+=T*c+P*l+I*a+M*o+A*(5*g),O+=q>>>13,q&=8191;let V=O+k*g+S*f+E*p+R*d+L*h;O=V>>>13,V&=8191,V+=T*u+P*c+I*l+M*a+A*o,O+=V>>>13,V&=8191,O=(O<<2)+O|0,O=O+N|0,N=8191&O,O>>>=13,z+=O,i[0]=N,i[1]=z,i[2]=F,i[3]=D,i[4]=j,i[5]=U,i[6]=B,i[7]=$,i[8]=q,i[9]=V}finalize(){const{h:t,pad:e}=this,n=new Uint16Array(10);let r=t[1]>>>13;t[1]&=8191;for(let o=2;o<10;o++)t[o]+=r,r=t[o]>>>13,t[o]&=8191;t[0]+=5*r,r=t[0]>>>13,t[0]&=8191,t[1]+=r,r=t[1]>>>13,t[1]&=8191,t[2]+=r,n[0]=t[0]+5,r=n[0]>>>13,n[0]&=8191;for(let o=1;o<10;o++)n[o]=t[o]+r,r=n[o]>>>13,n[o]&=8191;n[9]-=8192;let i=(1^r)-1;for(let o=0;o<10;o++)n[o]&=i;i=~i;for(let o=0;o<10;o++)t[o]=t[o]&i|n[o];t[0]=65535&(t[0]|t[1]<<13),t[1]=65535&(t[1]>>>3|t[2]<<10),t[2]=65535&(t[2]>>>6|t[3]<<7),t[3]=65535&(t[3]>>>9|t[4]<<4),t[4]=65535&(t[4]>>>12|t[5]<<1|t[6]<<14),t[5]=65535&(t[6]>>>2|t[7]<<11),t[6]=65535&(t[7]>>>5|t[8]<<8),t[7]=65535&(t[8]>>>8|t[9]<<5);let s=t[0]+e[0];t[0]=65535&s;for(let o=1;o<8;o++)s=(t[o]+e[o]|0)+(s>>>16)|0,t[o]=65535&s}update(t){KR(this);const{buffer:e,blockLen:n}=this,r=(t=iL(t)).length;for(let i=0;i>>0,t[i++]=n[s]>>>8;return t}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}},GL=function(t){const e=(e,n)=>t(n).update(iL(e)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=e=>t(e),e}(t=>new HL(t)),ZL=t=>Uint8Array.from(t.split("").map(t=>t.charCodeAt(0))),KL=ZL("expand 16-byte k"),YL=ZL("expand 32-byte k"),XL=JR(KL),JL=JR(YL);function QL(t,e){return t<>>32-e}function tT(t){return t.byteOffset%4==0}JL.slice();var eT=2**32-1,nT=new Uint32Array;function rT(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:s,rounds:o}=function(t,e){if(null==e||"object"!=typeof e)throw new Error("options must be defined");return Object.assign({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e)}(0,e);if("function"!=typeof t)throw new Error("core must be a function");return WR(i),WR(o),HR(s),HR(n),(e,a,l,c,u=0)=>{ZR(e),ZR(a),ZR(l);const h=l.length;if(c||(c=new Uint8Array(h)),ZR(c),WR(u),u<0||u>=eT)throw new Error("arx: counter overflow");if(c.length=eT)throw new Error("arx: counter overflow");const g=Math.min(64,l-f);if(h&&64===g){const t=f/4;if(f%4!=0)throw new Error("arx: invalid block position");for(let e,n=0;n<16;n++)e=t+n,p[e]=d[e]^u[n];f+=64;continue}for(let t,e=0;e0;)d.pop().fill(0);return c}}function iT(t,e,n,r,i,s=20){let o=t[0],a=t[1],l=t[2],c=t[3],u=e[0],h=e[1],d=e[2],p=e[3],f=e[4],g=e[5],m=e[6],y=e[7],v=i,b=n[0],w=n[1],_=n[2],x=o,C=a,k=l,S=c,E=u,R=h,L=d,T=p,P=f,I=g,M=m,A=y,O=v,N=b,z=w,F=_;for(let j=0;j{t.update(e);const n=e.length%16;n&&t.update(aT.subarray(n))},cT=new Uint8Array(32);function uT(t,e,n,r,i){const s=t(e,n,cT),o=GL.create(s);i&&lT(o,i),lT(o,r);const a=new Uint8Array(16),l=QR(a);aL(l,0,BigInt(i?i.length:0),!0),aL(l,8,BigInt(r.length),!0),o.update(a);const c=o.digest();return s.fill(0),c}var hT=t=>(e,n,r)=>(ZR(e,32),ZR(n),{encrypt:(i,s)=>{const o=i.length,a=o+16;s?ZR(s,a):s=new Uint8Array(a),t(e,n,i,s,1);const l=uT(t,e,n,s.subarray(0,-16),r);return s.set(l,o),s},decrypt:(i,s)=>{const o=i.length,a=o-16;if(o<16)throw new Error("encrypted data must be at least 16 bytes");s?ZR(s,a):s=new Uint8Array(a);const l=i.subarray(0,-16);if(!sL(i.subarray(-16),uT(t,e,n,l,r)))throw new Error("invalid tag");return t(e,n,l,s,1),s}}),dT=(hT(sT),hT(oT),class extends jE{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,vR.hash(t);const n=FE(e);if(this.iHash=t.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,i=new Uint8Array(r);i.set(n.length>r?t.create().update(n).digest():n);for(let s=0;snew dT(t,e).update(n).digest();pT.create=(t,e)=>new dT(t,e);var fT=new Uint8Array([0]),gT=new Uint8Array,mT=Object.defineProperty,yT=(t,e)=>{for(var n in e)mT(t,n,{get:e[n],enumerable:!0})},vT=Symbol("verified");function bT(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;eRT,QueueNode:()=>ET,binarySearch:()=>ST,bytesToHex:()=>NE,hexToBytes:()=>zE,insertEventIntoAscendingList:()=>kT,insertEventIntoDescendingList:()=>CT,normalizeURL:()=>xT,utf8Decoder:()=>wT,utf8Encoder:()=>_T});var wT=new TextDecoder("utf-8"),_T=new TextEncoder;function xT(t){try{-1===t.indexOf("://")&&(t="wss://"+t);let e=new URL(t);return"http:"===e.protocol?e.protocol="ws:":"https:"===e.protocol&&(e.protocol="wss:"),e.pathname=e.pathname.replace(/\/+/g,"/"),e.pathname.endsWith("/")&&(e.pathname=e.pathname.slice(0,-1)),("80"===e.port&&"ws:"===e.protocol||"443"===e.port&&"wss:"===e.protocol)&&(e.port=""),e.searchParams.sort(),e.hash="",e.toString()}catch(e){throw new Error(`Invalid URL: ${t}`)}}function CT(t,e){const[n,r]=ST(t,t=>e.id===t.id?0:e.created_at===t.created_at?-1:t.created_at-e.created_at);return r||t.splice(n,0,e),t}function kT(t,e){const[n,r]=ST(t,t=>e.id===t.id?0:e.created_at===t.created_at?-1:e.created_at-t.created_at);return r||t.splice(n,0,e),t}function ST(t,e){let n=0,r=t.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=e(t[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}var ET=class{value;next=null;prev=null;constructor(t){this.value=t}},RT=class{first;last;constructor(){this.first=null,this.last=null}enqueue(t){const e=new ET(t);return this.last?this.last===this.first?(this.last=e,this.last.prev=this.first,this.first.next=e):(e.prev=this.last,this.last.next=e,this.last=e):(this.first=e,this.last=e),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const t=this.first;return this.first=null,this.last=null,t.value}const t=this.first;return this.first=t.next,this.first&&(this.first.prev=null),t.value}};function LT(t){return NE(RR(_T.encode(function(t){if(!bT(t))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,t.pubkey,t.created_at,t.kind,t.tags,t.content])}(t))))}var TT=new class{generateSecretKey(){return TE.utils.randomPrivateKey()}getPublicKey(t){return NE(TE.getPublicKey(t))}finalizeEvent(t,e){const n=t;return n.pubkey=NE(TE.getPublicKey(e)),n.id=LT(n),n.sig=NE(TE.sign(LT(n),e)),n[vT]=!0,n}verifyEvent(t){if("boolean"==typeof t[vT])return t[vT];const e=LT(t);if(e!==t.id)return t[vT]=!1,!1;try{const n=TE.verify(t.sig,e,t.pubkey);return t[vT]=n,n}catch(PD){return t[vT]=!1,!1}}},PT=TT.generateSecretKey,IT=TT.getPublicKey,MT=TT.finalizeEvent,AT=TT.verifyEvent,OT={};function NT(t){return t<1e4&&0!==t&&3!==t}function zT(t){return 0===t||3===t||1e4<=t&&t<2e4}function FT(t){return 2e4<=t&&t<3e4}function DT(t){return 3e4<=t&&t<4e4}function jT(t){return NT(t)?"regular":zT(t)?"replaceable":FT(t)?"ephemeral":DT(t)?"parameterized":"unknown"}function UT(t,e){const n=e instanceof Array?e:[e];return bT(t)&&n.includes(t.kind)||!1}yT(OT,{Application:()=>hI,BadgeAward:()=>KT,BadgeDefinition:()=>iI,BlockedRelaysList:()=>FP,BlossomServerList:()=>VP,BookmarkList:()=>OP,Bookmarksets:()=>eI,Calendar:()=>vI,CalendarEventRSVP:()=>bI,ChannelCreation:()=>sP,ChannelHideMessage:()=>lP,ChannelMessage:()=>aP,ChannelMetadata:()=>oP,ChannelMuteUser:()=>cP,ChatMessage:()=>YT,ClassifiedListing:()=>fI,ClientAuth:()=>GP,Comment:()=>fP,CommunitiesList:()=>NP,CommunityDefinition:()=>CI,CommunityPostApproval:()=>xP,Contacts:()=>VT,CreateOrUpdateProduct:()=>aI,CreateOrUpdateStall:()=>oI,Curationsets:()=>nI,Date:()=>mI,DirectMessageRelaysList:()=>$P,DraftClassifiedListing:()=>gI,DraftLong:()=>cI,Emojisets:()=>uI,EncryptedDirectMessage:()=>WT,EventDeletion:()=>HT,FavoriteRelays:()=>jP,FileMessage:()=>tP,FileMetadata:()=>pP,FileServerPreference:()=>qP,Followsets:()=>JP,ForumThread:()=>XT,GenericRepost:()=>eP,Genericlists:()=>QP,GiftWrap:()=>hP,GroupMetadata:()=>kI,HTTPAuth:()=>XP,Handlerinformation:()=>xI,Handlerrecommendation:()=>_I,Highlights:()=>TP,InterestsList:()=>UP,Interestsets:()=>sI,JobFeedback:()=>SP,JobRequest:()=>CP,JobResult:()=>kP,Label:()=>_P,LightningPubRPC:()=>HP,LiveChatMessage:()=>gP,LiveEvent:()=>dI,LongFormArticle:()=>lI,Metadata:()=>BT,Mutelist:()=>IP,NWCWalletInfo:()=>WP,NWCWalletRequest:()=>ZP,NWCWalletResponse:()=>KP,NormalVideo:()=>rP,NostrConnect:()=>YP,OpenTimestamps:()=>uP,Photo:()=>nP,Pinlist:()=>MP,Poll:()=>dP,PollResponse:()=>PP,PrivateDirectMessage:()=>QT,ProblemTracker:()=>vP,ProfileBadges:()=>rI,PublicChatsList:()=>zP,Reaction:()=>ZT,RecommendRelay:()=>qT,RelayList:()=>AP,RelayReview:()=>wI,Relaysets:()=>tI,Report:()=>bP,Reporting:()=>wP,Repost:()=>GT,Seal:()=>JT,SearchRelaysList:()=>DP,ShortTextNote:()=>$T,ShortVideo:()=>iP,Time:()=>yI,UserEmojiList:()=>BP,UserStatuses:()=>pI,Voice:()=>mP,VoiceComment:()=>yP,Zap:()=>LP,ZapGoal:()=>EP,ZapRequest:()=>RP,classifyKind:()=>jT,isAddressableKind:()=>DT,isEphemeralKind:()=>FT,isKind:()=>UT,isRegularKind:()=>NT,isReplaceableKind:()=>zT});var BT=0,$T=1,qT=2,VT=3,WT=4,HT=5,GT=6,ZT=7,KT=8,YT=9,XT=11,JT=13,QT=14,tP=15,eP=16,nP=20,rP=21,iP=22,sP=40,oP=41,aP=42,lP=43,cP=44,uP=1040,hP=1059,dP=1068,pP=1063,fP=1111,gP=1311,mP=1222,yP=1244,vP=1971,bP=1984,wP=1984,_P=1985,xP=4550,CP=5999,kP=6999,SP=7e3,EP=9041,RP=9734,LP=9735,TP=9802,PP=1018,IP=1e4,MP=10001,AP=10002,OP=10003,NP=10004,zP=10005,FP=10006,DP=10007,jP=10012,UP=10015,BP=10030,$P=10050,qP=10096,VP=10063,WP=13194,HP=21e3,GP=22242,ZP=23194,KP=23195,YP=24133,XP=27235,JP=3e4,QP=30001,tI=30002,eI=30003,nI=30004,rI=30008,iI=30009,sI=30015,oI=30017,aI=30018,lI=30023,cI=30024,uI=30030,hI=30078,dI=30311,pI=30315,fI=30402,gI=30403,mI=31922,yI=31923,vI=31924,bI=31925,wI=31987,_I=31989,xI=31990,CI=34550,kI=39e3;function SI(t,e){let n=e.length+3,r=t.indexOf(`"${e}":`)+n,i=t.slice(r).indexOf('"')+r+1;return t.slice(i,i+64)}function EI(t,e){let n=e.length,r=t.indexOf(`"${e}":`)+n+3,i=t.slice(r),s=Math.min(i.indexOf(","),i.indexOf("}"));return parseInt(i.slice(0,s),10)}function RI(t){let e=t.slice(0,22).indexOf('"EVENT"');if(-1===e)return null;let n=t.slice(e+7+1).indexOf('"');if(-1===n)return null;let r=e+7+1+n,i=t.slice(r+1,80).indexOf('"');if(-1===i)return null;let s=r+1+i;return t.slice(r+1,s)}function LI(t,e){return e===SI(t,"id")}function TI(t,e){return e===SI(t,"pubkey")}function PI(t,e){return e===EI(t,"kind")}function II(t,e){return{kind:GP,created_at:Math.floor(Date.now()/1e3),tags:[["relay",t],["challenge",e]],content:""}}yT({},{getHex64:()=>SI,getInt:()=>EI,getSubscriptionId:()=>RI,matchEventId:()=>LI,matchEventKind:()=>PI,matchEventPubkey:()=>TI}),yT({},{makeAuthEvent:()=>II});try{WebSocket}catch{}try{WebSocket}catch{}yT({},{BECH32_REGEX:()=>OI,Bech32MaxSize:()=>AI,NostrTypeGuard:()=>MI,decode:()=>zI,decodeNostrURI:()=>NI,encodeBytes:()=>$I,naddrEncode:()=>WI,neventEncode:()=>VI,noteEncode:()=>UI,nprofileEncode:()=>qI,npubEncode:()=>jI,nsecEncode:()=>DI});var MI={isNProfile:t=>/^nprofile1[a-z\d]+$/.test(t||""),isNEvent:t=>/^nevent1[a-z\d]+$/.test(t||""),isNAddr:t=>/^naddr1[a-z\d]+$/.test(t||""),isNSec:t=>/^nsec1[a-z\d]{58}$/.test(t||""),isNPub:t=>/^npub1[a-z\d]{58}$/.test(t||""),isNote:t=>/^note1[a-z\d]+$/.test(t||""),isNcryptsec:t=>/^ncryptsec1[a-z\d]+$/.test(t||"")},AI=5e3,OI=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function NI(t){try{return t.startsWith("nostr:")&&(t=t.substring(6)),zI(t)}catch(e){return{type:"invalid",data:null}}}function zI(t){let{prefix:e,words:n}=lR.decode(t,AI),r=new Uint8Array(lR.fromWords(n));switch(e){case"nprofile":{let t=FI(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:NE(t[0][0]),relays:t[1]?t[1].map(t=>wT.decode(t)):[]}}}case"nevent":{let t=FI(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(t[2]&&32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(t[3]&&4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:NE(t[0][0]),relays:t[1]?t[1].map(t=>wT.decode(t)):[],author:t[2]?.[0]?NE(t[2][0]):void 0,kind:t[3]?.[0]?parseInt(NE(t[3][0]),16):void 0}}}case"naddr":{let t=FI(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!t[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!t[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:wT.decode(t[0][0]),pubkey:NE(t[2][0]),kind:parseInt(NE(t[3][0]),16),relays:t[1]?t[1].map(t=>wT.decode(t)):[]}}}case"nsec":return{type:e,data:r};case"npub":case"note":return{type:e,data:NE(r)};default:throw new Error(`unknown prefix ${e}`)}}function FI(t){let e={},n=t;for(;n.length>0;){let t=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length_T.encode(t))}))}function VI(t){let e;return void 0!==t.kind&&(e=function(t){const e=new Uint8Array(4);return e[0]=t>>24&255,e[1]=t>>16&255,e[2]=t>>8&255,e[3]=255&t,e}(t.kind)),BI("nevent",HI({0:[zE(t.id)],1:(t.relays||[]).map(t=>_T.encode(t)),2:t.author?[zE(t.author)]:[],3:e?[new Uint8Array(e)]:[]}))}function WI(t){let e=new ArrayBuffer(4);return new DataView(e).setUint32(0,t.kind,!1),BI("naddr",HI({0:[_T.encode(t.identifier)],1:(t.relays||[]).map(t=>_T.encode(t)),2:[zE(t.pubkey)],3:[new Uint8Array(e)]}))}function HI(t){let e=[];return Object.entries(t).reverse().forEach(([t,n])=>{n.forEach(n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(t)],0),r.set([n.length],1),r.set(n,2),e.push(r)})}),DE(...e)}var GI={};function ZI(t,e,n){const r=t instanceof Uint8Array?NE(t):t,i=YI(pE.getSharedSecret(r,"02"+e));let s=Uint8Array.from(BE(16)),o=_T.encode(n),a=$L(i,s).encrypt(o);return`${XE.encode(new Uint8Array(a))}?iv=${XE.encode(new Uint8Array(s.buffer))}`}function KI(t,e,n){const r=t instanceof Uint8Array?NE(t):t;let[i,s]=n.split("?iv="),o=YI(pE.getSharedSecret(r,"02"+e)),a=XE.decode(s),l=XE.decode(i),c=$L(o,a).decrypt(l);return wT.decode(c)}function YI(t){return t.slice(1,33)}yT(GI,{decrypt:()=>KI,encrypt:()=>ZI}),yT({},{NIP05_REGEX:()=>JI,isNip05:()=>QI,isValid:()=>rM,queryProfile:()=>nM,searchDomain:()=>eM,useFetchImplementation:()=>tM});var XI,JI=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,QI=t=>JI.test(t||"");try{XI=fetch}catch(yrt){}function tM(t){XI=t}async function eM(t,e=""){try{const n=`https://${t}/.well-known/nostr.json?name=${e}`,r=await XI(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(yrt){return{}}}async function nM(t){const e=t.match(JI);if(!e)return null;const[,n="_",r]=e;try{const t=`https://${r}/.well-known/nostr.json?name=${n}`,e=await XI(t,{redirect:"manual"});if(200!==e.status)throw Error("Wrong response code");const i=await e.json(),s=i.names[n];return s?{pubkey:s,relays:i.relays?.[s]}:null}catch(i){return null}}async function rM(t,e){const n=await nM(e);return!!n&&n.pubkey===t}function iM(t){const e={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let i=t.tags.length-1;i>=0;i--){const s=t.tags[i];if("e"===s[0]&&s[1]){const[t,i,o,a,l]=s,c={id:i,relays:o?[o]:[],author:l};if("root"===a){e.root=c;continue}if("reply"===a){e.reply=c;continue}if("mention"===a){e.mentions.push(c);continue}n?r=c:n=c,e.mentions.push(c);continue}if("q"===s[0]&&s[1]){const[t,n,r]=s;e.quotes.push({id:n,relays:r?[r]:[]})}"p"===s[0]&&s[1]&&e.profiles.push({pubkey:s[1],relays:s[2]?[s[2]]:[]})}return e.root||(e.root=r||n||e.reply),e.reply||(e.reply=n||e.root),[e.reply,e.root].forEach(t=>{if(!t)return;let n=e.mentions.indexOf(t);if(-1!==n&&e.mentions.splice(n,1),t.author){let n=e.profiles.find(e=>e.pubkey===t.author);n&&n.relays&&(t.relays||(t.relays=[]),n.relays.forEach(e=>{-1===t.relays?.indexOf(e)&&t.relays.push(e)}),n.relays=t.relays)}}),e.mentions.forEach(t=>{if(t.author){let n=e.profiles.find(e=>e.pubkey===t.author);n&&n.relays&&(t.relays||(t.relays=[]),n.relays.forEach(e=>{-1===t.relays.indexOf(e)&&t.relays.push(e)}),n.relays=t.relays)}}),e}function sM(){}async function oM(t){return await(await fetch(t.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}function aM(t){let e=0;for(let n=0;n<64;n+=8){const r=parseInt(t.substring(n,n+8),16);if(0!==r){e+=Math.clz32(r);break}e+=32}return e}function lM(t,e){let n=0;const r=t,i=["nonce",n.toString(),e.toString()];for(r.tags.push(i);;){const t=Math.floor((new Date).getTime()/1e3);if(t!==r.created_at&&(n=0,r.created_at=t),i[1]=(++n).toString(),r.id=cM(r),aM(r.id)>=e)break}return r}function cM(t){return NE(RR(_T.encode(JSON.stringify([0,t.pubkey,t.created_at,t.kind,t.tags,t.content]))))}yT({},{parse:()=>iM}),yT({},{fetchRelayInformation:()=>oM,useFetchImplementation:()=>sM}),yT({},{fastEventHash:()=>cM,getPow:()=>aM,minePow:()=>lM}),yT({},{unwrapEvent:()=>OM,unwrapManyEvents:()=>NM,wrapEvent:()=>MM,wrapManyEvents:()=>AM}),yT({},{createRumor:()=>SM,createSeal:()=>EM,createWrap:()=>RM,unwrapEvent:()=>PM,unwrapManyEvents:()=>IM,wrapEvent:()=>LM,wrapManyEvents:()=>TM});var uM={};yT(uM,{decrypt:()=>vM,encrypt:()=>yM,getConversationKey:()=>pM,v2:()=>bM});var hM=1,dM=65535;function pM(t,e){const n=pE.getSharedSecret(t,"02"+e).subarray(1,33);return r=RR,i=n,s="nip44-v2",vR.hash(r),void 0===s&&(s=new Uint8Array(r.outputLen)),pT(r,FE(s),FE(i));var r,i,s}function fM(t,e){const n=function(t,e,n,r=32){if(vR.hash(t),vR.number(r),r>255*t.outputLen)throw new Error("Length should be <= 255*HashLen");const i=Math.ceil(r/t.outputLen);void 0===n&&(n=gT);const s=new Uint8Array(i*t.outputLen),o=pT.create(t,e),a=o._cloneInto(),l=new Uint8Array(o.outputLen);for(let c=0;cdM)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const e=new Uint8Array(2);return new DataView(e.buffer).setUint16(0,t,!1),e}(n),e,new Uint8Array(gM(n)-n))}(t),a=sT(r,i,o),l=mM(s,a,n);return XE.encode(DE(new Uint8Array([2]),n,a,l))}function vM(t,e){const{nonce:n,ciphertext:r,mac:i}=function(t){if("string"!=typeof t)throw new Error("payload must be a valid string");const e=t.length;if(e<132||e>87472)throw new Error("invalid payload length: "+e);if("#"===t[0])throw new Error("unknown encryption version");let n;try{n=XE.decode(t)}catch(s7){throw new Error("invalid base64: "+s7.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const i=n[0];if(2!==i)throw new Error("unknown encryption version "+i);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(t),{chacha_key:s,chacha_nonce:o,hmac_key:a}=fM(e,n);if(!sL(mM(a,r,n),i))throw new Error("invalid MAC");return function(t){const e=new DataView(t.buffer).getUint16(0),n=t.subarray(2,2+e);if(edM||n.length!==e||t.length!==2+gM(e))throw new Error("invalid padding");return wT.decode(n)}(sT(s,o,r))}var bM={utils:{getConversationKey:pM,calcPaddedLen:gM},encrypt:yM,decrypt:vM},wM=()=>Math.round(Date.now()/1e3),_M=()=>Math.round(wM()-172800*Math.random()),xM=(t,e)=>pM(t,e),CM=(t,e,n)=>yM(JSON.stringify(t),xM(e,n)),kM=(t,e)=>JSON.parse(vM(t.content,xM(e,t.pubkey)));function SM(t,e){const n={created_at:wM(),content:"",tags:[],...t,pubkey:IT(e)};return n.id=LT(n),n}function EM(t,e,n){return MT({kind:JT,content:CM(t,e,n),created_at:_M(),tags:[]},e)}function RM(t,e){const n=PT();return MT({kind:hP,content:CM(t,n,e),created_at:_M(),tags:[["p",e]]},n)}function LM(t,e,n){return RM(EM(SM(t,e),e,n),n)}function TM(t,e,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=[LM(t,e,IT(e))];return n.forEach(n=>{r.push(LM(t,e,n))}),r}function PM(t,e){return kM(kM(t,e),e)}function IM(t,e){let n=[];return t.forEach(t=>{n.push(PM(t,e))}),n.sort((t,e)=>t.created_at-e.created_at),n}function MM(t,e,n,r,i){return LM(function(t,e,n,r){const i={created_at:Math.ceil(Date.now()/1e3),kind:QT,tags:[],content:e};return(Array.isArray(t)?t:[t]).forEach(({publicKey:t,relayUrl:e})=>{i.tags.push(e?["p",t,e]:["p",t])}),r&&i.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&i.tags.push(["subject",n]),i}(e,n,r,i),t,e.publicKey)}function AM(t,e,n,r,i){if(!e||0===e.length)throw new Error("At least one recipient is required.");return[{publicKey:IT(t)},...e].map(e=>MM(t,e,n,r,i))}var OM=PM,NM=IM;function zM(t,e,n,r){let i;const s=[...t.tags??[],["e",e.id,n],["p",e.pubkey]];return e.kind===$T?i=GT:(i=eP,s.push(["k",String(e.kind)])),MT({kind:i,tags:s,content:""===t.content||e.tags?.find(t=>"-"===t[0])?"":JSON.stringify(e),created_at:t.created_at},r)}function FM(t){if(![GT,eP].includes(t.kind))return;let e,n;for(let r=t.tags.length-1;r>=0&&(void 0===e||void 0===n);r--){const i=t.tags[r];i.length>=2&&("e"===i[0]&&void 0===e?e=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==e?{id:e[1],relays:[e[2],n?.[2]].filter(t=>"string"==typeof t),author:n?.[1]}:void 0}function DM(t,{skipVerification:e}={}){const n=FM(t);if(void 0===n||""===t.content)return;let r;try{r=JSON.parse(t.content)}catch(s7){return}return r.id===n.id&&(e||AT(r))?r:void 0}yT({},{finishRepostEvent:()=>zM,getRepostedEvent:()=>DM,getRepostedEventPointer:()=>FM}),yT({},{NOSTR_URI_REGEX:()=>jM,parse:()=>BM,test:()=>UM});var jM=new RegExp(`nostr:(${OI.source})`);function UM(t){return"string"==typeof t&&new RegExp(`^${jM.source}$`).test(t)}function BM(t){const e=t.match(new RegExp(`^${jM.source}$`));if(!e)throw new Error(`Invalid Nostr URI: ${t}`);return{uri:e[0],value:e[1],decoded:zI(e[1])}}function $M(t,e,n){const r=e.tags.filter(t=>t.length>=2&&("e"===t[0]||"p"===t[0]));return MT({...t,kind:ZT,tags:[...t.tags??[],...r,["e",e.id],["p",e.pubkey]],content:t.content??"+"},n)}function qM(t){if(t.kind!==ZT)return;let e,n;for(let r=t.tags.length-1;r>=0&&(void 0===e||void 0===n);r--){const i=t.tags[r];i.length>=2&&("e"===i[0]&&void 0===e?e=i:"p"===i[0]&&void 0===n&&(n=i))}return void 0!==e&&void 0!==n?{id:e[1],relays:[e[2],n[2]].filter(t=>void 0!==t),author:n[1]}:void 0}yT({},{finishReactionEvent:()=>$M,getReactedEventPointer:()=>qM}),yT({},{parse:()=>GM});var VM=/\W/m,WM=/[^\w\/] |[^\w\/]$|$|,| /m,HM=42;function*GM(t){let e=[];if("string"!=typeof t){for(let n=0;n=3&&e.push({type:"emoji",shortcode:r[1],url:r[2]})}t=t.content}const n=t.length;let r=0,i=0;t:for(;i=0&&aZM,channelHideMessageEvent:()=>XM,channelMessageEvent:()=>YM,channelMetadataEvent:()=>KM,channelMuteUserEvent:()=>JM});var ZM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:sP,tags:[...t.tags??[]],content:n,created_at:t.created_at},e)},KM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:oP,tags:[["e",t.channel_create_event_id],...t.tags??[]],content:n,created_at:t.created_at},e)},YM=(t,e)=>{const n=[["e",t.channel_create_event_id,t.relay_url,"root"]];return t.reply_to_channel_message_event_id&&n.push(["e",t.reply_to_channel_message_event_id,t.relay_url,"reply"]),MT({kind:aP,tags:[...n,...t.tags??[]],content:t.content,created_at:t.created_at},e)},XM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:lP,tags:[["e",t.channel_message_event_id],...t.tags??[]],content:n,created_at:t.created_at},e)},JM=(t,e)=>{let n;if("object"==typeof t.content)n=JSON.stringify(t.content);else{if("string"!=typeof t.content)return;n=t.content}return MT({kind:cP,tags:[["p",t.pubkey_to_mute],...t.tags??[]],content:n,created_at:t.created_at},e)};yT({},{EMOJI_SHORTCODE_REGEX:()=>eA,matchAll:()=>rA,regex:()=>nA,replaceAll:()=>iA});var QM,tA,eA=/:(\w+):/,nA=()=>new RegExp(`\\B${eA.source}\\B`,"g");function*rA(t){const e=t.matchAll(nA());for(const r of e)try{const[t,e]=r;yield{shortcode:t,name:e,start:r.index,end:r.index+t.length}}catch(n){}}function iA(t,e){return t.replaceAll(nA(),(t,n)=>e({shortcode:t,name:n}))}yT({},{useFetchImplementation:()=>sA,validateGithub:()=>oA});try{QM=fetch}catch{}function sA(t){QM=t}async function oA(t,e,n){try{return await(await QM(`https://gist.github.com/${e}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${t}`}catch(yrt){return!1}}function aA(t){const{host:e,pathname:n,searchParams:r}=new URL(t),i=n||e,s=r.get("relay"),o=r.get("secret");if(!i||!s||!o)throw new Error("invalid connection string");return{pubkey:i,relay:s,secret:o}}async function lA(t,e,n){const r=ZI(e,t,JSON.stringify({method:"pay_invoice",params:{invoice:n}}));return MT({kind:ZP,created_at:Math.round(Date.now()/1e3),content:r,tags:[["p",t]]},e)}function cA(t){return t=(t=t.trim().toLowerCase()).normalize("NFKC"),Array.from(t).map(t=>/\p{Letter}/u.test(t)||/\p{Number}/u.test(t)?t:"-").join("")}yT({},{makeNwcRequestEvent:()=>lA,parseConnectionString:()=>aA}),yT({},{normalizeIdentifier:()=>cA}),yT({},{getSatoshisAmountFromBolt11:()=>gA,getZapEndpoint:()=>hA,makeZapReceipt:()=>fA,makeZapRequest:()=>dA,useFetchImplementation:()=>uA,validateZapRequest:()=>pA});try{tA=fetch}catch{}function uA(t){tA=t}async function hA(t){try{let e="",{lud06:n,lud16:r}=JSON.parse(t.content);if(r){let[t,n]=r.split("@");e=new URL(`/.well-known/lnurlp/${t}`,`https://${n}`).toString()}else{if(!n)return null;{let{words:t}=lR.decode(n,1e3),r=lR.fromWords(t);e=wT.decode(r)}}let i=await(await tA(e)).json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(PD){}return null}function dA(t){let e={kind:9734,created_at:Math.round(Date.now()/1e3),content:t.comment||"",tags:[["p","pubkey"in t?t.pubkey:t.event.pubkey],["amount",t.amount.toString()],["relays",...t.relays]]};if("event"in t){if(e.tags.push(["e",t.event.id]),zT(t.event.kind)){const n=["a",`${t.event.kind}:${t.event.pubkey}:`];e.tags.push(n)}else if(DT(t.event.kind)){let n=t.event.tags.find(([t,e])=>"d"===t&&e);if(!n)throw new Error("d tag not found or is empty");const r=["a",`${t.event.kind}:${t.event.pubkey}:${n[1]}`];e.tags.push(r)}e.tags.push(["k",t.event.kind.toString()])}return e}function pA(t){let e;try{e=JSON.parse(t)}catch(PD){return"Invalid zap request JSON."}if(!bT(e))return"Zap request is not a valid Nostr event.";if(!AT(e))return"Invalid signature on zap request.";let n=e.tags.find(([t,e])=>"p"===t&&e);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=e.tags.find(([t,e])=>"e"===t&&e);return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":e.tags.find(([t,e])=>"relays"===t&&e)?null:"Zap request doesn't have a 'relays' tag."}function fA({zapRequest:t,preimage:e,bolt11:n,paidAt:r}){let i=JSON.parse(t),s=i.tags.filter(([t])=>"e"===t||"p"===t||"a"===t),o={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...s,["P",i.pubkey],["bolt11",n],["description",t]]};return e&&o.tags.push(["preimage",e]),o}function gA(t){if(t.length<50)return 0;const e=(t=t.substring(0,50)).lastIndexOf("1");if(-1===e)return 0;const n=t.substring(0,e);if(!n.startsWith("lnbc"))return 0;const r=n.substring(4);if(r.length<1)return 0;const i=r[r.length-1],s=i.charCodeAt(0)-"0".charCodeAt(0),o=s>=0&&s<=9;let a=r.length-1;if(o&&a++,a<1)return 0;const l=parseInt(r.substring(0,a));switch(i){case"m":return 1e5*l;case"u":return 100*l;case"n":return l/10;case"p":return l/1e4;default:return 1e8*l}}yT({},{Negentropy:()=>CA,NegentropyStorageVector:()=>xA,NegentropySync:()=>EA});var mA=32,yA=class{_raw;length;constructor(t){"number"==typeof t?(this._raw=new Uint8Array(t),this.length=0):t instanceof Uint8Array?(this._raw=new Uint8Array(t),this.length=t.length):(this._raw=new Uint8Array(512),this.length=0)}unwrap(){return this._raw.subarray(0,this.length)}get capacity(){return this._raw.byteLength}extend(t){if(t instanceof yA&&(t=t.unwrap()),"number"!=typeof t.length)throw Error("bad length");const e=t.length+this.length;if(this.capacity>>=7;e.reverse();for(let n=0;n4294967295&&(n=1),r.setUint32(t,4294967295&o,!0),e=n,n=0}}negate(){let t=new DataView(this.buf.buffer);for(let n=0;n<8;n++){let e=4*n;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(mA);e[0]=1,this.add(e)}getFingerprint(t){let e=new yA;return e.extend(this.buf),e.extend(bA(t)),RR(e.unwrap()).subarray(0,16)}},xA=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");const n=rL(e);if(n.byteLength!==mA)throw Error("bad id size for added item");this.items.push({timestamp:t,id:n})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(SA);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,n){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rSA(t,n)<0)}fingerprint(t,e){let n=new _A;return n.setToZero(),this.iterate(t,e,t=>(n.add(t.id),!0)),n.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,n,r){let i=n-e;for(;i>0;){let n=e,s=Math.floor(i/2);n+=s,r(t[n])?(e=++n,i-=s+1):i=s}return e}},CA=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;constructor(t,e=6e4){if(e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}initiate(){let t=new yA;return t.extend(new Uint8Array([97])),this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),eL(t.unwrap())}reconcile(t,e,n){const r=new yA(rL(t));this.lastTimestampIn=this.lastTimestampOut=0;let i=new yA;i.extend(new Uint8Array([97]));let s=wA(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s)throw Error("unsupported negentropy protocol version requested: "+(s-96));let o=this.storage.size(),a=this._bound(0),l=0,c=!1;for(;0!==r.length;){let t=new yA,s=()=>{c&&(c=!1,t.extend(this.encodeBound(a)),t.extend(bA(0)))},u=this.decodeBound(r),h=vA(r),d=l,p=this.storage.findLowerBound(l,o,u);if(0===h)c=!0;else if(1===h)0!==kA(wA(r,16),this.storage.fingerprint(d,p))?(s(),this.splitRange(d,p,u,t)):c=!0;else{if(2!==h)throw Error("unexpected mode");{let t=vA(r),i={};for(let e=0;e{let n=t.id;const r=eL(n);return i[r]?delete i[eL(n)]:e?.(r),!0}),n)for(let e of Object.values(i))n(eL(e))}}if(this.exceededFrameSizeLimit(i.length+t.length)){let t=this.storage.fingerprint(p,o);i.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),i.extend(bA(1)),i.extend(t);break}i.extend(t),l=p,a=u}return 1===i.length?null:eL(i.unwrap())}splitRange(t,e,n,r){let i=e-t;if(i<32)r.extend(this.encodeBound(n)),r.extend(bA(2)),r.extend(bA(i)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(i/16),o=i%16,a=t;for(let t=0;t<16;t++){let i,l=s+(t(r===a-1?t=n:e=n,!0)),i=this.getMinimalBound(t,e)}r.extend(this.encodeBound(i)),r.extend(bA(1)),r.extend(c)}}}exceededFrameSizeLimit(t){return t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=vA(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),n=vA(t);if(n>mA)throw Error("bound key too long");return{timestamp:e,id:wA(t,n)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,bA(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,bA(t+1)}encodeBound(t){let e=new yA;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(bA(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let n=0,r=e.id,i=t.id;for(let t=0;te[n])return 1}return t.byteLength>e.byteLength?1:t.byteLength{switch(t[0]){case"NEG-MSG":t.length<3&&console.warn(`got invalid NEG-MSG from ${this.relay.url}: ${t}`);try{const e=this.neg.reconcile(t[2],this.onhave,this.onneed);e?this.relay.send(`["NEG-MSG", "${this.subscription.id}", "${e}"]`):(this.close(),r.onclose?.())}catch(s7){console.error("negentropy reconcile error:",s7),r?.onclose?.(`reconcile error: ${s7}`)}break;case"NEG-CLOSE":{const e=t[2];console.warn("negentropy error:",e),r.onclose?.(e);break}case"NEG-ERR":r.onclose?.()}}}async start(){const t=this.neg.initiate();this.relay.send(`["NEG-OPEN","${this.subscription.id}",${JSON.stringify(this.filter)},"${t}"]`)}close(){this.relay.send(`["NEG-CLOSE","${this.subscription.id}"]`),this.subscription.close()}};yT({},{getToken:()=>LA,hashPayload:()=>NA,unpackEventFromToken:()=>PA,validateEvent:()=>FA,validateEventKind:()=>MA,validateEventMethodTag:()=>OA,validateEventPayloadTag:()=>zA,validateEventTimestamp:()=>IA,validateEventUrlTag:()=>AA,validateToken:()=>TA});var RA="Nostr ";async function LA(t,e,n,r=!1,i){const s={kind:XP,tags:[["u",t],["method",e]],created_at:Math.round((new Date).getTime()/1e3),content:""};i&&s.tags.push(["payload",NA(i)]);const o=await n(s);return(r?RA:"")+XE.encode(_T.encode(JSON.stringify(o)))}async function TA(t,e,n){return await FA(await PA(t).catch(t=>{throw t}),e,n).catch(t=>{throw t})}async function PA(t){if(!t)throw new Error("Missing token");t=t.replace(RA,"");const e=wT.decode(XE.decode(t));if(!e||0===e.length||!e.startsWith("{"))throw new Error("Invalid token");return JSON.parse(e)}function IA(t){return!!t.created_at&&Math.round((new Date).getTime()/1e3)-t.created_at<60}function MA(t){return t.kind===XP}function AA(t,e){const n=t.tags.find(t=>"u"===t[0]);return!!n&&n.length>0&&n[1]===e}function OA(t,e){const n=t.tags.find(t=>"method"===t[0]);return!!n&&n.length>0&&n[1].toLowerCase()===e.toLowerCase()}function NA(t){return NE(RR(_T.encode(JSON.stringify(t))))}function zA(t,e){const n=t.tags.find(t=>"payload"===t[0]);if(!n)return!1;const r=NA(e);return n.length>0&&n[1]===r}async function FA(t,e,n,r){if(!AT(t))throw new Error("Invalid nostr event, signature invalid");if(!MA(t))throw new Error("Invalid nostr event, kind invalid");if(!IA(t))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!AA(t,e))throw new Error("Invalid nostr event, url tag invalid");if(!OA(t,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!zA(t,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}function DA(t){return 0===t||3===t||1e4<=t&&t<2e4}function jA(t){return 3e4<=t&&t<4e4}function UA(t,e){const n=e instanceof Array?e:[e];return function(t){if(!(t instanceof Object))return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.pubkey)return!1;if(!t.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(t.tags))return!1;for(let e=0;ee.id===t.id?0:e.created_at===t.created_at?-1:t.created_at-e.created_at);return r||t.splice(n,0,e),t}function XA(t,e){let n=0,r=t.length-1;for(;n<=r;){const i=Math.floor((n+r)/2),s=e(t[i]);if(0===s)return[i,!0];s<0?r=i-1:n=i+1}return[n,!1]}new TextDecoder("utf-8"),new TextEncoder;var JA=Symbol.for("event-store"),QA=Symbol.for("event-uid"),tO=Symbol.for("replaceable-address"),eO=Symbol.for("from-cache"),nO=Symbol.for("replaceable-identifier");function rO(t){return null!=t&&64===t.id?.length&&"string"==typeof t.sig&&"string"==typeof t.pubkey&&64===t.pubkey.length&&"string"==typeof t.content&&Array.isArray(t.tags)&&"number"==typeof t.created_at&&t.created_at>0}function iO(t){return DA(t)||jA(t)}function sO(t){return iO(t.kind)?KA(t,tO,()=>oO(t.kind,t.pubkey,cO(t))):null}function oO(t,e,n){return t+":"+e+":"+(n??"")}var aO=ZA;function lO(t){Reflect.set(t,eO,!0)}function cO(t){return KA(t,nO,()=>t.tags.find(t=>"d"===t[0])?.[1]??"")}function uO(t,e){return t.tags.find(t=>t[0]===e)?.[1]}VR();var hO=new TextDecoder("utf-8"),dO=(new TextEncoder,5e3);function pO(t){let e={},n=t;for(;n.length>0;){let t=n[0],r=n[1],i=n.slice(2,2+r);if(n=n.slice(2+r),i.length=8&&_O.test(t)}function CO(...t){const e=new Set;for(const n of t)if(n)if("string"==typeof n)try{e.add(bO(n))}catch(s7){}else if(Reflect.has(n,Symbol.iterator))for(const t of n)try{e.add(bO(t))}catch(s7){}return Array.from(e)}function kO(t){return!!t&&64===t.length&&!!t.toLowerCase().match(/^[0-9a-f]{64}$/)}function SO(t,e=!1){const n=t.split(":"),r=n[0]?parseInt(n[0]):void 0,i=n[1];if(void 0===r)return null;if(void 0===i||""===i||!kO(i))return null;const s=n.slice(2).join(":");return e&&""===s?null:{kind:r,pubkey:i,identifier:s}}function EO(t){const e=t[1];if(!e||!kO(e))return null;const n={id:e};return t[2]&&xO(t[2])&&(n.relays=[yO(t[2])]),n}function RO(t){if(!t[1])return null;const e=SO(t[1]);return e?(t[2]&&xO(t[2])&&(e.relays=[yO(t[2])]),e):null}function LO(t){const e=t[1];if(!e||!kO(e))return null;const n={pubkey:e};return t[2]&&xO(t[2])&&(n.relays=[yO(t[2])]),n}function TO(t){return"object"==typeof t&&null!==t&&"id"in t&&"string"==typeof t.id}function PO(t){return t.kind+":"+t.pubkey+":"+t.identifier}function IO(t,e){return TO(e)?t.id===e.id&&(!e.author||t.pubkey===e.author):t.kind===e.kind&&t.pubkey===e.pubkey&&cO(t)===(e.identifier??"")}var MO=Symbol.for("profile-content");function AO(t){return KA(t,MO,()=>{const e=function(t){try{return JSON.parse(t)}catch(s7){return}}(t.content);if(e)return e.nip05&&"string"!=typeof e.nip05&&(e.nip05=String(e.nip05)),e.website&&e.website?.length>0&&!1===e.website?.startsWith("http")&&(e.website="https://"+e.website),e})}function OO(t){return!(!t||t.kind!==OT.Metadata&&t.kind!==OT.Handlerinformation||!AO(t))}function NO(t){return"string"==typeof t&&(t={pubkey:t}),e=>e.replaceable({kind:OT.Metadata,pubkey:t.pubkey,relays:t.relays}).pipe(vk(OO),KC(t=>t&&AO(t)))}function zO(t,e){return void 0!==t[0]&&void 0!==t[1]&&(!e||t[0]===e)}function FO(t){return zO(t,"e")}function DO(t){return zO(t,"p")}function jO(t){return zO(t,"r")}function UO(t){return zO(t,"a")}var BO=(t,...e)=>e.reduce((t,e)=>{const n=[];for(const r of t)try{const t=e(r);if(void 0===t)continue;n.push(t)}catch(s7){}return n},t);function $O(t,e=2){for(let n=(t=t.slice()).length-1;n>=0;n--)void 0!==t[n]&&null!==t[n]&&""!==t[n]||(n+1===t.length&&n>=e?t.pop():t[n]="");return t}var qO=o((t,n)=>{var{bech32:r,hex:i,utf8:o}=(VR(),(t=>s.call(t,"module.exports")?t["module.exports"]:l(e({},"__esModule",{value:!0}),t))(LR)),a={bech32:"bc",pubKeyHash:0,scriptHash:5,validWitnessVersions:[0]},c={bech32:"tb",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},u={bech32:"tbs",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},h={bech32:"bcrt",pubKeyHash:111,scriptHash:196,validWitnessVersions:[0]},d={bech32:"sb",pubKeyHash:63,scriptHash:123,validWitnessVersions:[0]},p=["option_data_loss_protect","initial_routing_sync","option_upfront_shutdown_script","gossip_queries","var_onion_optin","gossip_queries_ex","option_static_remotekey","payment_secret","basic_mpp","option_support_large_channel"],f={m:BigInt(1e3),u:BigInt(1e6),n:BigInt(1e9),p:BigInt(1e12)},g=BigInt("2100000000000000000"),m=BigInt(1e11),y={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},v={};for(let e=0,s=Object.keys(y);ei.encode(r.fromWordsUnsafe(t)),16:t=>i.encode(r.fromWordsUnsafe(t)),13:t=>o.encode(r.fromWordsUnsafe(t)),19:t=>i.encode(r.fromWordsUnsafe(t)),23:t=>i.encode(r.fromWordsUnsafe(t)),27:t=>i.encode(r.fromWordsUnsafe(t)),6:_,24:_,3:function(t){const e=[];let n,s,o,a,l,c=r.fromWordsUnsafe(t);for(;c.length>0;)n=i.encode(c.slice(0,33)),s=i.encode(c.slice(33,41)),o=parseInt(i.encode(c.slice(41,45)),16),a=parseInt(i.encode(c.slice(45,49)),16),l=parseInt(i.encode(c.slice(49,51)),16),c=c.slice(51),e.push({pubkey:n,short_channel_id:s,fee_base_msat:o,fee_proportional_millionths:a,cltv_expiry_delta:l});return e},5:function(t){const e=t.slice().reverse().map(t=>[!!(1&t),!!(2&t),!!(4&t),!!(8&t),!!(16&t)]).reduce((t,e)=>t.concat(e),[]);for(;e.length<2*p.length;)e.push(!1);const n={};p.forEach((t,r)=>{let i;i=e[2*r]?"required":e[2*r+1]?"supported":"unsupported",n[t]=i});const r=e.slice(2*p.length);return n.extra_bits={start_bit:2*p.length,bits:r,has_required:r.reduce((t,e,n)=>n%2!=0?t||!1:t||e,!1)},n}};function w(t){return e=>({tagCode:parseInt(t),words:r.encode("unknown",e,Number.MAX_SAFE_INTEGER)})}function _(t){return t.reverse().reduce((t,e,n)=>t+e*Math.pow(32,n),0)}function x(t,e){let n,r;if(t.slice(-1).match(/^[munp]$/))n=t.slice(-1),r=t.slice(0,-1);else{if(t.slice(-1).match(/^[^munp0-9]$/))throw new Error("Not a valid multiplier for the amount");r=t}if(!r.match(/^\d+$/))throw new Error("Not a valid human readable amount");const i=BigInt(r),s=n?i*m/f[n]:i*m;if("p"===n&&i%BigInt(10)!==BigInt(0)||s>g)throw new Error("Amount is outside of valid range");return e?s.toString():s}n.exports={decode:function(t,e){if("string"!=typeof t)throw new Error("Lightning Payment Request must be string");if("ln"!==t.slice(0,2).toLowerCase())throw new Error("Not a proper lightning payment request");const n=[],s=r.decode(t,Number.MAX_SAFE_INTEGER);t=t.toLowerCase();const o=s.prefix;let l=s.words,p=t.slice(o.length+1),f=l.slice(-104);l=l.slice(0,-104);let g=o.match(/^ln(\S+?)(\d*)([a-zA-Z]?)$/);if(g&&!g[2]&&(g=o.match(/^ln(\S+)$/)),!g)throw new Error("Not a proper lightning payment request");n.push({name:"lightning_network",letters:"ln"});const m=g[1];let C;if(e){if(void 0===e.bech32||void 0===e.pubKeyHash||void 0===e.scriptHash||!Array.isArray(e.validWitnessVersions))throw new Error("Invalid network");C=e}else switch(m){case a.bech32:C=a;break;case c.bech32:C=c;break;case u.bech32:C=u;break;case h.bech32:C=h;break;case d.bech32:C=d}if(!C||C.bech32!==m)throw new Error("Unknown coin bech32 prefix");n.push({name:"coin_network",letters:m,value:C});const k=g[2];let S;k?(S=x(k+g[3],!0),n.push({name:"amount",letters:g[2]+g[3],value:S})):S=null,n.push({name:"separator",letters:"1"});const E=_(l.slice(0,7));let R,L,T,P;for(l=l.slice(7),n.push({name:"timestamp",letters:p.slice(0,7),value:E}),p=p.slice(7);l.length>0;){const t=l[0].toString();R=v[t]||"unknown_tag",L=b[t]||w(t),l=l.slice(1),T=_(l.slice(0,2)),l=l.slice(2),P=l.slice(0,T),l=l.slice(T),n.push({name:R,tag:p[0],letters:p.slice(0,3+T),value:L(P)}),p=p.slice(3+T)}n.push({name:"signature",letters:p.slice(0,104),value:i.encode(r.fromWordsUnsafe(f))}),p=p.slice(104),n.push({name:"checksum",letters:p});let I={paymentRequest:t,sections:n,get expiry(){let t=n.find(t=>"expiry"===t.name);if(t)return M("timestamp")+t.value},get route_hints(){return n.filter(t=>"route_hint"===t.name).map(t=>t.value)}};for(let r in y)"route_hint"!==r&&Object.defineProperty(I,r,{get:()=>M(r)});return I;function M(t){let e=n.find(e=>e.name===t);return e?e.value:void 0}},hrpToMillisat:x}}),VO=qO();function WO(t){const e=(0,VO.decode)(t),n=e.sections.find(t=>"timestamp"===t.name)?.value??0,r=e.sections.find(t=>"description"===t.name)?.value??"",i=parseInt(e.sections.find(t=>"amount"===t.name)?.value??"0"),s=e.sections.find(t=>"payment_hash"===t.name);return{paymentRequest:e.paymentRequest,description:r,amount:i,timestamp:n,expiry:n+e.expiry,paymentHash:s?.value}}var HO=Symbol.for("encrypted-content"),GO={[OT.EncryptedDirectMessage]:"nip04",[OT.Seal]:"nip44",[OT.GiftWrap]:"nip44"};function ZO(t,e){return GO[t]=e,t}function KO(t,e,n){const r=n??GO[t];if(!r)throw new Error(`Event kind ${t} does not support encrypted content`);const i=e[r];if(!i)throw new Error(`Signer does not support ${r} encryption`);return i}var YO=HO,XO=KO,JO=new Set([ZO(OT.DraftLong,"nip04")]);function QO(t,e){return JO.add(ZO(t,e)),t}function tN(t){return function(t){return void 0!==GO[t]}(t)&&JO.has(t)}function eN(t){if(tN(t.kind))return YO in t?Reflect.get(t,YO):function(t){return Reflect.get(t,HO)}(t)}function nN(t,e){if(!tN(t.kind))throw new Error("Event kind does not support hidden content");!function(t,e){Reflect.set(t,HO,e),function(t){if(!rO(t))return;const e=function(t){return Reflect.get(t,JA)}(t);e&&e.update(t)}(t)}(t,e)}var rN=Symbol.for("hidden-tags"),iN=new Set([QO(OT.BookmarkList,"nip04"),QO(OT.InterestsList,"nip04"),QO(OT.Mutelist,"nip04"),QO(OT.CommunitiesList,"nip04"),QO(OT.PublicChatsList,"nip04"),QO(OT.SearchRelaysList,"nip04"),QO(10009,"nip04"),QO(OT.Bookmarksets,"nip04"),QO(OT.Relaysets,"nip04"),QO(OT.Followsets,"nip04"),QO(OT.Curationsets,"nip04"),QO(OT.Interestsets,"nip04")]);function sN(t){return tN(t)&&iN.has(t)}function oN(t,e){return iN.add(QO(t,e)),t}function aN(t){return sN(t.kind)&&function(t){return tN(t.kind)&&function(t){return t.content.length>0}(t)}(t)}function lN(t){if(!sN(t.kind))return;if(rN in t)return t[rN];const e=eN(t);if(void 0===e)return;const n=JSON.parse(e);if(!Array.isArray(n))throw new Error("Content is not an array of tags");const r=n.filter(t=>Array.isArray(t)).map(t=>t.map(t=>String(t)));return Reflect.set(t,rN,r),r}var cN=Symbol.for("public-contacts"),uN=Symbol.for("hidden-contacts");function hN(t){return!!t&&(t instanceof hC||Mx(t.lift)&&Mx(t.subscribe))}function dN(t,e){var n="object"==typeof e;return new Promise(function(r,i){var s,o=!1;t.subscribe({next:function(t){s=t,o=!0},error:i,complete:function(){o?r(s):n?r(e.defaultValue):i(new bk)}})})}function pN(t,e){var n="object"==typeof e;return new Promise(function(r,i){var s=new sC({next:function(t){r(t),s.unsubscribe()},error:i,complete:function(){n?r(e.defaultValue):i(new bk)}});t.subscribe(s)})}function fN(t){return new hC(function(e){wC(t()).subscribe(e)})}function gN(){for(var t=[],e=0;e{var n=1e3,r=60*n,i=60*r,s=24*i,o=7*s;function a(t,e,n,r){var i=e>=1.5*n;return Math.round(t/n)+" "+r+(i?"s":"")}e.exports=function(t,e){e=e||{};var l,c,u=typeof t;if("string"===u&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var a=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*o;case"days":case"day":case"d":return a*s;case"hours":case"hour":case"hrs":case"hr":case"h":return a*i;case"minutes":case"minute":case"mins":case"min":case"m":return a*r;case"seconds":case"second":case"secs":case"sec":case"s":return a*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(t);if("number"===u&&isFinite(t))return e.long?(l=t,(c=Math.abs(l))>=s?a(l,c,s,"day"):c>=i?a(l,c,i,"hour"):c>=r?a(l,c,r,"minute"):c>=n?a(l,c,n,"second"):l+" ms"):function(t){var e=Math.abs(t);return e>=s?Math.round(t/s)+"d":e>=i?Math.round(t/i)+"h":e>=r?Math.round(t/r)+"m":e>=n?Math.round(t/n)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}}),vN=o((t,e)=>{e.exports=function(t){function e(t){let r,i,s,o=null;function a(...t){if(!a.enabled)return;const n=a,i=Number(new Date);n.diff=i-(r||i),n.prev=r,n.curr=i,r=i,t[0]=e.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");let s=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(r,i)=>{if("%%"===r)return"%";s++;const o=e.formatters[i];if("function"==typeof o){const e=t[s];r=o.call(n,e),t.splice(s,1),s--}return r}),e.formatArgs.call(n,t),(n.log||e.log).apply(n,t)}return a.namespace=t,a.useColors=e.useColors(),a.color=e.selectColor(t),a.extend=n,a.destroy=e.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(i!==e.namespaces&&(i=e.namespaces,s=e.enabled(t)),s),set:t=>{o=t}}),"function"==typeof e.init&&e.init(a),a}function n(t,n){const r=e(this.namespace+(void 0===n?":":n)+t);return r.log=this.log,r}function r(t,e){let n=0,r=0,i=-1,s=0;for(;n"-"+t)].join(",");return e.enable(""),t},e.enable=function(t){e.save(t),e.namespaces=t,e.names=[],e.skips=[];const n=("string"==typeof t?t:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const r of n)"-"===r[0]?e.skips.push(r.slice(1)):e.names.push(r)},e.enabled=function(t){for(const n of e.skips)if(r(t,n))return!1;for(const n of e.names)if(r(t,n))return!0;return!1},e.humanize=yN(),e.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(t).forEach(n=>{e[n]=t[n]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let n=0;for(let e=0;e{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,i=0;t[0].replace(/%[a-zA-Z%]/g,t=>{"%%"!==t&&(r++,"%c"===t&&(i=r))}),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(s7){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(s7){}return!e&&"undefined"!=typeof process&&"env"in process&&(e={}.DEBUG),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 t;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&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(s7){}}(),t.destroy=(()=>{let t=!1;return()=>{t||(t=!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=vN()(t);var{formatters:n}=e.exports;n.j=function(t){try{return JSON.stringify(t)}catch(s7){return"[UnexpectedJSONParseError]: "+s7.message}}}),wN=c(bN(),1),_N=(0,wN.default)("applesauce"),xN=_N.extend("event-cache");function CN(){return Math.round(Date.now()/1e3)}var kN=Symbol("expiration-timestamp");function SN(t){return KA(t,kN,()=>{const e=t.tags.find(t=>"expiration"===t[0])?.[1];return e?parseInt(e):void 0})}function EN(t){return $O(["a",PO(t),t.relays?.[0]])}function RN(t){return $O(["e",t.id,t.relays?.[0]])}function LN(t){return $O(["p",t.pubkey,t.relays?.[0]])}var TN=o((t,e)=>{e.exports=function t(e,n){if(e===n)return!0;if(e&&n&&"object"==typeof e&&"object"==typeof n){if(e.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(e)){if((r=e.length)!=n.length)return!1;for(i=r;0!==i--;)if(!t(e[i],n[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if((r=(s=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(i=r;0!==i--;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;0!==i--;){var o=s[i];if(!t(e[o],n[o]))return!1}return!0}return e!=e&&n!=n}}),PN=c(TN(),1),IN="abcdefghijklmnopqrstuvwxyz",MN=new Set((IN+IN.toUpperCase()).split("")),AN=Symbol.for("indexable-tags");function ON(t){let e=Reflect.get(t,AN);if(!e){const n=new Set;for(const e of t.tags)e.length>=2&&1===e[0].length&&MN.has(e[0])&&n.add(e[0]+":"+e[1]);e=n,Reflect.set(t,AN,n)}return e}function NN(t,e){if(t.ids&&-1===t.ids.indexOf(e.id))return!1;if(t.kinds&&-1===t.kinds.indexOf(e.kind))return!1;if(t.authors&&-1===t.authors.indexOf(e.pubkey))return!1;if(t.since&&e.created_att.until)return!1;for(let n in t)if("&"===n[0]){let r=n.slice(1),i=t[n];if(i&&i.length>0){const t=ON(e);for(const e of i)if(!t.has(r+":"+e))return!1}}for(let n in t)if("#"===n[0]){let r=n.slice(1),i=t[n];if(i){const n=t[`&${r}`],s=n?i.filter(t=>!n.includes(t)):i;if(0===s.length)continue;const o=ON(e);if(!1===s.some(t=>o.has(r+":"+t)))return!1}}return!0}function zN(t,e){for(let n=0;n[t,this.get(t)])}evict(t=!1){if(t||this.size>0){const t=this.first;delete this.items[t.key],0===--this.size?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e;if(this.has(t)){const n=this.items[t];this.ttl>0&&n.expiry<=Date.now()?this.delete(t):(e=n.value,this.set(t,e,!0))}return e}has(t){return t in this.items}keys(){const t=[];let e=this.first;for(;null!==e;)t.push(e.key),e=e.next;return t}set(t,e,n=!1,r=this.resetTtl){let i;if(n||this.has(t)){if(i=this.items[t],i.value=e,!1===n&&r&&(i.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==i){const t=this.last,e=i.next,n=i.prev;this.first===i&&(this.first=i.next),i.next=null,i.prev=this.last,t.next=i,null!==n&&(n.next=e),null!==e&&(e.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(!0),i=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},1===++this.size?this.first=i:this.last.next=i;return this.last=i,this}values(t=this.keys()){return t.map(t=>this.get(t))}},jN=Symbol.for("mailboxes-inboxes"),UN=Symbol.for("mailboxes-outboxes");function BN(t){return KA(t,jN,()=>{const e=[];for(const n of t.tags)if(jO(n))try{const[,t,r]=n;!t||!xO(t)||e.includes(t)||"read"!==r&&void 0!==r||e.push(yO(t))}catch{}return e})}function $N(t){return KA(t,UN,()=>{const e=[];for(const n of t.tags)if(jO(n))try{const[t,r,i]=n;"r"!==t||!xO(r)||e.includes(r)||"write"!==i&&void 0!==i||e.push(yO(r))}catch{}return e})}var qN=new Set([HO]);function VN(t){return t}function WN(...t){return GN(t.filter(t=>!!t),qN)}function HN(...t){return GN(t.filter(t=>!!t))}function GN(t,e){return 0===t.length?VN:async function(n){return t.reduce(async(t,n)=>{const r=await n(await t);if(e&&"object"==typeof r&&null!==r&&"object"==typeof t&&null!==t){const t=Reflect.ownKeys(r).filter(t=>"symbol"==typeof t);for(const n of t)e.has(n)||Reflect.deleteProperty(r,n)}return r},n)}}function ZN(t,e){return Object.fromEntries(Array.from(Object.entries(t)).map(([t,n])=>[t,{authors:n.map(t=>t.pubkey),...e}]))}oN(OT.UserEmojiList,"nip44");var KN=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&n[t]];return e};function YN(t,e,n=!0){return async r=>{const i="string"==typeof t?{pubkey:t}:{...t};if(!i.relays?.[0]&&e){const t="string"==typeof e?e:await e(i.pubkey);t&&(i.relays=[t])}return n&&(r=r.filter(t=>!("p"===t[0]&&t[1]===i.pubkey))),[...r,LN(i)]}}function XN(t,e=!0){return n=>function(t,e,n=!0){const r=t.find(t=>t[0]===e[0]);return r?n?t.map(t=>t===r?e:t):t:[...t,e]}(n,t,e)}function JN(t,e=!0){return QN(XN(t,e))}function QN(...t){return async e=>({...e,tags:await HN(...t)(Array.from(e.tags))})}function tz(t,...e){return 0===(e=e.filter(t=>!!t)).length?t=>t:async n=>{if(!t)throw new Error("Missing signer for hidden tags");if(!sN(n.kind))throw new Error("Event kind does not support hidden tags");let r,i;if(aN(n)?(i=lN(n),void 0===i&&(aN(n)?(r=await t.getPublicKey(),i=await async function(t,e,n){if(!sN(t.kind))throw new Error("Event kind does not support hidden tags");if(function(t){if(!sN(t.kind))return!1;try{return rN in t||function(t){return!!tN(t.kind)&&function(t){return!0===Reflect.has(t,HO)}(t)&&!0===Reflect.has(t,YO)}(t)&&void 0!==lN(t)}catch{}return!1}(t))return t[rN];await async function(t,e,n){if(!tN(t.kind))throw new Error("Event kind does not support hidden content");if(YO in t)return Reflect.get(t,YO);const r=await KO(t.kind,e,n).decrypt(t.pubkey,t.content);return nN(t,r),r}(t,e,n);const r=lN(t);if(void 0===r)throw new Error("Failed to unlock hidden tags");return function(t,e){if(!sN(t.kind))throw new Error("Event kind does not support hidden tags");Reflect.set(t,rN,e),nN(t,JSON.stringify(e))}(t,r),r}({...n,pubkey:r},t)):i=[])):i=[],void 0===i)throw new Error("Failed to find hidden tags");const s=await HN(...e)(i),o=function(t,e){return XO(t,e)}(n.kind,t);r||(r=await t.getPublicKey());const a=JSON.stringify(s),l=await o.encrypt(r,a);return{...n,content:l,[HO]:a}}}function ez(t){return JN(["alt",t])}function nz(t){return JN(["expiration",t.toString()],!0)}function rz(t=!0){return QN(t?XN(["-"]):t=>t.filter(t=>!("-"===t[0])))}function iz(t){return async e=>{if(!t)throw new Error("Missing signer");Reflect.deleteProperty(e,"id"),Reflect.deleteProperty(e,"sig");const n=await t.getPublicKey(),r={...e,pubkey:n};return Reflect.has(e,HO)&&Reflect.set(r,HO,Reflect.get(e,HO)),r}}function sz(t){const e=jA(t)?[["d",KN()]]:[];return{kind:t,created_at:CN(),tags:e,content:""}}var oz=class t extends Promise{static fromKind(e){return new t(t=>t({kind:e,created_at:CN(),tags:[],content:""}))}static fromEvent(e){return new t(t=>t(function(t){return{kind:t.kind,created_at:CN(),tags:Array.from(t.tags),content:t.content}}(e)))}_signerRef={};get signer(){return this._signerRef.signer}set signer(t){this._signerRef.signer=t}chain(t){const e=new(0,this.constructor)(e=>e(this.then(async e=>{const n=await t(e);for(const t of Reflect.ownKeys(n))"symbol"!=typeof t||qN.has(t)||Reflect.deleteProperty(n,t);return n})));return e._signerRef=this._signerRef,e}as(t){return this._signerRef.signer=t,this}strip(){return new t(t=>t(this.then(t=>({content:t.content,tags:t.tags,created_at:t.created_at,kind:t.kind}))))}stamp(e=this.signer){return new t((t,n)=>{if(!e)return n(new Error("Signer required for stamping"));t(this.then(t=>iz(e)(t)))})}async sign(t=this.signer){if(!t)throw new Error("Missing signer");this.signer||(this.signer=t);const e=await(this),n=await function(t){return async e=>{if(!t)throw new Error("Missing signer");const n=await iz(t)(e),r=await t.signEvent(n);if(Reflect.has(e,"pubkey")&&Reflect.get(e,"pubkey")!==r.pubkey)throw new Error("Signer modified pubkey");if(!UA(r,e.kind))throw new Error("Signer modified event kind");return Reflect.has(e,HO)&&Reflect.set(r,HO,Reflect.get(e,HO)),r}}(t)(e);if(Reflect.has(e,"pubkey")&&Reflect.get(e,"pubkey")!==n.pubkey)throw new Error("Signer modified pubkey");if(UA(n,e.kind))return n;throw new Error("Signer modified event kind")}kind(e){return new t(t=>({...t,kind:e}))}content(t){return this.chain(e=>({...e,content:t}))}created(t=CN()){return t instanceof Date&&(t=Math.floor(t.getTime()/1e3)),this.chain(e=>({...e,created_at:t}))}meta(t){return this.chain(function(t){return WN(t?.protected?rz(!0):t=>t,t?.expiration?nz(t.expiration):t=>t,t?.alt?ez(t.alt):t=>t)}(t))}alt(t){return this.chain(ez(t))}expiration(t){return this.chain(nz(t))}contentWarning(t){return this.chain(function(t){return e=>{let n=Array.from(e.tags);return n=n.filter(t=>"content-warning"!==t[0]),"string"==typeof t?n.push(["content-warning",t]):!0===t&&n.push(["content-warning"]),{...e,tags:n}}}(t))}protected(t){return this.chain(rz(t))}modifyTags(...t){let e;return e=this.chain(n=>function(t,e){let n=[],r=[];return void 0===t?n=r=[]:Array.isArray(t)?n=t:"function"==typeof t?n=[t]:("function"==typeof t.public?n=[t.public]:t.public&&(n=t.public),"function"==typeof t.hidden?r=[t.hidden]:t.hidden&&(r=t.hidden)),WN(n.length>0?QN(...n):void 0,r.length>0?tz(e,...r):void 0)}(t[0],e.signer)(n)),e}modifyPublicTags(...t){return this.chain(QN(...t))}modifyHiddenTags(...t){let e;return e=this.chain(n=>tz(e.signer,...t)(n)),e}encryptedContent(t,e,n){let r;return r=this.chain(i=>{const s=r.signer;if(!s)throw new Error("Signer required for encrypted content");return function(t,e,n,r){return async i=>{if(!n)throw new Error("Signer required for encrypted content");const s=await KO(i.kind,n,r).encrypt(t,e);return{...i,content:s,[HO]:e}}}(t,e,s,n)(i)}),r}},az=o((t,e)=>{function n(t,e){var n,r;if(0===e.length)return t;for(n=0,r=e.length;nnull!==t).map(e=>(e.author=t.pubkey,e))}(t);if(r.length>0){let i=this.deletedIds.get(e);i||(i=new Set,this.deletedIds.set(e,i));for(const e of r){i.add(e.id);const r={pointer:e,until:t.created_at};n.push(r),this.deletedSubject.next(r)}}const i=function(t){return t.tags.filter(UO).map(RO).filter(t=>null!==t).filter(e=>e.pubkey===t.pubkey)}(t);if(i.length>0){let r=this.deletedIdentifiers.get(e);r||(r=new Map,this.deletedIdentifiers.set(e,r));for(const e of i){const i=e.kind+"|"+e.identifier;r.set(i,t.created_at);const s={pointer:e,until:t.created_at};n.push(s),this.deletedSubject.next(s)}}return n}check(t){const e=t.pubkey;if(DA(t.kind)||jA(t.kind)){const n=this.deletedIdentifiers.get(e);if(!n)return!1;const r=cO(t),i=t.kind+"|"+r,s=n.get(i);return void 0!==s&&s>=t.created_at}{const n=this.deletedIds.get(e);return!!n&&n.has(t.id)}}filter(t){return t.filter(t=>!1===this.check(t))}},uz=class{log=_N.extend("EventMemory");kinds=new Map;authors=new Map;tags=new DN;created_at=[];kindAuthor=new Map;events=new DN;replaceable=new Map;get size(){return this.events.size}hasEvent(t){return this.events.has(t)}getEvent(t){return this.events.get(t)}hasReplaceable(t,e,n){const r=this.replaceable.get(oO(t,e,n));return!!r&&r.length>0}getReplaceable(t,e,n){const r=oO(t,e,n);return this.replaceable.get(r)?.[0]}getReplaceableHistory(t,e,n){const r=oO(t,e,n);return this.replaceable.get(r)}getByFilters(t){return Array.from(this.getEventsForFilters(Array.isArray(t)?t:[t]))}getTimeline(t){const e=[],n=this.getByFilters(t);for(const r of n)YA(e,r);return e}add(t){const e=t.id,n=this.events.get(e);if(n)return n;this.events.set(e,t),this.getKindIndex(t.kind).add(t),this.getAuthorsIndex(t.pubkey).add(t),this.getKindAuthorIndex(t.kind,t.pubkey).add(t);for(const r of ON(t))this.tags.has(r)&&this.getTagIndex(r).add(t);if(YA(this.created_at,t),iO(t.kind)){const e=t.tags.find(t=>"d"===t[0])?.[1],n=oO(t.kind,t.pubkey,e);let r=this.replaceable.get(n);this.replaceable.has(n)||(r=[],this.replaceable.set(n,r)),YA(r,t)}return t}remove(t){let e="string"==typeof t?this.events.get(t):t;if(!e)return!1;const n=e.id;if(!this.events.has(n))return!1;const r=this.authors.get(e.pubkey);r&&(r.delete(e),0===r.size&&this.authors.delete(e.pubkey));const i=this.kinds.get(e.kind);i&&(i.delete(e),0===i.size&&this.kinds.delete(e.kind));const s=`${e.kind}:${e.pubkey}`,o=this.kindAuthor.get(s);o&&(o.delete(e),0===o.size&&this.kindAuthor.delete(s));for(const a of ON(e))if(this.tags.has(a)){const t=this.getTagIndex(a);t.delete(e),0===t.size&&this.tags.delete(a)}if(this.removeFromSortedArray(this.created_at,e),this.events.delete(n),iO(e.kind)){const t=e.tags.find(t=>"d"===t[0])?.[1],n=oO(e.kind,e.pubkey,t),r=this.replaceable.get(n);r&&(this.removeFromSortedArray(r,e),0===r.length&&this.replaceable.delete(n))}return this.claims.delete(e),!0}removeByFilters(t){const e=this.getByFilters(t);let n=0;for(const r of e)this.remove(r)&&n++;return n}update(t){}claims=new WeakMap;touch(t){this.events.has(t.id)&&this.events.set(t.id,t)}claim(t){const e=this.claims.get(t)||0;this.claims.set(t,e+1),this.touch(t)}isClaimed(t){const e=this.claims.get(t);return void 0!==e&&e>0}removeClaim(t){const e=this.claims.get(t);if(void 0!==e&&e>0){const n=e-1;0===n?this.claims.delete(t):this.claims.set(t,n)}}clearClaim(t){this.claims.delete(t)}*unclaimed(){let t=this.events.first;for(;t;){const e=t.value;this.isClaimed(e)||(yield e),t=t.next}return 0}prune(t){let e=0;const n=this.unclaimed();for(const r of n)if(this.remove(r),e++,t&&e>=t)break;return e}getKindIndex(t){return this.kinds.has(t)||this.kinds.set(t,new Set),this.kinds.get(t)}getAuthorsIndex(t){return this.authors.has(t)||this.authors.set(t,new Set),this.authors.get(t)}getKindAuthorIndex(t,e){const n=`${t}:${e}`;return this.kindAuthor.has(n)||this.kindAuthor.set(n,new Set),this.kindAuthor.get(n)}getTagIndex(t){if(!this.tags.has(t)){const e=new Set,n=Date.now();for(const i of this.events.values())ON(i).has(t)&&e.add(i);const r=Date.now()-n;r>100&&this.log(`Built index ${t} took ${r}ms`),this.tags.set(t,e)}return this.tags.get(t)}removeFromSortedArray(t,e){if(0===t.length)return;const n=XA(t,t=>t.created_at-e.created_at);if(n){let r=n[0],i=!1;if(t[r]===e)return void t.splice(r,1);for(let n=r-1;n>=0&&t[n].created_at===e.created_at;n--)if(t[n]===e){t.splice(n,1),i=!0;break}if(i)return;for(let n=r+1;nt.created_at-e):void 0;i&&(n=Math.max(0,Math.min(i[0],this.created_at.length-1)));const s=t?XA(this.created_at,e=>e.created_at-t):void 0;if(s&&(r=Math.max(0,Math.min(s[0],this.created_at.length-1))),!(n>r))for(let o=n;o<=r;o++){const n=this.created_at[o];if(!(void 0!==e&&n.created_at>e)){if(void 0!==t&&n.created_at{const r=t instanceof Set?t:new Set(t);if(e)n=r,e=!1;else for(const e of n)r.has(e)||n.delete(e);return n};t.ids&&r(this.iterateIds(t.ids));let i=null;void 0!==t.since&&(i=Array.from(this.iterateTime(t.since,t.until)),r(i));for(const s of MN){const e=t[`&${s}`];if(e?.length)for(const t of e)r(this.iterateTag(s,[t]))}for(const s of MN){const e=t[`#${s}`];if(e?.length){const n=t[`&${s}`],i=n?e.filter(t=>!n.includes(t)):e;i.length>0&&r(this.iterateTag(s,i))}}if(t.authors&&t.kinds&&t.authors.length*t.kinds.length<=20){const e=new Set;for(const n of t.kinds)for(const r of t.authors){const t=`${n}:${r}`,i=this.kindAuthor.get(t);if(i)for(const n of i)e.add(n)}r(e)}else t.authors&&r(this.iterateAuthors(t.authors)),t.kinds&&r(this.iterateKinds(t.kinds));if(void 0===t.since&&void 0!==t.until&&(i=Array.from(this.iterateTime(t.since,t.until)),r(i)),e)return new Set(this.events.values());if(t.limit&&i){const e=new Set;for(const r of i){if(e.size>=t.limit)break;n.has(r)&&e.add(r)}return e}return n}getEventsForFilters(t){if(0===t.length)return new Set;let e=new Set;for(const n of t){const t=this.getEventsForFilter(n);for(const n of t)e.add(n)}return e}reset(){this.events.clear(),this.kinds.clear(),this.authors.clear(),this.kindAuthor.clear(),this.tags.clear(),this.created_at=[],this.replaceable.clear(),this.claims=new WeakMap}};function hz(t){return e=>{const n=new Set;return e.pipe(zk(e=>{if(void 0!==e)if(Array.isArray(e))for(const r of e)n.has(r)||(n.add(r),t.claim(r));else n.has(e)||(n.add(e),t.claim(e))}),_k(()=>{for(const e of n)t.removeClaim(e)}))}}function dz(t){return e=>{let n;return e.pipe(zk(e=>{n!==e&&(n&&t.removeClaim(n),e&&t.claim(e),n=e)}),_k(()=>{n&&t.removeClaim(n)}))}}function pz(t,e){return Ak(n=>n?fk(n):t.eventLoader?ZC(t.eventLoader(e)).pipe(Mk(void 0)):fk(n))}function fz(t){return"string"==typeof t&&(t={id:t}),e=>gN(fN(()=>function(t,e){const n=t.getEvent(e.id);return n instanceof Promise?ZC(n):fk(n)}(e,t)).pipe(e.eventLoader?pz(e,t):uC),e.insert$.pipe(vk(e=>e.id===t.id)),e.remove$.pipe(vk(e=>e.id===t.id),dk(1),KC(()=>{}))).pipe(mk((t,e)=>t?.id===e?.id),dz(e))}function gz(t){return e=>{let n;return gN(fN(()=>function(t,e){const n=t.getReplaceable(e.kind,e.pubkey,e.identifier);return n instanceof Promise?ZC(n):fk(n)}(e,t)).pipe(e.eventLoader?pz(e,t):uC),e.insert$.pipe(vk(e=>e.pubkey==t.pubkey&&e.kind===t.kind&&(void 0===t.identifier||cO(e)===t.identifier)))).pipe(zk(t=>n=t),Ck(e.remove$.pipe(vk(t=>t.id===n?.id),KC(()=>{}))),mk((t,e)=>void 0===t||void 0===e?t===e:e.created_at{const r=new Map,i=t=>e?t.id:function(t){let e=Reflect.get(t,QA);return e||(e=iO(t.kind)?sO(t)??t.id:t.id,Reflect.set(t,QA,e)),e}(t);return fN(()=>{const e=n.getTimeline(t);return e instanceof Promise?ZC(e):fk(e)}).pipe(hz(n),Ck(n.insert$.pipe(vk(e=>zN(t,e)),hz(n))),Ck(n.remove$.pipe(vk(e=>zN(t,e)),KC(t=>t.id))),Lk((t,n)=>{if("string"==typeof n){const e=t.find(t=>t.id===n);if(e){const t=i(e);r.get(t)?.id===n&&r.delete(t)}return t.filter(t=>t.id!==n)}if(Array.isArray(n)){r.clear();for(const t of n)r.set(i(t),t);return[...n]}let s=[...t];const o=i(n),a=r.get(o);if(a&&(!iO(n.kind)||!e&&n.created_atr.clear()))}}function yz(t,e=!1){return t=Array.isArray(t)?t:[t],n=>{const r=e?hk:fN(()=>function(t,e){const n=t.getByFilters(e);return n instanceof Promise?ZC(n).pipe(QC(t=>ZC(t))):ZC(n)}(n,t));return gN(r,n.insert$.pipe(vk(e=>zN(t,e))))}}function vz(t){return"string"==typeof t&&(t={pubkey:t}),e=>{return e.replaceable({kind:OT.Contacts,pubkey:t.pubkey,relays:t.relays}).pipe((n=e,t=>{let e;return gN(t.pipe(zk(t=>e=t)),n.update$.pipe(vk(t=>t.id===e?.id)))}),KC(t=>{return t?function(...t){const e=new Map;for(const n of t)if(Array.isArray(n))for(const t of n)t&&e.set(t.pubkey,t);else n&&e.set(n.pubkey,n);return Array.from(e.values())}(function(t){return KA(t,cN,()=>BO(t.tags,t=>DO(t)?t:void 0,t=>LO(t)??void 0))}(e=t),function(t){if(uN in t)return t[uN];const e=lN(t);if(!e)return;const n=BO(e,t=>DO(t)?t:void 0,t=>LO(t)??void 0);return Reflect.set(t,uN,n),n}(e)):[];var e}));var n}}function bz(t){return"string"==typeof t&&(t={pubkey:t}),e=>e.replaceable({kind:OT.RelayList,pubkey:t.pubkey,relays:t.relays}).pipe(KC(t=>t&&{inboxes:BN(t),outboxes:$N(t)}))}var wz=class{models=new Map;modelKeepWarm=6e4;destroy$=new Sk(1);model(t,...e){let n=this.models.get(t);n||(n=new Map,this.models.set(t,n));const r=t.getKey?t.getKey(...e):(0,lz.default)(e);let i=n.get(r);if(!i){const s=()=>{n.get(r)===i&&n.delete(r)};i=t(...e)(this).pipe(_k(s),Tk({connector:()=>new Sk(1),resetOnComplete:()=>gN(OC(this.modelKeepWarm),this.destroy$),resetOnRefCountZero:()=>gN(OC(this.modelKeepWarm),this.destroy$)}),Ok(this.destroy$)),n.set(r,i)}return i}filters(t,e=!1){return Array.isArray(t)||(t=[t]),this.model(yz,t,e)}event(t){return"string"==typeof t||TO(t)?this.model(fz,t):this.replaceable(t)}replaceable(...t){let e;if(1===t.length)e=t[0];else if(3===t.length||2===t.length){let[n,r,i]=t;e={kind:n,pubkey:r,identifier:i}}if(!e)throw new Error("Invalid arguments, expected address pointer or kind, pubkey, identifier");return this.model(gz,e)}addressable(t){return this.replaceable(t)}timeline(t,e=!1){return this.model(mz,t,e)}profile(t){return this.model(NO,t)}contacts(t){return"string"==typeof t&&(t={pubkey:t}),this.model(vz,t)}mailboxes(t){return"string"==typeof t&&(t={pubkey:t}),this.model(bz,t)}dispose(){this.destroy$.next(),this.destroy$.complete()}},_z=class{expired$;expiredSubject;expirations=new Map;timer=null;nextCheck=null;constructor(){this.expiredSubject=new ok,this.expired$=this.expiredSubject.asObservable()}track(t){const e=SN(t);if(!e||!Number.isFinite(e))return;const n=CN();if(e<=n)return;if(this.expirations.set(t.id,e),this.timer&&this.nextCheck&&this.nextCheck<=e)return;this.timer&&clearTimeout(this.timer);const r=e-n;r>0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*r+10),this.nextCheck=e)}forget(t){this.expirations.delete(t)}check(t){const e=SN(t);return!!e&&e<=CN()}dispose(){this.timer&&clearTimeout(this.timer),this.timer=null,this.nextCheck=null,this.expirations.clear(),this.expiredSubject.complete()}[Symbol.dispose](){this.dispose()}emitNotifications(){const t=CN();let e=1/0;for(const[n,r]of this.expirations)r<=t?(this.expirations.delete(n),this.expiredSubject.next(n)):r0&&(this.timer=setTimeout(this.emitNotifications.bind(this),1e3*n+10),this.nextCheck=e)}}},xz=class t extends wz{database;memory;deletes;expiration;keepOldVersions=!1;keepExpired=!1;keepDeleted=!1;_verifyEventMethod=ZA;get verifyEvent(){return this._verifyEventMethod}set verifyEvent(t){this._verifyEventMethod=t,void 0===t&&console.warn("[applesauce-core] EventStore.verifyEvent is undefined; signature checks are disabled.")}insert$=new ok;update$=new ok;remove$=new ok;eventLoader;internalSubscriptions=new Gx;constructor(t){super(),t?.database?(this.database=t.database,this.memory=new uz):this.database=this.memory=new uz,void 0!==t?.keepDeleted&&(this.keepDeleted=t.keepDeleted),void 0!==t?.keepExpired&&(this.keepExpired=t.keepExpired),void 0!==t?.keepOldVersions&&(this.keepOldVersions=t.keepOldVersions),t?.verifyEvent&&(this.verifyEvent=t.verifyEvent),this.deletes=t?.deleteManager??new cz,this.internalSubscriptions.add(this.deletes.deleted$.subscribe(this.handleDeleteNotification.bind(this))),this.expiration=t?.expirationManager??new _z,this.internalSubscriptions.add(this.expiration.expired$.subscribe(this.handleExpiredNotification.bind(this)))}mapToMemory(t){if(void 0!==t)return this.memory?this.memory.add(t):t}handleDeleteNotification({pointer:t,until:e}){if(!this.keepDeleted)if(TO(t)){const n=this.getEvent(t.id);n&&e>=n.created_at&&IO(n,t)&&this.remove(n)}else if(function(t){return"object"==typeof t&&null!==t&&"identifier"in t&&"pubkey"in t&&"kind"in t&&"string"==typeof t.identifier&&"string"==typeof t.pubkey&&"number"==typeof t.kind}(t)){const n=this.getReplaceableHistory(t.kind,t.pubkey,t.identifier);if(n)for(const r of n)e>=r.created_at&&IO(r,t)&&this.remove(r)}}handleExpiredNotification(t){this.keepExpired||this.remove(t)}static copySymbolsToDuplicateEvent(t,e){if(t.kind!==e.kind)throw new Error("Source and destination events must have the same kind");if((n=t.kind)<1e4&&0!==n&&3!==n&&t.id!==e.id)throw new Error("Source and destination events must have the same ID");var n;if(iO(t.kind)&&t.pubkey!==e.pubkey&&cO(t)!==cO(e))throw new Error("Source and destination events must have the same pubkey and replaceable identifier");let r=!1;const i=(s=t,Reflect.get(s,vO));var s;if(i){for(const t of i)wO(e,t);r=!0}const o=[eO,BA,HO];for(const a of o)a in t&&!(a in e)&&(Reflect.set(e,a,Reflect.get(t,a)),r=!0);return r}add(e,n){if(e.kind===OT.EventDeletion)return this.deletes.add(e),e;if(this.deletes.check(e))return e;const r=SN(e);if(!1===this.keepExpired&&r&&r<=CN())return null;n&&wO(e,n);const i=iO(e.kind)?cO(e):void 0;if(!1===this.keepOldVersions&&iO(e.kind)){const n=this.database.getReplaceableHistory(e.kind,e.pubkey,i);if(n&&n.length>0){let r=n[0];for(const t of n)(t.created_at>r.created_at||t.created_at===r.created_at&&t.idr.created_at||e.created_at===r.created_at&&e.id0){let e=t[0];for(const r of t)(r.created_at>e.created_at||r.created_at===e.created_at&&r.idt!==e);for(const t of n)this.remove(t);if(n.length>0)return e}}return!1===this.keepExpired&&void 0!==r&&this.expiration.track(o),o}remove(t){const e="string"==typeof t?t:t.id;let n=this.memory.getEvent(e);this.expiration.forget(e),n&&Reflect.deleteProperty(n,JA),this.memory!==this.database&&this.memory.remove(t);const r=this.database.remove(t);return r&&n&&this.remove$.next(n),r}removeByFilters(t){const e=this.getByFilters(t);for(const r of e)this.expiration.forget(r.id);this.memory!==this.database&&this.memory.removeByFilters(t);const n=this.database.removeByFilters(t);for(const r of e)this.remove$.next(r);return n}update(t){return!!this.database.add(t)&&(this.database.update?.(t),this.update$.next(t),!0)}hasEvent(t){return"string"==typeof t?this.memory.hasEvent(t)||this.database.hasEvent(t):TO(t)?this.memory.hasEvent(t.id)||this.database.hasEvent(t.id):this.hasReplaceable(t.kind,t.pubkey,t.identifier)}getEvent(t){return"string"==typeof t?this.memory.getEvent(t)??this.mapToMemory(this.database.getEvent(t)):TO(t)?this.memory.getEvent(t.id)??this.mapToMemory(this.database.getEvent(t.id)):this.getReplaceable(t.kind,t.pubkey,t.identifier)}hasReplaceable(t,e,n){return this.memory.hasReplaceable(t,e,n)||this.database.hasReplaceable(t,e,n)}getReplaceable(t,e,n){return this.memory.getReplaceable(t,e,n)??this.mapToMemory(this.database.getReplaceable(t,e,n))}getReplaceableHistory(t,e,n){return this.memory.getReplaceableHistory(t,e,n)??this.database.getReplaceableHistory(t,e,n)?.map(t=>this.mapToMemory(t)??t)}getByFilters(t){const e=this.database.getByFilters(t);return this.memory?e.map(t=>this.mapToMemory(t)):e}getTimeline(t){const e=this.database.getTimeline(t);return this.memory?e.map(t=>this.mapToMemory(t)):e}touch(t){return this.memory.touch(t)}claim(t){return this.memory.claim(t)}isClaimed(t){return this.memory.isClaimed(t)??!1}removeClaim(t){return this.memory.removeClaim(t)}clearClaim(t){return this.memory.clearClaim(t)}unclaimed(){return this.memory.unclaimed()||function*(){}()}prune(t){return this.memory.prune(t)??0}dispose(){const t=this.eventLoader;t&&"function"==typeof t[Symbol.dispose]&&t[Symbol.dispose](),this.eventLoader=void 0,super.dispose(),this.internalSubscriptions.unsubscribe(),this.expiration.dispose?.(),this.insert$.complete(),this.update$.complete(),this.remove$.complete()}[Symbol.dispose](){this.dispose()}};function Cz(t,e=!0){return n=>{const r=n.pipe(Tk());return r.pipe(QC(e=>{if("string"==typeof e)return hk;const n=t.add(e);return n instanceof Promise?ZC(n):fk(n)}),UC(()=>fk(null)),vk(t=>null!==t),e?Ax(function(t,e){var n=new Set;t.subscribe(xC(e,function(t){var r=t;n.has(r)||(n.add(r),e.next(t))}))}):uC,Ck(r.pipe(vk(t=>"string"==typeof t))))}}function kz(t){return Cz(t,!0)}var Sz=class extends Error{};function Ez(t,e){return Dk({first:t,with:()=>gk(()=>new Sz(e??"Timeout"))})}new uz;var Rz=Symbol.for("seal"),Lz=Symbol.for("rumor"),Tz=Symbol.for("gift-wrap");function Pz(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name&&"BYTES_PER_ELEMENT"in t&&1===t.BYTES_PER_ELEMENT}function Iz(t,e){return!!Array.isArray(e)&&(0===e.length||(t?e.every(t=>"string"==typeof t):e.every(t=>Number.isSafeInteger(t))))}function Mz(t){if("function"!=typeof t)throw new TypeError("function expected");return!0}function Az(t,e){if("string"!=typeof e)throw new TypeError(`${t}: string expected`);return!0}function Oz(t){if("number"!=typeof t)throw new TypeError("number expected, got "+typeof t);if(!Number.isSafeInteger(t))throw new RangeError(`invalid integer: ${t}`)}function Nz(t){if(!Array.isArray(t))throw new TypeError("array expected")}function zz(t,e){if(!Iz(!0,e))throw new TypeError(`${t}: array of strings expected`)}function Fz(t,e){if(!Iz(!1,e))throw new TypeError(`${t}: array of numbers expected`)}function Dz(...t){const e=t=>t,n=(t,e)=>n=>t(e(n));return{encode:t.map(t=>t.encode).reduceRight(n,e),decode:t.map(t=>t.decode).reduce(n,e)}}function jz(t){const e="string"==typeof t?t.split(""):t,n=e.length;zz("alphabet",e);const r=new Map(e.map((t,e)=>[t,e]));return{encode:r=>(Nz(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${t}`);return e[r]})),decode:e=>(Nz(e),e.map(e=>{Az("alphabet.decode",e);const n=r.get(e);if(void 0===n)throw new Error(`Unknown letter: "${e}". Allowed: ${t}`);return n}))}}function Uz(t=""){return Az("join",t),{encode:e=>(zz("join.decode",e),e.join(t)),decode:e=>(Az("join.decode",e),e.split(t))}}function Bz(t,e="="){return Oz(t),Az("padding",e),{encode(n){for(zz("padding.encode",n);n.length*t%8;)n.push(e);return n},decode(n){zz("padding.decode",n);let r=n.length;if(r*t%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if((r-1)*t%8==0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function $z(t){return Mz(t),{encode:t=>t,decode:e=>t(e)}}_N.extend("EncryptedContentCache"),oN(10017,"nip44"),oN(10018,"nip44");var qz=(t,e)=>0===e?t:qz(e,t%e),Vz=(t,e)=>t+(e-qz(t,e)),Wz=(()=>{let t=[];for(let e=0;e<40;e++)t.push(2**e);return t})();function Hz(t,e,n,r){if(Nz(t),e<=0||e>32)throw new RangeError(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new RangeError(`convertRadix2: wrong to=${n}`);if(Vz(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${Vz(e,n)}`);let i=0,s=0;const o=Wz[e],a=Wz[n]-1,l=[];for(const c of t){if(Oz(c),c>=o)throw new Error(`convertRadix2: invalid data word=${c} from=${e}`);if(i=i<32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)l.push((i>>s-n&a)>>>0);const t=Wz[s];if(void 0===t)throw new Error("invalid carry");i&=t-1}if(i=i<=e)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&l.push(i>>>0),l}function Gz(t,e=!1){if(Oz(t),t<=0||t>32)throw new RangeError("radix2: bits should be in (0..32]");if(Vz(8,t)>32||Vz(t,8)>32)throw new RangeError("radix2: carry overflow");return{encode:n=>{if(!Pz(n))throw new TypeError("radix2.encode input should be Uint8Array");return Hz(Array.from(n),8,t,!e)},decode:n=>(Fz("radix2.decode",n),Uint8Array.from(Hz(n,t,8,e)))}}function Zz(t){return Mz(t),function(...e){try{return t.apply(null,e)}catch(n){}}}Dz(Gz(4),jz("0123456789ABCDEF"),Uz("")),Dz(Gz(5),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Bz(5),Uz("")),Dz(Gz(5),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Uz("")),Dz(Gz(5),jz("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Bz(5),Uz("")),Dz(Gz(5),jz("0123456789ABCDEFGHIJKLMNOPQRSTUV"),Uz("")),Dz(Gz(5),jz("0123456789ABCDEFGHJKMNPQRSTVWXYZ"),Uz(""),$z(t=>t.toUpperCase().replace(/O/g,"0").replace(/[IL]/g,"1")));var Kz=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)(),Yz=(Kz||Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Bz(6),Uz("")),Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Uz("")),Kz||Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Bz(6),Uz("")),Dz(Gz(6),jz("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),Uz("")),Dz(jz("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Uz(""))),Xz=[996825010,642813549,513874426,1027748829,705979059];function Jz(t){const e=t>>25;let n=(33554431&t)<<5;for(let r=0;r>r&1)&&(n^=Xz[r]);return n}function Qz(t,e,n=1){const r=t.length;let i=1;for(let s=0;s126)throw new Error(`Invalid prefix (${t})`);i=Jz(i)^e>>5}i=Jz(i);for(let s=0;sr)throw new TypeError(`Length ${s} exceeds limit ${r}`);const o=t.toLowerCase(),a=Qz(o,n,e);return`${o}1${Yz.encode(n)}${a}`}function a(t,n=90){Az("bech32.decode input",t);const r=t.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${t}). Expected (8..${n})`);const i=t.toLowerCase();if(t!==i&&t!==t.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=i.lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=i.slice(0,s),a=i.slice(s+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const l=Yz.decode(a).slice(0,-6),c=Qz(o,l,e);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${t}: expected "${c}"`);return{prefix:o,words:l}}return{encode:o,decode:a,encodeFromBytes:function(t,e){return o(t,i(e))},decodeToBytes:function(t){const{prefix:e,words:n}=a(t,!1);return{prefix:e,words:n,bytes:r(n)}},decodeUnsafe:Zz(a),fromWords:r,fromWordsUnsafe:s,toWords:i}}var eF,nF=Object.freeze(tF("bech32")),rF=(tF("bech32m"),(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()||Dz(Gz(4),jz("0123456789abcdef"),Uz(""),$z(t=>{if("string"!=typeof t||t.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof t} with length ${t.length}`);return t.toLowerCase()})),new TextDecoder);oN(10086,"nip04"),function(t){t.nudity="nudity",t.malware="malware",t.profanity="profanity",t.illegal="illegal",t.spam="spam",t.impersonation="impersonation",t.other="other"}(eF||(eF={})),oN(10040,"nip44");var iF=Symbol.for("zap-request"),sF=Symbol.for("zap-sender"),oF=Symbol.for("zap-receiver"),aF=Symbol.for("zap-bolt11"),lF=Symbol.for("zap-event-pointer");function cF(t){return KA(t,iF,()=>{const e=uO(t,"description");if(e)try{const t=JSON.parse(e);return function(t){if(!t)return!1;if(t.kind!==OT.ZapRequest)return!1;if(!rO(t))return!1;if(!function(t){return aO(t)}(t))return!1;const e=t.tags.find(([t,e])=>"p"===t&&e);if(!e)return!1;if(!e[1].match(/^[a-f0-9]{64}$/))return!1;const n=t.tags.find(([t,e])=>"e"===t&&e);return!(n&&!n[1].match(/^[a-f0-9]{64}$/)||!t.tags.find(([t,e])=>"relays"===t&&e))}(t)?t:void 0}catch{return}})}var uF=new WeakMap;function hF(t,e,n,r){let i={configurable:!0,enumerable:!0,writable:!0,initializer:null};r&&(i.initializer=r);for(let s of n)i=s(t,e,i)||i;void 0===i.initializer?Object.defineProperty(t,e,i):function(t,e,n){let r=uF.get(t);r||(r=new Map,uF.set(t,r)),r.set(e,n)}(t,e,i)}function dF(t,e,n){let r={...Object.getOwnPropertyDescriptor(t,e)};for(let i of n)r=i(t,e,r)||r;void 0!==r.initializer&&(r.value=r.initializer?r.initializer.call(t):void 0,r.initializer=void 0),Object.defineProperty(t,e,r)}function pF(t,e){let n=function(t,e){var n;let r=t.prototype;for(;r;){let t=null==(n=uF.get(r))?void 0:n.get(e);if(t)return t;r=Object.getPrototypeOf(r)}}(t.constructor,e);n&&Object.defineProperty(t,e,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(t):void 0})}var fF=a({ContributionEntry:()=>mF,applyDeletions:()=>vF,groupPhotoContributions:()=>bF,parsePhotoFromEvent:()=>yF}),gF=3600,mF=class{type="photo";placeIdentifier;osmType;osmId;photos;createdAt;eventCount;static{hF(this.prototype,"placeName",[Wr],function(){return null})}#N=void pF(this,"placeName");static{hF(this.prototype,"placeNameLoading",[Wr],function(){return!0})}#z=void pF(this,"placeNameLoading");constructor({placeIdentifier:t,osmType:e,osmId:n,photos:r,createdAt:i,eventCount:s}){this.placeIdentifier=t,this.osmType=e,this.osmId=n,this.photos=r,this.createdAt=i,this.eventCount=s}};function yF(t){const e=t.tags||[],n=e.filter(t=>"t"===t[0]).map(t=>t[1]).filter(Boolean),r=e.find(t=>"imeta"===t[0]);if(!r)return null;let i=null,s=null,o=null,a=!1,l=16/9,c=null;for(const p of r.slice(1))if(p.startsWith("url "))i=p.substring(4);else if(p.startsWith("thumb "))s=p.substring(6);else if(p.startsWith("blurhash "))o=p.substring(9);else if(p.startsWith("dim ")){const[t,e]=p.substring(4).split("x").map(Number);t&&e&&(l=t/e,t>e&&(a=!0))}else if(p.startsWith("alt ")){const t=p.substring(4).trim();c="A photo of a place"===t?null:t||null}if(!i)return null;const u=e.find(t=>"i"===t[0])?.[1],h=e.find(t=>"published_at"===t[0])?.[1],d=h?Number(h):null;return{eventId:t.id,pubkey:t.pubkey,createdAt:t.created_at,publishedAt:d&&d>0?d:null,url:i,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:n,alt:c}}function vF(t){const e=new Set;for(const n of t)if(5===n.kind)for(const t of n.tags||[])"e"===t[0]&&t[1]&&e.add(t[1]);return t.filter(t=>360===t.kind&&!e.has(t.id))}function bF(t,e=3){if(!t||0===t.length)return[];const n=vF(t);if(0===n.length)return[];const r=new Map;for(const o of n){const t=(o.tags||[]).find(t=>"i"===t[0])?.[1];t&&(r.has(t)||r.set(t,[]),r.get(t).push(o))}const i=e*gF,s=[];for(const[o,a]of r){const t=[...a].sort((t,e)=>e.created_at-t.created_at);let e=[],n=null;for(const r of t)null!==n&&n-r.created_at>i&&(s.push(wF(o,e)),e=[]),e.push(r),n=r.created_at;e.length>0&&s.push(wF(o,e))}return s.filter(t=>t.photos.length>0).sort((t,e)=>e.createdAt-t.createdAt)}function wF(t,e){const n=e.map(yF).filter(Boolean).sort((t,e)=>t.createdAt-e.createdAt),r=e.reduce((t,e)=>e.created_at>t?e.created_at:t,0),[,i,s]=t.split(":");return new mF({placeIdentifier:t,osmType:i,osmId:s,photos:n,createdAt:r,eventCount:e.length})}var _F=a({ActivityEntry:()=>xF,enrichWithPhoto:()=>kF,groupSocialPhotos:()=>RF,parseZapReceipt:()=>CF}),xF=class{type="zap";photoEventId;photo;photos=[];placeIdentifier;osmType;osmId;senderPubkey;amountSats;message;createdAt;static{hF(this.prototype,"senderName",[Wr],function(){return null})}#F=void pF(this,"senderName");static{hF(this.prototype,"senderAvatar",[Wr],function(){return null})}#D=void pF(this,"senderAvatar");static{hF(this.prototype,"senderProfileLoading",[Wr],function(){return!0})}#j=void pF(this,"senderProfileLoading");static{hF(this.prototype,"placeName",[Wr],function(){return null})}#N=void pF(this,"placeName");static{hF(this.prototype,"placeNameLoading",[Wr],function(){return!0})}#z=void pF(this,"placeNameLoading");constructor({photoEventId:t,photo:e,photos:n,placeIdentifier:r,osmType:i,osmId:s,senderPubkey:o,amountSats:a,message:l,createdAt:c}){this.photoEventId=t,this.photo=e,this.photos=n??[],this.placeIdentifier=r,this.osmType=i,this.osmId=s,this.senderPubkey=o,this.amountSats=a,this.message=l,this.createdAt=c}};function CF(t,e){if(!t||9735!==t.kind)return null;const n=KA(r=t,oF,()=>uO(r,"p"));var r;if(!n||n!==e)return null;const i=function(t){return KA(t,sF,()=>uO(t,"P")||cF(t)?.pubkey)}(t);if(!i)return null;const s=function(t){return KA(t,aF,()=>{const e=uO(t,"bolt11");try{return e?WO(e):void 0}catch(s7){return}})}(t);if(!s||!s.amount)return null;const o=Math.round(s.amount/1e3),a=function(t){return KA(t,lF,()=>{const e=t.tags.find(FO);return e?EO(e):null})}(t);if(!a||!a.id)return null;const l=cF(t)?.content||null;return new xF({photoEventId:a.id,photo:null,placeIdentifier:null,senderPubkey:i,amountSats:o,message:l,createdAt:t.created_at})}function kF(t,e,n){const r=e.getEvent?.(t.photoEventId);if(!r||360!==r.kind||r.pubkey!==n)return!1;const i=yF(r);if(!i)return!1;if(t.photo=i,t.placeIdentifier=i.placeIdentifier||null,t.placeIdentifier){const[,e,n]=t.placeIdentifier.split(":");t.osmType=e,t.osmId=n}return!0}var SF=3600;function EF(t){const e=t.map(yF).filter(Boolean).sort((t,e)=>t.createdAt-e.createdAt),n=t.reduce((t,e)=>e.created_at>t?e.created_at:t,0),r=t[0].tags?.find(t=>"i"===t[0])?.[1]||null;let i,s;if(r){const t=r.split(":");i=t[1],s=t[2]}const o=new xF({photo:e[0]||null,photos:e,placeIdentifier:r,osmType:i,osmId:s,senderPubkey:t[0].pubkey,createdAt:n});return o.type="photo",o}function RF(t,e=3){if(!t||0===t.length)return[];const n=vF(t);if(0===n.length)return[];const r=new Map;for(const o of n){const t=(o.tags||[]).find(t=>"i"===t[0])?.[1];if(!t)continue;const e=`${o.pubkey}:${t}`;r.has(e)||r.set(e,[]),r.get(e).push(o)}const i=e*SF,s=[];for(const[,o]of r){const t=[...o].sort((t,e)=>e.created_at-t.created_at);let e=[],n=null;for(const r of t)null!==n&&n-r.created_at>i&&(s.push(EF(e)),e=[]),e.push(r),n=r.created_at;e.length>0&&s.push(EF(e))}return s.filter(t=>t.photos.length>0).sort((t,e)=>e.createdAt-t.createdAt)}var LF=a({default:()=>IF}),TF=2592e3,PF=Math.floor(new Date("2026-04-20").getTime()/1e3),IF=class extends fp{static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"placeNameResolver",[pp])}#$=void pF(this,"placeNameResolver");static{hF(this.prototype,"items",[Wr],function(){return[]})}#q=void pF(this,"items");static{hF(this.prototype,"sourceMode",[Wr],function(){return"home"})}#V=void pF(this,"sourceMode");static{hF(this.prototype,"isLoading",[Wr],function(){return!1})}#W=void pF(this,"isLoading");static{hF(this.prototype,"isLoadingMore",[Wr],function(){return!1})}#H=void pF(this,"isLoadingMore");_profileSubs=new Map;_userPubkey=null;_zapItems=[];_socialItems=[];_lastSocialEvents=[];_since=null;_sourceMode="home";_isLoadingMore=!1;_cacheReadyCallback=null;async load(t){if(!(this.items.length>0)){this._userPubkey=t||null,this._since=Math.floor(Date.now()/1e3)-TF,this.isLoading=!0,this._cacheReadyCallback=()=>{this.isLoading=!1};try{t&&(await this.nostrData.loadMyContributions(t),await this.nostrData.loadProfile(t),await this.nostrData.whenContactsLoaded()),this._socialItems=[],this._zapItems=[],this._lastSocialEvents=[],this._mergeItems();const e=Math.floor(Date.now()/1e3);await this._fetchWithBackoff(this._since,e)}finally{this.isLoading=!1,this._cacheReadyCallback=null}}}async setSourceMode(t){if(t!==this._sourceMode){this._sourceMode=t,this.sourceMode=t,this._since=Math.floor(Date.now()/1e3)-TF,this._socialItems=[],this._zapItems=[],this._lastSocialEvents=[],this._mergeItems(),this.isLoading=!0,this._cacheReadyCallback=()=>{this.isLoading=!1};try{const t=Math.floor(Date.now()/1e3);await this._fetchWithBackoff(this._since,t)}finally{this.isLoading=!1,this._cacheReadyCallback=null}}}async loadMore(){if(!this._isLoadingMore&&this._since&&this.items.length){this._isLoadingMore=!0,this.isLoadingMore=!0;try{const t=this._since-TF;await this._fetchWithBackoff(t,this._since)}finally{this._isLoadingMore=!1,this.isLoadingMore=!1}}}stop(){this._cleanupProfileSubs(),this._zapItems=[],this._socialItems=[],this._lastSocialEvents=[],this.items=[],this._userPubkey=null,this._since=null,this._isLoadingMore=!1,this.isLoadingMore=!1,this.isLoading=!1,this.placeNameResolver.reset()}willDestroy(){this.stop(),super.willDestroy(...arguments)}_processPhotoEvents(t){if(0===t.length)return!1;this._lastSocialEvents=[...this._lastSocialEvents,...t];const e=t.filter(t=>this._matchesSourceMode(t));if(0===e.length)return!1;const n=RF(e),r=new Set;for(const s of this._socialItems)for(const t of s.photos)r.add(t.eventId);const i=n.filter(t=>!t.photos.every(t=>r.has(t.eventId)));if(0===i.length)return!1;for(const s of i)this._resolveSender(s);for(const s of i)if(s.osmId){const t=this.placeNameResolver.resolveBookmark(s.osmId);t&&(s.placeName=t,s.placeNameLoading=!1)}return this._socialItems=[...this._socialItems,...i],this._mergeItems(),this.placeNameResolver.resolveInBackground(i).then(()=>this._mergeItems()),!0}_processZapEventsIntoTimeline(t){if(0===t.length)return!1;const e=this._processZapEvents(t,this._userPubkey);return 0!==e.length&&(this._zapItems=[...this._zapItems,...e],this._mergeItems(),this.placeNameResolver.resolveInBackground(e).then(()=>this._mergeItems()),!0)}async _fetchAndProcessWindow(t,e){const n=await this.nostrData.fetchActivityPhotos(t,e,this._sourceMode);let r={cacheEvents:[],networkEvents:Promise.resolve([])};"home"===this._sourceMode&&this._userPubkey&&(r=await this.nostrData.fetchIncomingZaps(this._userPubkey,t,e));let i=!1;n.cacheEvents.length>0&&(i=this._processPhotoEvents(n.cacheEvents)||i),r.cacheEvents.length>0&&(i=this._processZapEventsIntoTimeline(r.cacheEvents)||i),i&&this._cacheReadyCallback?.();const[s,o]=await Promise.all([n.networkEvents,r.networkEvents]);return s.length>0&&(i=this._processPhotoEvents(s)||i),o.length>0&&(i=this._processZapEventsIntoTimeline(o)||i),i}async _fetchWithBackoff(t,e){let n=TF,r=t,i=e;for(;;){if(null===this._since)return;const t=re.createdAt-t.createdAt);for(const r of n)if(r.osmId){const t=this.placeNameResolver.resolveBookmark(r.osmId);t&&(r.placeName=t,r.placeNameLoading=!1)}return n}_updateZapItems(t,e){const n=this._processZapEvents(t,e);this._zapItems=n,this._mergeItems(),this.placeNameResolver.resolveInBackground(n).then(()=>{this._mergeItems()})}_updateSocialItems(t){const e=RF(t.filter(t=>this._matchesSourceMode(t)));for(const n of e)this._resolveSender(n);for(const n of e)if(n.osmId){const t=this.placeNameResolver.resolveBookmark(n.osmId);t&&(n.placeName=t,n.placeNameLoading=!1)}this._socialItems=e,this._mergeItems(),this.placeNameResolver.resolveInBackground(e).then(()=>{this._mergeItems()})}_mergeItems(){const t="explore"===this._sourceMode?[...this._socialItems]:[...this._zapItems,...this._socialItems];t.sort((t,e)=>e.createdAt-t.createdAt),this.items=t}_matchesSourceMode(t){return"home"===this._sourceMode?this._userPubkey&&t.pubkey!==this._userPubkey&&this.nostrData._contactPubkeys?.has(t.pubkey):"explore"===this._sourceMode&&(this._userPubkey?t.pubkey!==this._userPubkey&&!this.nostrData._contactPubkeys?.has(t.pubkey)&&this.nostrData.isTrustedEvent(t):this.nostrData.isTrustedEvent(t))}_resolveSender(t){const e=t.senderPubkey;if(e){if(!this._profileSubs.has(e)){const t=this.nostrData.store.model(NO,e).subscribe(t=>{this._applyProfileToPubkey(e,t)});this._profileSubs.set(e,t)}this._applySenderProfile(t,e)}}_applySenderProfile(t,e){let n=this.nostrData.getProfile(e);if(!n){const t=this.nostrData.store.getReplaceable(0,e);t&&(n=AO(t))}n&&(t.senderName=n.name||n.display_name||null,t.senderAvatar=n.picture||null,t.senderProfileLoading=!1)}_applyProfileToPubkey(t,e){let n=!1;for(const r of this.items)r.senderPubkey===t&&(r.senderName=e.name||e.display_name||null,r.senderAvatar=e.picture||null,r.senderProfileLoading=!1,n=!0);n&&(this.items=[...this.items])}_cleanupProfileSubs(){for(const t of this._profileSubs.values())t.unsubscribe();this._profileSubs.clear()}};function MF(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&"Uint8Array"===t.constructor.name&&"BYTES_PER_ELEMENT"in t&&1===t.BYTES_PER_ELEMENT}var AF=t=>t?`"${t}" `:"";function OF(t,e,n=""){if(MF(t)&&(void 0===e||t.length===e))return t;void 0!==e&&function(t,e=""){if("number"!=typeof t)throw new TypeError(AF(e)+"expected number, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError(AF(e)+"expected integer >= 0, got "+t)}(e,"length");const r=MF(t),i=void 0!==e?` of length ${e}`:"",s=r?`length=${t.length}`:"type="+typeof t,o=AF(n)+"expected Uint8Array"+i+", got "+s;if(!r)throw new TypeError(o);throw new RangeError(o)}var NF=(t,e)=>{if(null===t||"object"!=typeof t||Array.isArray(t))throw new TypeError(("object"===e?"":`"${e}" `)+"expected object, got type="+typeof t)};function zF(t,e=!0){if(t.destroyed)throw new Error("hash was destroyed");if(e&&t.finished)throw new Error("digest() was already called")}function FF(...t){for(let e=0;e>>e}function UF(t,e={}){if("function"!=typeof t)throw new TypeError('"hashCons" expected function, got type='+typeof t);e=function(t,e,n="opts"){return NF(t,"defaults"),void 0!==e&&NF(e,n),Object.assign(t,e)}({},e,"info");const n=(e,n)=>t(n).update(e).digest(),r=t(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=e=>t(e),Object.assign(n,e),Object.freeze(n)}var BF=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});function $F(t,e,n){return t&e^~t&n}function qF(t,e,n){return t&e^t&n^e&n}var VF=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,r){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(t),this.view=DF(this.buffer)}update(t){zF(this),OF(t);const{view:e,buffer:n,blockLen:r}=this,i=t.length;let s=!1;for(let o=0;o=n))throw new RangeError('"output" expected length >= '+n)}(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:r,isLE:i}=this;let{pos:s}=this;e[s++]=128,e.fill(0,s),this.padOffset>r-s&&(this.process(n,0),e.fill(0)),function(t,e,n,r){const i=(t=>t/2**32|0)(n),s=(t=>t>>>0)(n);t.setUint32(e,r?s:i,r),t.setUint32(e+4,r?i:s,r)}(n,r-8,8*this.length,i),this.process(n,0),this.roundClean();const o=t===e?n:DF(t),a=this.outputLen,l=a/4,c=this.get();if(a%4||l>c.length)throw new Error("invalid outputLen");for(let u=0;u>>3,r=jF(e,17)^jF(e,19)^e>>>10;GF[u]=r+GF[u-7]+n+GF[u-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:l,H:c}=this;for(let u=0;u<64;u++){const t=c+(jF(o,6)^jF(o,11)^jF(o,25))+$F(o,a,l)+HF[u]+GF[u]|0,e=(jF(n,2)^jF(n,13)^jF(n,22))+qF(n,r,i)|0;c=l,l=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+e|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,l,c)}roundClean(){FF(GF)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),FF(this.buffer)}},KF=class extends ZF{constructor(){super(32,WF)}},YF=UF(()=>new KF,BF(1)),XF=a({DEFAULT_BLOSSOM_SERVER:()=>JF,default:()=>tD}),JF="https://blossom.nostr.build";function QF(t,e){let n=t||"https://blossom.nostr.build";return n.endsWith("/")&&(n=n.slice(0,-1)),e.startsWith("/")?`${n}${e}`:`${n}/${e}`}var tD=class extends fp{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");get servers(){const t=this.nostrData.blossomServers,e=this.settings.nostrMediaServer||"https://blossom.nostr.build",n=t.filter(t=>t!==e);return this.settings.nostrPhotoFallbackUploads?[e,...n]:[e]}async _getAuthHeader(t,e,n){const r=Math.floor(Date.now()/1e3),i=new URL(n).hostname,s=await oz.fromKind(24242).content("upload"===t?"Upload photo for place":"Delete photo").modifyPublicTags(()=>[["t",t],["x",e],["expiration",String(r+3600)],["server",i]]).created(r).as(this.nostrAuth.signer).sign();return`Nostr ${btoa(JSON.stringify(s)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}`}async _uploadToServer(t,e,n,r){const i=QF(n,"upload");r&&r("signing");const s=await this._getAuthHeader("upload",e,n);r&&r("uploading");const o=await fetch(i,{method:"PUT",headers:{Authorization:s,"X-SHA-256":e},body:t});if(!o.ok){const t=await o.text();throw new Error(`Upload failed (${o.status}): ${t}`)}return o.json()}async upload(t,e={sequential:!1}){if(!this.nostrAuth.isConnected)throw new Error("Not connected");const n=await t.arrayBuffer();let r;r="undefined"!=typeof crypto&&crypto.subtle&&crypto.subtle.digest?await crypto.subtle.digest("SHA-256",n):YF(new Uint8Array(n));const i=function(t){return Array.from(new Uint8Array(t)).map(t=>t.toString(16).padStart(2,"0")).join("")}(r),s=this.servers,o=s[0],a=s.slice(1),l=[];let c;if(e.sequential){c=await this._uploadToServer(t,i,o,e.onProgress);for(const n of a)try{const r=await this._uploadToServer(t,i,n,e.onProgress);l.push(r.url)}catch(s7){console.warn(`Fallback upload to ${n} failed:`,s7)}}else{const n=this._uploadToServer(t,i,o,e.onProgress),r=a.map(n=>this._uploadToServer(t,i,n,e.onProgress));c=await n;const s=await Promise.allSettled(r);for(let t=0;tthis._deleteFromServer(t,e));await i;const o=await Promise.allSettled(s);for(let a=0;anD}),nD=class extends fp{static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"placeNameResolver",[pp])}#$=void pF(this,"placeNameResolver");static{hF(this.prototype,"items",[Wr],function(){return[]})}#q=void pF(this,"items");_sub=null;async load(t){t?(this._sub=this.nostrData.store.timeline([{kinds:[360,5],authors:[t]}]).subscribe(t=>{this._updateItems(t)}),await this.nostrData.loadMyContributions(t)):this.items=[]}stop(){this._sub&&(this._sub.unsubscribe(),this._sub=null),this.items=[],this.placeNameResolver.reset()}willDestroy(){this.stop(),super.willDestroy(...arguments)}_updateItems(t){const e=bF(t);for(const n of e){const t=this.placeNameResolver.resolveBookmark(n.osmId);t&&(n.placeName=t,n.placeNameLoading=!1)}this.items=e,this.placeNameResolver.resolveInBackground(e).then(()=>{this.items=[...this.items]})}};function rD(t){return new Worker("/assets/image-processor-TE4QOxly.js",{name:t?.name})}var iD=a({default:()=>sD}),sD=class extends fp{_worker=null;_callbacks=new Map;_msgId=0;constructor(){super(...arguments),this._initWorker()}_initWorker(){if(!this._worker&&void 0!==rD)try{this._worker=new rD,this._worker.onmessage=this._handleMessage.bind(this),this._worker.onerror=this._handleError.bind(this)}catch(t){console.warn("Failed to initialize image-processor worker:",t)}}_handleMessage(t){const{id:e,success:n,blob:r,dim:i,blurhash:s,error:o}=t.data,a=this._callbacks.get(e);a&&(this._callbacks.delete(e),n?a.resolve({blob:r,dim:i,blurhash:s}):a.reject(new Error(o)))}_handleError(t){console.error("Image Processor Worker Error:",t);for(const[,e]of this._callbacks.entries())e.reject(new Error("Worker crashed"));this._callbacks.clear(),this._worker.terminate(),this._worker=null,this._initWorker()}_getImageDimensions(t){return new Promise((e,n)=>{const r=new Image,i=URL.createObjectURL(t);r.onload=()=>{const t={width:r.width,height:r.height};URL.revokeObjectURL(i),e(t)},r.onerror=()=>{URL.revokeObjectURL(i),n(new Error("Could not read image dimensions"))},r.src=i})}async process(t,e,n,r=!1){if(!this._worker)throw new Error("Image processor worker is not available.");try{const{width:i,height:s}=await this._getImageDimensions(t);let o=i,a=s;return i>s?i>e&&(a=Math.round(s*(e/i)),o=e):s>e&&(o=Math.round(i*(e/s)),a=e),new Promise((e,i)=>{const s=++this._msgId;this._callbacks.set(s,{resolve:e,reject:i}),this._worker.postMessage({type:"PROCESS_IMAGE",id:s,file:t,targetWidth:o,targetHeight:a,quality:n,computeBlurhash:r})})}catch(i){throw new Error(`Failed to process image: ${i.message}`,{cause:i})}}willDestroy(){super.willDestroy(...arguments),this._worker&&(this._worker.terminate(),this._worker=null),this._callbacks.clear()}},oD=o((t,e)=>{!function(n){"object"==typeof t&&void 0!==e?e.exports=n():"function"==typeof define&&define.amd?define([],n):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=n()}(function(){return function t(e,n,r){function i(o,a){if(!n[o]){if(!e[o]){var l="function"==typeof u&&u;if(!a&&l)return l(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};e[o][0].call(h.exports,function(t){return i(e[o][1][t]||t)},h,h.exports,t,e,n,r)}return n[o].exports}for(var s="function"==typeof u&&u,o=0;ot.db.version;if(r&&(t.version!==e&&console.warn('The database "'+t.name+"\" can't be downgraded from version "+t.db.version+" to version "+t.version+"."),t.version=t.db.version),i||n){if(n){var s=t.db.version+1;s>t.version&&(t.version=s)}return!0}return!1}function k(t){return i([m(atob(t.data))],{type:t.type})}function S(t){return t&&t.__local_forage_encoded_blob}function E(t){var e=this,n=e._initReady().then(function(){var t=d[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady});return a(n,t,t),n}function R(t,e,n,r){void 0===r&&(r=1);try{n(null,t.db.transaction(t.storeName,e))}catch(PD){if(r>0&&(!t.db||"InvalidStateError"===PD.name||"NotFoundError"===PD.name))return s.resolve().then(function(){if(!t.db||"NotFoundError"===PD.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),x(t)}).then(function(){return function(t){y(t);for(var e=d[t.name],n=e.forages,r=0;r=43)}}).catch(function(){return!1})}(t).then(function(t){return h=t})}(a.db).then(function(t){return t?e:(n=e,new s(function(t,e){var r=new FileReader;r.onerror=e,r.onloadend=function(e){t({__local_forage_encoded_blob:!0,data:btoa(e.target.result||""),type:n.type})},r.readAsBinaryString(n)}));var n}):e}).then(function(e){R(r._dbInfo,g,function(i,s){if(i)return o(i);try{var a=s.objectStore(r._dbInfo.storeName);null===e&&(e=void 0);var l=a.put(e,t);s.oncomplete=function(){void 0===e&&(e=null),n(e)},s.onabort=s.onerror=function(){o(l.error?l.error:l.transaction.error)}}catch(c){o(c)}})}).catch(o)});return o(a,n),a},removeItem:function(t,e){var n=this;t=l(t);var r=new s(function(e,r){n.ready().then(function(){R(n._dbInfo,g,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName).delete(t);s.oncomplete=function(){e()},s.onerror=function(){r(o.error)},s.onabort=function(){r(o.error?o.error:o.transaction.error)}}catch(a){r(a)}})}).catch(r)});return o(r,e),r},clear:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,g,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).clear();i.oncomplete=function(){t()},i.onabort=i.onerror=function(){n(s.error?s.error:s.transaction.error)}}catch(o){n(o)}})}).catch(n)});return o(n,t),n},length:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).count();s.onsuccess=function(){t(s.result)},s.onerror=function(){n(s.error)}}catch(o){n(o)}})}).catch(n)});return o(n,t),n},key:function(t,e){var n=this,r=new s(function(e,r){t<0?e(null):n.ready().then(function(){R(n._dbInfo,f,function(i,s){if(i)return r(i);try{var o=s.objectStore(n._dbInfo.storeName),a=!1,l=o.openKeyCursor();l.onsuccess=function(){var n=l.result;n?0===t||a?e(n.key):(a=!0,n.advance(t)):e(null)},l.onerror=function(){r(l.error)}}catch(c){r(c)}})}).catch(r)});return o(r,e),r},keys:function(t){var e=this,n=new s(function(t,n){e.ready().then(function(){R(e._dbInfo,f,function(r,i){if(r)return n(r);try{var s=i.objectStore(e._dbInfo.storeName).openKeyCursor(),o=[];s.onsuccess=function(){var e=s.result;e?(o.push(e.key),e.continue()):t(o)},s.onerror=function(){n(s.error)}}catch(a){n(a)}})}).catch(n)});return o(n,t),n},dropInstance:function(t,e){e=c.apply(this,arguments);var n,i=this.config();if((t="function"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName),t.name){var a=t.name===i.name&&this._dbInfo.db?s.resolve(this._dbInfo.db):_(t).then(function(e){var n=d[t.name],r=n.forages;n.db=e;for(var i=0;i>4,u[l++]=(15&r)<<4|i>>2,u[l++]=(3&i)<<6|63&s;return c}function W(t){var e,n=new Uint8Array(t),r="";for(e=0;e>2],r+=T[(3&n[e])<<4|n[e+1]>>4],r+=T[(15&n[e+1])<<2|n[e+2]>>6],r+=T[63&n[e+2]];return n.length%3==2?r=r.substring(0,r.length-1)+"=":n.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var H={serialize:function(t,e){var n="";if(t&&(n=q.call(t)),t&&("[object ArrayBuffer]"===n||t.buffer&&"[object ArrayBuffer]"===q.call(t.buffer))){var r,i=I;t instanceof ArrayBuffer?(r=t,i+=M):(r=t.buffer,"[object Int8Array]"===n?i+=O:"[object Uint8Array]"===n?i+=N:"[object Uint8ClampedArray]"===n?i+=z:"[object Int16Array]"===n?i+=F:"[object Uint16Array]"===n?i+=j:"[object Int32Array]"===n?i+=D:"[object Uint32Array]"===n?i+=U:"[object Float32Array]"===n?i+=B:"[object Float64Array]"===n?i+=$:e(new Error("Failed to get type for BinaryArray"))),e(i+W(r))}else if("[object Blob]"===n){var s=new FileReader;s.onload=function(){var n="~~local_forage_type~"+t.type+"~"+W(this.result);e(I+A+n)},s.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(o){console.error("Couldn't convert value into a JSON string: ",t),e(null,o)}},deserialize:function(t){if(t.substring(0,9)!==I)return JSON.parse(t);var e,n=t.substring(13),r=t.substring(9,13);if(r===A&&P.test(n)){var s=n.match(P);e=s[1],n=n.substring(s[0].length)}var o=V(n);switch(r){case M:return o;case A:return i([o],{type:e});case O:return new Int8Array(o);case N:return new Uint8Array(o);case z:return new Uint8ClampedArray(o);case F:return new Int16Array(o);case j:return new Uint16Array(o);case D:return new Int32Array(o);case U:return new Uint32Array(o);case B:return new Float32Array(o);case $:return new Float64Array(o);default:throw new Error("Unkown type: "+r)}},stringToBuffer:V,bufferToString:W};function G(t,e,n,r){t.executeSql("CREATE TABLE IF NOT EXISTS "+e.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function Z(t,e,n,r,i,s){t.executeSql(n,r,i,function(t,o){o.code===o.SYNTAX_ERR?t.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[e.storeName],function(t,a){a.rows.length?s(t,o):G(t,e,function(){t.executeSql(n,r,i,s)},s)},s):s(t,o)},s)}function K(t,e,n,r){var i=this;t=l(t);var a=new s(function(s,o){i.ready().then(function(){void 0===e&&(e=null);var a=e,l=i._dbInfo;l.serializer.serialize(e,function(e,c){c?o(c):l.db.transaction(function(n){Z(n,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[t,e],function(){s(a)},function(t,e){o(e)})},function(e){if(e.code===e.QUOTA_ERR){if(r>0)return void s(K.apply(i,[t,a,n,r-1]));o(e)}})})}).catch(o)});return o(a,n),a}var Y={_driver:"webSQLStorage",_initStorage:function(t){var e=this,n={db:null};if(t)for(var r in t)n[r]="string"!=typeof t[r]?t[r].toString():t[r];var i=new s(function(t,r){try{n.db=openDatabase(n.name,String(n.version),n.description,n.size)}catch(i){return r(i)}n.db.transaction(function(i){G(i,n,function(){e._dbInfo=n,t()},function(t,e){r(e)})},r)});return n.serializer=H,i},_support:"function"==typeof openDatabase,iterate:function(t,e){var n=this,r=new s(function(e,r){n.ready().then(function(){var i=n._dbInfo;i.db.transaction(function(n){Z(n,i,"SELECT * FROM "+i.storeName,[],function(n,r){for(var s=r.rows,o=s.length,a=0;a '__WebKitDatabaseInfoTable__'",[],function(n,r){for(var i=[],s=0;s0?(this._dbInfo=e,e.serializer=H,s.resolve()):s.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(t){return!1}}(),iterate:function(t,e){var n=this,r=n.ready().then(function(){for(var e=n._dbInfo,r=e.keyPrefix,i=r.length,s=localStorage.length,o=1,a=0;a=0;n--){var r=localStorage.key(n);0===r.indexOf(t)&&localStorage.removeItem(r)}});return o(n,t),n},length:function(t){var e=this.keys().then(function(t){return t.length});return o(e,t),e},key:function(t,e){var n=this,r=n.ready().then(function(){var e,r=n._dbInfo;try{e=localStorage.key(t)}catch(s7){e=null}return e&&(e=e.substring(r.keyPrefix.length)),e});return o(r,e),r},keys:function(t){var e=this,n=e.ready().then(function(){for(var t=e._dbInfo,n=localStorage.length,r=[],i=0;i=0;e--){var n=localStorage.key(e);0===n.indexOf(t)&&localStorage.removeItem(n)}}):s.reject("Invalid arguments"),o(r,e),r}},Q=function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)},tt=function(t,e){for(var n=t.length,r=0;rcD}),lD=c(oD(),1),cD=class extends fp{_instances=new Map;_instance(t){let e=this._instances.get(t);return e||(e=lD.default.createInstance({name:"marco",storeName:t}),this._instances.set(t,e)),e}async get(t,e){return this._instance(t).getItem(e)}async set(t,e,n){return this._instance(t).setItem(e,n)}async remove(t,e){return this._instance(t).removeItem(e)}async keys(t){return this._instance(t).keys()}async clear(t){return this._instance(t).clear()}async iterate(t,e){return this._instance(t).iterate(e)}},uD=a({default:()=>hD}),hD=class extends fp{static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"selectedPlace",[Wr],function(){return null})}#Z=void pF(this,"selectedPlace");static{hF(this.prototype,"isSearching",[Wr],function(){return!1})}#K=void pF(this,"isSearching");static{hF(this.prototype,"isCreating",[Wr],function(){return!1})}#Y=void pF(this,"isCreating");static{hF(this.prototype,"creationCoordinates",[Wr],function(){return null})}#X=void pF(this,"creationCoordinates");static{hF(this.prototype,"returnToSearch",[Wr],function(){return!1})}#J=void pF(this,"returnToSearch");static{hF(this.prototype,"returnToRoute",[Wr],function(){return null})}#Q=void pF(this,"returnToRoute");static{hF(this.prototype,"currentCenter",[Wr],function(){return null})}#tt=void pF(this,"currentCenter");static{hF(this.prototype,"currentBounds",[Wr],function(){return null})}#et=void pF(this,"currentBounds");static{hF(this.prototype,"currentZoom",[Wr],function(){return null})}#nt=void pF(this,"currentZoom");static{hF(this.prototype,"searchBoxHasFocus",[Wr],function(){return!1})}#rt=void pF(this,"searchBoxHasFocus");static{hF(this.prototype,"selectionOptions",[Wr],function(){return{}})}#it=void pF(this,"selectionOptions");static{hF(this.prototype,"preventNextZoom",[Wr],function(){return!1})}#st=void pF(this,"preventNextZoom");static{hF(this.prototype,"searchResults",[Wr],function(){return[]})}#ot=void pF(this,"searchResults");static{hF(this.prototype,"currentSearch",[Wr],function(){return null})}#at=void pF(this,"currentSearch");static{hF(this.prototype,"loadingState",[Wr],function(){return null})}#lt=void pF(this,"loadingState");static{hF(this.prototype,"isSidebarVisible",[Wr],function(){return!1})}#ct=void pF(this,"isSidebarVisible");static{hF(this.prototype,"isSidebarOpening",[Wr],function(){return!1})}#ut=void pF(this,"isSidebarOpening");scrollPositions={};saveScrollPosition(t,e){this.scrollPositions[t]=e}static{dF(this.prototype,"saveScrollPosition",[Vl])}getScrollPosition(t){return this.scrollPositions[t]||0}static{dF(this.prototype,"getScrollPosition",[Vl])}showSidebar(){this.isSidebarVisible||(this.isSidebarVisible=!0,this.isSidebarOpening=!0,setTimeout(()=>{this.isSidebarOpening=!1},250))}hideSidebar(){this.isSidebarVisible=!1,this.isSidebarOpening=!1}selectPlace(t,e={}){this.selectedPlace=t,this.selectionOptions=e,this.nostrData.loadPhotosForPlace(t)}clearSelection(){this.selectedPlace=null,this.selectionOptions={},this.preventNextZoom=!1,this.nostrData.loadPhotosForPlace(null)}setSearchResults(t){this.searchResults=t||[]}clearSearchResults(){this.searchResults=[],this.currentSearch=null}startSearch(){this.isSearching=!0,this.isCreating=!1,this.preventNextZoom=!1}stopSearch(){this.isSearching=!1}startCreating(){this.isCreating=!0,this.isSearching=!1}stopCreating(){this.isCreating=!1,this.creationCoordinates=null}updateCreationCoordinates(t,e){this.creationCoordinates={lat:t,lon:e}}setSearchBoxFocus(t){this.searchBoxHasFocus=t}updateCenter(t,e){this.currentCenter={lat:t,lon:e}}updateZoom(t){this.currentZoom=t}updateBounds(t){this.currentBounds=t}startLoading(t,e){this.loadingState={type:t,value:e}}stopLoading(t=null,e=null){t||e?this.loadingState&&this.loadingState.type===t&&this.loadingState.value===e&&(this.loadingState=null):this.loadingState=null}};function dD(){let t,e;const n=new Promise((n,r)=>{t=n,e=r});return n.resolve=t,n.reject=e,n}"navigator"in globalThis&&navigator.userAgent.includes("Android")&&navigator.clipboard&&navigator.clipboard.readText;var pD,fD,gD=class extends Error{},mD=class{get nip04(){return window.nostr?.nip04}get nip44(){return window.nostr?.nip44}pubkey=void 0;async getPublicKey(){if(!window.nostr)throw new gD("Signer extension missing");if(this.pubkey)return this.pubkey;const t=await window.nostr.getPublicKey();if(!kO(t))throw new Error("Extension returned an invalid public key");return this.pubkey=t,this.pubkey}async signEvent(t){if(!window.nostr)throw new gD("Signer extension missing");const e=await window.nostr.signEvent(t);if(!ZA(e))throw new Error("Extension returned an invalid event");return e}},yD=new TextEncoder,vD=new TextDecoder;function bD(t){if(!kO(t.remote))throw new Error("Invalid nbunksec: remote is not a valid hex key");if(!kO(t.clientKey))throw new Error("Invalid nbunksec: clientKey is not a valid hex key");if(0===t.relays.length)throw new Error("Invalid nbunksec: missing relays");return function(t){try{const e=[],n=zE(t.pubkey);e.push(new Uint8Array([0,n.length]),n);const r=zE(t.local_key);e.push(new Uint8Array([1,r.length]),r);for(const a of t.relays){const t=yD.encode(a);e.push(new Uint8Array([2,t.length]),t)}if(t.secret){const n=yD.encode(t.secret);e.push(new Uint8Array([3,n.length]),n)}const i=e.reduce((t,e)=>t+e.length,0),s=new Uint8Array(i);let o=0;for(const t of e)s.set(t,o),o+=t.length;return nF.encode("nbunksec",nF.toWords(s),!1)}catch(s7){throw new Error(`Failed to encode bunker info: ${s7}`)}}({pubkey:t.remote,local_key:t.clientKey,relays:t.relays,secret:t.bunkerSecret??t.secret})}QO(OT.NostrConnect,"nip44"),function(t){t.GetPublicKey="get_public_key",t.SignEvent="sign_event",t.Ping="ping",t.Nip04Encrypt="nip04_encrypt",t.Nip04Decrypt="nip04_decrypt",t.Nip44Encrypt="nip44_encrypt",t.Nip44Decrypt="nip44_decrypt",t.SwitchRelays="switch_relays"}(pD||(pD={})),function(t){t.Connect="connect",t.CreateAccount="create_account",t.GetPublicKey="get_public_key",t.SignEvent="sign_event",t.Ping="ping",t.Nip04Encrypt="nip04_encrypt",t.Nip04Decrypt="nip04_decrypt",t.Nip44Encrypt="nip44_encrypt",t.Nip44Decrypt="nip44_decrypt",t.SwitchRelays="switch_relays",t.Logout="logout"}(fD||(fD={}));var wD=class t{key;constructor(t){this.key=t||WA()}async getPublicKey(){return HA(this.key)}async signEvent(t){return GA(t,this.key)}nip04={encrypt:async(t,e)=>GI.encrypt(this.key,t,e),decrypt:async(t,e)=>GI.decrypt(this.key,t,e)};nip44={encrypt:async(t,e)=>uM.v2.encrypt(e,uM.v2.utils.getConversationKey(this.key,t)),decrypt:async(t,e)=>uM.v2.decrypt(e,uM.v2.utils.getConversationKey(this.key,t))};static fromKey(e){const n=function(t){if(t instanceof Uint8Array)return 32!==t.length?null:t;if(kO(t))return zE(t);try{const e=function(t){let{prefix:e,words:n}=lR.decode(t,5e3),r=new Uint8Array(lR.fromWords(n));switch(e){case"nprofile":{let t=pO(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:NE(t[0][0]),relays:t[1]?t[1].map(t=>hO.decode(t)):[]}}}case"nevent":{let t=pO(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==t[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(t[2]&&32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(t[3]&&4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:NE(t[0][0]),relays:t[1]?t[1].map(t=>hO.decode(t)):[],author:t[2]?.[0]?NE(t[2][0]):void 0,kind:t[3]?.[0]?parseInt(NE(t[3][0]),16):void 0}}}case"naddr":{let t=pO(r);if(!t[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!t[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==t[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!t[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==t[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:hO.decode(t[0][0]),pubkey:NE(t[2][0]),kind:parseInt(NE(t[3][0]),16),relays:t[1]?t[1].map(t=>hO.decode(t)):[]}}}case"nsec":return{type:e,data:r};case"npub":case"note":return{type:e,data:NE(r)};default:throw new Error(`unknown prefix ${e}`)}}(t);return"nsec"!==e.type?null:e.data}catch{return null}}(e);if(!n)throw new Error("Invalid private key");return new t(n)}};async function _D(t){window.open(t,"auth","width=400,height=600,resizable=no,status=no,location=no,toolbar=no,menubar=no")}var xD=class t{static subscriptionMethod=void 0;static publishMethod=void 0;static pool=void 0;publishMethod;subscriptionMethod;log=_N.extend("NostrConnectSigner");signer;listening=!1;isConnected=!1;pubkey;relays;remote;get clientPubkey(){return HA(this.signer.key)}onAuth=_D;verifyEvent=ZA;connectSecret;bunkerSecret;get secret(){return this.connectSecret}set secret(t){this.connectSecret=t}nip04;nip44;constructor(e){this.relays=e.relays,this.pubkey=e.pubkey,this.remote=e.remote,this.connectSecret=e.connectSecret||e.secret||KN(12),this.bunkerSecret=e.bunkerSecret;const{subscriptionMethod:n,publishMethod:r}=function(t,e){const n=t.subscriptionMethod||t.pool?.subscription.bind(t.pool)||e?.subscriptionMethod||e?.pool?.subscription.bind(e.pool);if(!n)throw new Error("Missing subscriptionMethod, either pass a method or set subscriptionMethod globally on the class");const r=t.publishMethod||t.pool?.publish.bind(t.pool)||e?.publishMethod||e?.pool?.publish.bind(e.pool);if(!r)throw new Error("Missing publishMethod, either pass a method or set publishMethod globally on the class");return{subscriptionMethod:n,publishMethod:r}}(e,t);this.subscriptionMethod=(t,e)=>n(t,e),this.publishMethod=(t,e)=>r(t,e),e.onAuth&&(this.onAuth=e.onAuth),this.signer=e?.signer||new wD,this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)},this.nip44={encrypt:this.nip44Encrypt.bind(this),decrypt:this.nip44Decrypt.bind(this)}}req;async open(){if(this.listening)return;this.listening=!0;const t=await this.signer.getPublicKey();this.req=ZC(this.subscriptionMethod(this.relays,[{kinds:[OT.NostrConnect],"#p":[t]}])).pipe(Ek(),Rk(),vk(t=>"string"!=typeof t)).subscribe(this.handleEvent.bind(this)),this.log("Opened",this.relays)}async close(){this.listening=!1,this.isConnected=!1,this.req&&(this.req.unsubscribe(),this.req=void 0),this.waitingPromise&&(this.waitingPromise.reject(new Error("Closed")),this.waitingPromise=null),this.log("Closed")}requests=new Map;auths=new Set;async handleEvent(t){if(this.verifyEvent(t)&&(!this.remote||t.pubkey===this.remote))try{const n=eN(t)??(function(t){const e=t.length;return!(e<28)&&"?"==t[e-28]&&"i"==t[e-27]&&"v"==t[e-26]&&"="==t[e-25]}(t.content)?await this.signer.nip04.decrypt(t.pubkey,t.content):await this.signer.nip44.decrypt(t.pubkey,t.content));if(!n)return;const r=JSON.parse(n);if(!this.remote&&("ack"===r.result||this.connectSecret&&r.result===this.connectSecret))return this.log("Got ack response from",t.pubkey,r.result),this.isConnected=!0,this.remote=t.pubkey,this.waitingPromise?.resolve(),void(this.waitingPromise=null);if(r.id){const t=this.requests.get(r.id);if(!t)return;if(r.error)if(this.log("Got Error",r.id,r.result,r.error),"auth_url"===r.result){if(!this.auths.has(r.id)&&(this.auths.add(r.id),this.onAuth))try{await this.onAuth(r.error)}catch(e){t.reject(e)}}else t.reject(new Error(r.error));else r.result&&(this.log("Got Response",r.id,r.result),t.resolve(r.result))}}catch(e){}}async createRequestEvent(t,e=this.remote,n=OT.NostrConnect){if(!e)throw new Error("Missing target pubkey");return await this.signer.signEvent({kind:n,created_at:CN(),tags:[["p",e]],content:t})}async makeRequest(t,e,n=OT.NostrConnect){if(!this.remote)throw new Error("Missing remote signer pubkey");const r=KN(8),i={id:r,method:t,params:e},s=await this.signer.nip44.encrypt(this.remote,JSON.stringify(i)),o=await this.createRequestEvent(s,this.remote,n);this.log(`Sending ${r} (${t}) ${JSON.stringify(e)}`);const a=dD();this.requests.set(r,a);const l=this.publishMethod?.(this.relays,o);return l instanceof Promise?await l:"subscribe"in l&&await new Promise(t=>l.subscribe({complete:t})),this.log(`Sent ${r} (${t})`),a}async connect(t,e){if(!this.remote&&this.pubkey&&(this.remote=this.pubkey),!this.remote)throw new Error("Missing remote signer pubkey");await this.open();try{void 0!==t&&(this.bunkerSecret=t);const n=await this.makeRequest(fD.Connect,[this.remote,this.bunkerSecret||"",e?.join(",")??""]);return this.isConnected=!0,n}catch(n){throw this.isConnected=!1,this.close(),n}}waitingPromise=null;waitForSigner(t){return this.isConnected?Promise.resolve():(this.open(),this.waitingPromise=dD(),t?.addEventListener("abort",()=>{this.waitingPromise?.reject(new Error("Aborted")),this.waitingPromise=null,this.close()},!0),this.waitingPromise)}async createAccount(t,e,n,r){if(!this.remote)throw new Error("Remote pubkey must be set");await this.open();try{const i=await this.makeRequest(fD.CreateAccount,[t,e,n??"",r?.join(",")??""]);return this.pubkey=i,this.isConnected=!0,i}catch(i){throw this.isConnected=!1,this.close(),i}}async requireConnection(){this.isConnected||await this.connect()}async getPublicKey(){if(this.pubkey)return this.pubkey;await this.requireConnection();const t=await this.makeRequest(fD.GetPublicKey,[]);if(!kO(t))throw new Error("Remote signer returned an invalid public key");return t}async signEvent(t){await this.requireConnection();const e=await this.makeRequest(fD.SignEvent,[JSON.stringify(t)]),n=JSON.parse(e);if(!this.verifyEvent(n))throw new Error("Invalid event");return n}async nip04Encrypt(t,e){return await this.requireConnection(),this.makeRequest(fD.Nip04Encrypt,[t,e])}async nip04Decrypt(t,e){await this.requireConnection();const n=await this.makeRequest(fD.Nip04Decrypt,[t,e]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async nip44Encrypt(t,e){return await this.requireConnection(),this.makeRequest(fD.Nip44Encrypt,[t,e])}async nip44Decrypt(t,e){await this.requireConnection();const n=await this.makeRequest(fD.Nip44Decrypt,[t,e]);return n.startsWith('["')&&n.endsWith('"]')?JSON.parse(n)[0]:n}async ping(){return await this.requireConnection(),this.makeRequest(fD.Ping,[])}async switchRelays(){await this.requireConnection();const t=await this.makeRequest(fD.SwitchRelays,[]);return null!==t&&Array.isArray(t)&&t.length>0&&(this.log("Switching relays from",this.relays,"to",t),this.relays=t,this.listening&&(await this.close(),await this.open())),t}async logout(){try{this.isConnected&&this.remote&&await this.makeRequest(fD.Logout,[])}catch(s7){this.log("Failed to send logout request",s7)}finally{this.isConnected=!1,await this.close()}}getNostrConnectURI(t){return function(t){const e=new URLSearchParams,n=t.connectSecret??t.secret;if(!n)throw new Error("Invalid nostrconnect URI: missing secret");e.set("secret",n),t.metadata?.name&&e.set("name",t.metadata.name),t.metadata?.url&&e.set("url",String(t.metadata.url)),t.metadata?.image&&e.set("image",t.metadata.image),t.metadata?.permissions&&e.set("perms",t.metadata.permissions.join(","));for(const r of t.relays)e.append("relay",r);return`nostrconnect://${t.client}?`+e.toString()}({client:HA(this.signer.key),connectSecret:this.connectSecret,relays:this.relays,metadata:t})}getNbunksec(){if(!this.remote)throw new Error("Cant create nbunksec when remote signer is not set");return bD({remote:this.remote,clientKey:NE(this.signer.key),relays:this.relays,bunkerSecret:this.bunkerSecret})}static parseBunkerURI(t){return function(t){const e=new URL(t),n=e.host||e.pathname.replace("//","");if(!kO(n))throw new Error("Invalid bunker URI: remote is not a valid hex key");const r=e.searchParams.getAll("relay");if(0===r.length)throw new Error("Invalid bunker URI: missing relays");const i=e.searchParams.get("secret")??void 0;return{remote:n,relays:r,secret:i,bunkerSecret:i}}(t)}static parseNbunksec(t){return function(t){const e=function(t){try{const{prefix:e,words:n}=nF.decode(t,!1);if("nbunksec"!==e)throw new Error(`Invalid prefix: ${e}`);const r=nF.fromWords(n);let i=0;const s={pubkey:"",local_key:"",relays:[]};for(;i`${pD.SignEvent}:${t}`)]}(t)}static async fromBunkerURI(e,n){const{remote:r,relays:i,bunkerSecret:s}=t.parseBunkerURI(e),o=new t({relays:i,remote:r,bunkerSecret:s,...n});return await o.connect(s,n?.permissions),o}static async fromNbunksec(e,n){const{remote:r,clientKey:i,relays:s,bunkerSecret:o}=t.parseNbunksec(e),a=new t({relays:s,remote:r,signer:new wD(zE(i)),bunkerSecret:o,...n});return await a.connect(o,n?.permissions),a}},CD=Object.freeze({p:115792089237316195423570985008687907853269984665640564039457584007908834671663n,n:115792089237316195423570985008687907852837564279074904382605163141518161494337n,h:1n,a:0n,b:7n,Gx:55066263022277343669578718895168534326250603453777594175500187360389116729240n,Gy:32670510020758816978083085130507043184471273380659243275938904335757337482424n}),{p:kD,n:SD,Gx:ED,Gy:RD,b:LD}=CD,TD={publicKey:33,publicKeyUncompressed:65,signature:64,seed:48},PD=(t="",e=Error)=>{const n=new e(t),{captureStackTrace:r}=Error;throw"function"==typeof r&&r(n,PD),n},ID=(t,e,n="")=>{const r=(i=t)instanceof Uint8Array||ArrayBuffer.isView(i)&&"Uint8Array"===i.constructor.name&&1===i.BYTES_PER_ELEMENT;var i;const s=t?.length,o=void 0!==e;return!r||o&&s!==e?PD((n&&`"${n}" `)+"expected Uint8Array"+(o?` of length ${e}`:"")+", got "+(r?`length=${s}`:"type="+typeof t),r?RangeError:TypeError):t},MD=t=>new Uint8Array(t),AD=(t,e)=>t.toString(16).padStart(e,"0"),OD=t=>{let e="";for(const n of ID(t))e+=AD(n,2);return e},ND=t=>t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:void 0,zD=t=>{const e="hex invalid";if("string"!=typeof t)return PD(e);const n=t.length,r=n/2;if(n%2)return PD(e);const i=MD(r);for(let s=0,o=0;s{let e=0;for(const i of t)e+=ID(i).length;const n=MD(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return n},DD=BigInt,jD=(t,e,n,r="bad number: out of range")=>"bigint"!=typeof t?PD(r,TypeError):e<=t&&t{const n=t%e;return n>=0n?n:e+n},BD=t=>t instanceof GD?t:PD("Point expected"),$D=t=>UD(UD(t*t)*t+LD),qD=t=>jD(t,0n,kD),VD=t=>jD(t,1n,kD),WD=t=>!(1n&t),HD=t=>Uint8Array.of(t),GD=class t{static BASE;static ZERO;X;Y;Z;constructor(t,e,n){this.X=qD(t),this.Y=VD(e),this.Z=qD(n),Object.freeze(this)}static CURVE(){return CD}static fromAffine(e){const{x:n,y:r}=e;return 0n===n&&0n===r?KD:new t(n,r,1n)}static fromBytes(e){ID(e);const{publicKey:n,publicKeyUncompressed:r}=TD;let i;const s=e.length,o=e[0],a=e.subarray(1),l=YD(a,0,32);if(s===n&&(2===o||3===o)){let e=(t=>{const e=$D(VD(t));let n=1n;for(let r=e,i=(kD+1n)/4n;i>0n;i>>=1n)1n&i&&(n=n*r%kD),r=r*r%kD;return UD(n*n)!==e&&PD("sqrt invalid"),WD(n)?n:UD(-n)})(l);3===o&&(e=UD(-e)),i=new t(l,e,1n)}return s===r&&4===o&&(i=new t(l,YD(a,32,64),1n)),i?i.assertValidity():PD("bad point: not on curve")}static fromHex(e){return t.fromBytes(zD(e))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}equals(t){const{X:e,Y:n,Z:r}=this,{X:i,Y:s,Z:o}=BD(t),a=UD(e*o),l=UD(i*r),c=UD(n*o),u=UD(s*r);return a===l&&c===u}is0(){return this.equals(KD)}negate(){return new t(this.X,UD(-this.Y),this.Z)}double(){return this.add(this)}add(e){const{X:n,Y:r,Z:i}=this,{X:s,Y:o,Z:a}=BD(e);let l=0n,c=0n,u=0n;const h=UD(3n*LD);let d=UD(n*s),p=UD(r*o),f=UD(i*a),g=UD(n+r),m=UD(s+o);g=UD(g*m),m=UD(d+p),g=UD(g-m),m=UD(n+i);let y=UD(s+a);return m=UD(m*y),y=UD(d+f),m=UD(m-y),y=UD(r+i),l=UD(o+a),y=UD(y*l),l=UD(p+f),y=UD(y-l),u=UD(0n*m),l=UD(h*f),u=UD(l+u),l=UD(p-u),u=UD(p+u),c=UD(l*u),p=UD(d+d),p=UD(p+d),f=UD(0n*f),m=UD(h*m),p=UD(p+f),f=UD(d-f),f=UD(0n*f),m=UD(m+f),d=UD(p*m),c=UD(c+d),d=UD(y*m),l=UD(g*l),l=UD(l-d),d=UD(g*p),u=UD(y*u),u=UD(u+d),new t(l,c,u)}subtract(t){return this.add(BD(t).negate())}multiply(t,e=!0){if(!e&&0n===t)return KD;if((t=>{jD(t,1n,SD)})(t),1n===t)return this;if(this.equals(ZD))return nj(t).p;let n=KD,r=ZD;for(let i=this;t>0n;i=i.double(),t>>=1n)1n&t?n=n.add(i):e&&(r=r.add(i));return n}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){const{X:t,Y:e,Z:n}=this;if(this.equals(KD))return{x:0n,y:0n};if(1n===n)return{x:t,y:e};const r=((t,e)=>{(0n===t||e<=0n)&&PD("no inverse n="+t+" mod="+e);let n=UD(t,e),r=e,i=0n,s=1n,o=1n,a=0n;for(;0n!==n;){const t=r/n,e=r%n,l=i-o*t,c=s-a*t;r=n,n=e,i=o,s=a,o=l,a=c}return 1n===r?UD(i,e):PD("no inverse")})(n,kD);return 1n!==UD(n*r)&&PD("inverse invalid"),{x:UD(t*r),y:UD(e*r)}}assertValidity(){const{x:t,y:e}=this.toAffine();return VD(t),VD(e),UD(e*e)===$D(t)?this:PD("bad point: not on curve")}toBytes(t=!0){const{x:e,y:n}=this.assertValidity().toAffine(),r=JD(e);return t?FD((t=>HD(WD(t)?2:3))(n),r):FD(HD(4),r,JD(n))}toHex(t){return OD(this.toBytes(t))}},ZD=new GD(ED,RD,1n),KD=new GD(0n,1n,0n);GD.BASE=ZD,GD.ZERO=KD;var YD=(t,e,n)=>(t=>DD("0x"+(OD(t)||"0")))(t.subarray(e,n)),XD=2n**256n,JD=t=>zD(AD(jD(t,0n,XD),64)),QD=Math.ceil(32)+1,tj=void 0,ej=(t,e)=>{const n=e.negate();return t?n:e},nj=t=>{const e=tj||(tj=(()=>{const t=[];let e=ZD,n=e;for(let r=0;r>=s,a>128&&(a-=256,t+=1n);const l=128*o,c=l,u=l+Math.abs(a)-1,h=o%2!=0,d=a<0;0===a?r=r.add(ej(h,e[c])):n=n.add(ej(d,e[u]))}return 0n!==t&&PD("invalid wnaf"),{p:n,f:r}};function rj(t){return GD.fromHex(t).toHex().substring(2)}var ij=new TextDecoder("utf-8"),sj=new TextEncoder;function oj(t){return btoa(String.fromCharCode(...t))}function aj(t){return new Uint8Array(atob(t).split("").map(t=>t.charCodeAt(0)))}(class t{log=_N.extend("SerialPortSigner");writer=null;pubkey;get isConnected(){return!!this.writer}verifyEvent=ZA;nip04;constructor(){this.nip04={encrypt:this.nip04Encrypt.bind(this),decrypt:this.nip04Decrypt.bind(this)}}lastCommand=null;async callMethodOnDevice(e,n,r={}){if(!t.SUPPORTED)throw new Error("Serial devices are not supported");if(this.writer||await this.connectToDevice(r),this.lastCommand)throw new Error("Previous command to device still pending!");const i=dD();return this.lastCommand=i,this.sendCommand(e,n),setTimeout(()=>{i.reject(new Error("Device timeout")),this.lastCommand===i&&(this.lastCommand=null)},6e3),this.lastCommand}async connectToDevice({onConnect:e,onDisconnect:n,onError:r,onDone:i}){let s,o=await window.navigator.serial.requestPort();await o.open({baudRate:9600}),await new Promise(t=>setTimeout(t,1e3)),(async()=>{for(;o&&o.readable;){const e=new window.TextDecoderStream;o.readable.pipeTo(e.writable),s=e.readable.getReader();const n=this.readFromSerialPort(s);try{for(;;){const{value:e,done:r}=await n("\n");if(e){const{method:n,data:r}=this.parseResponse(e);if("/ping"===n&&this.log("Pong"),-1===t.PUBLIC_METHODS.indexOf(n))continue;this.log("Received: ",n,r),this.lastCommand&&(this.lastCommand.resolve(r),this.lastCommand=null)}if(r)return this.lastCommand=null,this.writer=null,void(i&&i())}}catch(s7){if(s7 instanceof Error)throw this.writer=null,r&&r(s7),this.lastCommand&&(this.lastCommand.reject(s7),this.lastCommand=null),s7}}})();const a=new window.TextEncoderStream;a.readable.pipeTo(o.writable),this.writer=a.writable.getWriter(),await this.sendCommand(t.METHOD_PING),await this.sendCommand(t.METHOD_PING,[window.location.host]),e&&e(),o.addEventListener("disconnect",()=>{this.log("Disconnected"),this.lastCommand=null,this.writer=null,n&&n()})}async sendCommand(t,e=[]){if(!this.writer)return;this.log("Send command",t,e);const n=[t].concat(e).join(" ");await this.writer.write(n+"\n")}readFromSerialPort(t){let e,n=[];return async(r="\n")=>{if(n.length)return{value:n.shift().trim(),done:!1};const i=[];for(e&&(i.push(e),e=void 0);;){const{value:s,done:o}=await t.read();if(s){const t=s.split(r);if(t.length>1)return i.push(t.shift()),e=t.pop(),n=t,{value:i.join("").trim(),done:!1};i.push(s)}if(o)return{value:i.join("").trim(),done:!0}}}}parseResponse(t){const e=t.split(" ")[0];return{method:e,data:t.substring(e.length).trim()}}async nip04Encrypt(e,n){const r=zE(await this.callMethodOnDevice(t.METHOD_SHARED_SECRET,[rj(e)]));let i=Uint8Array.from(window.crypto.getRandomValues(new Uint8Array(16))),s=sj.encode(n),o=await crypto.subtle.importKey("raw",r,{name:"AES-CBC"},!1,["encrypt"]),a=await crypto.subtle.encrypt({name:"AES-CBC",iv:i},o,s);return`${oj(new Uint8Array(a))}?iv=${oj(new Uint8Array(i.buffer))}`}async nip04Decrypt(e,n){let[r,i]=n.split("?iv=");const s=zE(await this.callMethodOnDevice(t.METHOD_SHARED_SECRET,[rj(e)]));let o=await crypto.subtle.importKey("raw",s,{name:"AES-CBC"},!1,["decrypt"]),a=aj(r),l=aj(i),c=await crypto.subtle.decrypt({name:"AES-CBC",iv:l},o,a);return ij.decode(c)}async getPublicKey(){const e=await this.callMethodOnDevice(t.METHOD_PUBLIC_KEY,[]);return this.pubkey=e,e}async restore(e){await this.callMethodOnDevice(t.METHOD_RESTORE,[NE(e)])}async signEvent(e){const n=e.pubkey||this.pubkey;if(!n)throw new Error("Unknown signer pubkey");const r={...e,id:qA({...e,pubkey:n})},i=await this.callMethodOnDevice(t.METHOD_SIGN_MESSAGE,[r.id]),s={...r,sig:i,pubkey:n};if(!this.verifyEvent(s))throw new Error("Invalid signature");return s}ping(){this.sendCommand(t.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=[t.METHOD_PUBLIC_KEY,t.METHOD_SIGN_MESSAGE,t.METHOD_SHARED_SECRET,t.METHOD_RESTORE]});var lj=a({isMobile:()=>cj});function cj(){return"undefined"!=typeof navigator&&/Mobi|Android|iPhone|iPad/i.test(navigator.userAgent)}var uj,hj=a({default:()=>vj}),dj="marco:nostr_pubkey",pj="marco:nostr_signer_type",fj="marco:nostr_connect_local_key",gj="marco:nostr_connect_remote_pubkey",mj="marco:nostr_connect_relay",yj="wss://nostr.kosmos.org",vj=class extends fp{static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"pubkey",[Wr],function(){return null})}#dt=void pF(this,"pubkey");static{hF(this.prototype,"signerType",[Wr],function(){return null})}#pt=void pF(this,"signerType");static{hF(this.prototype,"connectStatus",[Wr],function(){return null})}#ft=void pF(this,"connectStatus");static{hF(this.prototype,"connectUri",[Wr],function(){return null})}#gt=void pF(this,"connectUri");_signerInstance=null;constructor(){super(...arguments),"undefined"!=typeof localStorage&&(localStorage.debug="applesauce:*");const t=localStorage.getItem(dj),e=localStorage.getItem(pj);t&&(this.pubkey=t,this.signerType=e||"extension",this._verifyPubkey())}async _verifyPubkey(){if("extension"===this.signerType){if(void 0===window.nostr)return void this.disconnect();try{const t=await(new mD).getPublicKey();t!==this.pubkey&&(this.pubkey=t,localStorage.setItem(dj,this.pubkey)),this.nostrData.loadProfile(this.pubkey)}catch(t){console.warn("Failed to verify extension nostr pubkey, logging out",t),this.disconnect()}}else if("connect"===this.signerType)try{await this._initConnectSigner()}catch(t){console.warn("Failed to verify connect nostr pubkey, logging out",t),this.disconnect()}}get isMobile(){return cj()}get isConnected(){return!!this.pubkey&&("extension"!==this.signerType||void 0!==window.nostr)}get signer(){return this._signerInstance?this._signerInstance:"extension"===this.signerType&&void 0!==window.nostr?new mD:(this.signerType,null)}async connectWithExtension(){if(void 0===window.nostr)throw new Error("No NIP-07 Nostr extension found (e.g., Alby, nos2x).");try{return this._signerInstance=new mD,this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="extension",localStorage.setItem(dj,this.pubkey),localStorage.setItem(pj,"extension"),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(s7){throw console.error("Failed to get public key from extension:",s7),s7}}_getLocalSigner(){let t,e=localStorage.getItem(fj);return e?t=wD.fromKey(e):(t=new wD,e=Array.from(t.key).map(t=>t.toString(16).padStart(2,"0")).join(""),localStorage.setItem(fj,e)),t}async connectWithApp(){this.connectStatus="waiting";try{const e=this._getLocalSigner(),n=yj;localStorage.setItem(mj,n),this._signerInstance=new xD({pool:this.nostrRelay.pool,relays:[n],signer:e,onAuth:async t=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${t}`)&&window.open(t,"_blank")}}),this.connectUri=this._signerInstance.getNostrConnectURI({name:"Marco",url:window.location.origin,description:"An unhosted maps application.",icons:[]}),this.isMobile&&(console.debug("Mobile detected, triggering deep link intent."),window.location.href=this.connectUri),console.debug("Opening signer connection to relay..."),await this._signerInstance.open(),console.debug("Signer connection opened successfully."),console.debug("Waiting for remote signer to ack via relay...");try{await this._signerInstance.waitForSigner(),console.debug("Remote signer ack received!")}catch(t){throw console.error("Error while waiting for remote signer ack:",t),t}return this.pubkey=await this._signerInstance.getPublicKey(),this.signerType="connect",this.connectStatus="connected",localStorage.setItem(dj,this.pubkey),localStorage.setItem(pj,"connect"),localStorage.setItem(gj,this._signerInstance.remote),this.nostrData.loadProfile(this.pubkey),this.pubkey}catch(s7){throw this.connectStatus=null,console.error("Failed to connect via Nostr Connect:",s7),s7}}async _initConnectSigner(){const t=localStorage.getItem(gj),e=localStorage.getItem(mj)||yj;if(!t)throw new Error("Missing Nostr Connect remote pubkey.");const n=this._getLocalSigner();if(this._signerInstance=new xD({pool:this.nostrRelay.pool,relays:[e],signer:n,remote:t,onAuth:async t=>{confirm(`Your signer app requests authentication via a web page. Open it now?\n\nURL: ${t}`)&&window.open(t,"_blank")}}),await this._signerInstance.open(),await this._signerInstance.getPublicKey()!==this.pubkey)throw new Error("Remote signer pubkey mismatch");this.nostrData.loadProfile(this.pubkey)}async signEvent(t){if(!this.signer)throw new Error("Not connected or extension missing. Please connect Nostr again.");return await this.signer.signEvent(t)}async disconnect(){this.pubkey=null,this.nostrData?.loadProfile(null),this.signerType=null,this.connectStatus=null,this.connectUri=null,this._signerInstance&&"function"==typeof this._signerInstance.close&&await this._signerInstance.close(),this._signerInstance=null,localStorage.removeItem(dj),localStorage.removeItem(pj),localStorage.removeItem(fj),localStorage.removeItem(gj),localStorage.removeItem(mj)}};function bj(t){return Array.from(new Set(t))}function wj(t){const e={};e.kinds=bj(t.map(t=>t.kind)),e.authors=bj(t.map(t=>t.pubkey));const n=bj(t.map(t=>t.identifier).filter(t=>void 0!==t));return n.length>0&&(e["#d"]=n),e}function _j(t){const e=t.filter(t=>DA(t.kind)),n=t.filter(t=>jA(t.kind)),r=[],i=t=>{if(0===t.length)return;const e=function(t){const e=new Set(t.map(t=>t.kind));return new Set(t.map(t=>t.pubkey)).sizeArray.isArray(t)?ZC(t):fk(t)),zk(t=>lO(t)));if(Array.isArray(n)){for(const t of n)lO(t);return ZC(n)}return lO(n),fk(n)}(t,e)}function kj(t,e){return hN(t)?t.pipe(dk(1),Ak(e)):e(t)}function Sj(t,e,n,r,i){const s=new ok,o=new ok,a=s.pipe(t,vk(t=>t.length>0),KC(t=>e(t).pipe(Ok(o),Tk({resetOnRefCountZero:!1,resetOnComplete:!1,resetOnError:!1}))),Ok(o),Tk()),l=()=>{o.next(),o.complete(),s.complete()};return i?.signal&&(i.signal.aborted?l():i.signal.addEventListener("abort",l,{once:!0})),Object.assign(t=>new hC(e=>{const i=a.pipe(dk(1),ik(),vk(e=>n(t,e)),r??uC).subscribe(e);return s.next(t),i}),{stop:l,[Symbol.dispose]:l})}function Ej(t){return(e,n)=>function(t,e,n){if("function"==typeof t)return t(e,n);if("object"==typeof t&&"request"in t)return t.request(e,n);throw new Error("Invalid upstream pool")}(t,e,n)}function Rj(t){return(...e)=>{return n=t(...e),new hC(t=>{let e;const r=i=>{const s=i?n.next(i):n.next(),o=n=>{if(n.done)return t.complete();const i=[];hN(n.value)?e=n.value.subscribe({next:e=>{i.push(e),t.next(e)},error:e=>{t.error(e)},complete:()=>{r(i)}}):(i.push(n.value),t.next(n.value),r(i))};s instanceof Promise?s.then(o,e=>t.error(e)):o(s)};return r(),()=>e?.unsubscribe()}).pipe(Tk());var n}}function Lj(t,e){return n=>kj(e,e=>0===e.length?hk:t(e,_j(n)))}function Tj(t){const e={...t};return t.relays&&(e.relays=[...t.relays]),e}function Pj(t,e){return n=>kj(e,e=>t(e,[{ids:n.map(t=>t.id)}]))}function Ij(t,e){return Pj(t,[e])}function Mj(t,e=Ij){const n=new Map;return r=>{const i=function(t){let e=new Map;for(const n of t){let t=CO(n.relays,void 0);for(const r of t)e.has(r)?e.get(r)?.push(n):e.set(r,[n])}return e}(r);return gN(...Array.from(i).map(([r,i])=>(r=>{let i=n.get(r);return i||(i=e(t,r),n.set(r,i)),i})(r)(i)))}}function Aj(t,e=t=>!!t){return ck(n=>{const r=e?n.pipe(t,vk(e),dk(1)):n.pipe(t,dk(1));return n.pipe(Ok(r))})}function Oj(t){return UC(e=>fk({ok:!1,from:t.url,message:e?.message||"Unknown error"}))}!function(t){t.Error="error",t.Missing="missing",t.Found="found"}(uj||(uj={}));var Nj,zj=class t{relays$=new kk([]);status$;get relays(){if(this.relays$ instanceof kk)return this.relays$.value;throw new Error("This group was created with an observable, relays are not available")}constructor(t){this.relays$=Array.isArray(t)?new kk(t):t,this.status$=this.relays$.pipe(Ak(t=>0===t.length?fk({}):gN(...t.map(t=>t.status$)).pipe(Lk((t,e)=>({...t,[e.url]:e}),{}),Mk({}))),Ik(1))}get controlled(){return this.relays$ instanceof kk==0}has(t){if(this.controlled)throw new Error("This group was created with an observable, relays are not available");return"string"==typeof t?this.relays.some(e=>e.url===t):this.relays.includes(t)}add(t){this.has(t)||this.relays$.next([...this.relays,t])}remove(t){this.has(t)&&this.relays$.next(this.relays.filter(e=>e!==t))}internalSubscription(t){const e=new WeakMap;return this.relays$.pipe(function(t){return Ax((e,n)=>{let r=null,i=!1;const s=()=>{i&&!r&&n.complete()};e.subscribe(xC(n,e=>{const i=r,o=r=xC(n,t=>n.next(t),()=>{r!==o&&null!==r||(r=null,s())});ZC(t(e)).subscribe(r),i?.unsubscribe()},()=>{i=!0,s()}))})}(n=>{const r=[];for(const i of n){if(e.has(i)){r.push(e.get(i));continue}const n=t(i).pipe(UC(t=>fk({type:"ERROR",from:i.url,error:t})));r.push(n),e.set(i,n)}return gN(...r)}),Tk())}internalPublish(t){const e=new WeakMap;return this.relays$.pipe(dk(1),Ak(n=>{const r=[];for(const i of n){if(e.has(i)){r.push(e.get(i));continue}const n=t(i).pipe(Oj(i));r.push(n),e.set(i,n)}return gN(...r)}),Tk())}req(t,e){return this.internalSubscription(n=>n.req(t,e))}event(t){return this.internalPublish(e=>e.event(t))}async negentropy(t,e,n,r){const i=(await Promise.all(this.relays.map(async t=>[t,await t.getSupported()]))).filter(([t,e])=>e?.includes(77)).map(([t])=>t);if(0===i.length)throw new Error("No relays support NIP-77 negentropy sync");if(!r?.parallel)throw new Error("Negentropy sync must be parallel (for now)");return await Promise.allSettled(i.map(i=>i.negentropy(t,e,n,r))),!0}publish(t,e){return dN(this.internalPublish(n=>ZC(n.publish(t,e))).pipe(Ax(function(t,e){(function(t,e){return Ax(tk(t,e,arguments.length>=2,!1,!0))})(ek,[])(t).subscribe(e)}),(n=[],Ax(function(t,e){var r=!1;t.subscribe(xC(e,function(t){r=!0,e.next(t)},function(){r||e.next(n),e.complete()}))}))));var n}request(e,n){const r=n?.complete??t.completeOnAny(t.completeAfterFirstRelay(5e3),t.completeOnAllEose());return this.internalSubscription(t=>t.req(e,{...n,reconnect:n?.reconnect??t.requestReconnect})).pipe(r?Aj(r):uC,Dk({first:n?.timeout??3e4}),vk(t=>"EVENT"===t.type),KC(t=>t.event),null===n?.eventStore?uC:kz(n?.eventStore??new uz),Tk())}subscription(t,e){return this.internalSubscription(n=>n.req(t,{...e,reconnect:e?.reconnect??n.subscriptionReconnect})).pipe(vk(t=>"EVENT"===t.type),KC(t=>t.event),null===e?.eventStore?uC:kz(e?.eventStore??new uz),Tk())}count(t,e=KN()){return this.relays$.pipe(Ak(n=>XC(Object.fromEntries(n.map(n=>[n.url,n.count(t,e)])))),Tk())}sync(t,e,n){return fN(async()=>{const t=(await Promise.all(this.relays.map(async t=>[t,await t.getSupported()]))).filter(([t,e])=>e?.includes(77)).map(([t])=>t);if(0===t.length)throw new Error("No relays support NIP-77 negentropy sync");return t}).pipe(Ak(r=>gN(...r.map(r=>r.sync(t,e,n)))),Tk())}static completeAfterFirstRelay(t=5e3){return e=>e.pipe(vk(t=>"EOSE"===t.type)).pipe(dk(1),Ak(()=>OC(t)),KC(()=>!0))}static completeOnAllEose(){return t=>t.pipe(vk(t=>"OPEN"===t.type||"EOSE"===t.type||"ERROR"===t.type),Lk((t,e)=>t.set(e.from,e.type),new Map),KC(t=>Array.from(t.values()).every(t=>"OPEN"!==t)))}static completeOnAny(...t){return ck(e=>gN(...t.map(t=>e.pipe(t))))}static completeOnAll(...t){return ck(e=>XC(t.map(t=>e.pipe(t))).pipe(KC(t=>t.every(t=>!!t))))}},Fj={url:"",deserializer:function(t){return JSON.parse(t.data)},serializer:function(t){return JSON.stringify(t)}},Dj=function(t){function e(e,n){var r=t.call(this)||this;if(r._socket=null,e instanceof hC)r.destination=n,r.source=e;else{var i=r._config=zx({},Fj);if(r._output=new ok,"string"==typeof e)i.url=e;else for(var s in e)e.hasOwnProperty(s)&&(i[s]=e[s]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");r.destination=new Sk}return r}return Nx(e,t),e.prototype.lift=function(t){var n=new e(this._config,this.destination);return n.operator=t,n.source=this,n},e.prototype._resetState=function(){this._socket=null,this.source||(this.destination=new Sk),this._output=new ok},e.prototype.multiplex=function(t,e,n){var r=this;return new hC(function(i){try{r.next(t())}catch(PD){i.error(PD)}var s=r.subscribe({next:function(t){try{n(t)&&i.next(t)}catch(PD){i.error(PD)}},error:function(t){return i.error(t)},complete:function(){return i.complete()}});return function(){try{r.next(e())}catch(PD){i.error(PD)}s.unsubscribe()}})},e.prototype._connectSocket=function(){var t=this,e=this._config,n=e.WebSocketCtor,r=e.protocol,i=e.url,s=e.binaryType,o=this._output,a=null;try{a=r?new n(i,r):new n(i),this._socket=a,s&&(this._socket.binaryType=s)}catch(c){return void o.error(c)}var l=new Gx(function(){t._socket=null,a&&1===a.readyState&&a.close()});a.onopen=function(e){if(!t._socket)return a.close(),void t._resetState();var n=t._config.openObserver;n&&n.next(e);var r=t.destination;t.destination=rC.create(function(e){if(1===a.readyState)try{var n=t._config.serializer;a.send(n(e))}catch(c){t.destination.error(c)}},function(e){var n=t._config.closingObserver;n&&n.next(void 0),e&&e.code?a.close(e.code,e.reason):o.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),t._resetState()},function(){var e=t._config.closingObserver;e&&e.next(void 0),a.close(),t._resetState()}),r&&r instanceof Sk&&l.add(r.subscribe(t.destination))},a.onerror=function(e){t._resetState(),o.error(e)},a.onclose=function(e){a===t._socket&&t._resetState();var n=t._config.closeObserver;n&&n.next(e),e.wasClean?o.complete():o.error(e)},a.onmessage=function(e){try{var n=t._config.deserializer;o.next(n(e))}catch(PD){o.error(PD)}}},e.prototype._subscribe=function(t){var e=this,n=this.source;return n?n.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(function(){var t=e._socket;0===e._output.observers.length&&(!t||1!==t.readyState&&0!==t.readyState||t.close(),e._resetState())}),t)},e.prototype.unsubscribe=function(){var e=this._socket;!e||1!==e.readyState&&0!==e.readyState||e.close(),this._resetState(),t.prototype.unsubscribe.call(this)},e}(ak),jj={},Uj=function(t,e){let n=Promise.resolve();if(e&&e.length>0){const t=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");r=e.map(e=>{var n;if(n=e=function(t){return"/"+t}(e),(e=import.meta.resolve?import.meta.resolve(n):new URL(n,import.meta.url).href)in jj)return;jj[e]=!0;const r=e.endsWith(".css");for(let s=t.length-1;s>=0;s--){const n=t[s];if(n.href===e&&(!r||"stylesheet"===n.rel))return}const i=document.createElement("link");return i.rel=r?"stylesheet":"modulepreload",r||(i.as="script"),i.crossOrigin="",i.href=e,s&&i.setAttribute("nonce",s),document.head.appendChild(i),r?new Promise((t,n)=>{i.addEventListener("load",t),i.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)))}):void 0}),n=Promise.all(r.map(t=>Promise.resolve(t).then(t=>({status:"fulfilled",value:t}),t=>({status:"rejected",reason:t}))))}var r;function i(t){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=t,window.dispatchEvent(e),!e.defaultPrevented)throw t}return n.then(e=>{for(const t of e||[])"rejected"===t.status&&i(t.reason);return t().catch(i)})},Bj="auth-required:",$j={count:3,delay:(t,e)=>OC(1e3*e),resetOnSuccess:!0};function qj(t){return"number"==typeof t?{...$j,count:t}:{...$j,...t??{}}}!function(t){t[t.RECEIVE=1]="RECEIVE",t[t.SEND=2]="SEND",t[t.BOTH=3]="BOTH"}(Nj||(Nj={}));var Vj=class extends Error{reason;constructor(t){super(t),this.reason=t,this.name="RelayClosedError"}},Wj=class extends Vj{constructor(t){super(t),this.name="AuthRequiredError"}},Hj={"auth-required":Wj,unsupported:Vj,error:Vj,blocked:Vj,restricted:Vj,"rate-limited":Vj,pow:Vj,invalid:Vj,duplicate:Vj,mute:Vj};function Gj(t){const e=Hj[t.split(":")[0]];return e?new e(t):null}var Zj,Kj,Yj={ids:["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"],limit:0},Xj=class t{url;log=_N.extend("Relay");socket;_ready$=new kk(!0);ready$=this._ready$.asObservable();reconnectTimer;attempts$=new kk(0);connected$=new kk(!1);challenge$=new kk(null);authenticated$;authenticatedAs$;authentication$=new kk(null);authenticationResponse$=new kk(null);notices$=new kk([]);error$=new kk(null);message$;notice$;lastMessageReceivedAt=0;_lastMessageAt$=new kk(0);lastMessageAt$=this._lastMessageAt$.asObservable();status$;information$;_nip11=null;icon$;limitations$;supported$;open$=new ok;close$=new ok;closing$=new ok;reqs$=new kk({});get ready(){return this._ready$.value}get connected(){return this.connected$.value}get challenge(){return this.challenge$.value}get notices(){return this.notices$.value}get authenticated(){return!0===this.authenticationResponse?.ok}get authentication(){return this.authentication$.value}get authenticatedAs(){return this.authenticated?this.authentication?.pubkey??null:null}get authenticationResponse(){return this.authenticationResponse$.value}get information(){return this._nip11}get lastMessageAt(){return this._lastMessageAt$.value}get reqs(){return this.reqs$.value}eventTimeout=1e4;publishTimeout=3e4;keepAlive=3e4;enablePing=!1;pingFrequency=29e3;pingTimeout=2e4;subscriptionReconnect;requestReconnect;publishRetry;onUnresponsive;receivedAuthRequiredForReq=new kk(!1);receivedAuthRequiredForEvent=new kk(!1);authRequiredForRead$;authRequiredForPublish$;resetState(){null!==this.challenge$.value&&this.challenge$.next(null),this.authenticationResponse$.value&&this.authenticationResponse$.next(null),null!==this.authentication$.value&&this.authentication$.next(null),this.notices$.value.length>0&&this.notices$.next([]),this.receivedAuthRequiredForReq.value&&this.receivedAuthRequiredForReq.next(!1),this.receivedAuthRequiredForEvent.value&&this.receivedAuthRequiredForEvent.next(!1)}watchTower;internalSubscriptions=new Gx;reconnectSubscription=null;destroy$=new Sk(1);constructor(e,n){var r;this.url=e,this.log=this.log.extend(e),void 0!==n?.eventTimeout&&(this.eventTimeout=n.eventTimeout),void 0!==n?.publishTimeout&&(this.publishTimeout=n.publishTimeout),void 0!==n?.keepAlive&&(this.keepAlive=n.keepAlive),void 0!==n?.enablePing&&(this.enablePing=n.enablePing),void 0!==n?.pingFrequency&&(this.pingFrequency=n.pingFrequency),void 0!==n?.pingTimeout&&(this.pingTimeout=n.pingTimeout),void 0!==n?.onUnresponsive&&(this.onUnresponsive=n.onUnresponsive),this.subscriptionReconnect=qj(n?.subscriptionReconnect),this.requestReconnect=qj(n?.requestReconnect),this.publishRetry={...$j,...n?.publishRetry??{}},this.authenticated$=this.authenticationResponse$.pipe(KC(t=>!0===t?.ok)),this.authenticatedAs$=XC([this.authenticated$,this.authentication$]).pipe(KC(([t,e])=>t&&e?e.pubkey:null)),this.reconnectTimer=t.createReconnectTimer(e),this.internalSubscriptions.add(this.open$.subscribe(()=>{this.log("Connected"),this.connected$.next(!0),this.attempts$.next(0),this.error$.next(null),this.resetState()})),this.internalSubscriptions.add(this.close$.subscribe(t=>{this.connected$.value?this.log("Disconnected"):this.log("Failed to connect"),this.connected$.value&&this.connected$.next(!1),this.attempts$.next(this.attempts$.value+1),this.resetState(),t.wasClean||this.startReconnectTimer(t)})),this.socket=(r={url:e,openObserver:this.open$,closeObserver:this.close$,closingObserver:this.closing$,WebSocketCtor:n?.WebSocket},new Dj(r)),this.information$=fN(()=>(this.log("Fetching NIP-11 information document"),t.fetchInformationDocument(this.url))).pipe(UC(()=>fk(null)),zk(t=>this._nip11=t),Ik(1)),this.limitations$=this.information$.pipe(KC(t=>t?t.limitation:null)),this.supported$=this.information$.pipe(KC(t=>t&&Array.isArray(t.supported_nips)?t.supported_nips.filter(t=>"number"==typeof t):null)),this.icon$=this.information$.pipe(KC(t=>t?.icon||new URL("/favicon.ico",mO(this.url)).toString())),this.authRequiredForRead$=this.receivedAuthRequiredForReq,this.authRequiredForPublish$=this.receivedAuthRequiredForEvent,this.internalSubscriptions.add(this.authRequiredForRead$.pipe(vk(t=>!0===t),dk(1)).subscribe(()=>this.log("Auth required for REQ"))),this.internalSubscriptions.add(this.authRequiredForPublish$.pipe(vk(t=>!0===t),dk(1)).subscribe(()=>this.log("Auth required for EVENT"))),this.status$=XC({url:fk(this.url),connected:this.connected$,authenticated:this.authenticated$,authenticatedAs:this.authenticatedAs$,ready:this._ready$,authRequiredForRead:this.authRequiredForRead$,authRequiredForPublish:this.authRequiredForPublish$,challenge:this.challenge$.asObservable()}).pipe(Ik(1));const i=this.socket.pipe(vk(t=>Array.isArray(t)&&"NOTICE"===t[0]),KC(t=>t[1]),Lk((t,e)=>[...t,e],[]),zk(t=>this.notices$.next(t))),s=this.socket.pipe(vk(t=>"AUTH"===t[0]),KC(t=>t[1]),zk(t=>{this.log("Received AUTH challenge",t),this.challenge$.next(t)})),o=new ok,a=this.socket.pipe(zk(t=>{const e=Date.now();this.lastMessageReceivedAt=e,this._lastMessageAt$.next(e),o.next(t)}));this.message$=o.asObservable(),this.notice$=this.message$.pipe(vk(t=>Array.isArray(t)&&"NOTICE"===t[0]),KC(t=>t[1]));const l=this.connected$.pipe(Ak(t=>t&&this.enablePing?OC(this.pingFrequency,this.pingFrequency).pipe(QC(()=>{if(Date.now()-this.lastMessageReceivedAtArray.isArray(e)&&("EOSE"===e[0]||"CLOSED"===e[0])&&e[1]===t),dk(1),Dk({first:this.pingTimeout,with:()=>{const t=Date.now(),e=this.onUnresponsive?.({url:this.url,lastMessageAt:this.lastMessageReceivedAt,now:t,attempts:this.attempts$.value})??"reconnect",n=new Error(`Relay ping timeout after ${this.pingTimeout}ms`);return"reconnect"===e?(this.log("Relay connection has become unresponsive, triggering reconnect"),this.startReconnectTimer(n)):"close"===e?(this.log("Relay connection has become unresponsive, closing connection"),this.error$.next(n),this.socket.complete()):this.log("Relay connection has become unresponsive (ignoring per policy)"),mN}}),_k(()=>this.send(["CLOSE",t])))})):mN),UC(()=>mN));this.watchTower=this.ready$.pipe(Ak(t=>t?gN(a,i,s,l).pipe(pk(),UC(t=>(this.startReconnectTimer(t instanceof Error?t:new Error("Connection error")),mN)),Tk({resetOnRefCountZero:()=>OC(this.keepAlive).pipe(Ok(this.destroy$))})):mN),Tk())}startReconnectTimer(t){this.ready&&(this.error$.next(t instanceof Error?t:new Error("Connection error")),this._ready$.next(!1),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=this.reconnectTimer(t,this.attempts$.value).pipe(dk(1)).subscribe(()=>{this.reconnectSubscription=null,this._ready$.next(!0)}))}waitForAuth(t,e){return XC([t,this.authenticated$]).pipe(Ck(this.watchTower),vk(([t,e])=>!t||e),dk(1),Ak(()=>e))}waitForReady(t){return this.ready?t:this.ready$.pipe(vk(t=>t),dk(1),Ak(()=>t))}multiplex(t,e,n){return this.socket.multiplex(t,e,n)}send(t){this.socket.next(t)}req(t,e){const n=e?.id??KN(),r=e?.waitForAuth??!0;let i;if("function"==typeof t){const e=t(this);i=(hN(e)?e:gN(fk(e),mN)).pipe(KC(t=>Array.isArray(t)?t:[t]))}else i=(hN(t)?t:gN(fk(t),mN)).pipe(KC(t=>Array.isArray(t)?t:[t]));const s=i.pipe(pk(),wk(!0));let o=!1,a=!1;const l=this.socket.pipe(vk(t=>Array.isArray(t)&&("EVENT"===t[0]||"CLOSED"===t[0]||"EOSE"===t[0])&&t[1]===n),KC(t=>"EVENT"===t[0]&&"object"==typeof t[2]?{type:"EVENT",from:this.url,id:t[1],event:t[2]}:"CLOSED"===t[0]?{type:"CLOSED",from:this.url,id:t[1],reason:t[2]??""}:{type:"EOSE",from:this.url,id:t[1]}),zk(t=>{if("CLOSED"===t.type){o=!0;const e=Gj(t.reason);if(e)throw e;a=!0}}),Nk(t=>"CLOSED"!==t.type,!0),Tk()),c=i.pipe(KC(t=>(o=!1,a=!1,this.socket.next(["REQ",n,...t]),this.reqs$.next({...this.reqs$.value,[n]:t}),{type:"OPEN",id:n,filters:t,from:this.url})),_k(()=>{o||this.socket.next(["CLOSE",n]);const{[n]:t,...e}=this.reqs$.value;this.reqs$.next(e)}),Ak(t=>l.pipe(Mk(t)))),u=gN(this.watchTower,c).pipe(Ok(l.pipe(pk(),wk(!0))),Ok(s),zk(t=>{"EVENT"===t.type&&wO(t.event,this.url)}),Tk()),h=r?this.waitForAuth(this.authRequiredForRead$,u):u;return fN(()=>this.waitForReady(h)).pipe(Rk({delay:t=>t instanceof Wj?(this.log("Auth required for REQ"),this.receivedAuthRequiredForReq.next(!0),r?this.authenticated$.pipe(vk(t=>t),dk(1)):gk(()=>t)):gk(()=>t)}),this.customConnectionRetryOperator(e?.reconnect),this.customRepeatOperator(e?.resubscribe,()=>a),Tk())}count(t,e=KN()){let n=!1;const r=this.socket.pipe(vk(t=>Array.isArray(t)&&("COUNT"===t[0]||"CLOSED"===t[0])&&t[1]===e),KC(t=>{if("COUNT"===t[0])return t[2];if("CLOSED"===t[0]){n=!0;const e=Gj(t[2]??"");if(e)throw e}return null}),Nk(t=>null!==t,!0),vk(t=>null!==t),Tk()),i=fN(()=>(n=!1,this.socket.next(Array.isArray(t)?["COUNT",e,...t]:["COUNT",e,t]),r)).pipe(_k(()=>{n||this.socket.next(["CLOSE",e])})),s=gN(this.watchTower,i).pipe(Ok(r.pipe(pk(),wk(!0))),dk(1),UC(t=>(t instanceof Wj&&!this.receivedAuthRequiredForReq.value&&(this.log("Auth required for COUNT"),this.receivedAuthRequiredForReq.next(!0)),gk(()=>t))),Dk({first:1e4,with:()=>gk(()=>new Error("COUNT timeout"))}));return this.waitForReady(this.waitForAuth(this.authRequiredForRead$,s)).pipe(Tk())}event(t,e="EVENT"){const n=fN(()=>(this.socket.next([e,t]),this.socket.pipe(vk(e=>"OK"===e[0]&&e[1]===t.id),KC(t=>({ok:t[2],message:t[3],from:this.url}))))).pipe(Tk()),r=gN(this.watchTower,n).pipe(Ok(n.pipe(pk(),wk(!0))),dk(1),zk(({ok:t,message:e})=>{!1===t&&e?.startsWith(Bj)&&!this.receivedAuthRequiredForEvent.value&&(this.log("Auth required for publish"),this.receivedAuthRequiredForEvent.next(!0))}),Dk({first:this.eventTimeout,with:()=>fk({ok:!1,from:this.url,message:"Timeout"})}));return"AUTH"===e?this.waitForReady(r).pipe(Tk()):this.waitForReady(this.waitForAuth(this.authRequiredForPublish$,r)).pipe(Tk())}auth(t){return this.authentication$.next(t),dN(this.event(t,"AUTH").pipe(zk(t=>this.authenticationResponse$.next(t))))}async negentropy(t,e,n,r){if(!1===(await this.getSupported())?.includes(77))throw new Error("Relay does not support NIP-77");const{buildStorageVector:i,buildStorageFromFilter:s,negentropySync:o}=await Uj(async()=>{const{buildStorageVector:t,buildStorageFromFilter:e,negentropySync:n}=await import("./negentropy-CLXSLWsX.js");return{buildStorageVector:t,buildStorageFromFilter:e,negentropySync:n}},[]);return o(Array.isArray(t)?i(t):await s(t,e),this.socket,e,n,r)}authenticate(t){if(!this.challenge)throw new Error("Have not received authentication challenge");const e=t.signEvent(function(t,e){return{kind:22242,created_at:Math.floor(Date.now()/1e3),tags:[["relay",t],["challenge",e]],content:""}}(this.url,this.challenge));return dN((e instanceof Promise?ZC(e):fk(e)).pipe(Ak(t=>this.auth(t))))}customRetryOperator(t,e){return!1===t||void 0===t?uC:"number"==typeof t?Rk({...e,count:t}):!0===t?e?Rk(e):Rk():Rk({...e,...t})}customConnectionRetryOperator(t,e){if(!1===t||void 0===t)return uC;const n="number"==typeof t?{...e,count:t}:!0===t?e??{}:{...e,...t};return Rk({...n,delay:(t,e)=>t instanceof Vj?gk(()=>t):"number"==typeof n.delay?OC(n.delay):"function"==typeof n.delay?n.delay(t,e):fk(null)})}customRepeatOperator(t,e){if(!1===t||void 0===t)return uC;const n=n=>{if(e&&!e())return hk;if("object"==typeof t){if("number"==typeof t.delay)return OC(t.delay);if("function"==typeof t.delay)return t.delay(n)}return fk(null)};return Ek(!0===t?{delay:n}:"number"==typeof t?{count:t,delay:n}:{...t,delay:n})}customTimeoutOperator(t,e){return!1===t?uC:Ez(!0===t?e:t??e)}subscription(t,e){return this.req(t,{...e,reconnect:e?.reconnect??this.subscriptionReconnect}).pipe(vk(t=>"EOSE"===t.type||"EVENT"===t.type),KC(t=>"EOSE"===t.type?"EOSE":t.event),Tk())}request(t,e){return this.req(t,{...e,reconnect:e?.reconnect??this.requestReconnect}).pipe(e?.complete?Aj(e?.complete):uC,Dk({first:e?.timeout??3e4}),Nk(t=>"EOSE"!==t.type),vk(t=>"EVENT"===t.type),KC(t=>t.event),Tk())}publish(t,e){return dN(this.event(t).pipe(QC(t=>!1===t.ok&&t.message?.startsWith(Bj)?gk(()=>new Wj(t.message??"")):fk(t)),this.customRetryOperator(e?.retries??e?.reconnect??!0,this.publishRetry),this.customTimeoutOperator(e?.timeout,this.publishTimeout)))}sync(t,e,n=Nj.RECEIVE){return new hC(r=>{const i=new AbortController;let s=!1;return this.negentropy(t,e,async(e,i)=>{if(n&Nj.SEND&&e.length>0){const n=await(async e=>Array.isArray(t)?t.filter(t=>e.includes(t.id)):t.getByFilters({ids:e}))(e);await Promise.allSettled(n.map(async t=>{const e=await dN(this.event(t));return e.ok&&wO(t,this.url),e}))}n&Nj.RECEIVE&&i.length>0&&await dN(this.req({ids:i}).pipe(Nk(t=>"EOSE"!==t.type),vk(t=>"EVENT"===t.type),KC(t=>t.event),Reflect.has(t,"add")?Cz(t):uC,zk(t=>r.next(t))))},{signal:i.signal}).then(()=>{s||r.complete()}).catch(t=>{s||r.error(t)}),()=>{s||(s=!0,i.abort())}}).pipe(Tk())}close(){this.destroy$.next(),this.destroy$.complete(),this.reconnectSubscription?.unsubscribe(),this.reconnectSubscription=null,this.internalSubscriptions.unsubscribe(),this.connected$.value&&this.connected$.next(!1),this._ready$.next(!1),this._ready$.complete(),this.socket.unsubscribe()}async getInformation(){return pN(this.information$)}async getLimitations(){return pN(this.limitations$)}async getSupported(){return pN(this.supported$)}static fetchInformationDocument(t){return ZC(fetch(mO(t),{headers:{Accept:"application/nostr+json"}}).then(t=>t.json())).pipe(UC(()=>fk(null)),Ez(1e4))}static createReconnectTimer(t){return(t,e=0)=>OC(Math.min(1e3*Math.pow(1.5,e),3e5))}static afterOpen(t){return e=>e.pipe(vk(t=>"OPEN"===t.type),Ak(()=>e.pipe(t)))}static completeOr(...t){return e=>XC(t.map(t=>e.pipe(t,Mk(!1)))).pipe(KC(t=>t.some(t=>!!t)))}static completeAnd(...t){return e=>XC(t.map(t=>e.pipe(t,Mk(!1)))).pipe(KC(t=>t.every(t=>!!t)))}static defaultComplete(t,e=1e4){return this.completeOr(()=>OC(t),this.afterOpen(()=>OC(e)))}},Jj=class{options;relays$=new kk(new Map);get relays(){return this.relays$.value}status$;ignoreOffline=!1;add$=new ok;remove$=new ok;constructor(t){this.options=t,this.status$=this.relays$.pipe(KC(t=>Array.from(t.values())),Ak(t=>0===t.length?fk({}):gN(...t.map(t=>t.status$)).pipe(Lk((t,e)=>({...t,[e.url]:e}),{}),Mk({}))),Ik(1))}relay(t){t=yO(t);let e=this.relays.get(t);return e||(e=new Xj(t,this.options),this.relays.set(t,e),this.relays$.next(this.relays),this.add$.next(e),e)}group(t,e=this.ignoreOffline){let n=Array.isArray(t)?t.map(t=>this.relay(t)):t.pipe(KC(t=>t.map(t=>this.relay(t))));return e&&(n=(Array.isArray(n)?fk(n):n).pipe(Ak(t=>0===t.length?fk([]):XC(t.map(t=>t.ready$.pipe(vk(t=>t),dk(1),KC(()=>t),Mk(null)))).pipe(KC(t=>t.filter(t=>null!==t)))))),new zj(n)}remove(t,e=!0){let n;if("string"==typeof t){if(n=this.relays.get(t),!n)return}else{if(!Array.from(this.relays.values()).some(e=>e===t))return;n=t}e&&n?.close(),this.relays.delete(n.url),this.relays$.next(this.relays),this.remove$.next(n)}close(){for(const t of[...this.relays.values()])this.remove(t,!0)}req(t,e,n){return this.group(t).req(e,n)}event(t,e){return this.group(t).event(e)}negentropy(t,e,n,r,i){return this.group(t).negentropy(e,n,r,i)}publish(t,e,n){return this.group(t).publish(e,n)}request(t,e,n){return this.group(t).request(e,n)}subscription(t,e,n){return this.group(t).subscription(e,n)}subscriptionMap(t,e){const n=hN(t)?t:fk(t);return this.group(n.pipe(KC(t=>Object.keys(t)))).subscription(t=>n.pipe(KC(e=>e[t.url]),mk(FN)),e)}outboxSubscription(t,e,n){const r=hN(t)?t.pipe(KC(t=>ZN(t,e))):ZN(t,e);return this.subscriptionMap(r,n)}count(t,e,n){return this.group(t,!1).count(e,n)}sync(t,e,n,r){return this.group(t,!1).sync(e,n,r)}},Qj=(t,e)=>e.some(e=>t instanceof e),tU=new WeakMap,eU=new WeakMap,nU=new WeakMap,rU={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return tU.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return sU(t[e])},set:(t,e,n)=>(t[e]=n,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function iU(t){rU=t(rU)}function sU(t){if(t instanceof IDBRequest)return function(t){const e=new Promise((e,n)=>{const r=()=>{t.removeEventListener("success",i),t.removeEventListener("error",s)},i=()=>{e(sU(t.result)),r()},s=()=>{n(t.error),r()};t.addEventListener("success",i),t.addEventListener("error",s)});return nU.set(e,t),e}(t);if(eU.has(t))return eU.get(t);const e=function(t){return"function"==typeof t?(e=t,(Kj||(Kj=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(oU(this),t),sU(this.request)}:function(...t){return sU(e.apply(oU(this),t))}):(t instanceof IDBTransaction&&function(t){if(tU.has(t))return;const e=new Promise((e,n)=>{const r=()=>{t.removeEventListener("complete",i),t.removeEventListener("error",s),t.removeEventListener("abort",s)},i=()=>{e(),r()},s=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",i),t.addEventListener("error",s),t.addEventListener("abort",s)});tU.set(t,e)}(t),Qj(t,Zj||(Zj=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,rU):t);var e}(t);return e!==t&&(eU.set(t,e),nU.set(e,t)),e}var oU=t=>nU.get(t),aU=["get","getKey","getAll","getAllKeys","count"],lU=["put","add","delete","clear"],cU=new Map;function uU(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(cU.get(e))return cU.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=lU.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!aU.includes(n))return;const s=async function(t,...e){const s=this.transaction(t,i?"readwrite":"readonly");let o=s.store;return r&&(o=o.index(e.shift())),(await Promise.all([o[n](...e),i&&s.done]))[0]};return cU.set(e,s),s}iU(t=>({...t,get:(e,n,r)=>uU(e,n)||t.get(e,n,r),has:(e,n)=>!!uU(e,n)||t.has(e,n)}));var hU=["continue","continuePrimaryKey","advance"],dU={},pU=new WeakMap,fU=new WeakMap,gU={get(t,e){if(!hU.includes(e))return t[e];let n=dU[e];return n||(n=dU[e]=function(...t){pU.set(this,fU.get(this)[e](...t))}),n}};async function*mU(...t){let e=this;if(e instanceof IDBCursor||(e=await e.openCursor(...t)),!e)return;const n=new Proxy(e,gU);for(fU.set(n,e),nU.set(n,oU(e));e;)yield n,e=await(pU.get(n)||e.continue()),pU.delete(n)}function yU(t,e){return e===Symbol.asyncIterator&&Qj(t,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===e&&Qj(t,[IDBIndex,IDBObjectStore])}function vU(t){return 0===t||3===t||t>=1e4&&t<2e4}function bU(t){return t>=3e4&&t<4e4}function wU(t){return t>=2e4&&t<3e4}iU(t=>({...t,get:(e,n,r)=>yU(e,n)?mU:t.get(e,n,r),has:(e,n)=>yU(e,n)||t.has(e,n)}));var _U=Symbol.for("indexable-tags");function xU(t,e){if(t.ids&&-1===t.ids.indexOf(e.id))return!1;if(t.kinds&&-1===t.kinds.indexOf(e.kind))return!1;if(t.authors&&-1===t.authors.indexOf(e.pubkey))return!1;if(t.since&&e.created_att.until)return!1;const n=function(t){let e=Reflect.get(t,_U);if(!e){e=new Set;for(const n of t.tags)n.length>=2&&1===n[0].length&&e.add(n[0]+":"+n[1]);Reflect.set(t,_U,e)}return e}(e);for(const r in t)if("&"===r[0]){const e=r.slice(1),i=t[r];if(i&&i.length>0)for(const t of i)if(!n.has(e+":"+t))return!1}for(const r in t)if("#"===r[0]){const e=r.slice(1),i=t[r];if(i){const r=t[`&${e}`],s=r?i.filter(t=>!r.includes(t)):i;if(0===s.length)continue;if(!s.some(t=>n.has(e+":"+t)))return!1}}return!0}function CU(t,e){for(let n=0;nt.length>=2&&1===t[0].length&&SU.includes(t[0])).map(t=>t[0]+t[1])}function LU(t){if(Reflect.has(t,EU))return Reflect.get(t,EU);let e;if(vU(t.kind)||bU(t.kind)){const n=t.tags.find(t=>"d"===t[0])?.[1];e=t.kind+":"+t.pubkey+":"+(n??"")}else e=t.id;return Reflect.set(t,EU,e),e}async function TU(t="nostr-idb",e){return await function(t,e,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(t,e),a=sU(o);return r&&o.addEventListener("upgradeneeded",t=>{r(sU(o.result),t.oldVersion,t.newVersion,sU(o.transaction),t)}),n&&o.addEventListener("blocked",t=>n(t.oldVersion,t.newVersion,t)),a.then(t=>{s&&t.addEventListener("close",()=>s()),i&&t.addEventListener("versionchange",t=>i(t.oldVersion,t.newVersion,t))}).catch(()=>{}),a}(t,3,{...e,async upgrade(t,n,r,i,s){if(0===n){const e=t.createObjectStore("events");e.createIndex("id","event.id",{unique:!0}),e.createIndex("pubkey","event.pubkey"),e.createIndex("kind","event.kind"),e.createIndex("created_at","event.created_at"),e.createIndex("tags","tags",{multiEntry:!0}),t.createObjectStore("used",{keyPath:"uid"}).createIndex("date","date")}1===n&&(t.deleteObjectStore("events"),t.deleteObjectStore("used"),t.deleteObjectStore("seen")),n<=2&&await async function(t){const e=t.objectStore("events");let n=await e.openCursor();const r=[];for(;n;){const t=n.primaryKey,e=n.value,i=e.event;if(vU(i.kind)||bU(i.kind)){const n=LU(i);t!==n&&r.push({oldKey:t,newKey:n,value:e})}n=await n.continue()}for(const{oldKey:i,newKey:s,value:o}of r)await e.delete(i),await e.put(o,s)}(i),e?.upgrade&&e.upgrade(t,n,r,i,s)}})}function PU(t,e){return e.created_at-t.created_at}var IU=a({countEventsForFilters:()=>BU,getEventsForFilters:()=>UU,getIdsForFilter:()=>DU,getIdsForFilters:()=>jU,queryForKinds:()=>zU,queryForPubkeys:()=>MU,queryForTag:()=>AU,queryForTagAnd:()=>OU,queryForTime:()=>FU});function MU(t,e=[],n){const r=[],i=new Set;if(n)for(const l of e){const t=n.getPubkeyIndex(l);if(t){for(const e of t)i.add(e);r.push(l)}}if(r.length===e.length)return Promise.resolve(i);const s=t.transaction("events","readonly"),o=s.objectStore("events").index("pubkey"),a=e.filter(t=>!r.includes(t)).map(t=>o.getAllKeys(t).then(e=>((t,e)=>{for(const n of e)i.add(n);n&&n.setPubkeyIndex(t,new Set(e))})(t,e)));return s.commit(),Promise.all(a).then(()=>i)}function AU(t,e,n,r){const i=[],s=new Set;if(r)for(const c of n){const t=r.getTagIndex(e+c);if(t){for(const e of t)s.add(e);i.push(c)}}if(i.length===n.length)return Promise.resolve(s);const o=t.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.map(t=>a.getAllKeys(e+t).then(n=>((t,n)=>{for(const e of n)s.add(e);r&&r.setTagIndex(e+t,new Set(n))})(t,n)));return o.commit(),Promise.all(l).then(()=>s)}function OU(t,e,n,r){if(0===n.length)return Promise.resolve(new Set);if(1===n.length)return AU(t,e,n,r);const i=[],s=[];if(r)for(const c of n){const t=r.getTagIndex(e+c);t&&(s.push(t),i.push(c))}if(i.length===n.length)return Promise.resolve(NU(s));const o=t.transaction("events","readonly"),a=o.objectStore("events").index("tags"),l=n.filter(t=>!i.includes(t)).map(t=>a.getAllKeys(e+t).then(n=>((t,n)=>{const i=new Set(n);s.push(i),r&&r.setTagIndex(e+t,i)})(t,n)));return o.commit(),Promise.all(l).then(()=>NU(s))}function NU(t){if(0===t.length)return new Set;const e=t.slice().sort((t,e)=>t.size-e.size);let n=e[0];for(let r=1;r!r.includes(t)).map(t=>o.getAllKeys(t).then(e=>((t,e)=>{for(const n of e)i.add(n);n&&n.setKindIndex(t,new Set(e))})(t,e)));return s.commit(),Promise.all(a).then(()=>i)}async function FU(t,e,n){let r;if(void 0!==e&&void 0!==n)r=IDBKeyRange.bound(e,n);else if(void 0!==e)r=IDBKeyRange.lowerBound(e);else{if(void 0===n)throw new Error("Missing since or until");r=IDBKeyRange.upperBound(n)}return(await t.getAllKeysFromIndex("events","created_at",r)).reverse()}async function DU(t,e,n){if(e.search)return new Set;if(e.ids)return new Set(e.ids);let r=null;const i=t=>{const e=t instanceof Set?t:new Set(t);if(r)for(const n of r)e.has(n)||r.delete(n);else r=e;return r};let s=null;void 0!==e.since&&(s=await FU(t,e.since,e.until),i(s));for(const o of SU){const r=e[`&${o}`],s=e[`#${o}`];if(r?.length&&i(await OU(t,o,r,n)),s?.length){const e=r?.length?s.filter(t=>!r.includes(t)):s;e.length>0&&i(await AU(t,o,e,n))}}if(e.authors&&i(await MU(t,e.authors,n)),e.kinds&&i(await zU(t,e.kinds,n)),void 0===e.since&&void 0!==e.until&&(s=await FU(t,e.since,e.until),i(s)),e.limit&&s){const t=new Set;for(const n of s){if(t.size>=e.limit)break;r.has(n)&&t.add(n)}return t}if(null===r)throw new Error("Empty filter");return r}async function jU(t,e,n){if(0===e.length)throw new Error("No Filters");let r=new Set;for(const i of e){const e=await DU(t,i,n);for(const t of e)r.add(t)}return r}async function UU(t,e,n,r){const i=await jU(t,e,n);return await async function(t,e,n,r){const i=[];let s=[];if(r)for(const d of e){const t=r.get(d);t?i.push(t):s.push(d)}else s=e;const o=t.transaction("events","readonly"),a=o.objectStore("events"),l=t=>t&&i.push(t.event),c=Array.from(s).map(t=>a.get(t).then(l));o.commit();const u=await Promise.all(c).then(()=>i.sort(PU));let h=1/0;for(const d of n)d.limit&&d.limith&&(u.length=h),u}(t,Array.from(i),e,r)}async function BU(t,e,n){return(await jU(t,e,n)).size}var $U=wN.default("nostr-idb"),qU=$U.extend("prune");async function VU(t,e,n){const r=t.transaction("events","readwrite"),i=r.objectStore("events"),s=await i.get(e);if(!s)return await r.commit(),!1;if(await i.delete(e),await r.commit(),n){const t=s.event;n.removeEvent(t)}return!0}var WU=$U.extend("WriteQueue"),HU=class{db;queuedIds=new Set;eventQueue=[];lastUsedQueue=new Set;processEvents=null;constructor(t){this.db=t}addEvent(t){const e=LU(t);this.queuedIds.has(e)||(this.eventQueue.push(t),this.queuedIds.add(e),this.touch(t))}addEvents(t){const e=t.filter(t=>!this.queuedIds.has(LU(t)));if(0!==e.length){this.eventQueue.push(...e);for(const t of e)this.queuedIds.add(LU(t));this.touch(e)}}touch(t){if(Array.isArray(t))for(const e of t)this.lastUsedQueue.add(LU(e));else this.lastUsedQueue.add(LU(t))}matchPending(t){return this.eventQueue.filter(e=>CU(t,e))}async flush(t=1e3){if(this.eventQueue.length>0){let e=[];for(let n=0;nfunction(t){if("object"!=typeof t||null===t)return!1;if("number"!=typeof t.kind)return!1;if("string"!=typeof t.content)return!1;if("number"!=typeof t.created_at)return!1;if("string"!=typeof t.id)return!1;if(!/^[a-f0-9]{64}$/.test(t.id))return!1;if("string"!=typeof t.pubkey)return!1;if(!/^[a-f0-9]{64}$/.test(t.pubkey))return!1;if(!Array.isArray(t.tags))return!1;for(const e of t.tags){if(!Array.isArray(e))return!1;for(const t of e)if("string"!=typeof t)return!1}return!0}(t))).filter(t=>vU(t.kind)||bU(t.kind)),r={};if(n.length>0){const e=t.transaction("events","readonly"),i=n.map(t=>{const n=LU(t);return e.store.get(n).then(t=>t&&(r[n]=t.event.created_at))});e.commit(),await Promise.all(i)}const i=t.transaction("events","readwrite");for(const s of e){const t=LU(s);(!r[t]||s.created_at>r[t])&&i.objectStore("events").put({event:s,tags:RU(s)},t)}await i.commit()}(this.db,e),WU(`Wrote ${e.length} to database`),this.eventQueue.length>0&&WU(`${this.eventQueue.length} left`)}this.lastUsedQueue.size>0&&(await async function(t,e){const n=t.transaction("used","readwrite"),r=Math.floor((new Date).valueOf()/1e3);for(const i of e)n.objectStore("used").put({uid:i,date:r});await n.commit()}(this.db,this.lastUsedQueue),this.lastUsedQueue.clear())}clear(){this.eventQueue=[]}},GU=$U.extend("cache:indexes"),ZU=class extends Set{type;key;constructor(t,e,n){super(t),this.type=e,this.key=n}},KU=class{kinds=new Map;pubkeys=new Map;tags=new Map;get count(){return this.kinds.size+this.pubkeys.size+this.tags.size}max=1e3;lastUsed=[];useIndex(t){const e=this.lastUsed.indexOf(t);-1!==e&&this.lastUsed.splice(e,e+1),this.lastUsed.push(t)}getKindIndex(t){const e=this.kinds.get(t);return e&&this.useIndex(e),e}setKindIndex(t,e){const n=new ZU(e,"kind",t);this.kinds.set(t,n),this.useIndex(n),this.pruneIndexes()}getPubkeyIndex(t){const e=this.pubkeys.get(t);return e&&this.useIndex(e),e}setPubkeyIndex(t,e){const n=new ZU(e,"pubkey",t);this.pubkeys.set(t,n),this.useIndex(n),this.pruneIndexes()}getTagIndex(t){const e=this.tags.get(t);return e&&this.useIndex(e),e}setTagIndex(t,e){const n=new ZU(e,"tag",t);this.tags.set(t,n),this.useIndex(n),this.pruneIndexes()}addEventToIndexes(t){const e=LU(t);this.getKindIndex(t.kind)?.add(e),this.getPubkeyIndex(t.pubkey)?.add(e);const n=RU(t);for(const r of n)this.getTagIndex(r)?.add(e)}removeEvent(t){const e=LU(t);this.getKindIndex(t.kind)?.delete(e),this.getPubkeyIndex(t.pubkey)?.delete(e);const n=RU(t);for(const r of n)this.getTagIndex(r)?.delete(e)}clear(){this.kinds.clear(),this.pubkeys.clear(),this.tags.clear(),this.lastUsed=[]}pruneIndexes(){for(;this.lastUsed.length>0&&this.lastUsed.length>this.max;){const t=this.lastUsed.shift();if(!t)return;switch(GU(`Forgetting ${t.type}:${t.key}`),t.type){case"kind":this.kinds.delete(t.key);break;case"pubkey":this.pubkeys.delete(t.key);break;case"tag":this.tags.delete(t.key)}}}},YU={batchWrite:1e3,writeInterval:100,cacheIndexes:1e3,pruneInterval:6e4,maxEvents:1e4},XU=$U.extend("nostridb"),JU=class{options;running=!1;writeInterval;pruneInterval;eventMap=new Map;writeQueue=null;indexCache;db=null;baseEoseTimeout=4400;subscriptions=new Map;constructor(t,e={}){this.options={...YU,...e},t&&(this.db=t,this.writeQueue=new HU(t)),this.indexCache=new KU,this.indexCache.max=this.options.cacheIndexes,this.start()}async getDb(){return this.db||(this.db=await TU()),this.db}async getWriteQueue(){if(this.writeQueue)return this.writeQueue;const t=await this.getDb();return this.writeQueue=new HU(t),this.writeQueue}async flush(){await(await this.getWriteQueue()).flush(),this.writeInterval=setTimeout(this.flush.bind(this),this.options.writeInterval)}async start(){if(this.running)return;XU("Starting"),this.running=!0;const t=await this.getDb();await this.flush(),this.pruneInterval=setInterval(()=>{!async function(t,e){const n=await function(t){return t.transaction("events","readonly").store.count()}(t);if(n<=e)return;const r=n-e;if(r<=0)return;qU(`Pruning database to ${e}`);const i=(await t.getAll("used")).sort((t,e)=>t.date-e.date),s=[];let o=r;for(const u of i){if(o<=0)break;const t=u.uid;s.push(t),o--}if(0===s.length)return;const a=t.transaction("events","readwrite"),l=t.transaction("used","readwrite"),c=[];for(const u of s)c.push(a.store.delete(u)),c.push(l.store.delete(u));a.commit(),l.commit(),await Promise.all(c),qU(`Removed ${s.length} old events`)}(t,this.options.maxEvents)},this.options.pruneInterval)}async stop(){this.running&&(this.writeInterval&&(clearTimeout(this.writeInterval),this.writeInterval=void 0),this.pruneInterval&&(clearInterval(this.pruneInterval),this.pruneInterval=void 0),this.running=!1,XU("Stopped"))}async add(t){wU(t.kind)||((await this.getWriteQueue()).addEvent(t),this.indexCache.addEventToIndexes(t));const e=LU(t);if(!this.eventMap.has(e)){wU(t.kind)||this.eventMap.set(e,t);for(const[e,n]of this.subscriptions)n.event&&CU(n.filters,t)&&n.event(t)}return!0}async event(t){return(await(await this.getDb()).get("events",t))?.event}async replaceable(t,e,n){return this.event([t,e,n??""].join(":"))}async count(t){const e=Array.isArray(t)?t:[t],n=await this.getDb();return await BU(n,e)}async query(t){const e=Array.isArray(t)?t:[t],n=await this.getDb(),r=(await this.getWriteQueue()).matchPending(e),i=await UU(n,e,this.indexCache,this.eventMap);this.addToEventMaps(i);const s=new Set(r.map(t=>LU(t)));return r.length>0?[...i.filter(t=>!s.has(LU(t))),...r].sort(PU):i}async*subscribe(t){const e=Array.isArray(t)?t:[t],n=[],r=new Set;let i=null,s=!1;const o=this.subscribeInternal(e,{event:t=>{const e=LU(t);if(!r.has(e)&&(r.add(e),n.push(t),i)){const t=i;i=null,t()}},complete:()=>{if(s=!0,i){const t=i;i=null,t()}}});try{for(;;){for(;n.length>0;)yield n.shift();if(s)break;await new Promise(t=>{i=t})}}finally{o.close()}}async supports(){return[]}async deleteEvent(t){const e=await this.getDb(),n=await VU(e,t,this.indexCache);return this.eventMap.delete(t),n}async deleteReplaceable(t,e,n){const r=await this.getDb(),i=await async function(t,e,n,r,i){if(!vU(n)&&!bU(n))throw new Error(`Kind ${n} is not replaceable`);return await VU(t,`${n}:${e}:${r??""}`,i)}(r,t,e,n,this.indexCache);if(i){const r=`${e}:${t}:${n??""}`;this.eventMap.delete(r)}return i}async deleteByFilters(t){const e=Array.isArray(t)?t:[t],n=await this.getDb(),r=await this.getEventIdsForFilters(e),i=await async function(t,e,n){const r=await jU(t,e,n);return await async function(t,e,n){if(0===e.length)return 0;const r=t.transaction("events","readwrite"),i=r.objectStore("events");let s=0;const o=[];for(const a of e){const t=await i.get(a);t&&(o.push(t.event),await i.delete(a),s++)}if(await r.commit(),n&&o.length>0)for(const a of o)n.removeEvent(a);return s}(t,Array.from(r),n)}(n,e,this.indexCache);if(i>0)for(const s of r)this.eventMap.delete(s);return i}async deleteAllEvents(){const t=await this.getDb();await async function(t,e){const n=t.transaction("events","readwrite");await n.objectStore("events").clear(),await n.commit(),e&&e.clear()}(t,this.indexCache),this.eventMap.clear()}async getEventIdsForFilters(t){const e=await this.getDb(),{getIdsForFilters:n}=await Uj(async()=>{const{getIdsForFilters:t}=await Promise.resolve().then(()=>IU);return{getIdsForFilters:t}},void 0),r=await n(e,t,this.indexCache);return Array.from(r)}addToEventMaps(t){for(const e of t)this.eventMap.set(LU(e),e)}subscribeInternal(t,e){const n=((t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((t,e)=>t+((e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e>62?"-":"_"),""))(),r={id:n,filters:t,closed:!1,close:()=>this.unsubscribe(n),...e};return this.subscriptions.set(n,r),this.executeSubscription(r),r}async executeSubscription(t){const e=(new Date).valueOf();XU(`Running ${t.id}`,t.filters);const n=(await this.getWriteQueue()).matchPending(t.filters);return new Promise(async r=>{const i=await this.getDb(),s=setTimeout(()=>{t.eose&&!t.closed&&t.eose(),r()},this.baseEoseTimeout);UU(i,t.filters,this.indexCache,this.eventMap).then(i=>{if(clearTimeout(s),this.addToEventMaps(i),t.event&&!t.closed){const r=new Set(n.map(t=>LU(t))),s=n.length>0?[...i.filter(t=>!r.has(LU(t))),...n].sort(PU):i;for(const e of s)try{t.event(e)}catch(s7){XU("event handler failed with error",s7)}const o=(new Date).valueOf()-e;XU(`Finished ${t.id} took ${o}ms and got ${s.length} events`)}t.eose&&!t.closed&&t.eose(),r()})})}unsubscribe(t){const e=this.subscriptions.get(t);e&&(XU(`Closing ${t}`),e.closed=!0,e.complete?.(),this.subscriptions.delete(t))}},QU=a({excludeRequiredRelays:()=>rB,mergeRequiredRelays:()=>nB,normalizeRelayUrl:()=>tB,parsePlacePhotos:()=>sB,relayUrlMatches:()=>iB,uniqNormalizedRelays:()=>eB});function tB(t){if(!t)return"";let e=t.trim().toLowerCase();if(!e)return"";for(e.startsWith("ws://")||e.startsWith("wss://")||(e="wss://"+e);e.endsWith("/");)e=e.slice(0,-1);return e}function eB(t=[]){return Array.from(new Set(t.map(tB).filter(Boolean)))}function nB(t=[],e=[]){const n=new Set(t.filter(Boolean)),r=[...t.filter(Boolean)];for(const i of eB(e))n.has(i)||r.push(i);return r}function rB(t=[],e=[]){const n=new Set(e.filter(Boolean));return eB(t).filter(t=>!n.has(t))}function iB(t,e=[]){if(!t)return!1;const n=tB(t);return!!n&&new Set(eB(e||[]).filter(Boolean)).has(n)}function sB(t){if(!t||0===t.length)return[];const e=[...t].sort((t,e)=>t.created_at-e.created_at),n=[];for(const i of e){const t=i.tags.filter(t=>"t"===t[0]).map(t=>t[1]).filter(Boolean),e=i.tags.filter(t=>"imeta"===t[0]);for(const r of e){let e=null,s=null,o=null,a=!1,l=16/9,c=null,u=i.tags.find(t=>"i"===t[0])?.[1];const h=i.tags.find(t=>"published_at"===t[0])?.[1],d=h?Number(h):null;for(const t of r.slice(1))if(t.startsWith("url "))e=t.substring(4);else if(t.startsWith("thumb "))s=t.substring(6);else if(t.startsWith("blurhash "))o=t.substring(9);else if(t.startsWith("dim ")){const[e,n]=t.substring(4).split("x").map(Number);e&&n&&(l=e/n,e>n&&(a=!0))}else if(t.startsWith("alt ")){const e=t.substring(4).trim();c="A photo of a place"===e?null:e||null}e&&n.push({eventId:i.id,pubkey:i.pubkey,createdAt:i.created_at,publishedAt:d&&d>0?d:null,url:e,thumbUrl:s,blurhash:o,isLandscape:a,aspectRatio:l,placeIdentifier:u,tags:t,alt:c})}}if(0===n.length)return[];const r=n.findIndex(t=>t.isLandscape);if(r>0){const[t]=n.splice(r,1);n.unshift(t)}return n}var oB="0123456789bcdefghjkmnpqrstuvwxyz",aB=class t{static encode(e,n,r){if(void 0===r){for(let r=1;r<=12;r++){const i=t.encode(e,n,r),s=t.decode(i);if(s.lat==e&&s.lon==n)return i}r=12}if(e=Number(e),n=Number(n),r=Number(r),isNaN(e)||isNaN(n)||isNaN(r))throw new Error("Invalid geohash");let i=0,s=0,o=!0,a="",l=-90,c=90,u=-180,h=180;for(;a.length=t?(i=2*i+1,u=t):(i*=2,h=t)}else{const t=(l+c)/2;e>=t?(i=2*i+1,l=t):(i*=2,c=t)}o=!o,5==++s&&(a+=oB.charAt(i),s=0,i=0)}return a}static decode(e){const n=t.bounds(e),r=n.sw.lat,i=n.sw.lon,s=n.ne.lat,o=n.ne.lon;let a=(r+s)/2,l=(i+o)/2;return a=a.toFixed(Math.floor(2-Math.log(s-r)/Math.LN10)),l=l.toFixed(Math.floor(2-Math.log(o-i)/Math.LN10)),{lat:Number(a),lon:Number(l)}}static bounds(t){if(0==t.length)throw new Error("Invalid geohash");t=t.toLowerCase();let e=!0,n=-90,r=90,i=-180,s=180;for(let o=0;o=0;t--){const o=l>>t&1;if(e){const t=(i+s)/2;1==o?i=t:s=t}else{const t=(n+r)/2;1==o?n=t:r=t}e=!e}}return{sw:{lat:n,lon:i},ne:{lat:r,lon:s}}}static adjacent(e,n){if(e=e.toLowerCase(),n=n.toLowerCase(),0==e.length)throw new Error("Invalid geohash");if(-1=="nsew".indexOf(n))throw new Error("Invalid direction");const r=e.slice(-1);let i=e.slice(0,-1);const s=e.length%2;return-1!={n:["prxz","bcfguvyz"],s:["028b","0145hjnp"],e:["bcfguvyz","prxz"],w:["0145hjnp","028b"]}[n][s].indexOf(r)&&""!=i&&(i=t.adjacent(i,n)),i+oB.charAt({n:["p0r21436x8zb9dcf5h7kjnmqesgutwvy","bc01fg45238967deuvhjyznpkmstqrwx"],s:["14365h7k9dcfesgujnmqp0r2twvyx8zb","238967debc01fg45kmstqrwxuvhjyznp"],e:["bc01fg45238967deuvhjyznpkmstqrwx","p0r21436x8zb9dcf5h7kjnmqesgutwvy"],w:["238967debc01fg45kmstqrwxuvhjyznp","14365h7k9dcfesgujnmqp0r2twvyx8zb"]}[n][s].indexOf(r))}static neighbours(e){return{n:t.adjacent(e,"n"),ne:t.adjacent(t.adjacent(e,"n"),"e"),e:t.adjacent(e,"e"),se:t.adjacent(t.adjacent(e,"s"),"e"),s:t.adjacent(e,"s"),sw:t.adjacent(t.adjacent(e,"s"),"w"),w:t.adjacent(e,"w"),nw:t.adjacent(t.adjacent(e,"n"),"w")}}},lB=a({getGeohashPrefixesInBbox:()=>cB});function cB(t){const{minLat:e,minLon:n,maxLat:r,maxLon:i}=t,s=new Set;if(Math.abs(r-e)>20||Math.abs(i-n)>20)return console.debug("BBox too large for 4-char geohash scanning, aborting fine scan."),[];for(let a=e;a<=r+.1;a+=.1)for(let t=n;t<=i+.1;t+=.1){const e=Math.min(a,r),n=Math.min(t,i);try{const t=aB.encode(e,n,4);s.add(t)}catch(o){}}try{s.add(aB.encode(e,n,4))}catch(o){}try{s.add(aB.encode(r,i,4))}catch(o){}try{s.add(aB.encode(e,i,4))}catch(o){}try{s.add(aB.encode(r,n,4))}catch(o){}return Array.from(s)}var uB=a({default:()=>yB}),hB=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],dB=["wss://nostr.kosmos.org"],pB=[],fB=[360],gB="event-relay-provenance";function mB(t){return ck(e=>{const n=e.pipe(t,vk(Boolean),dk(1));return e.pipe(Ok(n))})}var yB=class extends fp{static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"localForage",[pp])}#mt=void pF(this,"localForage");store=new xz;static{hF(this.prototype,"profile",[Wr],function(){return null})}#yt=void pF(this,"profile");static{hF(this.prototype,"mailboxes",[Wr],function(){return null})}#vt=void pF(this,"mailboxes");static{hF(this.prototype,"contacts",[Wr],function(){return null})}#bt=void pF(this,"contacts");static{hF(this.prototype,"blossomServers",[Wr],function(){return[]})}#wt=void pF(this,"blossomServers");static{hF(this.prototype,"placePhotos",[Wr],function(){return[]})}#_t=void pF(this,"placePhotos");static{hF(this.prototype,"myContributionEvents",[Wr],function(){return[]})}#xt=void pF(this,"myContributionEvents");static{hF(this.prototype,"profiles",[Wr],function(){return{}})}#Ct=void pF(this,"profiles");static{hF(this.prototype,"zapReceipts",[Wr],function(){return{}})}#kt=void pF(this,"zapReceipts");_eventRelays=new Map;_provenanceReady=null;_contactPubkeys=null;_contactsResolver=null;_contactsPromise=null;static{hF(this.prototype,"showUntrustedContent",[Wr],function(){return!1})}#St=void pF(this,"showUntrustedContent");static{hF(this.prototype,"untrustedContentCount",[Wr],function(){return 0})}#Et=void pF(this,"untrustedContentCount");_allPlacePhotos=[];_profileSub=null;_mailboxesSub=null;_contactsSub=null;_blossomSub=null;_photosSub=null;_contributionsSub=null;_deletionsSub=null;_profileModelSubs=new Map;_zapReceiptsSub=null;_zapReceiptsNetworkSub=null;_zapRefreshTimer=null;_lastPhotoIds=new Set;_incomingZapsNetworkSub=null;_activityPhotosSince=null;_activityPhotosMode="home";_activityPhotosNetworkSub=null;_requestSub=null;_cachePromise=null;_currentPlaceEntityId=null;loadedGeohashPrefixes=new Set;constructor(){super(...arguments),function(t,e,n){const r=function(t,e){const n=function(t,e){const n=Ej(t);return Sj(jC(e?.bufferTime??1e3,void 0,e?.bufferSize??200),function(...t){return Rj(function*(e){if(0===(e=function(t){let e=new Map;for(let n of t){let t=e.get(n.id);t&&n.relays?t.relays?t.relays=[...t.relays,...n.relays.filter(e=>!t.relays.includes(e))]:t.relays=[...n.relays]:t||e.set(n.id,{...n})}return Array.from(e.values())}(e)).length)return;const n=new Set;let r=Array.from(e);for(const i of t)if(void 0!==i&&(yield i(r).pipe(UC(()=>hk),zk(t=>n.add(t.id))),r=r.filter(t=>!n.has(t.id)),0===r.length))return})}(e?.cacheRequest?function(t){return e=>(e=e.filter(t=>!1!==t.cache),0===e.length?hk:Cj(t,[{ids:e.map(t=>t.id)}]))}(e.cacheRequest):void 0,!1!==e?.followRelayHints?Mj(n):void 0,e?.extraRelays?Pj(n,e.extraRelays):void 0),(t,e)=>e.id===t.id,null===e?.eventStore?uC:kz(e?.eventStore||new uz),{signal:e?.signal})}(t,{bufferTime:e?.bufferTime,bufferSize:e?.bufferSize,eventStore:e?.eventStore,cacheRequest:e?.cacheRequest,followRelayHints:e?.followRelayHints,extraRelays:e?.extraRelays,signal:e?.signal}),r=function(t,e){const n=Ej(t);return Sj(jC(e?.bufferTime??1e3,void 0,e?.bufferSize??200),function(...t){return Rj(function*(e){if(0===(e=function(t){const e=new Map;for(const n of t){const t=oO(n.kind,n.pubkey,n.identifier);if(e.has(t)){const r=e.get(t);n.relays&&n.relays.length>0&&(r.relays?r.relays=CO(r.relays,n.relays):r.relays=n.relays),!1===n.cache&&(r.cache=!1)}else e.set(t,Tj(n))}return Array.from(e.values())}(e.filter(xj))).length)return;let n=Array.from(e);for(const r of t){if(void 0===r)continue;const t=yield r(n).pipe(UC(()=>hk)),e=new Set(t.filter(t=>iO(t.kind)).map(t=>sO(t)));if(n=n.filter(t=>!e.has(oO(t.kind,t.pubkey,t.identifier))),0===n.length)return}})}(e?.cacheRequest?function(t){return e=>(e=e.filter(t=>!1!==t.cache),0===e.length?hk:Cj(t,_j(e)))}(e.cacheRequest):void 0,!1!==e?.followRelayHints?function(t){return e=>{const n=CO(...e.map(t=>t.relays));return 0===n.length?hk:t(n,_j(e))}}(n):void 0,e?.extraRelays?Lj(n,e.extraRelays):void 0,e?.lookupRelays?Lj(n,e.lookupRelays):void 0),(t,e)=>e.kind===t.kind&&e.pubkey===t.pubkey&&(void 0===t.identifier||cO(e)===t.identifier),null===e?.eventStore?uC:kz(e?.eventStore||new uz),{signal:e?.signal})}(t,{bufferTime:e?.bufferTime,bufferSize:e?.bufferSize,eventStore:e?.eventStore,cacheRequest:e?.cacheRequest,followRelayHints:e?.followRelayHints,extraRelays:e?.extraRelays,lookupRelays:e?.lookupRelays,signal:e?.signal}),i=()=>{n.stop(),r.stop()};return Object.assign(t=>TO(t)?n(t):r(t),{stop:i,[Symbol.dispose]:i})}(e,{...n,eventStore:t});t.eventLoader=r}(this.store,this.nostrRelay.pool,{cacheRequest:t=>this.cache?ZC(this.cache.query(t)):hk,lookupRelays:hB}),this._cachePromise=TU("applesauce-events").then(async t=>{this.cache=new JU(t,{cacheIndexes:1e3,maxEvents:1e4}),await this.cache.start(),this._stopPersisting=function(t,e,n){const r=n?.batchTime??5e3,i=t.insert$.pipe(vk(t=>{return e=t,!(!0===Reflect.get(e,eO));var e}),n?.maxBatchSize?jC(r,void 0,n?.maxBatchSize??100):jC(r),vk(t=>t.length>0)).subscribe(t=>{e(t).then(()=>xN(`Saved ${t.length} events to cache`)).catch(e=>xN(`Failed to save ${t.length} events to cache`,e))});return()=>i.unsubscribe()}(this.store,async t=>{const e=t.filter(t=>0===t.kind||3===t.kind||5===t.kind||10002===t.kind||10063===t.kind||360===t.kind||9735===t.kind);e.length>0&&await Promise.all(e.map(t=>this.cache.add(t)))},{batchTime:1e3,maxBatchSize:100})}),this._provenanceReady=this._hydrateProvenance(),this._deletionsSub=this.store.deletes.deleted$.subscribe(({pointer:t})=>{TO(t)&&this._removeProvenance(t.id)}),this.nostrRelay.pool.relays$.subscribe(()=>{})}get requiredReadRelays(){return dB}get requiredWriteRelays(){return pB}get mailboxReadRelays(){return(this.mailboxes?.inboxes||[]).map(tB).filter(Boolean)}get mailboxWriteRelays(){return(this.mailboxes?.outboxes||[]).map(tB).filter(Boolean)}get configuredReadRelays(){return rB(eB([...this.mailboxReadRelays,...this.settings.nostrReadRelays||[]]),this.settings.nostrReadRelayExclusions||[])}get configuredWriteRelays(){return rB(eB([...this.mailboxWriteRelays,...this.settings.nostrWriteRelays||[]]),this.settings.nostrWriteRelayExclusions||[])}get activeReadRelays(){return nB(this.requiredReadRelays,this.configuredReadRelays)}get activeWriteRelays(){return nB(this.requiredWriteRelays,this.configuredWriteRelays)}get trustedRelays(){const t=this.settings.nostrTrustedRelays||[];return eB([...this.requiredReadRelays,...t])}isTrustedEvent(t){if(!t)return!1;const e=this.nostrAuth?.pubkey;if(e&&t.pubkey===e)return!0;if(this._contactPubkeys?.has(t.pubkey))return!0;const n=this._eventRelays.get(t.id);if(!n||0===n.size)return!1;const r=this.trustedRelays;for(const i of n)if(iB(i,r))return!0;return!1}partitionByTrust(t){const e=[],n=[];for(const r of t)!fB.includes(r.kind)||this.isTrustedEvent(r)?e.push(r):n.push(r);return{trusted:e,untrusted:n}}async _hydrateProvenance(){try{await this.localForage.iterate(gB,(t,e)=>{this._eventRelays.set(e,new Set(t||[]))})}catch(t){console.debug("[nostr-data] Failed to hydrate relay provenance",t)}}_recordProvenance(t,e){if(!t||!e)return;let n=this._eventRelays.get(t);if(n||(n=new Set,this._eventRelays.set(t,n)),n.has(e))return;n.add(e);const r=Array.from(n);this.localForage.set(gB,t,r).catch(t=>{console.debug("[nostr-data] Failed to persist relay provenance",t)})}_removeProvenance(t){t&&this._eventRelays.delete(t)&&this.localForage.remove(gB,t).catch(t=>{console.debug("[nostr-data] Failed to remove relay provenance",t)})}_requestContentWithProvenance(t,e,n){const r=zj.completeOnAny(zj.completeAfterFirstRelay(5e3),zj.completeOnAllEose());return this.nostrRelay.pool.req(t,e).pipe(mB(r),Dk({first:3e4}),vk(t=>"EVENT"===t.type)).subscribe({next:t=>{this._recordProvenance(t.event.id,t.from),this.store.add(t.event)},error:t=>{console.error(n,t)}})}async loadPlacesInBounds(t){const e=cB(t).filter(t=>!this.loadedGeohashPrefixes.has(t));if(0!==e.length){console.debug("[nostr-data] Loading place photos for prefixes:",e);try{await this._cachePromise;const t=await this.cache.query([{kinds:[360],"#g":e}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read photos from local Nostr IDB cache",n)}this._requestContentWithProvenance(this.activeReadRelays,[{kinds:[360],"#g":e}],"[nostr-data] Error fetching place photos by geohash:");for(const t of e)this.loadedGeohashPrefixes.add(t)}}async loadPhotosForPlace(t){const e=t&&t.osmId&&t.osmType?`osm:${t.osmType}:${t.osmId}`:null;if((!e||e!==this._currentPlaceEntityId)&&(this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._cleanupZapReceiptSubs(),this._clearZapRefreshTimer(),this.placePhotos=[],this.zapReceipts={},this._lastPhotoIds=new Set,this._clearProfileSubs(),this._currentPlaceEntityId=e,e)){this._photosSub=this.store.timeline([{kinds:[360],"#i":[e]}]).subscribe(t=>{this._allPlacePhotos=t,this._updatePlacePhotos();const e=[...new Set(t.map(t=>t.pubkey))];this.loadProfiles(e),this._scheduleZapReceiptRefresh(t)});try{await this._cachePromise;const t=await this.cache.query([{kinds:[360,5],"#i":[e]}]);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read photos for place from local Nostr IDB cache",n)}this._requestContentWithProvenance(this.activeReadRelays,[{kinds:[360,5],"#i":[e]}],"[nostr-data] Error fetching place photos for place:")}}_updatePlacePhotos(){const t=this._allPlacePhotos,{trusted:e,untrusted:n}=this.partitionByTrust(t);this.untrustedContentCount=n.length,this.placePhotos=this.showUntrustedContent?t:e}toggleShowUntrustedContent(){this.showUntrustedContent=!this.showUntrustedContent,this._updatePlacePhotos()}static{dF(this.prototype,"toggleShowUntrustedContent",[Vl])}async loadMyContributions(t){if(!t)return;this.myContributionEvents=[],this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null);const e=[{kinds:[360,5],authors:[t]}];this._contributionsSub=this.store.timeline(e).subscribe(t=>{this.myContributionEvents=t});try{await this._cachePromise;const t=await this.cache.query(e);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read my contributions from local Nostr IDB cache",n)}this._requestContentWithProvenance(this.activeReadRelays,e,"[nostr-data] Error fetching my contribution events:")}async loadIncomingZaps(t){if(!t)return;const e=[{kinds:[9735],"#p":[t]}];console.debug("[nostr-data] Requesting incoming zap receipts from relays",{filters:e,relays:this.activeReadRelays}),this._incomingZapsNetworkSub&&(this._incomingZapsNetworkSub.unsubscribe(),this._incomingZapsNetworkSub=null);try{await this._cachePromise;const t=await this.cache.query(e);if(t&&t.length>0)for(const e of t)this.store.add(e)}catch(n){console.warn("[nostr-data] Failed to read incoming zap receipts from local Nostr IDB cache",n)}this._incomingZapsNetworkSub=this._requestContentWithProvenance(this.activeReadRelays,e,"[nostr-data] Error fetching incoming zap receipts:")}async loadActivityPhotos(t,e="home"){this._activityPhotosSince=t,this._activityPhotosMode=e,this._activityPhotosNetworkSub&&(this._activityPhotosNetworkSub.unsubscribe(),this._activityPhotosNetworkSub=null),"home"===e?this._loadFolloweePhotos(t):"explore"===e&&this._loadTrustedRelaysPhotos(t)}_loadFolloweePhotos(t){const e=this._contactPubkeys?Array.from(this._contactPubkeys):[];if(0===e.length)return void console.debug("[nostr-data] No contacts loaded yet, deferring followee photo load");const n=this._batchAuthorFilters(e,[360],t);console.debug("[nostr-data] Loading followee photos",{filterCount:n.length,pubkeyCount:e.length,since:t}),this._cachePromise.then(()=>this.cache.query(n)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read followee photos from local Nostr IDB cache",t)}),this._activityPhotosNetworkSub=this._requestContentWithProvenance(this.activeReadRelays,n,"[nostr-data] Error fetching followee photos:")}_loadTrustedRelaysPhotos(t){const e=[{kinds:[360],since:t}];console.debug("[nostr-data] Loading trusted relay photos",{since:t}),this._cachePromise.then(()=>this.cache.query(e)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read trusted relay photos from local Nostr IDB cache",t)}),this._activityPhotosNetworkSub=this._requestContentWithProvenance(this.activeReadRelays,e,"[nostr-data] Error fetching trusted relay photos:")}async _fetchEventsWithProvenance(t,e){const n=zj.completeOnAny(zj.completeAfterFirstRelay(5e3),zj.completeOnAllEose()),r=new Set,i=[];return new Promise(s=>{this.nostrRelay.pool.req(this.activeReadRelays,t).pipe(mB(n),Dk({first:3e4}),vk(t=>"EVENT"===t.type)).subscribe({next:t=>{this._recordProvenance(t.event.id,t.from),this.store.add(t.event),r.has(t.event.id)||(r.add(t.event.id),i.push(t.event))},error:t=>{console.error(e,t),s(i)},complete:()=>s(i)})})}async fetchActivityPhotos(t,e,n="home"){let r;if("home"===n){const n=this._contactPubkeys?Array.from(this._contactPubkeys):[];if(0===n.length)return{cacheEvents:[],networkEvents:Promise.resolve([])};r=this._batchAuthorFilters(n,[360],t,e)}else{if("explore"!==n)return{cacheEvents:[],networkEvents:Promise.resolve([])};{const n={kinds:[360],since:t};void 0!==e&&(n.until=e),r=[n]}}const i=new Set,s=[],o=await this._cachePromise.then(()=>this.cache.query(r)).catch(()=>[]);if(o)for(const a of o)i.has(a.id)||(i.add(a.id),s.push(a),this.store.add(a));return{cacheEvents:s,networkEvents:this._fetchEventsWithProvenance(r,"[nostr-data] Error fetching activity photos:").then(t=>{const e=[];for(const n of t)i.has(n.id)||(i.add(n.id),e.push(n));return e})}}async fetchIncomingZaps(t,e,n){if(!t)return{cacheEvents:[],networkEvents:Promise.resolve([])};const r={kinds:[9735],"#p":[t]};void 0!==e&&(r.since=e),void 0!==n&&(r.until=n);const i=[r],s=new Set,o=[],a=await this._cachePromise.then(()=>this.cache.query(i)).catch(()=>[]);if(a)for(const l of a)s.has(l.id)||(s.add(l.id),o.push(l),this.store.add(l));return{cacheEvents:o,networkEvents:this._fetchEventsWithProvenance(i,"[nostr-data] Error fetching incoming zap receipts:").then(t=>{const e=[];for(const n of t)s.has(n.id)||(s.add(n.id),e.push(n));return e})}}_batchAuthorFilters(t,e,n,r){const i=[];for(let s=0;st&&!this._profileModelSubs.has(t));for(const n of e){const t=this.store.model(NO,n).subscribe(t=>{this.profiles={...this.profiles,[n]:t}});this._profileModelSubs.set(n,t)}}getProfile(t){return this.profiles[t]}_clearProfileSubs(){for(const t of this._profileModelSubs.values())t.unsubscribe();this._profileModelSubs.clear(),this.profiles={}}async loadProfile(t){if(!t)return;this.profile=null,this.mailboxes=null,this.contacts=null,this._contactPubkeys=null,this.blossomServers=[],this._contactsPromise=new Promise(t=>{this._contactsResolver=t}),this._cleanupSubscriptions(),this._profileSub=this.store.model(NO,t).subscribe(t=>{this.profile=t}),this._mailboxesSub=this.store.model(bz,t).subscribe(t=>{this.mailboxes=t}),this._contactsSub=this.store.model(vz,t).subscribe(t=>{this.contacts=t,this._contactPubkeys=new Set(t.map(t=>t.pubkey)),this._contactsResolver?.(),this._contactsResolver=null,this._updatePlacePhotos(),null!==this._activityPhotosSince&&this.loadActivityPhotos(this._activityPhotosSince,this._activityPhotosMode)}),this._blossomSub=this.store.replaceable(10063,t).subscribe(t=>{if(t&&t.tags?this.blossomServers=t.tags.filter(t=>"server"===t[0]&&t[1]).map(t=>t[1]):this.blossomServers=[],this.blossomServers.length>0){const t=this.settings.nostrMediaServer;"https://blossom.nostr.build"!==t&&this.blossomServers.includes(t)||this.settings.update("nostrMediaServer",this.blossomServers[0])}});try{await this._cachePromise;const e=await this.cache.query([{authors:[t],kinds:[0,3,10002,10063]}]);if(e&&e.length>0)for(const t of e)this.store.add(t)}catch(n){console.warn("Failed to read from local Nostr IDB cache",n)}const e=Array.from(new Set([...hB,...this.activeWriteRelays]));this._requestSub=this.nostrRelay.pool.request(e,[{authors:[t],kinds:[0,3,10002,10063]}]).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("Error fetching profile events:",t)}})}whenContactsLoaded(t=5e3){return this._contactPubkeys?Promise.resolve():this._contactsPromise?Promise.race([this._contactsPromise,new Promise(e=>setTimeout(e,t))]):Promise.resolve()}get userDisplayName(){if(this.profile){if(this.profile.nip05)return this.profile.nip05;if(this.profile.displayName||this.profile.display_name)return this.profile.displayName||this.profile.display_name;if(this.profile.name)return this.profile.name}if(this.nostrAuth.pubkey)try{const t=fO(this.nostrAuth.pubkey);return`${t.slice(0,9)}...${t.slice(-4)}`}catch{return this.nostrAuth.pubkey}return"Not connected"}async clearCache(){await this._cachePromise,this.cache&&await this.cache.deleteAllEvents()}_scheduleZapReceiptRefresh(t){const e=new Set(t.map(t=>t.id));let n=!1;if(e.size!==this._lastPhotoIds.size)n=!0;else for(const r of e)if(!this._lastPhotoIds.has(r)){n=!0;break}n&&(this._lastPhotoIds=e,this._clearZapRefreshTimer(),this._zapRefreshTimer=setTimeout(()=>{this._zapRefreshTimer=null,this._refreshZapReceiptSubscription([...e])},100))}_clearZapRefreshTimer(){this._zapRefreshTimer&&(clearTimeout(this._zapRefreshTimer),this._zapRefreshTimer=null)}_refreshZapReceiptSubscription(t){if(this._cleanupZapReceiptSubs(),!t||0===t.length)return;const e=[];for(let n=0;n{this._updateZapReceipts(t)}),this._cachePromise.then(()=>this.cache.query(e)).then(t=>{if(t&&t.length>0)for(const e of t)this.store.add(e)}).catch(t=>{console.warn("[nostr-data] Failed to read zap receipts from cache",t)}),this._zapReceiptsNetworkSub=this.nostrRelay.pool.request(this.activeReadRelays,e).subscribe({next:t=>{this.store.add(t)},error:t=>{console.error("[nostr-data] Error fetching zap receipts:",t)}})}_updateZapReceipts(t){const e={};for(const n of t)for(const t of n.tags)"e"===t[0]&&t[1]&&(e[t[1]]||(e[t[1]]=[]),e[t[1]].push(n));this.zapReceipts={...this.zapReceipts,...e}}_cleanupZapReceiptSubs(){this._zapReceiptsSub&&(this._zapReceiptsSub.unsubscribe(),this._zapReceiptsSub=null),this._zapReceiptsNetworkSub&&(this._zapReceiptsNetworkSub.unsubscribe(),this._zapReceiptsNetworkSub=null)}_cleanupSubscriptions(){this._requestSub&&(this._requestSub.unsubscribe(),this._requestSub=null),this._profileSub&&(this._profileSub.unsubscribe(),this._profileSub=null),this._mailboxesSub&&(this._mailboxesSub.unsubscribe(),this._mailboxesSub=null),this._contactsSub&&(this._contactsSub.unsubscribe(),this._contactsSub=null,this._contactPubkeys=null),this._blossomSub&&(this._blossomSub.unsubscribe(),this._blossomSub=null),this._photosSub&&(this._photosSub.unsubscribe(),this._photosSub=null),this._contributionsSub&&(this._contributionsSub.unsubscribe(),this._contributionsSub=null),this._cleanupZapReceiptSubs(),this._clearZapRefreshTimer(),this._incomingZapsNetworkSub&&(this._incomingZapsNetworkSub.unsubscribe(),this._incomingZapsNetworkSub=null),this._activityPhotosNetworkSub&&(this._activityPhotosNetworkSub.unsubscribe(),this._activityPhotosNetworkSub=null)}willDestroy(){super.willDestroy(...arguments),this._cleanupSubscriptions(),this._clearProfileSubs(),this._deletionsSub&&(this._deletionsSub.unsubscribe(),this._deletionsSub=null),this._stopPersisting&&this._stopPersisting(),this.cache&&this.cache.stop()}},vB=a({default:()=>bB}),bB=class extends fp{pool=new Jj({enablePing:!0});async publish(t,e){if(!t||0===t.length)throw new Error("No relays provided to publish the event.");const n=await this.pool.publish(t,e);if(!n.some(t=>t.ok))throw new Error(`Failed to publish event. Responses: ${JSON.stringify(n)}`);return n}};qN.add(Tz),qN.add(Rz),qN.add(Lz),QO(30078,"nip44");var wB=class t extends oz{static create(e,n,r){return new t(t=>t(sz(OT.ZapRequest))).eventTarget(e).amount(n).relays(r)}static profile(e,n,r,i){return new t(t=>t(sz(OT.ZapRequest))).amount(n).relays(r).profileTarget(e,i)}static event(e,n,r,i){return new t(t=>t(sz(OT.ZapRequest))).amount(n).relays(r).eventTarget(e,i)}relays(t){return this.chain((e=t,JN(["relays",...e],!0)));var e}eventTarget(t,e){return this.chain(function(t,e){return QN(HN(XN(["k",String(t.kind)],!0),function(t,e,n=!0){return async r=>{const i="string"==typeof t?{id:t}:rO(t)?{id:(s=t).id,kind:s.kind,author:s.pubkey,relays:void 0}:t;var s;if(!i.relays?.[0]&&e){const t="string"==typeof e?e:await e(i.id);t&&(i.relays=[t])}return n&&(r=r.filter(t=>!("e"===t[0]&&t[1]===i.id))),[...r,RN(i)]}}(t,e,!0),iO(t.kind)?function(t,e,n=!0){const r="string"==typeof t?SO(t):rO(t)?jA((i=t).kind)||DA(i.kind)?{identifier:cO(i),kind:i.kind,pubkey:i.pubkey,relays:void 0}:null:t;var i;if(!r)throw new Error("Unable to resolve address pointer");return async i=>{const s="string"==typeof t?t:PO(r);if(!r.relays?.[0]&&e){const t="string"==typeof e?e:await e(r.pubkey);t&&(r.relays=[t])}return n&&(i=i.filter(t=>!("a"===t[0]&&t[1]===s))),[...i,EN(r)]}}(t,e,!0):t=>t,YN({pubkey:t.pubkey},e,!0)))}(t,e))}profileTarget(t,e){return this.chain(function(t,e){return QN(YN(t,e,!0))}(t,e))}amount(t){return this.chain(function(t){return JN(["amount",t.toString()],!0)}(t))}lnurl(t){return this.chain(function(t){return JN(["lnurl",t],!0)}(t))}message(t){return this.content(t)}},_B=a({default:()=>kB}),xB=["wss://relay.damus.io","wss://nos.lol","wss://relay.primal.net"],CB=["wss://relay.primal.net","wss://nos.lol","wss://relay.damus.io"],kB=class extends fp{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"recipientRelays",[Wr],function(){return null})}#Rt=void pF(this,"recipientRelays");getLightningAddress(t){const e=this.nostrData.getProfile(t);return e?.lud16||e?.lud06||null}async resolveLnurl(t){const e=(n=t).includes("@")?function(t){let[e,n]=t.split("@");if(e&&n)return new URL(`https://${n}/.well-known/lnurlp/${e}`)}(n):function(t){try{const{words:e,prefix:n}=nF.decode(t);if("lnurl"!==n)return;const r=rF.decode(nF.fromWords(e));return new URL(r)}catch(s7){}}(n);var n;if(!e)throw new Error("Invalid lightning address or LNURL");const r=await fetch(e.toString());if(!r.ok)throw new Error(`Failed to fetch LNURL pay endpoint: ${r.statusText}`);const i=await r.json();if(!i.callback)throw new Error("Invalid LNURL pay endpoint: missing callback");if(!i.allowsNostr)throw new Error("This lightning address does not support Nostr zaps");return{callback:i.callback,minSendable:i.minSendable??1e3,maxSendable:i.maxSendable??1e11,allowsNostr:!!i.allowsNostr,nostrPubkey:i.nostrPubkey}}async loadRecipientRelays(t){if(!t)return this._fallbackRelays();const e=await this._getMailboxesFromStore(t);if(e?.length)return this.recipientRelays=e,e;const n=await this._fetchMailboxesFromNetwork(t);if(n?.length)return this.recipientRelays=n,n;const r=this._fallbackRelays();return this.recipientRelays=r,r}async _getMailboxesFromStore(t){try{const e=await pN(this.nostrData.store.replaceable(10002,t).pipe(Dk(500),UC(()=>fk(null))));if(e)return BN(e)}catch{}return null}async _fetchMailboxesFromNetwork(t){const e=this.nostrData.activeReadRelays?.length?this.nostrData.activeReadRelays:CB;try{const n=await pN(this.nostrRelay.pool.request(e,[{kinds:[10002],authors:[t]}]).pipe(Dk(1e4),UC(()=>fk(null))));if(n)return this.nostrData.store.add(n),BN(n)}catch{}return null}_fallbackRelays(){const t=this.nostrData.mailboxReadRelays||[];return[...new Set([...t,...xB])].slice(0,5)}getZapRelays(){return this.recipientRelays?.length?this.recipientRelays.slice(0,5):this._fallbackRelays()}async createZapRequest(t,e,n){const r=this.nostrData.store.getEvent(t.eventId);if(!r)throw new Error("Photo event not found in store");const i=this.getZapRelays(),s=this.nostrAuth.signer;if(!s)throw new Error("Nostr signer not available. Please connect Nostr.");return await wB.event(r,e,i).message(n||"").as(s).sign()}async fetchInvoice(t,e,n){const r=new URL(t);return r.searchParams.set("amount",n.toString()),r.searchParams.set("nostr",JSON.stringify(e)),await async function(t){const{pr:e}=await fetch(t).then(t=>t.json()),n=t.searchParams.get("amount");if(!n)throw new Error("Missing amount");if(e){if(WO(e).amount!==parseInt(n))throw new Error("Incorrect amount");return e}throw new Error("Failed to get invoice")}(r)}parseInvoice(t){return WO(t)}subscribeForZapReceipt(t,e,n){const r=e.eventId,i=this.getZapRelays(),s=Math.floor(Date.now()/1e3)-10;return this.nostrRelay.pool.subscription(i,{kinds:[9735],"#e":[r],since:s}).subscribe({next:e=>{this.nostrData.store.add(e);const r=e.tags.find(t=>"description"===t[0]);if(r)try{JSON.parse(r[1]).id===t.id&&n(e)}catch{}},error:t=>{console.error("[nostr-zap] Receipt subscription error:",t)}})}hasWebLN(){return"undefined"!=typeof window&&void 0!==window.webln}async payWithWebln(t){if(!this.hasWebLN())throw new Error("WebLN not available");return await window.webln.enable(),await window.webln.sendPayment(t)}async zap(t,e,n){const r=t?.pubkey;if(!r)throw new Error("Photo has no pubkey");this.recipientRelays||await this.loadRecipientRelays(r);const i=this.getLightningAddress(r);if(!i)throw new Error("This user has no lightning address set in their profile");const s=await this.resolveLnurl(i);if(es.maxSendable)throw new Error(`Amount must be between ${s.minSendable} and ${s.maxSendable} millisats`);const o=await this.createZapRequest(t,e,n);return{invoice:await this.fetchInvoice(s.callback,o,e),zapRequest:o}}},SB=class{},EB=class extends SB{constructor(t){super(),this.message=t}},RB=class extends SB{},LB=class extends SB{},TB=class extends SB{},PB=class extends SB{},IB=class extends SB{},MB=class extends SB{},AB={invalid_request:class extends SB{},invalid_grant:class extends IB{},unauthorized_client:class extends PB{},access_denied:class extends PB{},unsupported_response_type:class extends PB{},invalid_scope:class extends SB{},server_error:class extends PB{},temporarily_unavailable:class extends PB{},invalid_client:class extends IB{},unsupported_grant_type:class extends IB{},invalid_token:class extends SB{}},OB=t=>{const e=AB[t];return e?new e:new EB(t)},NB="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",zB=t=>{const e=t.slice(7).replace(/"/g,"").split(",").map(t=>{const[e,n]=t.trim().split("=");return{[e]:n}}).reduce((t,e)=>({...t,...e}),{});return{realm:e.realm,error:e.error,errorDescription:e.error_description,errorUri:e.error_uri}},FB=t=>{let e=btoa(t);return e=e.replace(/\+/g,"-"),e=e.replace(/\//g,"_"),e=e.replace(/=/g,""),e},DB=(t,e)=>{let n=e.split("?");if(n.length<2)return;n=n[1].split("#");const r=n[0].split("&");for(const i of r){const[e,n]=i.split("=");if(e===t)return decodeURIComponent(n)}},jB=t=>Object.entries(t).map(([t,e])=>`${t}=${encodeURIComponent(e)}`).join("&"),UB="WWW-Authenticate",BB=class{constructor(t,e){this.state={},this.config=t,this.storage=e||qB,this.ready=new Promise(t=>this.setReady=t),this.recoverState()}async reset(){this.state={},await this.saveState(),this.authCodeForAccessTokenPromise=void 0,this.refreshTokenForAccessTokenPromise=void 0}async requestAuthorizationCode(t){const{clientId:e,extraAuthorizationParams:n,redirectUrl:r,scopes:i}=this.config,{codeChallenge:s,codeVerifier:o}=await(async()=>{const t=new Uint32Array(96);crypto.getRandomValues(t);const e=FB(Array.from(t).map(t=>NB[t%66]).join("")),n=await crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e)),r=new Uint8Array(n);let i="";const s=r.byteLength;for(let o=0;o{const t=new Uint32Array(32);return crypto.getRandomValues(t),Array.from(t).map(t=>NB[t%66]).join("")})();this.state={...this.state,codeChallenge:s,codeVerifier:o,stateQueryParam:a},await this.saveState();let l=this.config.authorizationUrl+`?response_type=code&client_id=${encodeURIComponent(e)}&redirect_uri=${encodeURIComponent(r)}&state=${a}&code_challenge=${encodeURIComponent(s)}&code_challenge_method=S256`;if(i&&(l+=`&scope=${encodeURIComponent(i.join(" "))}`),n||t){const e={...n,...t};l+=`&${jB(e)}`}location.replace(l)}isReturningFromAuthServer(){return!!DB("code",location.href)}async receiveCode(){await this.ready;const t=DB("error",location.href);if(t)throw OB(t);if(DB("state",location.href)!==this.state.stateQueryParam)throw console.warn('"state" parameter doesn\'t match the one sent! Possible malicious activity.'),new TB;if(this.state.authorizationCode=DB("code",location.href),!this.state.authorizationCode)throw new LB;this.saveState()}async getTokens(t){const{accessToken:e,authorizationCode:n,idToken:r,refreshToken:i,scopes:s}=this.state;if(n)return this.exchangeAuthCodeForAccessToken(t);if(!e)throw new RB;if(this.isAccessTokenExpired()){if(this.config.onAccessTokenExpiry)return this.config.onAccessTokenExpiry();throw new MB}return Promise.resolve({accessToken:e,idToken:r,refreshToken:i,scopes:s})}async exchangeAuthCodeForAccessToken(t){this.authCodeForAccessTokenPromise||(this.authCodeForAccessTokenPromise=this.fetchAccessTokenUsingCode(t));const e=await this.authCodeForAccessTokenPromise;return this.authCodeForAccessTokenPromise=void 0,this.state.authorizationCode=void 0,this.setTokens(e)}async exchangeRefreshTokenForAccessToken(){this.refreshTokenForAccessTokenPromise||(this.refreshTokenForAccessTokenPromise=this.fetchAccessTokenUsingRefreshToken());const t=await this.refreshTokenForAccessTokenPromise;return this.refreshTokenForAccessTokenPromise=void 0,this.setTokens(t)}makeRetryFetchFunction(t){return async(e,...n)=>{const r=await t(e,...n);if(401===r.status){const i=r.headers.get(UB.toLowerCase());if(i&&"invalid_token"===zB(i).error)return await this.exchangeRefreshTokenForAccessToken(),e=await this.requestInterceptor(e),t(e,...n)}return r}}decorateFetchWithInterceptors(t){return async(e,...n)=>{"string"==typeof e&&(e=new Request(e)),e=await this.requestInterceptor(e);const r=await t(e,...n);return this.responseInterceptor(r)}}async requestInterceptor(t){const e=await this.getTokens();return t.headers.set("Authorization",`Bearer ${e.accessToken}`),t}async responseInterceptor(t){if(401!==t.status)return t;const e=t.headers.get(UB.toLowerCase());if(e){const t=zB(e).error;throw"invalid_grant"===t&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),"invalid_token"===t&&this.config.onInvalidToken&&await this.config.onInvalidToken(),OB(t)}return t}getGrantedScopes(){return this.state.scopes}isAuthorized(){return!!this.state.accessToken}isAccessTokenExpired(){const{accessTokenExpiry:t}=this.state;return Boolean(t&&new Date>=new Date(t))}async fetchAccessTokenUsingCode(t){const{authorizationCode:e,codeVerifier:n=""}=this.state,{clientId:r,redirectUrl:i}=this.config;n?e||console.warn("No authorization grant code is being passed."):console.warn("No code verifier is being sent.");const s=this.config.tokenUrl,o={grant_type:"authorization_code",code:e,redirect_uri:i,client_id:r,code_verifier:n,...t},a=new URLSearchParams(o).toString();return this.makeTokenRequest(s,a)}fetchAccessTokenUsingRefreshToken(){const{extraRefreshParams:t,clientId:e,tokenUrl:n}=this.config,{refreshToken:r}=this.state;r||console.warn("No refresh token is present.");const i=n;let s=`grant_type=refresh_token&refresh_token=${r}&client_id=${e}`;return t&&(s=`${s}&${jB(t)}`),this.makeTokenRequest(i,s)}async makeTokenRequest(t,e){const n=await fetch(t,{method:"POST",body:e,headers:{"Content-Type":"application/x-www-form-urlencoded"}}),r=await n.json();if(!n.ok)throw"invalid_grant"===r.error&&this.config.onInvalidGrant&&await this.config.onInvalidGrant(),OB(r.error);const{access_token:i,expires_in:s,id_token:o,refresh_token:a,scope:l}=r;return{accessToken:i,expiresIn:s,idToken:o,refreshToken:a,scope:l}}async setTokens(t){const{accessToken:e,expiresIn:n,idToken:r,refreshToken:i,scope:s}=t;return this.state.accessToken=e,n&&(this.state.accessTokenExpiry=new Date(Date.now()+1e3*parseInt(n,10)).toString()),r&&(this.state.idToken=r),i&&(this.state.refreshToken=i),s&&(this.state.scopes=s.split(" ")),await this.saveState(),{accessToken:this.state.accessToken,idToken:this.state.idToken,refreshToken:this.state.refreshToken,scopes:s?this.state.scopes:[]}}async recoverState(){this.state=JSON.parse(await this.storage.loadState()||"{}"),this.setReady(),this.config.storeRefreshToken||(this.state.refreshToken=this.refreshToken)}async saveState(){this.refreshToken=this.state.refreshToken;const t={...this.state};this.config.storeRefreshToken||delete t.refreshToken,await this.storage.saveState(JSON.stringify(t))}},$B="oauth2authcodepkce-state",qB={saveState:t=>localStorage.setItem($B,t),loadState:()=>localStorage.getItem($B)},VB=a({default:()=>HB}),WB=class{saveState(t){localStorage.setItem("marco:osm_auth_state",t)}loadState(){const t=localStorage.getItem("marco:osm_auth_state");if(!t)return!1;try{return JSON.parse(t),t}catch(e){return console.warn("Failed to parse OSM auth state",e),!1}}},HB=class extends fp{static{hF(this.prototype,"isConnected",[Wr],function(){return!1})}#Lt=void pF(this,"isConnected");static{hF(this.prototype,"userDisplayName",[Wr],function(){return null})}#Tt=void pF(this,"userDisplayName");oauthClient;constructor(){super(...arguments);const t="https://www.openstreetmap.org",e=`${window.location.origin}/oauth/osm/callback`;this.oauthClient=new BB({scopes:["read_prefs","write_api"],authorizationUrl:`${t}/oauth2/authorize`,tokenUrl:`${t}/oauth2/token`,clientId:"jIn8l5mT8FZOGYiIYXG1Yvj_2FZKB9TJ1edZwOJPsRU",redirectUrl:e,storeRefreshToken:!0,onAccessTokenExpiry(){return this.exchangeRefreshTokenForAccessToken()}},new WB),this.restoreSession()}async restoreSession(){try{await this.oauthClient.ready}catch(t){console.warn("oauthClient.ready failed",t)}if(await this.oauthClient.isAuthorized()){this.isConnected=!0;const t=localStorage.getItem("marco:osm_user_display_name");t?this.userDisplayName=t:await this.fetchUserInfo()}}async login(){await this.oauthClient.requestAuthorizationCode()}async handleCallback(){await this.oauthClient.receiveCode(),await this.oauthClient.getTokens(),this.isConnected=!0,await this.fetchUserInfo()}async logout(){await this.oauthClient.reset(),this.isConnected=!1,this.userDisplayName=null,localStorage.removeItem("marco:osm_user_display_name")}async fetchUserInfo(){try{const t=await this.oauthClient.getTokens(),e=await fetch("https://api.openstreetmap.org/api/0.6/user/details.json",{headers:{Authorization:`Bearer ${t.accessToken}`}});if(e.ok){const t=await e.json();console.debug("OSM data:",t);const n=t.user.display_name;this.userDisplayName=n,localStorage.setItem("marco:osm_user_display_name",n)}else console.error("Failed to fetch OSM user info",e.status)}catch(t){console.error("Error fetching OSM user info",t)}}},GB=a({capitalize:()=>KB,formatRelativeDate:()=>YB,humanizeOsmTag:()=>ZB});function ZB(t){return"string"==typeof t&&t?t.replace(/[_-]/g," ").replace(/\w\S*/g,t=>t.replace(/^\w/,t=>t.toUpperCase())):""}function KB(t){return"string"==typeof t&&t?t.charAt(0).toUpperCase()+t.slice(1):""}function YB(t){if(!t)return"";const e=new Date(1e3*t),n=new Date,r=n-e,i=Math.floor(r/6e4),s=Math.floor(i/60),o=Math.floor(s/24);if(i<1)return"just now";if(i<60)return`${i} min ago`;if(s<24)return`${s} hr ago`;if(o<7)return`${o} day${1===o?"":"s"} ago`;const a=e.getFullYear()===n.getFullYear();return e.toLocaleDateString(void 0,{month:"short",day:"numeric",...a?{}:{year:"numeric"}})}var XB=a({getLocalizedName:()=>JB,getPlaceType:()=>t$});function JB(t,e="Untitled Place"){if(!t)return e;const n=navigator.languages||[navigator.language||"en"];for(const r of n){if(!r)continue;const e=`name:${r.split("-")[0]}`;if(t[e])return t[e]}return t.name?t.name:t["name:en"]?t["name:en"]:e}var QB=["craft","amenity","shop","tourism","historic","leisure","office","aeroway","building","landuse","public_transport","highway","waterway","natural","place","border_type","admin_title"];function t$(t){if(!t)return null;let e=null;for(const n of QB){const r=t[n];if(r){if("yes"===r){e||(e=n);continue}return ZB(r)}}return e?ZB(e):null}var e$=a({POI_CATEGORIES:()=>n$,getCategoryById:()=>r$}),n$=[{id:"restaurants",label:"Restaurants",icon:"fork-and-knife",filter:['["amenity"~"^(restaurant|fast_food|food_court|pub|cafe)$"]["cuisine"!~"coffee"]'],types:["node","way"]},{id:"coffee",label:"Coffee",icon:"cup-and-saucer",filter:['["amenity"~"^(cafe|ice_cream)$"]','["shop"~"^(coffee|tea)$"]','["cuisine"~"coffee_shop"]'],types:["node","way"]},{id:"groceries",label:"Groceries",icon:"shopping-basket",filter:['["shop"~"^(supermarket|convenience|grocery|greengrocer|bakery|butcher|deli|farm|seafood)$"]'],types:["node","way"]},{id:"things-to-do",label:"Things to do",icon:"feather-camera",filter:['["tourism"~"^(museum|gallery|attraction|viewpoint|zoo|theme_park|aquarium|artwork|information)$"]','["amenity"~"^(cinema|theatre|arts_centre|planetarium)$"]','["leisure"~"^(sports_centre|stadium|water_park|golf_course|marina)$"]','["historic"]','["shop"="flea_market"]'],types:["node","way","relation"]},{id:"accommodation",label:"Hotels",icon:"person-sleeping-in-bed",filter:['["tourism"~"^(hotel|hostel|motel|chalet|guest_house)$"]','["leisure"="resort"]'],types:["node","way","relation"]}];function r$(t){return n$.find(e=>e.id===t)}var i$,s$=a({default:()=>o$}),o$=class t extends fp{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"localForage",[pp])}#mt=void pF(this,"localForage");controller=null;cachedResults=null;lastQueryKey=null;cachedPlaces=new Map;static STORE_NAME="osm-cache";static CACHE_TTL_MS=6048e5;static IN_MEMORY_TTL_MS=1e4;_buildCacheKey(t,e){return`${t}:${e}`}async _readLocalCache(e,n){const r=this._buildCacheKey(e,n);try{const e=await this.localForage.get(t.STORE_NAME,r);if(!e)return null;const n="string"==typeof e?JSON.parse(e):e;return!n||"number"!=typeof n.timestamp||Date.now()-n.timestamp>t.CACHE_TTL_MS?(await this.localForage.remove(t.STORE_NAME,r),null):n.data}catch{try{await this.localForage.remove(t.STORE_NAME,r)}catch{}return null}}async _writeLocalCache(e,n,r){if(!r)return;const i=this._buildCacheKey(e,n);try{await this.localForage.set(t.STORE_NAME,i,{data:r,timestamp:Date.now()})}catch(s){console.debug("[osm] Failed to write IndexedDB cache entry",s)}}async getCachedOsmObject(e,n){if(!e||!n)return null;const r=this._buildCacheKey(e,n),i=this.cachedPlaces.get(r);return i&&Date.now()-i.timestamp{this.cachedPlaces.delete(e)},t.IN_MEMORY_TTL_MS),this._writeLocalCache(n,r,i)):console.debug(`[osm] Skipping cache write for ${e}: data has no title`)}cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}async getNearbyPois(t,e,n=50){const r=`${t},${e},${n}`;if(this.lastQueryKey===r&&this.cachedResults)return console.debug("Returning cached Overpass results for:",r),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=[`~"^(${["amenity","shop","tourism","historic","leisure","office","craft","building","landuse","public_transport","aeroway"].join("|")})$"~".*"`],o=Object.entries({public_transport:["stop_area","platform"]}).map(([t,e])=>`["${t}"!~"^(${e.join("|")})$"]`).join(""),a=`\n[out:json][timeout:25];\n(\n node(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n way(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n relation(around:${n},${t},${e})\n [${s}]${o}[~"^name"~"."];\n);\nout center;\n `.trim(),l=`${this.settings.overpassApi}?data=${encodeURIComponent(a)}`;try{const t=await this.fetchWithRetry(l,{signal:i});if(!t.ok)throw new Error("Overpass request failed");const e=(await t.json()).elements.map(this.normalizePoi);return this.lastQueryKey=r,this.cachedResults=e,e}catch(c){if("AbortError"===c.name)return console.debug("Overpass request aborted"),[];throw c}}async getCategoryPois(t,e,n,r){const i=r$(e);if(!i||!t)return[];const s=n&&r?`cat:${e}:${n}:${r}`:null;if(s&&this.lastQueryKey===s&&this.cachedResults)return console.debug("Returning cached category results for:",s),this.cachedResults;this.controller&&this.controller.abort(),this.controller=new AbortController;const o=this.controller.signal,{minLat:a,minLon:l,maxLat:c,maxLon:u}=t,h=[],d=i.types||["node","way","relation"];i.filter.forEach(t=>{d.forEach(e=>{h.push(`${e}${t}[~"^name"~"."];`)})});const p=`\n[out:json][timeout:25][bbox:${a},${l},${c},${u}];\n(\n ${h.join("\n ")}\n);\nout center;\n `.trim(),f=`${this.settings.overpassApi}?data=${encodeURIComponent(p)}`;try{const t=await this.fetchWithRetry(f,{signal:o});if(!t.ok)throw new Error("Overpass request failed");const e=(await t.json()).elements.map(this.normalizePoi);return s&&(this.lastQueryKey=s,this.cachedResults=e),e}catch(g){if("AbortError"===g.name)return console.debug("Category search aborted"),[];throw console.error("Category search failed",g),g}}normalizePoi(t){const e=t.tags||{},n=t$(e)||"Point of Interest";return{title:JB(e),lat:t.lat||t.center?.lat,lon:t.lon||t.center?.lon,url:e.website,osmId:String(t.id),osmType:t.type,osmTags:e,description:e.description,source:"osm",type:n}}async fetchWithRetry(t,e={},n=3){try{const r=await fetch(t,e);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Overpass request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Overpass request... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1);throw r}}async getPoiById(t,e=null){let n;n="node"===e?`[out:json][timeout:25];node(${t});out center;`:"way"===e?`[out:json][timeout:25];way(${t});out center;`:`\n[out:json][timeout:25];\n(\n node(${t});\n way(${t});\n);\nout center;\n `.trim();const r=`${this.settings.overpassApi}?data=${encodeURIComponent(n)}`,i=await this.fetchWithRetry(r);if(!i.ok)throw new Error("Overpass request failed");const s=await i.json();return s.elements[0]?this.normalizePoi(s.elements[0]):null}async fetchOsmObject(e,n,{forceFresh:r=!1}={}){if(!e||!n)return null;const i=this._buildCacheKey(n,e);if(r)return this._fetchAndCacheOsmObject(e,n,i);const s=this.cachedPlaces.get(i);if(s&&Date.now()-s.timestamp{console.debug("[osm] Background refresh failed for",i,t)}),o):this._fetchAndCacheOsmObject(e,n,i)}async _refreshOsmObject(t,e,n){const r=await this._fetchOsmObjectFromApi(t,e);return r&&this._storeInMemoryAndLocalStorage(n,e,t,r),r}async _fetchAndCacheOsmObject(t,e,n){const r=await this._fetchOsmObjectFromApi(t,e);return r&&this._storeInMemoryAndLocalStorage(n,e,t,r),r}async _fetchOsmObjectFromApi(t,e){let n;if("node"===e)n=`https://www.openstreetmap.org/api/0.6/node/${t}.json`;else if("way"===e)n=`https://www.openstreetmap.org/api/0.6/way/${t}/full.json`;else{if("relation"!==e)return console.error("Unknown OSM type:",e),null;n=`https://www.openstreetmap.org/api/0.6/relation/${t}/full.json`}try{const r=await this.fetchWithRetry(n);if(!r.ok){if(410===r.status)return console.warn("OSM object has been deleted"),null;throw new Error(`OSM API request failed: ${r.status}`)}const i=await r.json();return this.normalizeOsmApiData(i.elements,t,e)}catch(r){return console.error("Failed to fetch OSM object:",r),null}}async fetchOsmObjectsBatch(t){const e=new Map;if(!t||0===t.length)return e;const n=[];for(const{osmType:s,osmId:o}of t){if(!s||!o)continue;const t=this._buildCacheKey(s,o),r=await this.getCachedOsmObject(s,o);r?e.set(t,r):n.push({osmType:s,osmId:o,cacheKey:t})}if(0===n.length)return e;const r=new Map;for(const s of n)r.has(s.osmType)||r.set(s.osmType,[]),r.get(s.osmType).push(s);const i=[];for(const[s,o]of r)i.push(this._fetchOsmObjectsByType(s,o,e));return await Promise.allSettled(i),e}async _fetchOsmObjectsByType(t,e,n){for(let i=0;it.osmId).join(","),a="way"===t?"ways":t+"s",l=`https://www.openstreetmap.org/api/0.6/${a}.json?${a}=${o}`;try{const e=await this.fetchWithRetry(l);if(!e.ok){console.warn(`[osm] Batch fetch failed for ${t} (${e.status})`,o);continue}const r=await e.json();for(const i of s){const e=this.normalizeOsmApiData(r.elements,i.osmId,t);e&&(n.set(i.cacheKey,e),null!=e.lat&&null!=e.lon&&e.title&&this._storeInMemoryAndLocalStorage(i.cacheKey,t,i.osmId,e))}}catch(r){console.error(`[osm] Batch fetch error for ${t}:`,r)}}}normalizeOsmApiData(t,e,n){if(!t||0===t.length)return null;let r=t.find(t=>String(t.id)===String(e)&&t.type===n);if(!r)return null;let i=r;if("relation"===n&&r.members){const e=r.members.find(t=>"label"===t.role&&"node"===t.type),n=r.members.find(t=>"admin_centre"===t.role&&"node"===t.type),s=e||n;if(s){const e=t.find(t=>String(t.id)===String(s.ref)&&"node"===t.type);e&&(i=e)}}let s=i.lat,o=i.lon,a=null,l=null;if("way"===n&&r.nodes){const e=new Map;t.forEach(t=>{"node"===t.type&&e.set(t.id,[t.lon,t.lat])});const n=r.nodes.map(t=>e.get(t)).filter(Boolean);if(n.length>0){if(i===r){const t=n.reduce((t,e)=>t+e[1],0),e=n.reduce((t,e)=>t+e[0],0);s=t/n.length,o=e/n.length}const t=n.map(t=>t[1]),e=n.map(t=>t[0]);if(a={minLat:Math.min(...t),maxLat:Math.max(...t),minLon:Math.min(...e),maxLon:Math.max(...e)},n.length>1){const t=n[0],e=n[n.length-1];l=t[0]===e[0]&&t[1]===e[1]?{type:"Polygon",coordinates:[n]}:{type:"LineString",coordinates:n}}}}else if("relation"===n&&r.members){const e=[],n=new Map;t.forEach(t=>{"node"===t.type&&n.set(t.id,t)});const c=[];if(r.members.forEach(r=>{if("node"===r.type){const t=n.get(r.ref);t&&e.push(t)}else if("way"===r.type){const i=t.find(t=>"way"===t.type&&t.id===r.ref);if(i&&i.nodes){const t=[];i.nodes.forEach(r=>{const i=n.get(r);i&&(e.push(i),t.push([i.lon,i.lat]))}),t.length>1&&c.push(t)}}}),e.length>0){if(i===r){const t=e.reduce((t,e)=>t+e.lat,0),n=e.reduce((t,e)=>t+e.lon,0);s=t/e.length,o=n/e.length}const t=e.map(t=>t.lat),n=e.map(t=>t.lon);a={minLat:Math.min(...t),maxLat:Math.max(...t),minLon:Math.min(...n),maxLon:Math.max(...n)}}c.length>0&&(l={type:"MultiLineString",coordinates:c})}const c=i.tags||{},u=t$(c)||"Point of Interest";return{title:JB(c),lat:s,lon:o,bbox:a,geojson:l,url:c.website,osmId:String(i.id),osmType:i.type,osmTags:c,description:c.description,source:"osm",type:u}}},a$=a({default:()=>l$}),l$=class extends fp{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");controller=null;cancelAll(){this.controller&&(this.controller.abort(),this.controller=null)}get baseUrl(){return this.settings.photonApi}async search(t,e,n,r=10){if(!t||t.length<2)return[];this.controller&&this.controller.abort(),this.controller=new AbortController;const i=this.controller.signal,s=new URLSearchParams({q:t,limit:String(r)});e&&n&&(s.append("lat",parseFloat(e).toFixed(4)),s.append("lon",parseFloat(n).toFixed(4)));const o=`${this.baseUrl}?${s.toString()}`;try{const t=await this.fetchWithRetry(o,{signal:i});if(!t.ok)throw new Error(`Photon request failed with status ${t.status}`);const e=await t.json();return e.features?e.features.map(t=>this.normalizeFeature(t)):[]}catch(a){return"AbortError"===a.name||console.error("Photon search error:",a),[]}}normalizeFeature(t){const e=t.properties||{},n=(t.geometry||{}).coordinates||[],r=n[0],i=n[1],s=[];e.street&&s.push(e.housenumber?`${e.street} ${e.housenumber}`:e.street),e.city&&e.city!==e.name&&s.push(e.city),e.state&&e.state!==e.city&&s.push(e.state),e.country&&s.push(e.country);const o=s.join(", "),a=e.name||o||"Unknown Place",l={...e};e.osm_key&&e.osm_value&&(l[e.osm_key]=e.osm_value);const c=t$(l)||ZB(e.osm_value);return{title:a,lat:i,lon:r,osmId:e.osm_id,osmType:{N:"node",W:"way",R:"relation"}[e.osm_type]||e.osm_type,osmTags:l,description:e.name?o:s.slice(1).join(", "),source:"photon",type:c}}async fetchWithRetry(t,e={},n=3){try{const r=await fetch(t,e);return!r.ok&&n>0&&[502,503,504,429].includes(r.status)?(console.warn(`Photon request failed with ${r.status}. Retrying... (${n} left)`),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1)):r}catch(r){if(n>0&&"AbortError"!==r.name)return console.debug(`Retrying Photon request... (${n} left)`,r),await new Promise(t=>setTimeout(t,1e3)),this.fetchWithRetry(t,e,n-1);throw r}}},c$=a({default:()=>h$}),u$="place-name-cache",h$=class extends fp{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"localForage",[pp])}#mt=void pF(this,"localForage");_pendingBatchPromise=null;_lastBatchSignature="";_unresolvable=new Set;resolveBookmark(t){return this.storage.findPlaceById(t)?.title||null}async _resolveCachedName(t){return await this.localForage.get(u$,t.placeIdentifier)||(await this.osm.getCachedOsmObject(t.osmType,t.osmId))?.title||null}async resolveInBackground(t){const e=t.filter(t=>t.placeNameLoading);if(0===e.length)return;await Promise.all(e.map(async t=>{const e=await this._resolveCachedName(t);e&&(t.placeName=e,t.placeNameLoading=!1)}));for(const i of t)i.placeNameLoading&&this._isUnresolvable(i)&&(i.placeName=this._fallbackName(i),i.placeNameLoading=!1);const n=t.filter(t=>t.placeNameLoading&&!this._isUnresolvable(t));if(0!==n.length)try{const e=await this._getOrCreateBatch(n);for(const n of t)n.placeNameLoading&&(e.has(n.placeIdentifier)?(n.placeName=e.get(n.placeIdentifier),n.placeNameLoading=!1):(this._unresolvable.add(n.placeIdentifier),n.placeName=this._fallbackName(n),n.placeNameLoading=!1))}catch(r){console.error("[place-name-resolver] Batch resolution failed",r);for(const e of t)e.placeNameLoading&&(this._unresolvable.add(e.placeIdentifier),e.placeName=this._fallbackName(e),e.placeNameLoading=!1)}}_isUnresolvable(t){return this._unresolvable.has(t.placeIdentifier)}_getOrCreateBatch(t){const e=t.map(t=>t.placeIdentifier).sort().join("|");return e===this._lastBatchSignature&&this._pendingBatchPromise||(this._lastBatchSignature=e,this._pendingBatchPromise=this._batchResolveNames(t).finally(()=>{this._pendingBatchPromise=null})),this._pendingBatchPromise}_fallbackName(t){return`OSM ${t.osmType} ${t.osmId}`}async _batchResolveNames(t){const e=new Map,n=[];for(const s of t){const t=await this._resolveCachedName(s);t?e.set(s.placeIdentifier,t):n.push({osmType:s.osmType,osmId:s.osmId})}if(0===n.length)return e;const r=await this.osm.fetchOsmObjectsBatch(n),i=[];for(const s of t){if(e.has(s.placeIdentifier))continue;const t=`${s.osmType}:${s.osmId}`,n=r.get(t);n?.title&&(e.set(s.placeIdentifier,n.title),i.push(this.localForage.set(u$,s.placeIdentifier,n.title)))}return await Promise.all(i),e}reset(){this._unresolvable.clear(),this._lastBatchSignature="",this._pendingBatchPromise=null}},d$=a({default:()=>f$}),p$={overpassApi:"https://overpass-api.de/api/interpreter",mapKinetic:!0,photonApi:"https://photon.komoot.io/api/",showQuickSearchButtons:!0,nostrPhotoFallbackUploads:!1,nostrMediaServer:JF,nostrReadRelays:null,nostrWriteRelays:null,nostrReadRelayExclusions:null,nostrWriteRelayExclusions:null,nostrTrustedRelays:null,experimentalEnablePhotoDeletion:!1},f$=class extends fp{static{hF(this.prototype,"overpassApi",[Wr],function(){return p$.overpassApi})}#Mt=void pF(this,"overpassApi");static{hF(this.prototype,"mapKinetic",[Wr],function(){return p$.mapKinetic})}#At=void pF(this,"mapKinetic");static{hF(this.prototype,"photonApi",[Wr],function(){return p$.photonApi})}#Ot=void pF(this,"photonApi");static{hF(this.prototype,"showQuickSearchButtons",[Wr],function(){return p$.showQuickSearchButtons})}#Nt=void pF(this,"showQuickSearchButtons");static{hF(this.prototype,"nostrPhotoFallbackUploads",[Wr],function(){return p$.nostrPhotoFallbackUploads})}#zt=void pF(this,"nostrPhotoFallbackUploads");static{hF(this.prototype,"nostrMediaServer",[Wr],function(){return p$.nostrMediaServer})}#Ft=void pF(this,"nostrMediaServer");static{hF(this.prototype,"nostrReadRelays",[Wr],function(){return p$.nostrReadRelays})}#Dt=void pF(this,"nostrReadRelays");static{hF(this.prototype,"nostrWriteRelays",[Wr],function(){return p$.nostrWriteRelays})}#jt=void pF(this,"nostrWriteRelays");static{hF(this.prototype,"nostrReadRelayExclusions",[Wr],function(){return p$.nostrReadRelayExclusions})}#Ut=void pF(this,"nostrReadRelayExclusions");static{hF(this.prototype,"nostrWriteRelayExclusions",[Wr],function(){return p$.nostrWriteRelayExclusions})}#Bt=void pF(this,"nostrWriteRelayExclusions");static{hF(this.prototype,"nostrTrustedRelays",[Wr],function(){return p$.nostrTrustedRelays})}#$t=void pF(this,"nostrTrustedRelays");static{hF(this.prototype,"experimentalEnablePhotoDeletion",[Wr],function(){return p$.experimentalEnablePhotoDeletion})}#qt=void pF(this,"experimentalEnablePhotoDeletion");overpassApis=[{name:"overpass-api.de (DE)",url:"https://overpass-api.de/api/interpreter"},{name:"private.coffee (AT)",url:"https://overpass.private.coffee/api/interpreter"}];photonApis=[{name:"photon.komoot.io",url:"https://photon.komoot.io/api/"}];constructor(){super(...arguments),this.loadSettings()}loadSettings(){let t={};const e=localStorage.getItem("marco:settings");if(e)try{t=JSON.parse(e)}catch(r){console.error("Failed to parse settings from localStorage",r)}else{const e=localStorage.getItem("marco:overpass-api");e&&(t.overpassApi=e);const n=localStorage.getItem("marco:map-kinetic");null!==n&&(t.mapKinetic="true"===n);const r=localStorage.getItem("marco:show-quick-search");null!==r&&(t.showQuickSearchButtons="true"===r);const i=localStorage.getItem("marco:nostr-photo-fallback-uploads");null!==i&&(t.nostrPhotoFallbackUploads="true"===i);const s=localStorage.getItem("marco:photon-api");s&&(t.photonApi=s)}const n={...p$,...t};this.overpassApis.some(t=>t.url===n.overpassApi)||(n.overpassApi=p$.overpassApi),this.overpassApi=n.overpassApi,this.mapKinetic=n.mapKinetic,this.photonApi=n.photonApi,this.showQuickSearchButtons=n.showQuickSearchButtons,this.nostrPhotoFallbackUploads=n.nostrPhotoFallbackUploads,this.nostrMediaServer=n.nostrMediaServer,this.nostrReadRelays=n.nostrReadRelays,this.nostrWriteRelays=n.nostrWriteRelays,this.nostrReadRelayExclusions=n.nostrReadRelayExclusions,this.nostrWriteRelayExclusions=n.nostrWriteRelayExclusions,this.nostrTrustedRelays=n.nostrTrustedRelays,this.experimentalEnablePhotoDeletion=n.experimentalEnablePhotoDeletion,this.saveSettings()}saveSettings(){const t={overpassApi:this.overpassApi,mapKinetic:this.mapKinetic,photonApi:this.photonApi,showQuickSearchButtons:this.showQuickSearchButtons,nostrPhotoFallbackUploads:this.nostrPhotoFallbackUploads,nostrMediaServer:this.nostrMediaServer,nostrReadRelays:this.nostrReadRelays,nostrWriteRelays:this.nostrWriteRelays,nostrReadRelayExclusions:this.nostrReadRelayExclusions,nostrWriteRelayExclusions:this.nostrWriteRelayExclusions,nostrTrustedRelays:this.nostrTrustedRelays,experimentalEnablePhotoDeletion:this.experimentalEnablePhotoDeletion};localStorage.setItem("marco:settings",JSON.stringify(t))}update(t,e){t in p$&&(this[t]=e,this.saveSettings())}},g$=o((t,e)=>{var n,r;n=t,r=function(){return function(){var t={548:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Access=void 0;class n{constructor(t){this.rs=t,this.reset(!1)}get scopes(){return Object.keys(this.scopeModeMap).map(t=>({name:t,mode:this.scopeModeMap[t]}))}get scopeParameter(){return this.scopes.map(t=>`${this._scopeNameForParameter(t)}:${t.mode}`).join(" ")}claim(t,e){if("string"!=typeof t||-1!==t.indexOf("/")||0===t.length)throw new Error("Scope should be a non-empty string without forward slashes");if("string"!=typeof e||!e.match(/^rw?$/))throw new Error("Mode should be either 'r' or 'rw'");this._adjustRootPaths(t),this.scopeModeMap[t]=e,this._notifyChange()}get(t){return this.scopeModeMap[t]}remove(t){const e={};for(const n in this.scopeModeMap)e[n]=this.scopeModeMap[n];this.reset(!1),delete e[t];for(const n in e)this._adjustRootPaths(n),this.scopeModeMap[n]=e[n];this._notifyChange()}checkPermission(t,e){const n=this.get(t);return n&&("r"===e||"rw"===n)}checkPathPermission(t,e){if(this.checkPermission("*",e))return!0;const n=this._getModuleName(t);return!!this.checkPermission(n,e)}reset(t=!0){this.rootPaths=[],this.scopeModeMap={},t&&this._notifyChange()}_getModuleName(t){if("/"!==t[0])throw new Error("Path should start with a slash");const e=t.replace(/^\/public/,"").match(/^\/([^/]*)\//);return e?e[1]:"*"}_adjustRootPaths(t){"*"in this.scopeModeMap||"*"===t?this.rootPaths=["/"]:t in this.scopeModeMap||(this.rootPaths.push("/"+t+"/"),this.rootPaths.push("/public/"+t+"/"))}_scopeNameForParameter(t){if("*"===t.name&&this.storageType){if("2012.04"===this.storageType)return"";if(this.storageType.match(/remotestorage-0[01]/))return"root"}return t.name}setStorageType(t){this.storageType=t}_notifyChange(){this.rs&&"function"==typeof this.rs._checkScopeChange&&this.rs._checkScopeChange()}static _rs_init(){}}e.Access=n,e.default=n},275:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Authorize=void 0;const s=i(n(28)),o=i(n(334)),a=n(746),l=i(n(503)),c=n(368);let u;function h(t){const e=t||d.getLocation().href,n={};for(const[s,o]of new URL(e).searchParams)n[s]=o;const r=e.indexOf("#");if(-1===r)return n;const i=e.substring(r+1);return i.includes("=")?i.split("&").reduce(function(t,e){const n=e.split("=");if("state"===n[0]&&n[1].match(/rsDiscovery/)){let e=decodeURIComponent(n[1]);const r=e.substr(e.indexOf("rsDiscovery=")).split("&")[0].split("=")[1];t.rsDiscovery=JSON.parse(atob(r)),e=e.replace(new RegExp("&?rsDiscovery="+r),""),e.length>0&&(t.state=e)}else t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]);return t},n):n}class d{static authorize(t,e){if((0,o.default)("[Authorize] authURL = ",e.authURL,"scope = ",e.scope,"redirectUri = ",e.redirectUri,"clientId = ",e.clientId,"response_type =",e.response_type),!e.scope)throw new Error("Cannot authorize due to undefined or empty scope; did you forget to access.claim()?");if("function"==typeof t._rememberPendingScope&&t._rememberPendingScope(e.scope),!(0,a.localStorageAvailable)()&&"remotestorage"===t.backend){e.redirectUri+=e.redirectUri.indexOf("#")>0?"&":"#";const n={userAddress:t.remote.userAddress,href:t.remote.href,storageApi:t.remote.storageApi,properties:t.remote.properties};e.redirectUri+="rsDiscovery="+(0,a.toBase64)(JSON.stringify(n))}const n=function(t){const e=new URL(t.redirectUri);t.state||(t.state=e.hash?e.hash.substring(1):""),t.response_type||(t.response_type="token");const n=new URL(t.authURL);n.searchParams.set("redirect_uri",t.redirectUri.replace(/#.*$/,"")),n.searchParams.set("scope",t.scope),n.searchParams.set("client_id",t.clientId);for(const r of["state","response_type","code_challenge","code_challenge_method","token_access_type"]){const e=t[r];e&&n.searchParams.set(r,e)}return n.href}(e);a.globalContext.cordova&&(d.getLocation().href.startsWith("file:")||"string"==typeof s.default.cordovaRedirectUri&&e.redirectUri===s.default.cordovaRedirectUri)?d.openWindow(n,e.redirectUri,"location=yes,clearsessioncache=yes,clearcache=yes").then(n=>{t.remote.configure({token:n.access_token}),"function"==typeof t._completeAuthorization&&t._completeAuthorization(n.scope||e.scope)}):d.setLocation(n)}static refreshAccessToken(t,e,n){return r(this,void 0,void 0,function*(){var t,r,i;yield e.configure({token:null,tokenType:null});const s=new URLSearchParams({grant_type:"refresh_token",client_id:e.clientId,refresh_token:n}),a=yield(0,c.requestWithTimeout)("POST",e.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s.toString(),responseType:"json"});if(200!==(null==a?void 0:a.status))throw yield e.configure({refreshToken:null}),new l.default("refresh token rejected:"+JSON.stringify(a.response));{(0,o.default)(`[Authorize] access token good for ${null===(t=null==a?void 0:a.response)||void 0===t?void 0:t.expires_in} seconds`);const n={token:null===(r=null==a?void 0:a.response)||void 0===r?void 0:r.access_token,tokenType:null===(i=null==a?void 0:a.response)||void 0===i?void 0:i.token_type};if(!n.token)throw new Error(`no access_token in "successful" refresh: ${a.response}`);yield e.configure(n)}})}static setLocation(t){if("string"==typeof t)document.location.href=t;else{if("object"!=typeof t)throw"Invalid location "+t;document.location.href=t.href}}static _rs_supported(){return"undefined"!=typeof document}static _rs_cleanup(t){t.removeEventListener("features-loaded",u)}}e.Authorize=d,d.IMPLIED_FAKE_TOKEN=!1,d.getLocation=function(){return document.location},d.openWindow=function(t,e,n){return new Promise((r,i)=>{const s=open(t,"_blank",n);function o(){i("Authorization was canceled")}s&&!s.closed?(s.addEventListener("loadstart",function(t){if(0!==t.url.indexOf(e))return;s.removeEventListener("exit",o),s.close();const n=h(t.url);n?r(n):i("Authorization error")}),s.addEventListener("exit",o)):i("Authorization popup was blocked")})},d._rs_init=function(t){const e=h(),n=function(t){return"string"==typeof t.access_token||"string"==typeof t.code||"string"==typeof t.error||"string"==typeof t.remotestorage||"object"==typeof t.rsDiscovery}(e);let i;n&&(i=d.getLocation(),i.hash=""),u=function(){let s=!1;if(n){if(e.error)throw"function"==typeof t._forgetPendingScope&&t._forgetPendingScope(),"access_denied"===e.error?new l.default("Authorization failed: access denied",{code:"access_denied"}):new l.default(`Authorization failed: ${e.error}`);e.rsDiscovery&&t.remote.configure(e.rsDiscovery),e.access_token&&(t.remote.configure({token:e.access_token}),"function"==typeof t._completeAuthorization&&t._completeAuthorization(e.scope),s=!0),e.remotestorage&&(t.connect(e.remotestorage),s=!0),e.state&&(i=d.getLocation(),d.setLocation(i.href.split("#")[0]+"#"+e.state)),e.code&&(function(e){r(this,void 0,void 0,function*(){var n,r,s,a,l;const u=sessionStorage.getItem("remotestorage:codeVerifier");if(!u)return void(0,o.default)("[Authorize] Ignoring OAuth code parameter, because no PKCE code verifier found in sessionStorage");i=d.getLocation();let h=i.origin;"/"!==i.pathname&&(h+=i.pathname);const p=new URLSearchParams({code:e,grant_type:"authorization_code",client_id:t.remote.clientId,redirect_uri:h,code_verifier:u}),f=yield(0,c.requestWithTimeout)("POST",t.remote.TOKEN_URL,{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:p.toString(),responseType:"json"});switch(f.status){case 200:{(0,o.default)(`[Authorize] access token good for ${null===(n=null==f?void 0:f.response)||void 0===n?void 0:n.expires_in} seconds`);const e={token:null===(r=null==f?void 0:f.response)||void 0===r?void 0:r.access_token,refreshToken:null===(s=null==f?void 0:f.response)||void 0===s?void 0:s.refresh_token,tokenType:null===(a=null==f?void 0:f.response)||void 0===a?void 0:a.token_type};e.token?(t.remote.configure(e),"function"==typeof t._completeAuthorization&&t._completeAuthorization(null===(l=null==f?void 0:f.response)||void 0===l?void 0:l.scope)):t._emit("error",new Error(`no access_token in "successful" response: ${f.response}`)),sessionStorage.removeItem("remotestorage:codeVerifier");break}default:"function"==typeof t._forgetPendingScope&&t._forgetPendingScope(),t._emit("error",new Error(`${f.statusText}: ${f.response}`))}})}(e.code),s=!0),s||t.remote.stopWaitingForToken()}else t.remote.stopWaitingForToken()},t.on("features-loaded",u)},e.default=d},424:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.BaseClient=void 0;const s=i(n(439)),o=i(n(613)),a=i(n(491)),l=i(n(93)),c=i(n(28)),u=n(746);class h{constructor(t,e){if(this.schemas={configurable:!0,get(){return h.Types.inScope(this.moduleName)}},"/"!==e[e.length-1])throw"Not a folder: "+e;"/"===e&&(this.makePath=t=>("/"===t[0]?"":"/")+t),this.storage=t,this.base=e,this.moduleName=function(t){const e=t.split("/");return t.length>2?e[1]:"root"}(this.base),this.addEvents(["change"]),this.on=this.on.bind(this),t.onChange(this.base,this._fireChange.bind(this))}scope(t){return new h(this.storage,this.makePath(t))}getListing(t,e){return r(this,void 0,void 0,function*(){if("string"!=typeof t)t="";else if(t.length>0&&!(0,u.isFolder)(t))return Promise.reject("Not a folder: "+t);return this.storage.get(this.makePath(t),e).then(t=>404===t.statusCode?{}:t.body)})}getAll(t,e){return r(this,void 0,void 0,function*(){if("string"!=typeof t)t="";else if(t.length>0&&!(0,u.isFolder)(t))return Promise.reject("Not a folder: "+t);return this.storage.get(this.makePath(t),e).then(n=>{if(404===n.statusCode)return{};if("object"==typeof n.body){const r=Object.keys(n.body);if(0===r.length)return{};const i=r.map(r=>this.storage.get(this.makePath(t+r),e).then(t=>{if("string"==typeof t.body)try{t.body=JSON.parse(t.body)}catch(t){}"object"==typeof t.body&&(n.body[r]=t.body)}));return Promise.all(i).then(()=>n.body)}})})}getFile(t,e){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.getFile must be a string"):this.storage.get(this.makePath(t),e).then(t=>({data:t.body,contentType:t.contentType,revision:t.revision}))})}storeFile(t,e,n){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'contentType' of baseClient.storeFile must be a string"):"string"!=typeof e?Promise.reject("Argument 'path' of baseClient.storeFile must be a string"):"string"!=typeof n&&"object"!=typeof n?Promise.reject("Argument 'body' of baseClient.storeFile must be a string, ArrayBuffer, or ArrayBufferView"):(this.storage.access.checkPathPermission(this.makePath(e),"rw")||console.warn("WARNING: Editing a document to which only read access ('r') was claimed"),this.storage.put(this.makePath(e),n,t).then(t=>200===t.statusCode||201===t.statusCode?t.revision:Promise.reject("Request (PUT "+this.makePath(e)+") failed with status: "+t.statusCode)))})}getObject(t,e){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.getObject must be a string"):this.storage.get(this.makePath(t),e).then(e=>{if("object"==typeof e.body)return e.body;if("string"==typeof e.body)try{return JSON.parse(e.body)}catch(e){throw new Error("Not valid JSON: "+this.makePath(t))}else if(void 0!==e.body&&200===e.statusCode)return Promise.reject("Not an object: "+this.makePath(t))})})}storeObject(t,e,n){return r(this,void 0,void 0,function*(){if("string"!=typeof t)return Promise.reject("Argument 'typeAlias' of baseClient.storeObject must be a string");if("string"!=typeof e)return Promise.reject("Argument 'path' of baseClient.storeObject must be a string");if("object"!=typeof n)return Promise.reject("Argument 'object' of baseClient.storeObject must be an object");this._attachType(n,t);try{const t=this.validate(n);if(!t.valid)return Promise.reject(t)}catch(t){return Promise.reject(t)}return this.storage.put(this.makePath(e),JSON.stringify(n),"application/json; charset=UTF-8").then(t=>200===t.statusCode||201===t.statusCode?t.revision:Promise.reject("Request (PUT "+this.makePath(e)+") failed with status: "+t.statusCode))})}remove(t){return r(this,void 0,void 0,function*(){return"string"!=typeof t?Promise.reject("Argument 'path' of baseClient.remove must be a string"):(this.storage.access.checkPathPermission(this.makePath(t),"rw")||console.warn("WARNING: Removing a document to which only read access ('r') was claimed"),this.storage.delete(this.makePath(t),this.storage.connected))})}getItemURL(t){return r(this,void 0,void 0,function*(){if("string"!=typeof t)throw"Argument 'path' of baseClient.getItemURL must be a string";if(this.storage.connected)return"function"==typeof this.storage.remote.getItemURL?this.storage.remote.getItemURL(this.makePath(t)):this.storage.remote.href+(0,u.cleanPath)(this.makePath(t))})}cache(t,e="ALL"){if("string"!=typeof t)throw"Argument 'path' of baseClient.cache must be a string";if("string"!=typeof e)throw"Argument 'strategy' of baseClient.cache must be a string or undefined";if("FLUSH"!==e&&"SEEN"!==e&&"ALL"!==e)throw'Argument \'strategy\' of baseclient.cache must be one of ["FLUSH", "SEEN", "ALL"]';return this.storage.caching.set(this.makePath(t),e),this}declareType(t,e,n){let r;if(n&&"string"==typeof e)r=e;else if(n||"string"==typeof e){if(!n&&"string"==typeof e)throw new Error("declareType() requires a JSON Schema object to be passed, in order to validate object types/formats")}else n=e,r=this._defaultTypeURI(t);h.Types.declare(this.moduleName,t,r,n)}validate(t){const e=h.Types.getSchema(t["@context"]);if(e)return s.default.validateResult(t,e);throw new a.default(t["@context"])}_defaultTypeURI(t){return"http://remotestorage.io/spec/modules/"+encodeURIComponent(this.moduleName)+"/"+encodeURIComponent(t)}_attachType(t,e){t["@context"]=h.Types.resolveAlias(this.moduleName+"/"+e)||this._defaultTypeURI(e)}makePath(t){return this.base+(t||"")}_fireChange(t){c.default.changeEvents[t.origin]&&(["new","old","lastCommon"].forEach(function(e){if((!t[e+"ContentType"]||/^application\/(.*)json(.*)/.exec(t[e+"ContentType"]))&&"string"==typeof t[e+"Value"])try{t[e+"Value"]=JSON.parse(t[e+"Value"])}catch(t){}}),this._emit("change",t))}static _rs_init(){}}e.BaseClient=h,h.Types=o.default,(0,u.applyMixins)(h,[l.default]),e.default=h},285:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Caching=void 0;const i=n(746),s=r(n(334));class o{constructor(t){this.pendingActivations=[],this._access=t.access,this.reset()}set(t,e){if("string"!=typeof t)throw new Error("path should be a string");if(!(0,i.isFolder)(t))throw new Error("path should be a folder");if(!this._access.checkPathPermission(t,"r"))throw new Error('No access to path "'+t+'". You must claim access to it first.');if(void 0===e||!e.match(/^(FLUSH|SEEN|ALL)$/))throw new Error("strategy should be 'FLUSH', 'SEEN', or 'ALL'");this._rootPaths[t]=e,"ALL"===e&&(this.activateHandler?this.activateHandler(t):this.pendingActivations.push(t))}enable(t){this.set(t,"ALL")}disable(t){this.set(t,"FLUSH")}onActivate(t){(0,s.default)("[Caching] Setting activate handler",t,this.pendingActivations),this.activateHandler=t;for(let e=0;e{this.emitChange(t.data)})}get(t,e,n){return r(this,void 0,void 0,function*(){return"number"==typeof e?this.getNodes((0,c.pathsFromRoot)(t)).then(r=>{const i=u(r[t]);return h(r,e)?n(t):i?{statusCode:200,body:i.body||i.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(i.contentType||null)}:{statusCode:404}}):this.getNodes([t]).then(e=>{const n=u(e[t]);if(n){if((0,c.isFolder)(t))for(const t in n.itemsMap)n.itemsMap.hasOwnProperty(t)&&!1===n.itemsMap[t]&&delete n.itemsMap[t];return{statusCode:200,body:n.body||n.itemsMap,contentType:(0,c.stripLegacyCharsetBinary)(n.contentType||null)}}return{statusCode:404}})})}put(t,e,n){return r(this,void 0,void 0,function*(){const r=(0,c.pathsFromRoot)(t);return this._updateNodes(r,function(t,r){try{for(let i=0,s=t.length;i0)break}else console.error("Cannot delete non-existing node "+i)}return n})})}flush(t){return this._getAllDescendentPaths(t).then(t=>this.getNodes(t)).then(t=>{for(const e in t){const n=t[e];n&&n.common&&n.local&&this.emitChange({path:n.path,origin:"local",oldValue:!1===n.local.body?void 0:n.local.body,newValue:!1===n.common.body?void 0:n.common.body}),t[e]=void 0}return this.setNodes(t)})}emitChange(t){a.default.changeEvents[t.origin]&&this._emit("change",t)}fireInitial(){a.default.changeEvents.local&&this.forAllNodes(t=>{if((0,c.isDocument)(t.path)){const e=u(t);e&&this.emitChange({path:t.path,origin:"local",oldValue:void 0,oldContentType:void 0,newValue:e.body,newContentType:e.contentType})}}).then(()=>{this._emit("local-events-done")})}onDiff(t){this.diffHandler=t}_updateNodes(t,e){return new Promise((n,r)=>{this._doUpdateNodes(t,e,{resolve:n,reject:r})})}_doUpdateNodes(t,e,n){return r(this,void 0,void 0,function*(){if(this._updateNodesRunning)return void this._updateNodesQueued.push({paths:t,cb:e,promise:n});this._updateNodesRunning=!0;try{let r=yield this.getNodes(t);const i=(0,c.deepClone)(r),s=[];r=e(t,r);for(const t in r){const e=r[t];(0,c.equal)(e,i[t])?delete r[t]:(0,c.isDocument)(t)&&((0,c.equal)(e.local.body,e.local.previousBody)&&e.local.contentType===e.local.previousContentType||s.push({path:t,origin:"window",oldValue:e.local.previousBody,newValue:!1===e.local.body?void 0:e.local.body,oldContentType:e.local.previousContentType,newContentType:e.local.contentType}),void 0===e.local.body?r[t]=void 0:(delete e.local.previousBody,delete e.local.previousContentType))}yield this.setNodes(r),this._emitChangeEvents(s),n.resolve({statusCode:200})}catch(t){n.reject(t)}this._updateNodesRunning=!1;const r=this._updateNodesQueued.shift();r&&(yield this._doUpdateNodes(r.paths,r.cb,r.promise))})}_emitChangeEvents(t){for(let e=0,n=t.length;e{const n=[t],r=u(e[t]),i=Object.keys(r.itemsMap).map(e=>this._getAllDescendentPaths(t+e).then(t=>{for(let e=0,r=t.length;en)}):Promise.resolve([t])}_getInternals(){return{getLatest:u,makeNode:d,isOutdated:h}}}(0,c.applyMixins)(f,[o.default]),t.exports=f},28:function(t){t.exports={cache:!0,changeEvents:{local:!0,window:!1,remote:!0,conflict:!0},cordovaRedirectUri:void 0,discovery:{allowPrivateAddresses:!0,timeout:5e3},logging:!1,modules:[],backgroundSyncInterval:6e4,disableFeatures:[],isBackground:!1,requestTimeout:3e4,syncInterval:1e4}},373:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(713)),s=r(n(28)),o=r(n(334)),a=n(746);let l;const c="remotestorage:discover";let u={};const h=function(t){if(t in u)return Promise.resolve(u[t]);const e=new i.default({tls_only:!1,uri_fallback:!0,request_timeout:s.default.discovery.timeout,allow_private_addresses:s.default.discovery.allowPrivateAddresses});let n;const r=new Promise((t,e)=>{n=setTimeout(()=>{e(new Error("timed out"))},s.default.discovery.timeout)});return Promise.race([e.lookup(t),r]).then(e=>{if(clearTimeout(n),"object"!=typeof e.idx.links.remotestorage||"number"!=typeof e.idx.links.remotestorage.length||e.idx.links.remotestorage.length<=0)throw(0,o.default)("[Discover] WebFinger record for "+t+" does not have remotestorage defined in the links section ",JSON.stringify(e.object)),new Error("WebFinger record for "+t+" does not have remotestorage defined in the links section.");const r=e.idx.links.remotestorage[0],i=r.properties||{},s=i["http://tools.ietf.org/html/rfc6749#section-4.2"]||i["auth-endpoint"],a=i["http://remotestorage.io/spec/version"]||r.type;return u[t]={href:r.href,storageApi:a,authURL:s,properties:i},l&&localStorage.setItem(c,JSON.stringify({cache:u})),u[t]}).catch(t=>{throw clearTimeout(n),t})};(h.DiscoveryError=function(t){this.name="DiscoveryError",this.message=t,this.stack=(new Error).stack}).prototype=Object.create(Error.prototype),h.DiscoveryError.prototype.constructor=h.DiscoveryError,h._rs_init=function(){if(l=(0,a.localStorageAvailable)(),l){const t=JSON.parse(localStorage.getItem(c));t&&(u=t.cache)}},h._rs_supported=function(){return Object.prototype.hasOwnProperty.call(a.globalContext,"fetch")||Object.prototype.hasOwnProperty.call(a.globalContext,"XMLHttpRequest")},h._rs_cleanup=function(){l&&localStorage.removeItem(c)},t.exports=h},706:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(93)),o=i(n(941)),a=i(n(982)),l=i(n(503)),c=n(746),u=n(368),h=n(684),d=i(n(275));let p;const f="remotestorage:dropbox",g="https://api.dropboxapi.com/2/files/list_folder",m="https://api.dropboxapi.com/2/files/list_folder/continue";function y(t){return("/remotestorage/"+t).replace(/\/+$/,"").replace(/\/+/g,"/")}const v=/[\u007f-\uffff]/g;function b(t){return JSON.stringify(t).replace(v,function(t){return"\\u"+("000"+t.charCodeAt(0).toString(16)).slice(-4)})}function w(t,e){return new RegExp("^"+e.join("\\/")+"(\\/|$)").test(t.error_summary)}class _ extends h.RemoteBase{constructor(t){if(super(t),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this._initialFetchDone=!1,this.addEvents(["connected","not-connected"]),this.clientId=t.apiKeys.dropbox.appKey,this.TOKEN_URL="https://api.dropboxapi.com/oauth2/token",this._revCache=new o.default("rev"),this._fetchDeltaCursor=null,this._fetchDeltaPromise=null,this._itemRefs={},p=(0,c.localStorageAvailable)(),p){const t=(0,c.getJSONFromLocalStorage)(f);t&&this.configure(t),this._itemRefs=(0,c.getJSONFromLocalStorage)(`${f}:shares`)||{}}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}connect(){return r(this,void 0,void 0,function*(){try{if(this.rs.setBackend("dropbox"),this.token)k(this.rs);else{const{codeVerifier:t,codeChallenge:e,state:n}=yield(0,c.generateCodeVerifier)();sessionStorage.setItem("remotestorage:codeVerifier",t),sessionStorage.setItem("remotestorage:state",n),this.rs.authorize({authURL:"https://www.dropbox.com/oauth2/authorize",scope:"account_info.read files.content.read files.content.write files.metadata.read files.metadata.write sharing.read sharing.write",clientId:this.clientId,response_type:"code",state:n,code_challenge:e,code_challenge_method:"S256",token_access_type:"offline"})}}catch(t){throw this.rs._emit("error",t),this.rs.setBackend(void 0),t}})}configure(t){return r(this,void 0,void 0,function*(){void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.token&&(this.token=t.token),void 0!==t.refreshToken&&(this.refreshToken=t.refreshToken),void 0!==t.tokenType&&(this.tokenType=t.tokenType);const e=()=>{p&&localStorage.setItem(f,JSON.stringify({userAddress:this.userAddress,token:this.token,refreshToken:this.refreshToken,tokenType:this.tokenType}))};if(this.refreshToken||this.token)if(this.connected=!0,this.userAddress)this._emit("connected"),e();else try{const t=yield this.info();this.userAddress=t.email,this._emit("connected"),e()}catch(t){this.connected=!1,this.rs._emit("error",new Error("Could not fetch user info.")),e.apply(this)}else(()=>{this.connected=!1,p&&(localStorage.removeItem(f),localStorage.removeItem(`${f}:shares`)),this.rs.setBackend(void 0)})()})}_getFolder(t){const e=this._revCache,n=n=>{let i;if(200!==n.status&&409!==n.status)return Promise.reject("Unexpected response status: "+n.status);try{i=JSON.parse(n.responseText)}catch(t){return Promise.reject(t)}if(409===n.status)return w(i,["path","not_found"])?Promise.resolve({}):Promise.reject(new Error("API returned an error: "+i.error_summary));const s=i.entries.reduce((n,r)=>{try{const i="folder"===r[".tag"],s=r.path_display.split("/").slice(-1)[0]+(i?"/":"");if(i)n[s]={ETag:e.get(t+s)};else{const e=new Date(r.server_modified);n[s]={ETag:r.rev,"Content-Length":r.size,"Last-Modified":e.toUTCString()},this._revCache.set(t+s,r.rev)}}catch(e){console.error(`[Dropbox] folder “${t}” has entry ${JSON.stringify(r)}:`,e)}return n},{});return i.has_more?r(i.cursor).then(function(t){return Object.assign(s,t)}):Promise.resolve(s)},r=t=>{const e={body:{cursor:t}};return this._request("POST",m,e).then(n)};return this._request("POST",g,{body:{path:y(t)}}).then(n).then(function(n){return Promise.resolve({statusCode:200,body:n,contentType:"application/json; charset=UTF-8",revision:e.get(t)})})}get(t,e={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const n=this._revCache.get(t);if(null===n)return Promise.resolve({statusCode:404});if(e&&e.ifNoneMatch){if(!this._initialFetchDone)return this.fetchDelta().then(()=>this.get(t,e));if(n&&n===e.ifNoneMatch)return Promise.resolve({statusCode:304})}if("/"===t.slice(-1))return this._getFolder(t);const r={headers:{"Dropbox-API-Arg":b({path:y(t)})},responseType:"arraybuffer"};return e&&e.ifNoneMatch&&(r.headers["If-None-Match"]=e.ifNoneMatch),this._request("GET","https://content.dropboxapi.com/2/files/download",r).then(e=>{const n=e.status;let r,i,s,o;return 200!==n&&409!==n?Promise.resolve({statusCode:n}):(r=e.getResponseHeader("Dropbox-API-Result"),(0,c.getTextFromArrayBuffer)(e.response,"UTF-8").then(a=>{i=a,409===n&&(r=i);try{r=JSON.parse(r)}catch(t){return Promise.reject(t)}if(409===n)return w(r,["path","not_found"])?{statusCode:404}:Promise.reject(new Error('API error while downloading file ("'+t+'"): '+r.error_summary));if(s=e.getResponseHeader("Content-Type"),o=r.rev,this._revCache.set(t,o),this._shareIfNeeded(t),(0,c.shouldBeTreatedAsBinary)(a,s))i=e.response;else try{i=JSON.parse(i),s="application/json; charset=UTF-8"}catch(t){}return{statusCode:n,body:i,contentType:(0,c.stripLegacyCharsetBinary)(s),revision:o}}))})}put(t,e,n){return r(this,arguments,void 0,function*(t,e,n,r={}){if(!this.connected)throw new Error("not connected (path: "+t+")");const i=this._revCache.get(t);if(r&&r.ifMatch&&i&&i!==r.ifMatch)return{statusCode:412,revision:i};if(r&&"*"===r.ifNoneMatch&&i&&"rev"!==i)return{statusCode:412,revision:i};if(e.length>157286400)throw new Error("Cannot upload file larger than 150MB");const s={body:e,contentType:n,path:t};if(r&&(r.ifMatch||"*"===r.ifNoneMatch)){const e=yield this._getMetadata(t);if(r&&"*"===r.ifNoneMatch&&e)return{statusCode:412,revision:e.rev};if(r&&r.ifMatch&&e&&e.rev!==r.ifMatch)return{statusCode:412,revision:e.rev}}const o=yield this._uploadSimple(s);return this._shareIfNeeded(t),o})}delete(t){return r(this,arguments,void 0,function*(t,e={}){if(!this.connected)throw new Error("not connected (path: "+t+")");const n=this._revCache.get(t);if((null==e?void 0:e.ifMatch)&&n&&e.ifMatch!==n)return{statusCode:412,revision:n};if(null==e?void 0:e.ifMatch){const n=yield this._getMetadata(t);if((null==e?void 0:e.ifMatch)&&n&&n.rev!==e.ifMatch)return{statusCode:412,revision:n.rev}}return this._deleteSimple(t)})}_shareIfNeeded(t){if(t.match(/^\/public\/.*[^/]$/)&&void 0===this._itemRefs[t])return this.share(t)}getItemURL(t){return r(this,void 0,void 0,function*(){if(t.match(/^\/public\/.*[^/]$/))return this._itemRefs[t]?this._itemRefs[t]:this.share(t)})}share(t){const e={body:{path:y(t)}};return this._request("POST","https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings",e).then(e=>{if(200!==e.status&&409!==e.status)return Promise.reject(new Error("Invalid response status:"+e.status));let n;try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid response body: "+e.responseText))}return 409===e.status?w(n,["shared_link_already_exists"])?this._getSharedLink(t):Promise.reject(new Error("API error: "+n.error_summary)):Promise.resolve(n.url)}).then(e=>(this._itemRefs[t]=e,p&&localStorage.setItem("remotestorage:dropbox:shares",JSON.stringify(this._itemRefs)),Promise.resolve(e)),e=>(e.message='Sharing Dropbox file or folder ("'+t+'") failed: '+e.message,Promise.reject(e)))}info(){return this._request("POST","https://api.dropboxapi.com/2/users/get_current_account",{}).then(function(t){let e;try{const n=JSON.parse(t.responseText);e=null==n?void 0:n.email}catch(e){return Promise.reject(new Error("Could not query current account info: Invalid API response: "+t.responseText))}return Promise.resolve({email:e})})}_request(t,e,n){return r(this,arguments,void 0,function*(t,e,n,r=1){if(this.isForbiddenRequestMethod(t,e))throw`Don't use ${t} on directories!`;if(!this.token)throw new l.default("No access token");var i;n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,"object"!=typeof n.body||(i=n.body)instanceof ArrayBuffer||(0,u.isArrayBufferView)(i)||(n.body=JSON.stringify(n.body),n.headers["Content-Type"]="application/json; charset=UTF-8"),this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)});try{const i=yield(0,u.requestWithTimeout)(t,e,n);return this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),401===(null==i?void 0:i.status)&&this.refreshToken?r>=3?(console.error(`Abandoned after ${r} attempts: ${t} ${e}`),i):(this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)}),yield d.default.refreshAccessToken(this.rs,this,this.refreshToken),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),this._request(t,e,n,r+1)):[503,429].includes(null==i?void 0:i.status)?(this.online&&(this.online=!1,this.rs._emit("network-offline")),r>=3?(console.warn(`Abandoned after ${r} attempts: ${t} ${e}`),i):(yield new Promise(t=>setTimeout(t,(0,u.retryAfterMs)(i))),this._request(t,e,n,r+1))):i}catch(n){throw this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!1}),n}})}fetchDelta(...t){if(this._fetchDeltaPromise)return this._fetchDeltaPromise;const e=t=>r(this,void 0,void 0,function*(){let n,r;"string"==typeof t?(n=m,r={cursor:t}):(n=g,r={path:"/remotestorage",recursive:!0,include_deleted:!0});try{const i=yield this._request("POST",n,{body:r});if(401===i.status)throw new l.default;if(200!==i.status&&409!==i.status)throw new Error("Invalid response status: "+i.status);let s;try{s=JSON.parse(i.responseText)}catch(t){throw new Error("Invalid response body: "+i.responseText)}if(409===i.status){if(!w(s,["path","not_found"]))throw new Error("API returned an error: "+s.error_summary);s={cursor:null,entries:[],has_more:!1}}if(t||this._revCache.deactivatePropagation(),s.entries.forEach(t=>{const e=t.path_display.slice(14);"deleted"===t[".tag"]?(this._revCache.delete(e),this._revCache.delete(e+"/")):"file"===t[".tag"]&&this._revCache.set(e,t.rev)}),this._fetchDeltaCursor=s.cursor,s.has_more)return e(s.cursor);this._revCache.activatePropagation(),this._initialFetchDone=!0}catch(t){if("timeout"===t)return;throw t}});return this._fetchDeltaPromise=e(this._fetchDeltaCursor).catch(t=>("object"==typeof t&&"message"in t?t.message="Dropbox: fetchDelta: "+t.message:t=`Dropbox: fetchDelta: ${t}`,this.rs._emit("error",t),this._fetchDeltaPromise=null,Promise.reject(t))).then(()=>(this._fetchDeltaPromise=null,Promise.resolve(t))),this._fetchDeltaPromise}_getMetadata(t){const e={path:y(t)};return this._request("POST","https://api.dropboxapi.com/2/files/get_metadata",{body:e}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status:"+t.status));let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?w(e,["path","not_found"])?Promise.resolve():Promise.reject(new Error("API error: "+e.error_summary)):Promise.resolve(e)}).then(void 0,e=>(e.message='Could not load metadata for file or folder ("'+t+'"): '+e.message,Promise.reject(e)))}_uploadSimple(t){const e={path:y(t.path),mode:{".tag":"overwrite",update:void 0},mute:!0};return t.ifMatch&&(e.mode={".tag":"update",update:t.ifMatch}),this._request("POST","https://content.dropboxapi.com/2/files/upload",{body:t.body,headers:{"Content-Type":"application/octet-stream","Dropbox-API-Arg":b(e)}}).then(e=>{if(200!==e.status&&409!==e.status)return Promise.resolve({statusCode:e.status});let n;try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject(new Error("Invalid API result: "+e.responseText))}return 409===e.status?w(n,["path","conflict"])?this._getMetadata(t.path).then(function(t){return Promise.resolve({statusCode:412,revision:t.rev})}):(this.rs._emit("error",new Error(n.error_summary)),Promise.resolve({statusCode:e.status})):(this._revCache.set(t.path,n.rev),Promise.resolve({statusCode:e.status,revision:n.rev}))})}_deleteSimple(t){const e={path:y(t)};return this._request("POST","https://api.dropboxapi.com/2/files/delete",{body:e}).then(t=>{if(200!==t.status&&409!==t.status)return Promise.resolve({statusCode:t.status});let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}if(409===t.status){if(w(e,["path_lookup","not_found"]))return Promise.resolve({statusCode:404});this.rs._emit("error",new Error(e.error_summary))}return Promise.resolve({statusCode:t.status,revision:200===t.status?e.rev:void 0})}).then(e=>(200!==e.statusCode&&404!==e.statusCode||(this._revCache.delete(t),delete this._itemRefs[t]),Promise.resolve(e)),e=>(e.message='Could not delete Dropbox file or folder ("'+t+'"): '+e.message,Promise.reject(e)))}_getSharedLink(t){return r(this,void 0,void 0,function*(){const e={body:{path:y(t),direct_only:!0}};return this._request("POST","https://api.dropboxapi.com/2/sharing/list_shared_links",e).then(t=>{if(200!==t.status&&409!==t.status)return Promise.reject(new Error("Invalid response status: "+t.status));let e;try{e=JSON.parse(t.responseText)}catch(e){return Promise.reject(new Error("Invalid response body: "+t.responseText))}return 409===t.status?Promise.reject(new Error("API error: "+(null==e?void 0:e.error_summary)||0)):e.links.length?Promise.resolve(e.links[0].url):Promise.reject(new Error("No links returned"))},e=>(e.message='Could not get link to a shared file or folder ("'+t+'"): '+e.message,Promise.reject(e)))})}static _rs_init(t){p=(0,c.localStorageAvailable)(),t.apiKeys.dropbox&&(t.dropbox=new _(t)),"dropbox"===t.backend&&k(t)}static _rs_supported(){return!0}static _rs_cleanup(t){(function(t){(function(t){t._origRemote&&(t.remote=t._origRemote,delete t._origRemote)})(t),function(t){t._dropboxOrigSync&&(t.sync.sync=t._dropboxOrigSync,delete t._dropboxOrigSync)}(t),C(t)})(t),p&&localStorage.removeItem(f),t.setBackend(void 0)}}function x(t,...e){t._dropboxOrigSync||(t._dropboxOrigSync=t.sync.sync.bind(t.sync),t.sync.sync=function(){return this.dropbox.fetchDelta(t,...e).then(t._dropboxOrigSync,function(e){t._emit("error",new a.default(e)),t._emit("sync-done",{completed:!1})})}.bind(t))}function C(t){t._dropboxOrigSyncCycle&&(t.syncCycle=t._dropboxOrigSyncCycle,delete t._dropboxOrigSyncCycle)}function k(t){(function(t){t._origRemote||(t._origRemote=t.remote,t.remote=t.dropbox)})(t),t.sync?x(t):function(t,...e){t._dropboxOrigSyncCycle||(t._dropboxOrigSyncCycle=t.syncCycle,t.syncCycle=()=>{if(!t.sync)throw new Error("expected sync to be initialized by now");x(t),t._dropboxOrigSyncCycle(t,...e),C(t)})}(t)}(0,c.applyMixins)(_,[s.default]),t.exports=_},451:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(93)),s=n(746),o=r(n(334));class a{constructor(){this.addEvents(["background","foreground"]),this.mode="undefined"!=typeof window?"browser":"node","browser"===this.mode&&(this.setBrowserPrefixedNames(),document.addEventListener(this.visibilityChangeEvent,this.setVisibility.bind(this),!1),this.setVisibility())}setBrowserPrefixedNames(){"browser"===this.mode&&(void 0!==document.hidden?(this.hiddenProperty="hidden",this.visibilityChangeEvent="visibilitychange"):void 0!==document.mozHidden?(this.hiddenProperty="mozHidden",this.visibilityChangeEvent="mozvisibilitychange"):void 0!==document.msHidden?(this.hiddenProperty="msHidden",this.visibilityChangeEvent="msvisibilitychange"):void 0!==document.webkitHidden&&(this.hiddenProperty="webkitHidden",this.visibilityChangeEvent="webkitvisibilitychange"))}setVisibility(){document[this.hiddenProperty]?((0,o.default)("[Env] Going into background mode"),this.goBackground()):((0,o.default)("[Env] Going into foreground mode"),this.goForeground())}isBrowser(){return"browser"===this.mode}isNode(){return"node"===this.mode}goBackground(){this._emit("background")}goForeground(){this._emit("foreground")}static _rs_init(){}static _rs_cleanup(){}}(0,s.applyMixins)(a,[i.default]),t.exports=a},93:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.EventHandling=void 0;const i=r(n(334));class s{addEvents(t){t.forEach(t=>this._addEvent(t))}addEventListener(t,e){if("string"!=typeof t)throw new Error("Argument eventName should be a string");if("function"!=typeof e)throw new Error("Argument handler should be a function");(0,i.default)("[EventHandling] Adding event listener",t),this._validateEvent(t),this._handlers[t].push(e)}on(t,e){return this.addEventListener(t,e)}removeEventListener(t,e){this._validateEvent(t);const n=this._handlers[t].length;for(let r=0;r{t(...e)})}_validateEvent(t){if(!(t in this._handlers))throw new Error("Unknown event: "+t)}_delegateEvent(t,e){e.on(t,e=>{this._emit(t,e)})}_addEvent(t){void 0===this._handlers&&(this._handlers={}),this._handlers[t]=[]}}e.EventHandling=s,e.default=s},545:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(28)),s=r(n(451)),o=r(n(334)),a=n(746),l=r(n(370)),c=r(n(548)),u=r(n(275)),h=r(n(373)),d=r(n(424)),p=r(n(801)),f=r(n(706)),g=r(n(600)),m=r(n(313)),y=r(n(285)),v=r(n(567)),b=r(n(794)),w=r(n(365));t.exports={features:[],featuresDone:0,readyFired:!1,loadFeatures(){this.features=[],this.featuresDone=0,this.readyFired=!1,this.featureModules={WireClient:g.default,Dropbox:f.default,GoogleDrive:p.default,Access:c.default,Discover:h.default,Authorize:u.default,BaseClient:d.default,Env:s.default},i.default.cache&&(0,a.extend)(this.featureModules,{Caching:y.default,IndexedDB:v.default,LocalStorage:b.default,InMemoryStorage:w.default,Sync:m.default}),i.default.disableFeatures.forEach(t=>{this.featureModules[t]&&delete this.featureModules[t]}),this._allLoaded=!1;for(const t in this.featureModules)this.loadFeature(t)},hasFeature(t){for(let e=this.features.length-1;e>=0;e--)if(this.features[e].name===t)return this.features[e].supported;return!1},loadFeature(t){const e=this.featureModules[t],n=!e._rs_supported||e._rs_supported();(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initializing ...`),"object"==typeof n?n.then(()=>{this.featureSupported(t,!0),this.initFeature(t)},()=>{this.featureSupported(t,!1)}):"boolean"==typeof n?(this.featureSupported(t,n),n&&this.initFeature(t)):this.featureSupported(t,!1)},initFeature(t){const e=this.featureModules[t];let n;try{n=e._rs_init(this)}catch(e){return void this.featureFailed(t,e)}"object"==typeof n&&"function"==typeof n.then?n.then(()=>{this.featureInitialized(t)},e=>{this.featureFailed(t,e)}):this.featureInitialized(t)},featureFailed(t,e){(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initialization failed (${e})`),this.featureDone()},featureSupported(t,e){(0,o.default)(`[RemoteStorage] [FEATURE ${t}]${e?"":"not "} supported`),e||this.featureDone()},featureInitialized(t){(0,o.default)(`[RemoteStorage] [FEATURE ${t}] initialized`),this.features.push({name:t,init:this.featureModules[t]._rs_init,supported:!0,cleanup:this.featureModules[t]._rs_cleanup}),this.featureDone()},featureDone(){this.featuresDone++,this.featuresDone===Object.keys(this.featureModules).length&&setTimeout(this.featuresLoaded.bind(this),0)},_setCachingModule(){["IndexedDB","LocalStorage","InMemoryStorage"].some(t=>{if(this.features.some(e=>e.name===t))return this.features.local=this.featureModules[t],!0})},_fireReady(){try{this.readyFired||(this._emit("ready"),this.readyFired=!0)}catch(t){console.error("'ready' failed: ",t,t.stack),this._emit("error",t)}},featuresLoaded(){(0,o.default)("[RemoteStorage] All features loaded"),this._setCachingModule(),this.local=i.default.cache&&this.features.local&&new this.features.local,this.local&&this.remote?(this._setGPD(l.default,this),this._bindChange(this.local)):this.remote&&this._setGPD(this.remote,this.remote),this.remote&&(this.remote.on("connected",()=>{this._fireReady(),this._emit("connected")}),this.remote.on("not-connected",()=>{this._fireReady(),this._emit("not-connected")}),this.remote.connected&&(this._fireReady(),this._emit("connected")),this.hasFeature("Authorize")||this.remote.stopWaitingForToken()),this._collectCleanupFunctions();try{this._allLoaded=!0,this._emit("features-loaded")}catch(t){(0,a.logError)(t),this._emit("error",t)}this._processPending()},_collectCleanupFunctions(){this._cleanups=[];for(let t=0;t=n-this.maxAge?e.v:void 0}set(t,e){this._items[t]={v:e,t:(new Date).getTime()}}}class m extends a.RemoteBase{constructor(t,e){if(super(t),this.online=!0,this.storageApi="draft-dejong-remotestorage-19",this.addEvents(["connected","not-connected"]),this.clientId=e,this._fileIdCache=new g(300),u=(0,s.localStorageAvailable)(),u){const t=(0,s.getJSONFromLocalStorage)(l);t&&this.configure(t)}}configure(t){void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.token&&(this.token=t.token);const e=function(){u&&localStorage.setItem(l,JSON.stringify({userAddress:this.userAddress,token:this.token}))},n=function(){this.connected=!1,delete this.token,u&&localStorage.removeItem(l)};this.token?(this.connected=!0,this.userAddress?(this._emit("connected"),e.apply(this)):this.info().then(t=>{this.userAddress=t.user.emailAddress,this._emit("connected"),e.apply(this)}).catch(()=>{n.apply(this),this.rs._emit("error",new Error("Could not fetch user info."))})):n.apply(this)}connect(){this.rs.setBackend("googledrive"),this.rs.authorize({authURL:"https://accounts.google.com/o/oauth2/auth",scope:"https://www.googleapis.com/auth/drive",clientId:this.clientId})}get(t,e={}){return(0,s.isFolder)(t)?this._getFolder(f(t)):this._getFile(f(t),e)}put(t,e,n,r={}){const i=f(t);function s(t){if(t.status>=200&&t.status<300){const e=JSON.parse(t.responseText),n=this.stripQuotes(e.etag);return Promise.resolve({statusCode:200,contentType:e.mimeType,revision:n})}return 412===t.status?Promise.resolve({statusCode:412,revision:"conflict"}):Promise.reject("PUT failed with status "+t.status+" ("+t.responseText+")")}return this._getFileId(i).then(t=>t?r&&"*"===r.ifNoneMatch?s({status:412}):this._updateFile(t,i,e,n,r).then(s):this._createFile(i,e,n).then(s))}delete(t,e={}){const n=f(t);return this._getFileId(n).then(t=>t?this._getMeta(t).then(n=>{let r;return"object"==typeof n&&"string"==typeof n.etag&&(r=this.stripQuotes(n.etag)),e&&e.ifMatch&&e.ifMatch!==r?{statusCode:412,revision:r}:this._request("DELETE","https://www.googleapis.com/drive/v2/files/"+t,{}).then(t=>200===t.status||204===t.status?{statusCode:200}:Promise.reject("Delete failed: "+t.status+" ("+t.responseText+")"))}):Promise.resolve({statusCode:200}))}info(){return this._request("GET","https://www.googleapis.com/drive/v2/about?fields=user",{}).then(function(t){try{const e=JSON.parse(t.responseText);return Promise.resolve(e)}catch(t){return Promise.reject(t)}})}_updateFile(t,e,n,r,i){const s={mimeType:r},o={"Content-Type":"application/json; charset=UTF-8"};return i&&i.ifMatch&&(o["If-Match"]=this.addQuotes(i.ifMatch)),this._request("PUT","https://www.googleapis.com/upload/drive/v2/files/"+t+"?uploadType=resumable",{body:JSON.stringify(s),headers:o}).then(t=>412===t.status?t:this._request("PUT",t.getResponseHeader("Location"),{body:r.match(/^application\/json/)?JSON.stringify(n):n}))}_createFile(t,e,n){return this._getParentId(t).then(r=>{const i={title:h(p(t)),mimeType:n,parents:[{kind:"drive#fileLink",id:r}]};return this._request("POST","https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable",{body:JSON.stringify(i),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(t=>this._request("POST",t.getResponseHeader("Location"),{body:n.match(/^application\/json/)?JSON.stringify(e):e}))})}_getFile(t,e){return this._getFileId(t).then(t=>this._getMeta(t).then(t=>{let n;if("object"==typeof t&&"string"==typeof t.etag&&(n=this.stripQuotes(t.etag)),e&&e.ifNoneMatch&&n===e.ifNoneMatch)return Promise.resolve({statusCode:304});if(!t.downloadUrl){if(!t.exportLinks||!t.exportLinks["text/html"])return Promise.resolve({statusCode:200,body:"",contentType:t.mimeType,revision:n});t.mimeType+=";export=text/html",t.downloadUrl=t.exportLinks["text/html"]}return this._request("GET",t.downloadUrl,{responseType:"arraybuffer"}).then(e=>(0,s.getTextFromArrayBuffer)(e.response,"UTF-8").then(function(r){let i=r;if(t.mimeType.match(/^application\/json/))try{i=JSON.parse(i)}catch(t){}else(0,s.shouldBeTreatedAsBinary)(r,t.mimeType)&&(i=e.response);return{statusCode:200,body:i,contentType:(0,s.stripLegacyCharsetBinary)(t.mimeType),revision:n}}))}))}_getFolder(t){return this._getFileId(t).then(e=>{let n,r,i;if(!e)return Promise.resolve({statusCode:404});const o="'"+e+"' in parents";return this._request("GET","https://www.googleapis.com/drive/v2/files?q="+encodeURIComponent(o)+"&fields=items(downloadUrl%2Cetag%2CfileSize%2Cid%2CmimeType%2Ctitle%2Clabels)&maxResults=1000&trashed=false",{}).then(e=>{var o;if(200!==e.status)return Promise.reject("request failed or something: "+e.status);try{n=JSON.parse(e.responseText)}catch(t){return Promise.reject("non-JSON response from GoogleDrive")}i={};for(const a of n.items)null!==(o=a.labels)&&void 0!==o&&o.trashed||(r=this.stripQuotes(a.etag),a.mimeType===c?(this._fileIdCache.set(t+(0,s.cleanPath)(a.title)+"/",a.id),i[a.title+"/"]={ETag:r}):(this._fileIdCache.set(t+(0,s.cleanPath)(a.title),a.id),i[a.title]={ETag:r,"Content-Type":a.mimeType,"Content-Length":a.fileSize}));return Promise.resolve({statusCode:200,body:i,contentType:"application/json; charset=UTF-8",revision:void 0})})})}_getParentId(t){const e=d(t);return this._getFileId(e).then(t=>t?Promise.resolve(t):this._createFolder(e))}_createFolder(t){return this._getParentId(t).then(e=>this._request("POST","https://www.googleapis.com/drive/v2/files",{body:JSON.stringify({title:h(p(t)),mimeType:c,parents:[{id:e}]}),headers:{"Content-Type":"application/json; charset=UTF-8"}}).then(t=>{const e=JSON.parse(t.responseText);return Promise.resolve(e.id)}))}_getFileId(t){let e;return"/"===t?Promise.resolve("root"):(e=this._fileIdCache.get(t))?Promise.resolve(e):this._getFolder(d(t)).then(()=>(e=this._fileIdCache.get(t),e?Promise.resolve(e):"/"===t.substr(-1)?this._createFolder(t).then(()=>this._getFileId(t)):Promise.resolve()))}_getMeta(t){return this._request("GET","https://www.googleapis.com/drive/v2/files/"+t,{}).then(function(e){return 200===e.status?Promise.resolve(JSON.parse(e.responseText)):Promise.reject("request (getting metadata for "+t+") failed with status: "+e.status)})}_request(t,e,n){return this.isForbiddenRequestMethod(t,e)?Promise.reject(`Don't use ${t} on directories!`):(n.headers||(n.headers={}),n.headers.Authorization="Bearer "+this.token,this.rs._emit("wire-busy",{method:t,isFolder:(0,s.isFolder)(e)}),(0,o.requestWithTimeout)(t,e,n).then(n=>n&&401===n.status?void this.connect():(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,s.isFolder)(e),success:!0}),Promise.resolve(n)),n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,s.isFolder)(e),success:!1}),Promise.reject(n))))}getItemURL(t){return r(this,void 0,void 0,function*(){throw new Error("getItemURL is not implemented for Google Drive yet")})}static _rs_init(t){const e=t.apiKeys.googledrive;e&&(t.googledrive=new m(t,e.clientId),"googledrive"===t.backend&&(t._origRemote=t.remote,t.remote=t.googledrive))}static _rs_supported(){return!0}static _rs_cleanup(t){t.setBackend(void 0),t._origRemote&&(t.remote=t._origRemote,delete t._origRemote)}}(0,s.applyMixins)(m,[i.default]),t.exports=m},567:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(93)),o=i(n(496)),a=i(n(334)),l=n(746),c="remotestorage";let u;class h extends o.default{constructor(t){super(),this.addEvents(["change","local-events-done"]),this.db=t||u,this.db?(this.getsRunning=0,this.putsRunning=0,this.changesQueued={},this.changesRunning={},this.commitSlownessWarning=null):(0,a.default)("[IndexedDB] Failed to open DB")}getNodes(t){return r(this,void 0,void 0,function*(){const e=[],n={};for(let r=0,i=t.length;r0?this.getNodesFromDb(e).then(function(t){for(const e in n)t[e]=n[e];return t}):n})}setNodes(t){return r(this,void 0,void 0,function*(){for(const e in t)this.changesQueued[e]=t[e]||!1;this.maybeFlush()})}maybeFlush(){0===this.putsRunning?this.flushChangesQueued():this.commitSlownessWarning||(this.commitSlownessWarning=n.g.setInterval(function(){console.warn("WARNING: waited more than 10 seconds for previous commit to finish")},1e4))}flushChangesQueued(){this.commitSlownessWarning&&(clearInterval(this.commitSlownessWarning),this.commitSlownessWarning=null),Object.keys(this.changesQueued).length>0&&(this.changesRunning=this.changesQueued,this.changesQueued={},this.setNodesInDb(this.changesRunning).then(this.flushChangesQueued.bind(this)))}getNodesFromDb(t){return new Promise((e,n)=>{const r=this.db.transaction(["nodes"],"readonly"),i=r.objectStore("nodes"),s={};this.getsRunning++,t.map(t=>{i.get(t).onsuccess=e=>{s[t]=e.target.result}}),r.oncomplete=()=>{e(s),this.getsRunning--},r.onerror=r.onabort=()=>{n("get transaction error/abort"),this.getsRunning--}})}setNodesInDb(t){return r(this,void 0,void 0,function*(){return new Promise((e,n)=>{const r=this.db.transaction(["nodes"],"readwrite"),i=r.objectStore("nodes"),s=(new Date).getTime();this.putsRunning++,(0,a.default)("[IndexedDB] Starting puts",t,this.putsRunning);for(const o in t){const e=t[o];if("object"==typeof e)try{i.put(e)}catch(t){throw(0,a.default)("[IndexedDB] Error while putting",e,t),t}else try{i.delete(o)}catch(t){throw(0,a.default)("[IndexedDB] Error while removing",i,e,t),t}}r.oncomplete=()=>{this.putsRunning--,(0,a.default)("[IndexedDB] Finished puts",t,this.putsRunning,(new Date).getTime()-s+"ms"),e()},r.onerror=()=>{this.putsRunning--,n("transaction error")},r.onabort=()=>{n("transaction abort"),this.putsRunning--}})})}reset(t){const e=this.db.name;this.db.close(),h.clean(e,()=>{h.open(e,(n,r)=>{n?(0,a.default)(`[IndexedDB] Error while resetting database ${e}:`,n):this.db=r,"function"==typeof t&&t(self)})})}forAllNodes(t){return r(this,void 0,void 0,function*(){return new Promise(e=>{this.db.transaction(["nodes"],"readonly").objectStore("nodes").openCursor().onsuccess=n=>{const r=n.target.result;r?(t(r.value),r.continue()):e()}})})}closeDB(){0===this.putsRunning?this.db.close():setTimeout(this.closeDB.bind(this),100)}static open(t,e){const n=setTimeout(function(){e("timeout trying to open db")},1e4);try{const r=indexedDB.open(t,2);r.onerror=function(){(0,a.default)("[IndexedDB] Opening DB failed",r),clearTimeout(n),e(r.error)},r.onupgradeneeded=function(t){const e=r.result;(0,a.default)("[IndexedDB] Upgrade: from ",t.oldVersion," to ",t.newVersion),e.objectStoreNames.contains("nodes")||((0,a.default)("[IndexedDB] Creating object store: nodes"),e.createObjectStore("nodes",{keyPath:"path"})),e.objectStoreNames.contains("changes")||((0,a.default)("[IndexedDB] Creating object store: changes"),e.createObjectStore("changes",{keyPath:"path"}))},r.onsuccess=function(){clearTimeout(n);const i=r.result;if(!i.objectStoreNames.contains("nodes")||!i.objectStoreNames.contains("changes"))return(0,a.default)("[IndexedDB] Missing object store. Resetting the database."),i.close(),void h.clean(t,function(){h.open(t,e)});e(null,r.result)}}catch(r){(0,a.default)("[IndexedDB] Failed to open database: "+r),(0,a.default)("[IndexedDB] Resetting database and trying again."),clearTimeout(n),h.clean(t,function(){h.open(t,e)})}}static clean(t,e){const n=indexedDB.deleteDatabase(t);n.onblocked=function(e){console.warn(`Deleting IndexedDB database "${t}" is blocked by another open connection`,e)},n.onsuccess=function(){(0,a.default)(`[IndexedDB] Deleted database "${t}"`),e()},n.onerror=n.onabort=function(e){console.error('Failed to remove database "'+t+'"',e)}}static _rs_init(t){return new Promise((e,n)=>{h.open(c,function(r,i){if(r)n(r);else{if(!i)return void n(new Error("IndexedDB opened without a database instance"));u=i,i.onerror=e=>{t._emit("error",h.eventToError(e))},e()}})})}static _rs_supported(){return new Promise((t,e)=>{const n=(0,l.getGlobalContext)();let r=!1;if("undefined"!=typeof navigator&&navigator.userAgent.match(/Android (2|3|4\.[0-3])/)&&(navigator.userAgent.match(/Chrome|Firefox/)||(r=!0)),"indexedDB"in n&&!r)try{const n=indexedDB.open("rs-check");n.onerror=function(){e()},n.onsuccess=function(){n.result.close(),indexedDB.deleteDatabase("rs-check"),t()}}catch(t){e()}else e()})}static _rs_cleanup(t){return new Promise(e=>{t.local instanceof h&&t.local.closeDB(),h.clean(c,e)})}static eventToError(t){var e;const n=null==t?void 0:t.target,r=null==n?void 0:n.error;if(r)return r;if(null===(e=null==n?void 0:n.db)||void 0===e?void 0:e.name){const t=n.objectStoreNames,e=t?Array.from(t).join(", "):"";return new Error(`Error in store(s) “${e}” in database “${n.db.name}”`)}return new Error("Unknown IndexedDB error")}diffHandler(){}}(0,l.applyMixins)(h,[s.default]),t.exports=h},365:function(t,e,n){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const i=r(n(93)),s=r(n(496)),o=n(746);class a extends s.default{constructor(){super(),this._storage={},this.addEvents(["change","local-events-done"])}getNodes(t){const e={};for(let n=0,r=t.length;n=2e3&&t<=36e5}var M;!function(t){t.GOOGLE="googledrive",t.DROPBOX="dropbox"}(M||(M={}));class A{constructor(t){if(this._pending=[],this._cleanups=[],this._pathHandlers={change:{}},this.apiKeys={},this._init=x.default.loadFeatures,this.features=x.default.features,this.loadFeature=x.default.loadFeature,this.featureSupported=x.default.featureSupported,this.featureDone=x.default.featureDone,this.featuresDone=x.default.featuresDone,this.featuresLoaded=x.default.featuresLoaded,this.featureInitialized=x.default.featureInitialized,this.featureFailed=x.default.featureFailed,this.hasFeature=x.default.hasFeature,this._setCachingModule=x.default._setCachingModule,this._collectCleanupFunctions=x.default._collectCleanupFunctions,this._fireReady=x.default._fireReady,this.initFeature=x.default.initFeature,"object"==typeof t&&null!==t){const e=t,{discovery:n}=e,r=a(e,["discovery"]);Object.assign(c.default,r),n&&"object"==typeof n&&Object.assign(c.default.discovery,n)}if(this.addEvents(["ready","authing","connecting","connected","disconnected","not-connected","conflict","error","features-loaded","scope-change-required","sync-interval-change","sync-started","sync-req-done","sync-done","wire-busy","wire-done","network-offline","network-online"]),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")}),S=(0,h.localStorageAvailable)(),S){this.apiKeys=(0,h.getJSONFromLocalStorage)("remotestorage:api-keys")||{};const t=localStorage.getItem("remotestorage:backend");"dropbox"===t||"googledrive"===t?this.setBackend(t):this.setBackend("remotestorage")}this._authorizedScope=this._loadAuthorizedScope(),this._scopeChangeRequired=!1,this._scopeChangeEvent=null;const e=this.on;this.on=function(t,n){const r=e.call(this,t,n);if("scope-change-required"===t&&this._scopeChangeRequired&&this._scopeChangeEvent&&setTimeout(()=>{n(this._scopeChangeEvent)},0),this._allLoaded)switch(t){case"features-loaded":setTimeout(n,0);break;case"ready":this.remote&&setTimeout(n,0);break;case"connected":this.remote&&this.remote.connected&&setTimeout(n,0);break;case"not-connected":this.remote&&!this.remote.connected&&setTimeout(n,0)}return r},this._init(),this.fireInitial=function(){this.local&&setTimeout(this.local.fireInitial.bind(this.local),0)}.bind(this),this.on("ready",this.fireInitial.bind(this)),this.loadModules()}get connected(){return this.remote.connected}get scopeChangeRequired(){return this._scopeChangeRequired}loadModules(){c.default.modules.forEach(this.addModule.bind(this))}authorize(t){if(this.access.setStorageType(this.remote.storageApi),void 0===t.scope&&(t.scope=this.access.scopeParameter),k.cordova&&"string"==typeof c.default.cordovaRedirectUri)t.redirectUri=c.default.cordovaRedirectUri;else{const e=p.default.getLocation();let n=e.origin;"/"!==e.pathname&&(n+=e.pathname),t.redirectUri=n}void 0===t.clientId&&(t.clientId=t.redirectUri.match(/^(https?:\/\/[^/]+)/)[0]),p.default.authorize(this,t)}impliedauth(t,e){t=t||this.remote.storageApi,e=e||String(document.location),(0,u.default)("ImpliedAuth proceeding due to absent authURL; storageApi = "+t+" redirectUri = "+e),this.remote.configure({token:p.default.IMPLIED_FAKE_TOKEN}),document.location.href=e}connect(t,e){if(this.setBackend("remotestorage"),t.indexOf("@")<0&&!t.match(/^(https?:\/\/)?[^\s\/$\.?#]+\.[^\s]*$/))this._emit("error",new A.DiscoveryError("Not a valid user address or URL."));else{if(t.indexOf("@")<0&&!t.match(/^https?:\/\//)&&(t=`https://${t}`),k.cordova){if("string"!=typeof c.default.cordovaRedirectUri)return void this._emit("error",new A.DiscoveryError("Please supply a custom HTTPS redirect URI for your Cordova app"));if(!k.cordova.InAppBrowser)return void this._emit("error",new A.DiscoveryError("Please include the InAppBrowser Cordova plugin to enable OAuth"))}this.remote.configure({userAddress:t}),this._emit("connecting"),A.Discover(t).then(n=>{if(this._emit("authing"),n.userAddress=t,this.remote.configure(n),!this.remote.connected)if(n.authURL)if(void 0===e)this.authorize({authURL:n.authURL});else{if("string"!=typeof e)throw new Error("Supplied bearer token must be a string");(0,u.default)("Skipping authorization sequence and connecting with known token"),this.remote.configure({token:e}),this._rememberAuthorizedScope(this.access.scopeParameter)}else this.impliedauth()},()=>{this._emit("error",new A.DiscoveryError("No storage information found for this user address."))})}}reconnect(){this.remote.configure({token:null}),"remotestorage"===this.backend?this.connect(this.remote.userAddress):this.remote.connect()}reauthorize(){this.reconnect()}disconnect(){this.remote&&this.remote.configure({userAddress:null,href:null,storageApi:null,token:null,refreshToken:null,properties:null}),this._forgetPendingScope(),this._rememberAuthorizedScope(null),this._setGPD({get:this._pendingGPD("get"),put:this._pendingGPD("put"),delete:this._pendingGPD("delete")});const t=this._cleanups.length;let e=0;const n=()=>{e++,e>=t&&(this._init(),(0,u.default)('Cleanups done, emitting "disconnected" event'),this._emit("disconnected"))};t>0?this._cleanups.forEach(t=>{const e=t(this);"object"==typeof e&&"function"==typeof e.then?e.then(n):n()}):n()}setBackend(t){if(this.backend=t,S&&(void 0!==t?localStorage.setItem("remotestorage:backend",t):localStorage.removeItem("remotestorage:backend")),void 0===t)return this._authorizedScope=null,this._scopeChangeRequired=!1,void(this._scopeChangeEvent=null);this._authorizedScope=this._loadAuthorizedScope(),this._checkScopeChange()}_rememberPendingScope(t){const e=L(t);S&&(e&&this.backend?localStorage.setItem(R,JSON.stringify({backend:this.backend,scope:e})):localStorage.removeItem(R))}_forgetPendingScope(){S&&localStorage.removeItem(R)}_rememberAuthorizedScope(t){const e=L(t);S?e&&this.backend?(localStorage.setItem(E,JSON.stringify({backend:this.backend,scope:e})),this._authorizedScope=e,this._checkScopeChange()):(localStorage.removeItem(E),this._authorizedScope=null,this._checkScopeChange()):(this._authorizedScope=e,this._checkScopeChange())}_completeAuthorization(t){const e=this._loadPendingScope()||L(t);this._forgetPendingScope(),e?this._rememberAuthorizedScope(e):this._checkScopeChange()}_checkScopeChange(){const t=L(this.access.scopeParameter),e=this._authorizedScope||this._loadAuthorizedScope(),n=!(!t||!e||t===e),r=n&&(!this._scopeChangeRequired||!this._scopeChangeEvent||this._scopeChangeEvent.requestedScope!==t||this._scopeChangeEvent.authorizedScope!==e);this._scopeChangeRequired=n,n?(this._scopeChangeEvent=this._buildScopeChangeEvent(t,e),r&&this._emit("scope-change-required",this._scopeChangeEvent)):this._scopeChangeEvent=null}_loadAuthorizedScope(){if(!S||!this.backend)return null;const t=T(E);return t&&t.backend===this.backend?L(t.scope):null}_loadPendingScope(){if(!S||!this.backend)return null;const t=T(R);return t&&t.backend===this.backend?L(t.scope):null}_buildScopeChangeEvent(t=L(this.access.scopeParameter),e=this._authorizedScope){return{requestedScope:t||"",authorizedScope:e||"",reauthorize:this.reauthorize.bind(this)}}onChange(t,e){this._pathHandlers.change[t]||(this._pathHandlers.change[t]=[]),this._pathHandlers.change[t].push(e)}enableLog(){c.default.logging=!0}disableLog(){c.default.logging=!1}log(...t){u.default.apply(A,t)}setApiKeys(t){const e=[M.GOOGLE,M.DROPBOX];if("object"!=typeof t||!Object.keys(t).every(t=>e.includes(t)))return console.error("setApiKeys() was called with invalid arguments"),!1;Object.keys(t).forEach(e=>{const n=t[e];if(n){switch(e){case M.DROPBOX:this.apiKeys[M.DROPBOX]={appKey:n},void 0!==this.dropbox&&this.dropbox.clientId===n||v.default._rs_init(this);break;case M.GOOGLE:this.apiKeys[M.GOOGLE]={clientId:n},void 0!==this.googledrive&&this.googledrive.clientId===n||y.default._rs_init(this)}return!0}delete this.apiKeys[e]}),S&&localStorage.setItem("remotestorage:api-keys",JSON.stringify(this.apiKeys))}setCordovaRedirectUri(t){if("string"!=typeof t||!t.match(/http(s)?:\/\//))throw new Error("Cordova redirect URI must be a URI string");c.default.cordovaRedirectUri=t}_setGPD(t,e){function n(t){return function(...n){return t.apply(e,n).then(P.bind(this))}}this.get=n(t.get),this.put=n(t.put),this.delete=n(t.delete)}_pendingGPD(t){return(...e)=>{const n=Array.prototype.slice.call(e);return new Promise((e,r)=>{this._pending.push({method:t,args:n,promise:{resolve:e,reject:r}})})}}_processPending(){this._pending.forEach(t=>{try{this[t.method](...t.args).then(t.promise.resolve,t.promise.reject)}catch(e){t.promise.reject(e)}}),this._pending=[]}_bindChange(t){t.on("change",this._dispatchEvent.bind(this,"change"))}_dispatchEvent(t,e){Object.keys(this._pathHandlers[t]).forEach(n=>{const r=n.length;e.path.substr(0,r)===n&&this._pathHandlers[t][n].forEach(t=>{const r={};for(const n in e)r[n]=e[n];r.relativePath=e.path.replace(new RegExp("^"+n),"");try{t(r)}catch(t){console.error("'change' handler failed: ",t,t.stack),this._emit("error",t)}})})}scope(t){if("string"!=typeof t)throw"Argument 'path' of baseClient.scope must be a string";return this.access.checkPathPermission(t,"r")||console.warn("WARNING: Please use remoteStorage.access.claim() to ask for access permissions first: https://remotestorage.io/rs.js/docs/api/access/classes/Access.html#claim"),new f.default(this,t)}getSyncInterval(){return c.default.syncInterval}setSyncInterval(t){if(!I(t))throw t+" is not a valid sync interval";const e=c.default.syncInterval;c.default.syncInterval=t,this._emit("sync-interval-change",{oldValue:e,newValue:t})}getBackgroundSyncInterval(){return c.default.backgroundSyncInterval}setBackgroundSyncInterval(t){if(!I(t))throw t+" is not a valid sync interval";const e=c.default.backgroundSyncInterval;c.default.backgroundSyncInterval=t,this._emit("sync-interval-change",{oldValue:e,newValue:t})}getCurrentSyncInterval(){return c.default.isBackground?c.default.backgroundSyncInterval:c.default.syncInterval}getRequestTimeout(){return c.default.requestTimeout}setRequestTimeout(t){if("number"!=typeof t)throw t+" is not a valid request timeout";c.default.requestTimeout=t}setupSyncCycle(){this.sync&&!this.sync.stopped&&((0,u.default)("[Sync] Setting up sync cycle"),this.on("sync-done",()=>{(0,u.default)("[Sync] Sync done. Setting timer to",this.getCurrentSyncInterval()),this.sync&&!this.sync.stopped&&(this._syncTimer&&clearTimeout(this._syncTimer),this._syncTimer=setTimeout(this.sync.sync.bind(this.sync),this.getCurrentSyncInterval()))}),this.sync.sync())}startSync(){return c.default.cache?(this.sync.stopped=!1,this.syncStopped=!1,this.sync.sync()):(console.warn("Nothing to sync, because caching is disabled."),Promise.resolve())}stopSync(){clearTimeout(this._syncTimer),this._syncTimer=void 0,this.sync?((0,u.default)("[Sync] Stopping sync"),this.sync.stopped=!0):((0,u.default)("[Sync] Will instantiate sync stopped"),this.syncStopped=!0)}addModule(t){const e=t.name,n=t.builder;if(Object.defineProperty(this,e,{configurable:!0,get:function(){const t=this._loadModule(e,n);return Object.defineProperty(this,e,{value:t}),t}}),-1!==e.indexOf("-")){const t=e.replace(/\-[a-z]/g,function(t){return t[1].toUpperCase()});Object.defineProperty(this,t,{get:function(){return this[e]}})}}_loadModule(t,e){if(e)return e(new f.default(this,"/"+t+"/"),new f.default(this,"/public/"+t+"/")).exports;throw"Unknown module: "+t}}e.RemoteStorage=A,A.SyncError=w.default,A.Unauthorized=_.default,A.Discover=b.default,A.DiscoveryError=b.default.DiscoveryError,A.util=C,Object.defineProperty(A.prototype,"access",{configurable:!0,get:function(){const t=new d.default(this);return Object.defineProperty(this,"access",{value:t,writable:!0,configurable:!0}),t}}),Object.defineProperty(A.prototype,"caching",{configurable:!0,get:function(){const t=new g.default(this);return Object.defineProperty(this,"caching",{value:t,writable:!0,configurable:!0}),t}}),(0,h.applyMixins)(A,[m.EventHandling]),e.default=A},368:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.isArrayBufferView=void 0,e.retryAfterMs=function(t){const e=1e3*parseInt(t.getResponseHeader("Retry-After"));return e>=1e3?e:Math.max(1500,Math.min(6e4,Math.round(o.default.syncInterval/(2.9+.2*Math.random()))))},e.requestWithTimeout=function(t,n,i){return r(this,void 0,void 0,function*(){return"function"==typeof fetch?function(t,e,n){return r(this,void 0,void 0,function*(){const r="function"==typeof AbortController?new AbortController:null;let i;const a=new Promise((t,e)=>{i=setTimeout(()=>{r&&r.abort(),e("timeout")},o.default.requestTimeout)});let l;const c={},u=fetch(e,{method:t,headers:n.headers,body:n.body,signal:r?r.signal:void 0}).then(t=>{switch((0,s.default)("[requests fetch]",t),t.headers.forEach((t,e)=>{c[e.toUpperCase()]=t}),l={readyState:4,status:t.status,statusText:t.statusText,response:void 0,getResponseHeader:t=>c[t.toUpperCase()]||null,responseType:n.responseType,responseURL:e},n.responseType){case"arraybuffer":return t.arrayBuffer();case"blob":return t.blob();case"json":return t.json();case void 0:case"":case"text":return t.text();default:throw new Error("responseType 'document' is not currently supported using fetch")}}).then(t=>(l.response=t,n.responseType&&"text"!==n.responseType||(l.responseText=t),l)).finally(()=>{clearTimeout(i)});return Promise.race([u,a])})}(t,n,i):"function"==typeof XMLHttpRequest?function(t,n,i){return r(this,void 0,void 0,function*(){return new Promise((r,a)=>{(0,s.default)("[requests XHR]",t,n);let l=!1;const c=setTimeout(()=>{l=!0,a("timeout")},o.default.requestTimeout),u=new XMLHttpRequest;if(u.open(t,n,!0),i.responseType&&(u.responseType=i.responseType),i.headers)for(const t in i.headers)u.setRequestHeader(t,i.headers[t]);u.onload=()=>{l||(clearTimeout(c),r(u))},u.onerror=t=>{l||(clearTimeout(c),a(t))};let h=i.body;"object"==typeof h&&!(0,e.isArrayBufferView)(h)&&h instanceof ArrayBuffer&&(h=new Uint8Array(h)),u.send(h)})})}(t,n,i):Promise.reject("[Requests] You need to add a polyfill for fetch or XMLHttpRequest")})};const s=i(n(334)),o=i(n(28));if("function"==typeof(n.g||window).ArrayBufferView)e.isArrayBufferView=function(t){return t&&t instanceof(n.g||window).ArrayBufferView};else{const t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];e.isArrayBufferView=function(e){for(let n=0;n<8;n++)if(e instanceof t[n])return!0;return!1}}},941:function(t){t.exports=class{constructor(t){this._itemsRev={},this._storage={},this._canPropagate=!1,this.defaultValue=t,this.activatePropagation()}get(t){t=t.toLowerCase();let e=this._storage[t];return void 0===e&&(e=this.defaultValue,this._storage[t]=e),e}set(t,e){return t=t.toLowerCase(),this._storage[t]===e||(this._storage[t]=e,e||delete this._itemsRev[t],this._updateParentFolderItemRev(t,e),this._canPropagate&&this._propagate(t)),e}delete(t){return this.set(t,null)}deactivatePropagation(){return this._canPropagate=!1,!0}activatePropagation(){return this._canPropagate||(this._generateFolderRev("/"),this._canPropagate=!0),!0}_hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n0&&(n=this._generateHash(t))}return this.set(t,n),n}}},491:function(t){class e extends Error{constructor(t){super();const e=new Error("Schema not found: "+t);return e.name="SchemaNotFound",e}}t.exports=e},982:function(t){class e extends Error{constructor(t){super(),this.name="SyncError",this.message="Sync failed: ","string"==typeof t?this.message+=t:(this.message+=t.message,this.stack=t.stack,this.originalError=t)}}t.exports=e},313:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Sync=void 0;const s=i(n(28)),o=i(n(451)),a=i(n(93)),l=i(n(334)),c=i(n(275)),u=i(n(982)),h=i(n(503)),d=n(746);let p,f;function g(t,e,n){return{action:t,path:e,promise:n}}function m(t,e){return t.common.revision!==e&&(!t.remote||t.remote.revision!==e)}function y(t){return!!t.common&&!!t.common.revision}class v{constructor(t){this.numThreads=10,this._tasks={},this._running={},this._timeStarted={},this._finishedTasks=[],this.rs=t,this.rs.local.onDiff(t=>{this.addTask(t),this.doTasks()}),this.rs.caching.onActivate(t=>{this.addTask(t),this.doTasks()}),this.addEvents(["done","req-done"])}now(){return(new Date).getTime()}queueGetRequest(t){return r(this,void 0,void 0,function*(){return new Promise((e,n)=>{this.rs.remote.connected?this.rs.remote.online?(this.addTask(t,function(){this.rs.local.get(t).then(t=>e(t))}.bind(this)),this.doTasks()):n("cannot fulfill maxAge requirement - remote is not online"):n("cannot fulfill maxAge requirement - remote is not connected")})})}corruptServerItemsMap(t){if("object"!=typeof t||Array.isArray(t))return!0;for(const e in t){const n=t[e];if("object"!=typeof n)return!0;if("string"!=typeof n.ETag)return!0;if((0,d.isFolder)(e)){if(-1!==e.substring(0,e.length-1).indexOf("/"))return!0}else if(-1!==e.indexOf("/"))return!0}return!1}corruptItemsMap(t){if("object"!=typeof t||Array.isArray(t))return!0;for(const e in t)if("boolean"!=typeof t[e])return!0;return!1}corruptRevision(t){return"object"!=typeof t||Array.isArray(t)||t.revision&&"string"!=typeof t.revision||t.body&&"string"!=typeof t.body&&"object"!=typeof t.body||t.contentType&&"string"!=typeof t.contentType||t.contentLength&&"number"!=typeof t.contentLength||t.timestamp&&"number"!=typeof t.timestamp||t.itemsMap&&this.corruptItemsMap(t.itemsMap)}isCorrupt(t){return"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.path||this.corruptRevision(t.common)||t.local&&this.corruptRevision(t.local)||t.remote&&this.corruptRevision(t.remote)||t.push&&this.corruptRevision(t.push)}hasTasks(){return Object.keys(this._tasks).length>0}collectDiffTasks(){return r(this,void 0,void 0,function*(){let t=0;return this.rs.local.forAllNodes(e=>{t>100||(this.isCorrupt(e)?((0,l.default)("[Sync] WARNING: corrupt node in local cache",e),"object"==typeof e&&e.path&&(this.addTask(e.path),t++)):(this.needsFetch(e)&&this.rs.access.checkPathPermission(e.path,"r")||(0,d.isDocument)(e.path)&&this.needsPush(e)&&this.rs.access.checkPathPermission(e.path,"rw"))&&(this.addTask(e.path),t++))}).then(()=>t)})}inConflict(t){return!(!t.local||!t.remote||void 0===t.remote.body&&!t.remote.itemsMap)}needsRefresh(t){return!!t.common&&(!t.common.timestamp||this.now()-t.common.timestamp>s.default.syncInterval)}needsFetch(t){return!!this.inConflict(t)||!(!t.common||void 0!==t.common.itemsMap||void 0!==t.common.body)||!(!t.remote||void 0!==t.remote.itemsMap||void 0!==t.remote.body)}needsPush(t){return!this.inConflict(t)&&(!(!t.local||t.push)||void 0)}needsRemotePut(t){return!(!t.local||void 0===t.local.body||!1===t.local.body)}needsRemoteDelete(t){return t.local&&!1===t.local.body}getParentPath(t){const e=t.match(/^(.*\/)([^\/]+\/?)$/);if(e)return e[1];throw new Error('Not a valid path: "'+t+'"')}deleteChildPathsFromTasks(){for(const t in this._tasks){const e=(0,d.pathsFromRoot)(t);for(let n=1;n{let e;if(this.needsRefresh(t)){try{e=this.getParentPath(t.path)}catch(t){}e&&this.rs.access.checkPathPermission(e,"r")?this.addTask(e):this.rs.access.checkPathPermission(t.path,"r")&&this.addTask(t.path)}}),this.deleteChildPathsFromTasks()})}flush(t){for(const e in t)"FLUSH"===this.rs.caching.checkPath(e)&&t[e]&&!t[e].local&&((0,l.default)("[Sync] Flushing",e),t[e]=void 0);return t}doTask(t){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([t]).then(e=>{const n=e[t];return void 0===n||function(t){return!(!t.remote||!t.remote.revision||t.remote.itemsMap||t.remote.body)}(n)?g("get",t,this.rs.remote.get(t)):this.needsRemotePut(n)?(n.push=(0,d.deepClone)(n.local),n.push.timestamp=this.now(),this.rs.local.setNodes(this.flush(e)).then(()=>{let e;return e=y(n)?{ifMatch:n.common.revision}:{ifNoneMatch:"*"},g("put",t,this.rs.remote.put(t,n.push.body,n.push.contentType,e))})):this.needsRemoteDelete(n)?(n.push={body:!1,timestamp:this.now()},this.rs.local.setNodes(this.flush(e)).then(()=>y(n)?g("delete",t,this.rs.remote.delete(t,{ifMatch:n.common.revision})):g("get",t,this.rs.remote.get(t)))):y(n)?g("get",t,this.rs.remote.get(t,{ifNoneMatch:n.common.revision})):g("get",t,this.rs.remote.get(t))})})}autoMergeFolder(t){if(t.remote.itemsMap&&(t.common=t.remote,delete t.remote,t.common.itemsMap)){for(const e in t.common.itemsMap)t.local.itemsMap[e]||(t.local.itemsMap[e]=!1);for(const e in t.local.itemsMap)t.common.itemsMap[e]||this.addTask(t.path+e);(0,d.equal)(t.local.itemsMap,t.common.itemsMap)&&delete t.local}return t}autoMergeDocument(t){var e;return function(t){return(!t.remote||!t.remote.revision||t.remote.revision===t.common.revision)&&(void 0===t.common.body&&!1===t.remote.body||t.remote.body===t.common.body&&t.remote.contentType===t.common.contentType)}(t)?delete(t=function(t){return t.remote&&!1===t.remote.body&&t.local&&!1===t.local.body&&delete t.local,t}(t)).remote:void 0!==t.remote.body&&(!1===t.remote.body&&!1===(null===(e=t.local)||void 0===e?void 0:e.body)||((0,l.default)("[Sync] Emitting conflict event"),setTimeout(this.rs.local.emitChange.bind(this.rs.local),10,{origin:"conflict",path:t.path,oldValue:t.local.body,newValue:t.remote.body,lastCommonValue:t.common.body,oldContentType:t.local.contentType,newContentType:t.remote.contentType,lastCommonContentType:t.common.contentType})),!1===t.remote.body?t.common={}:t.common=t.remote,delete t.remote,delete t.local),t}autoMerge(t){if(t.remote){if(t.local)return(0,d.isFolder)(t.path)?this.autoMergeFolder(t):this.autoMergeDocument(t);if((0,d.isFolder)(t.path))void 0!==t.remote.itemsMap&&(t.common=t.remote,delete t.remote);else if(void 0!==t.remote.body){const e={origin:"remote",path:t.path,oldValue:!1===t.common.body?void 0:t.common.body,newValue:!1===t.remote.body?void 0:t.remote.body,oldContentType:t.common.contentType,newContentType:t.remote.contentType};if(void 0===e.oldValue&&void 0===e.newValue||this.rs.local.emitChange(e),!1===t.remote.body)return;t.common=t.remote,delete t.remote}return t}t.common.body&&this.rs.local.emitChange({origin:"remote",path:t.path,oldValue:t.common.body,newValue:void 0,oldContentType:t.common.contentType,newContentType:void 0})}updateCommonTimestamp(t,e){return r(this,void 0,void 0,function*(){return this.rs.local.getNodes([t]).then(n=>(n[t]&&n[t].common&&n[t].common.revision===e&&(n[t].common.timestamp=this.now()),this.rs.local.setNodes(this.flush(n))))})}markChildren(t,e,n,i){return r(this,void 0,void 0,function*(){const r=[],s={},o={};for(const n in e)r.push(t+n),s[t+n]=e[n];for(const e in i)r.push(t+e);const a=yield this.rs.local.getNodes(r);let l,c;for(const e in a)if(c=a[e],s[e])c&&c.common?m(c,s[e].ETag)&&(n[e]=(0,d.deepClone)(c),n[e].remote={revision:s[e].ETag,timestamp:this.now()},n[e]=this.autoMerge(n[e])):(l=this.rs.caching.checkPath(e),"ALL"===l&&(n[e]={path:e,common:{timestamp:this.now()},remote:{revision:s[e].ETag,timestamp:this.now()}})),n[e]&&s[e]["Content-Type"]&&(n[e].remote.contentType=s[e]["Content-Type"]),n[e]&&s[e]["Content-Length"]&&(n[e].remote.contentLength=s[e]["Content-Length"]);else if(i[e.substring(t.length)]&&c&&c.common){if(c.common.itemsMap)for(const t in c.common.itemsMap)o[e+t]=!0;if(c.local&&c.local.itemsMap)for(const t in c.local.itemsMap)o[e+t]=!0;if(c.remote||(0,d.isFolder)(e))n[e]=void 0;else if(n[e]=this.autoMerge(c),void 0===n[e]){const r=n[this.getParentPath(e)],i=e.substring(t.length);r&&r.local&&(delete r.local.itemsMap[i],(0,d.equal)(r.local.itemsMap,r.common.itemsMap)&&delete r.local)}}const u=yield this.markRemoteDeletions(Object.keys(o),n);u&&(yield this.rs.local.setNodes(this.flush(u)))})}markRemoteDeletions(t,e){return r(this,void 0,void 0,function*(){if(0===t.length)return e;const n=yield this.rs.local.getNodes(t),r={};function i(t,e){if(t&&t.itemsMap)for(const n in t.itemsMap)r[e+n]=!0}for(const t in n){const r=n[t];r&&((0,d.isFolder)(t)?(i(r.common,t),i(r.local,t)):r.common&&void 0!==r.common.body&&(e[t]=(0,d.deepClone)(r),e[t].remote={body:!1,timestamp:this.now()},e[t]=this.autoMerge(e[t])))}const s=yield this.markRemoteDeletions(Object.keys(r),e);s&&(yield this.rs.local.setNodes(this.flush(s)))})}completeFetch(t,e,n,i){return r(this,void 0,void 0,function*(){let r,s;const o=(0,d.pathsFromRoot)(t);(0,d.isFolder)(t)?r=[t]:(s=o[1],r=[t,s]);const a=yield this.rs.local.getNodes(r),l=a[s],c={};let u,h=a[t];function p(t){if(t&&t.itemsMap)for(u in t.itemsMap)e[u]||(c[u]=!0)}if("object"==typeof h&&h.path===t&&"object"==typeof h.common||(h={path:t,common:{}},a[t]=h),h.remote={revision:i,timestamp:this.now()},(0,d.isFolder)(t))for(u in p(h.common),p(h.remote),h.remote.itemsMap={},e)h.remote.itemsMap[u]=!0;else h.remote.body=e,h.remote.contentType=n,l&&l.local&&l.local.itemsMap&&(u=t.substring(s.length),!1!==e?l.local.itemsMap[u]=!0:l.local.itemsMap[u]&&delete l.local.itemsMap[u],(0,d.equal)(l.local.itemsMap,l.common.itemsMap)&&delete l.local);return a[t]=this.autoMerge(h),{toBeSaved:a,missingChildren:c}})}completePush(t,e,n,i){return r(this,void 0,void 0,function*(){const r=yield this.rs.local.getNodes([t]),s=r[t];if(!s.push)throw this.stopped=!0,new Error("completePush called but no push version!");n?((0,l.default)("[Sync] We have a conflict"),s.remote&&s.remote.revision===i||(s.remote={revision:i||"conflict",timestamp:this.now()},delete s.push),r[t]=this.autoMerge(s)):(s.common={revision:i,timestamp:this.now()},"put"===e?(s.common.body=s.push.body,s.common.contentType=s.push.contentType,(0,d.equal)(s.local.body,s.push.body)&&s.local.contentType===s.push.contentType&&delete s.local,delete s.push):"delete"===e&&(!1===s.local.body?r[t]=void 0:delete s.push)),yield this.rs.local.setNodes(this.flush(r))})}dealWithFailure(t){return r(this,void 0,void 0,function*(){const e=yield this.rs.local.getNodes([t]);if(e[t])return delete e[t].push,this.rs.local.setNodes(this.flush(e))})}interpretStatus(t){const e={statusCode:t,successful:void 0,conflict:void 0,unAuth:void 0,notFound:void 0,changed:void 0,networkProblems:void 0};return"string"!=typeof t||"offline"!==t&&"timeout"!==t?"number"==typeof t?(e.successful=2===Math.floor(t/100)||304===t||412===t||404===t,e.conflict=412===t,e.unAuth=401===t&&this.rs.remote.token!==c.default.IMPLIED_FAKE_TOKEN||402===t||403===t,e.notFound=404===t,e.changed=304!==t,e):void 0:(e.successful=!1,e.networkProblems=!0,e)}handleGetResponse(t,e,n,i,s){return r(this,void 0,void 0,function*(){if(e.notFound&&(n=!!(0,d.isFolder)(t)&&{}),e.changed){const e=yield this.completeFetch(t,n,i,s);if((0,d.isFolder)(t)){if(this.corruptServerItemsMap(n))return(0,l.default)("[Sync] WARNING: Discarding corrupt folder description from server for "+t),!1;yield this.markChildren(t,n,e.toBeSaved,e.missingChildren)}else yield this.rs.local.setNodes(this.flush(e.toBeSaved))}else yield this.updateCommonTimestamp(t,s);return!0})}handleResponse(t,e,n){return r(this,void 0,void 0,function*(){const r=this.interpretStatus(n.statusCode);if(r.successful){if("get"===e)return this.handleGetResponse(t,r,n.body,n.contentType,n.revision);if("put"===e||"delete"===e)return this.completePush(t,e,r.conflict,n.revision).then(function(){return!0});throw new Error(`cannot handle response for unknown action ${e}`)}{let e;return e=r.unAuth?new h.default:r.networkProblems?new u.default("Network request failed."):new Error("HTTP response code "+r.statusCode+" received."),this.dealWithFailure(t).then(()=>{throw this.rs._emit("error",e),e})}})}finishTask(t){return r(this,arguments,void 0,function*(t,e=!0){if(void 0===t.action)return void delete this._running[t.path];if(e&&((0,l.default)("[Sync] queue finished task:",t.path),this._finishedTasks.push(t),this._finishedTasks.length>1))return void(0,l.default)("[Sync] delaying finished task:",t.path);let n;(0,l.default)("[Sync] run task:",t.path);try{n=yield t.promise}catch(e){(0,l.default)("[Sync] wire client rejects its promise",t.path,t.action,e),n={statusCode:"offline"}}try{const e=yield this.handleResponse(t.path,t.action,n);this.finishSuccessfulTask(t,e)}catch(e){this.finishUnsuccessfulTask(t,e)}})}finishSuccessfulTask(t,e){return r(this,void 0,void 0,function*(){if(this._finishedTasks.shift(),delete this._timeStarted[t.path],delete this._running[t.path],e&&this._tasks[t.path]){for(let e=0;e0?yield this.finishTask(this._finishedTasks[0],!1):yield this.collectTasks(!1).then(()=>{!this.hasTasks()||this.stopped?(this.done||(this.done=!0),this.rs._emit("sync-done",{completed:!0})):setTimeout(()=>{this.doTasks()},10)})})}finishUnsuccessfulTask(t,e){return r(this,void 0,void 0,function*(){(0,l.default)("[Sync]",e.message),this._finishedTasks.shift(),delete this._timeStarted[t.path],delete this._running[t.path],this.rs._emit("sync-req-done",{tasksRemaining:Object.keys(this._tasks).length}),this._finishedTasks.length>0?yield this.finishTask(this._finishedTasks[0],!1):this.done||(this.done=!0,this.rs._emit("sync-done",{completed:!1}))})}tasksWanted(){return this.rs.remote.connected?this.rs.remote.online?this.numThreads:1:0}doTasks(){const t=this.tasksWanted()-Object.keys(this._running).length;if(t<=0)return!0;this.hasTasks()&&!this.done&&this.rs._emit("sync-started");let e,n=0;for(e in this._tasks)if(!this._running[e]&&(this._timeStarted[e]=this.now(),this._running[e]=this.doTask(e).then(this.finishTask.bind(this)),n++,n>=t))break;return n>=t}collectTasks(){return r(this,arguments,void 0,function*(t=!0){if(!this.hasTasks()&&!this.stopped)return(yield this.collectDiffTasks())>0?void 0:t?this.collectRefreshTasks():void 0})}addTask(t,e){this._tasks[t]||(this._tasks[t]=[]),"function"==typeof e&&this._tasks[t].push(e)}sync(){return r(this,void 0,void 0,function*(){if(this.done=!1,!this.doTasks()){try{yield this.collectTasks()}catch(t){throw(0,l.default)("[Sync] Sync error",t),new Error("Local cache unavailable")}this.doTasks()}})}static _rs_init(t){p=function(){const e=new o.default;e.isBrowser()&&function(t,e){function n(t){const n=e.getCurrentSyncInterval();s.default.isBackground=!t;const r=e.getCurrentSyncInterval();e._emit("sync-interval-change",{oldValue:n,newValue:r})}t.on("background",()=>n(!1)),t.on("foreground",()=>n(!0))}(e,t),t.sync||(t.sync=new v(t),t.syncStopped&&((0,l.default)("[Sync] Initializing with sync stopped"),t.sync.stopped=!0,delete t.syncStopped)),t.setupSyncCycle()},f=function(){t.removeEventListener("connected",f),t.startSync()},t.on("ready",p),t.on("connected",f)}static _rs_cleanup(t){t.stopSync(),t.removeEventListener("ready",p),t.removeEventListener("connected",f),t.caching.resetActivationHandler(),t.sync=void 0,delete t.sync}}e.Sync=v,(0,d.applyMixins)(v,[a.default]),e.default=v},370:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})};const i=(this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}})(n(334));function s(t){return"dropbox"===this.backend&&!!t.match(/^\/public\/.*[^\/]$/)}const o={get:function(t,e){if(this.local){if(void 0===e)e="object"==typeof(n=this).remote&&n.remote.connected&&n.remote.online?2*n.getSyncInterval():((0,i.default)("Not setting default maxAge, because remote is offline or not connected"),!1);else if("number"!=typeof e&&!1!==e)return Promise.reject("Argument 'maxAge' must be 'false' or a number");return this.local.get(t,e,this.sync.queueGetRequest.bind(this.sync))}return this.remote.get(t);var n},put:function(t,e,n){return s.bind(this)(t)?o._wrapBusyDone.call(this,this.remote.put(t,e,n)):this.local?this.local.put(t,e,n):o._wrapBusyDone.call(this,this.remote.put(t,e,n))},delete:function(t,e){return this.local?this.local.delete(t,e):o._wrapBusyDone.call(this,this.remote.delete(t,e))},_wrapBusyDone:function(t){return r(this,void 0,void 0,function*(){return this._emit("wire-busy"),t.then(t=>(this._emit("wire-done",{success:!0}),Promise.resolve(t)),t=>(this._emit("wire-done",{success:!1}),Promise.reject(t)))})}};t.exports=o},613:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.BaseClientTypes=void 0;class n{constructor(){this.uris={},this.schemas={},this.aliases={}}declare(t,e,n,r){const i=t+"/"+e;if(r.extends){const e=r.extends.split("/"),n=1===e.length?t+"/"+e.shift():e.join("/"),s=this.uris[n];if(!s)throw"Type '"+i+"' tries to extend unknown schema '"+n+"'";r.extends=this.schemas[s]}this.uris[i]=n,this.aliases[n]=i,this.schemas[n]=r}resolveAlias(t){return this.uris[t]}getSchema(t){return this.schemas[t]}inScope(t){const e=t.length,n={};for(const r in this.uris)if(r.substr(0,e+1)===t+"/"){const t=this.uris[r];n[t]=this.schemas[t]}return n}}e.BaseClientTypes=n,e.default=new n},503:function(t){class e extends Error{constructor(t,e={}){super(),this.name="Unauthorized",this.message=void 0===t?"App authorization expired or revoked.":t,void 0!==e.code&&(this.code=e.code),this.stack=(new Error).stack}}t.exports=e},746:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.toBase64=e.getTextFromArrayBuffer=e.stripLegacyCharsetBinary=e.shouldBeTreatedAsBinary=e.getJSONFromLocalStorage=e.localStorageAvailable=e.pathsFromRoot=e.deepClone=e.equal=e.bindAll=e.cleanPath=e.baseName=e.isDocument=e.isFolder=e.containingFolder=e.extend=e.getGlobalContext=e.globalContext=e.logError=void 0,e.generateCodeVerifier=function(){return r(this,arguments,void 0,function*(t=128){const e=new Uint8Array(t);crypto.getRandomValues(e);const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=Array.from(e).map(t=>n[t%66]),i=r.join(""),s=Uint8Array.from(r.map(t=>t.charCodeAt(0))),o=(a=yield crypto.subtle.digest("SHA-256",s),btoa(String.fromCharCode.apply(null,new Uint8Array(a))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""));var a;return crypto.getRandomValues(e),{codeVerifier:i,codeChallenge:o,state:Array.from(e).map(t=>n[t%66]).join("")}})},e.applyMixins=function(t,e){e.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(n=>{Object.defineProperty(t.prototype,n,Object.getOwnPropertyDescriptor(e.prototype,n))})})},e.logError=t=>{"string"==typeof t?console.error(t):console.error(t.message,t.stack)},e.globalContext="undefined"!=typeof window?window:"object"==typeof self?self:n.g,e.getGlobalContext=()=>"undefined"!=typeof window?window:"object"==typeof self?self:n.g,e.extend=(...t)=>{const e=t[0];return Array.prototype.slice.call(t,1).forEach(function(t){for(const n in t)e[n]=t[n]}),e},e.containingFolder=t=>{if(""===t)return"/";if(!t)throw"Path not given!";return t.replace(/\/+/g,"/").replace(/[^\/]+\/?$/,"")},e.isFolder=t=>"/"===t.slice(-1),e.isDocument=t=>!(0,e.isFolder)(t),e.baseName=t=>{const n=t.split("/");return(0,e.isFolder)(t)?n[n.length-2]+"/":n[n.length-1]},e.cleanPath=t=>t.replace(/\/+/g,"/").split("/").map(encodeURIComponent).join("/").replace(/'/g,"%27"),e.bindAll=t=>{for(const e in this)"function"==typeof t[e]&&(t[e]=t[e].bind(t))},e.equal=(t,n,r=[])=>{let i;if(typeof t!=typeof n)return!1;if("number"==typeof t||"boolean"==typeof t||"string"==typeof t)return t===n;if("function"==typeof t)return t.toString()===n.toString();if(t instanceof ArrayBuffer&&n instanceof ArrayBuffer&&(t=new Uint8Array(t),n=new Uint8Array(n)),null===t||null===n)return t===n;if(t instanceof Array){if(t.length!==n.length)return!1;for(let i=0,s=t.length;i=0)continue;s=r.slice(),s.push(n[i])}if(!(0,e.equal)(t[i],n[i],s))return!1}}return!0},e.deepClone=t=>void 0===t?void 0:"function"==typeof structuredClone?structuredClone(t):JSON.parse(JSON.stringify(t)),e.pathsFromRoot=t=>{const e=[t],n=t.replace(/\/$/,"").split("/");for(;n.length>1;)n.pop(),e.push(n.join("/")+"/");return e},e.localStorageAvailable=()=>{const t=(0,e.getGlobalContext)();if(!("localStorage"in t))return!1;try{return t.localStorage.setItem("rs-check","1"),t.localStorage.removeItem("rs-check"),!0}catch(t){return!1}},e.getJSONFromLocalStorage=t=>{const n=(0,e.getGlobalContext)();try{return JSON.parse(n.localStorage.getItem(t))}catch(t){}},e.shouldBeTreatedAsBinary=(t,e)=>!!(e&&e.match(/charset=binary/)||/[\x00-\x08\x0E-\x1F\x80-\x9F\uFFFD]/.test(t)),e.stripLegacyCharsetBinary=t=>t?t.replace(/\s*;\s*charset=binary\b/i,""):t,e.getTextFromArrayBuffer=(t,n)=>new Promise(r=>{if("undefined"==typeof Blob||"undefined"==typeof FileReader)r(Buffer.from(t).toString(n));else{let i;const s=e.globalContext;if(s.BlobBuilder=s.BlobBuilder||s.WebKitBlobBuilder,void 0!==s.BlobBuilder){const e=new s.BlobBuilder;e.append(t),i=e.getBlob()}else i=new Blob([t]);const o=new FileReader;"function"==typeof o.addEventListener?o.addEventListener("loadend",function(t){r(t.target.result)}):o.onloadend=function(t){r(t.target.result)},o.readAsText(i,n)}}),e.toBase64=t=>{const n=(0,e.getGlobalContext)();return"btoa"in n?n.btoa(t):Buffer.from(t).toString("base64")}},600:function(t,e,n){var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,s){function o(t){try{l(r.next(t))}catch(t){s(t)}}function a(t){try{l(r.throw(t))}catch(t){s(t)}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(o,a)}l((r=r.apply(t,e||[])).next())})},i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};const s=i(n(275)),o=i(n(93)),a=i(n(503)),l=i(n(334)),c=n(746),u=n(368),h=n(684);let d;const p="remotestorage:wireclient",f={"draft-dejong-remotestorage-00":2,"draft-dejong-remotestorage-01":3,"draft-dejong-remotestorage-02":4,"https://www.w3.org/community/rww/wiki/read-write-web-00#simple":1};class g extends h.RemoteBase{constructor(t){if(super(t),this._revisionCache={},d=(0,c.localStorageAvailable)(),this.addEvents(["connected","not-connected"]),d){const t=function(){const{userAddress:t,href:e,storageApi:n,token:r,properties:i}=(0,c.getJSONFromLocalStorage)(p)||{};return{userAddress:t,href:e,storageApi:n,token:r,properties:i}}();t&&setTimeout(()=>{this.configure(t)},0)}this.connected&&setTimeout(this._emit.bind(this),0,"connected")}_request(t,e,n,i,o,h,d){return r(this,void 0,void 0,function*(){if(this.isForbiddenRequestMethod(t,e))return Promise.reject(`Don't use ${t} on directories!`);let r;return n!==s.default.IMPLIED_FAKE_TOKEN&&(i.Authorization="Bearer "+n),this.rs._emit("wire-busy",{method:t,isFolder:(0,c.isFolder)(e)}),(0,u.requestWithTimeout)(t,e,{body:o,headers:i,responseType:"arraybuffer"}).then(n=>{if(this.online||(this.online=!0,this.rs._emit("network-online")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!0}),i=n.status,[401,403,404,412].indexOf(i)>=0)return(0,l.default)("[WireClient] Error response status",n.status),r=h?this.stripQuotes(n.getResponseHeader("ETag")):void 0,401===n.status&&this.rs._emit("error",new a.default),Promise.resolve({statusCode:n.status,revision:r});if(function(t){return[201,204,304].indexOf(t)>=0}(n.status)||200===n.status&&"GET"!==t)return r=this.stripQuotes(n.getResponseHeader("ETag")),(0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,revision:r});{const t=n.getResponseHeader("Content-Type");r=h?this.stripQuotes(n.getResponseHeader("ETag")):200===n.status?d:void 0;const e=function(t){let e,n="utf-8";return t&&(e=t.match(/charset=(.+)$/),e&&(n=e[1])),n}(t);return(0,c.shouldBeTreatedAsBinary)(n.response,t)?((0,l.default)("[WireClient] Successful request with unknown or binary mime-type",r),Promise.resolve({statusCode:n.status,body:n.response,contentType:(0,c.stripLegacyCharsetBinary)(t),revision:r})):(0,c.getTextFromArrayBuffer)(n.response,e).then(e=>((0,l.default)("[WireClient] Successful request",r),Promise.resolve({statusCode:n.status,body:e,contentType:(0,c.stripLegacyCharsetBinary)(t),revision:r})))}var i},n=>(this.online&&(this.online=!1,this.rs._emit("network-offline")),this.rs._emit("wire-done",{method:t,isFolder:(0,c.isFolder)(e),success:!1}),Promise.reject(n)))})}configure(t){if("object"!=typeof t)throw new Error("WireClient configure settings parameter should be an object");if(void 0!==t.userAddress&&(this.userAddress=t.userAddress),void 0!==t.href&&(this.href=t.href),void 0!==t.storageApi&&(this.storageApi=t.storageApi),void 0!==t.token&&(this.token=t.token),void 0!==t.properties&&(this.properties=t.properties),"string"==typeof this.storageApi){const t=f[this.storageApi]||5;this.supportsRevs=t>=2}this.href&&this.token?(this.connected=!0,this.online=!0,this._emit("connected")):this.connected=!1,d&&localStorage.setItem(p,JSON.stringify({userAddress:this.userAddress,href:this.href,storageApi:this.storageApi,token:this.token,properties:this.properties}))}get(t,e={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const n={};return this.supportsRevs&&e.ifNoneMatch&&(n["If-None-Match"]=this.addQuotes(e.ifNoneMatch)),this._request("GET",this.href+(0,c.cleanPath)(t),this.token,n,void 0,this.supportsRevs,this._revisionCache[t]).then(e=>{if(!(0,c.isFolder)(t))return Promise.resolve(e);let n={};if(void 0!==e.body)try{e.body=JSON.parse(e.body)}catch(e){return Promise.reject("Folder description at "+this.href+(0,c.cleanPath)(t)+" is not JSON")}if(200===e.statusCode&&"object"==typeof e.body){if(0===Object.keys(e.body).length)e.statusCode=404;else if("http://remotestorage.io/spec/folder-description"===(r=e.body)["@context"]&&"object"==typeof r.items){for(const n in e.body.items)this._revisionCache[t+n]=e.body.items[n].ETag;n=e.body.items}else Object.keys(e.body).forEach(r=>{this._revisionCache[t+r]=e.body[r],n[r]={ETag:e.body[r]}});return e.body=n,Promise.resolve(e)}return Promise.resolve(e);var r})}put(t,e,n,r={}){if(!this.connected)return Promise.reject("not connected (path: "+t+")");const i={"Content-Type":n};return this.supportsRevs&&(r.ifMatch&&(i["If-Match"]=this.addQuotes(r.ifMatch)),r.ifNoneMatch&&(i["If-None-Match"]=this.addQuotes(r.ifNoneMatch))),this._request("PUT",this.href+(0,c.cleanPath)(t),this.token,i,e,this.supportsRevs)}delete(t,e={}){if(!this.connected)throw new Error("not connected (path: "+t+")");e||(e={});const n={};return this.supportsRevs&&e.ifMatch&&(n["If-Match"]=this.addQuotes(e.ifMatch)),this._request("DELETE",this.href+(0,c.cleanPath)(t),this.token,n,void 0,this.supportsRevs)}static _rs_init(t){t.remote=new g(t),t.remote.online=!0}static _rs_supported(){return"function"==typeof fetch||"function"==typeof XMLHttpRequest}static _rs_cleanup(){d&&delete localStorage[p]}}(0,c.applyMixins)(g,[o.default]),t.exports=g},439:function(t,e){var n;void 0===(n=function(){var t,e,n,r;Object.keys||(Object.keys=(t=Object.prototype.hasOwnProperty,e=!{toString:null}.propertyIsEnumerable("toString"),r=(n=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(i){if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Object.keys called on non-object");var s=[];for(var o in i)t.call(i,o)&&s.push(o);if(e)for(var a=0;a>>0;if(0===n)return-1;var r=0;if(arguments.length>1&&((r=Number(arguments[1]))!=r?r=0:0!==r&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r)))),r>=n)return-1;for(var i=r>=0?r:Math.max(n-Math.abs(r),0);i0&&(e+=u.suffices["*"]&&n||",",u.suffices["*"]&&l&&(e+=u.name+"=")),e+=a?encodeURIComponent(h[p]).replace(/!/g,"%21"):o(h[p])}else if("object"==typeof h){l&&!u.suffices["*"]&&(e+=u.name+"=");var f=!0;for(var g in h)f||(e+=u.suffices["*"]&&n||","),f=!1,e+=a?encodeURIComponent(g).replace(/!/g,"%21"):o(g),e+=u.suffices["*"]?"=":",",e+=a?encodeURIComponent(h[g]).replace(/!/g,"%21"):o(h[g])}else l&&(e+=u.name,c&&""===h||(e+="=")),null!=u.truncate&&(h=h.substring(0,u.truncate)),e+=a?encodeURIComponent(h).replace(/!/g,"%21"):o(h)}return e};return w.varNames=u,{prefix:r,substitution:w}}function l(t){if(!(this instanceof l))return new l(t);for(var e=t.split("{"),n=[e.shift()],r=[],i=[],s=[];e.length>0;){var o=e.shift(),c=o.split("}")[0],u=o.substring(c.length+1),h=a(c);i.push(h.substitution),r.push(h.prefix),n.push(u),s=s.concat(h.substitution.varNames)}this.fill=function(t){for(var e=n[0],r=0;r0&&"/"===e.charAt(t.length-1)||"#"===n.charAt(0)||"?"===n.charAt(0))return!0}return!1}(e,t.id)&&void 0===this.schemas[t.id]&&(this.schemas[t.id]=t),t)if("enum"!==r)if("object"==typeof t[r])this.searchSchemas(t[r],e);else if("$ref"===r){var i=g(t[r]);i&&void 0===this.schemas[i]&&void 0===this.missingMap[i]&&(this.missingMap[i]=i)}},c.prototype.addSchema=function(t,e){if("string"!=typeof t||void 0===e){if("object"!=typeof t||"string"!=typeof t.id)return;t=(e=t).id}t===g(t)+"#"&&(t=g(t)),this.schemas[t]=e,delete this.missingMap[t],m(e,t),this.searchSchemas(e,t)},c.prototype.getSchemaMap=function(){var t={};for(var e in this.schemas)t[e]=this.schemas[e];return t},c.prototype.getSchemaUris=function(t){var e=[];for(var n in this.schemas)t&&!t.test(n)||e.push(n);return e},c.prototype.getMissingUris=function(t){var e=[];for(var n in this.missingMap)t&&!t.test(n)||e.push(n);return e},c.prototype.dropSchemas=function(){this.schemas={},this.reset()},c.prototype.reset=function(){this.missing=[],this.missingMap={},this.errors=[]},c.prototype.validateAll=function(t,e,n,r,i){var s;if(!(e=this.resolveRefs(e)))return null;if(e instanceof x)return this.errors.push(e),e;var o,a=this.errors.length,l=null,c=null;if(this.checkRecursive&&t&&"object"==typeof t){if(s=!this.scanned.length,t[this.validatedSchemasKey]){var u=t[this.validatedSchemasKey].indexOf(e);if(-1!==u)return this.errors=this.errors.concat(t[this.validationErrorsKey][u]),null}if(Object.isFrozen(t)&&-1!==(o=this.scannedFrozen.indexOf(t))){var h=this.scannedFrozenSchemas[o].indexOf(e);if(-1!==h)return this.errors=this.errors.concat(this.scannedFrozenValidationErrors[o][h]),null}if(this.scanned.push(t),Object.isFrozen(t))-1===o&&(o=this.scannedFrozen.length,this.scannedFrozen.push(t),this.scannedFrozenSchemas.push([])),l=this.scannedFrozenSchemas[o].length,this.scannedFrozenSchemas[o][l]=e,this.scannedFrozenValidationErrors[o][l]=[];else{if(!t[this.validatedSchemasKey])try{Object.defineProperty(t,this.validatedSchemasKey,{value:[],configurable:!0}),Object.defineProperty(t,this.validationErrorsKey,{value:[],configurable:!0})}catch(e){t[this.validatedSchemasKey]=[],t[this.validationErrorsKey]=[]}c=t[this.validatedSchemasKey].length,t[this.validatedSchemasKey][c]=e,t[this.validationErrorsKey][c]=[]}}var d=this.errors.length,p=this.validateBasic(t,e,i)||this.validateNumeric(t,e,i)||this.validateString(t,e,i)||this.validateArray(t,e,i)||this.validateObject(t,e,i)||this.validateCombinations(t,e,i)||this.validateHypermedia(t,e,i)||this.validateFormat(t,e,i)||this.validateDefinedKeywords(t,e,i)||null;if(s){for(;this.scanned.length;)delete this.scanned.pop()[this.validatedSchemasKey];this.scannedFrozen=[],this.scannedFrozenSchemas=[]}if(p||d!==this.errors.length)for(;n&&n.length||r&&r.length;){var f=n&&n.length?""+n.pop():null,g=r&&r.length?""+r.pop():null;p&&(p=p.prefixWith(f,g)),this.prefixErrors(d,f,g)}return null!==l?this.scannedFrozenValidationErrors[o][l]=this.errors.slice(a):null!==c&&(t[this.validationErrorsKey][c]=this.errors.slice(a)),this.handleError(p)},c.prototype.validateFormat=function(t,e){if("string"!=typeof e.format||!this.formatValidators[e.format])return null;var n=this.formatValidators[e.format].call(null,t,e);return"string"==typeof n||"number"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n},"","/format",null,t,e):n&&"object"==typeof n?this.createError(v.FORMAT_CUSTOM,{message:n.message||"?"},n.dataPath||"",n.schemaPath||"/format",null,t,e):null},c.prototype.validateDefinedKeywords=function(t,e,n){for(var r in this.definedKeywords)if(void 0!==e[r])for(var i=this.definedKeywords[r],s=0;s=h&&re.maximum)return this.createError(v.NUMBER_MAXIMUM,{value:t,maximum:e.maximum},"","/maximum",null,t,e);if(e.exclusiveMaximum&&t===e.maximum)return this.createError(v.NUMBER_MAXIMUM_EXCLUSIVE,{value:t,maximum:e.maximum},"","/exclusiveMaximum",null,t,e)}return null},c.prototype.validateNaN=function(t,e){return"number"!=typeof t?null:!0===isNaN(t)||t===1/0||t===-1/0?this.createError(v.NUMBER_NOT_A_NUMBER,{value:t},"","/type",null,t,e):null},c.prototype.validateString=function(t,e,n){return this.validateStringLength(t,e,n)||this.validateStringPattern(t,e,n)||null},c.prototype.validateStringLength=function(t,e){return"string"!=typeof t?null:void 0!==e.minLength&&t.lengthe.maxLength?this.createError(v.STRING_LENGTH_LONG,{length:t.length,maximum:e.maxLength},"","/maxLength",null,t,e):null},c.prototype.validateStringPattern=function(t,e){if("string"!=typeof t||"string"!=typeof e.pattern&&!(e.pattern instanceof RegExp))return null;var n;if(e.pattern instanceof RegExp)n=e.pattern;else{var r,i="",s=e.pattern.match(/^\/(.+)\/([img]*)$/);s?(r=s[1],i=s[2]):r=e.pattern,n=new RegExp(r,i)}return n.test(t)?null:this.createError(v.STRING_PATTERN,{pattern:e.pattern},"","/pattern",null,t,e)},c.prototype.validateArray=function(t,e,n){return Array.isArray(t)&&(this.validateArrayLength(t,e,n)||this.validateArrayUniqueItems(t,e,n)||this.validateArrayItems(t,e,n))||null},c.prototype.validateArrayLength=function(t,e){var n;return void 0!==e.minItems&&t.lengthe.maxItems&&(n=this.createError(v.ARRAY_LENGTH_LONG,{length:t.length,maximum:e.maxItems},"","/maxItems",null,t,e),this.handleError(n))?n:null},c.prototype.validateArrayUniqueItems=function(t,e){if(e.uniqueItems)for(var n=0;ne.maxProperties&&(n=this.createError(v.OBJECT_PROPERTIES_MAXIMUM,{propertyCount:r.length,maximum:e.maxProperties},"","/maxProperties",null,t,e),this.handleError(n))?n:null},c.prototype.validateObjectRequiredProperties=function(t,e){if(void 0!==e.required)for(var n=0;n 10000");if(void 0!==v[t])throw new Error("Error already defined: "+t+" as "+v[t]);if(void 0!==b[e])throw new Error("Error code already used: "+b[e]+" as "+e);for(var r in v[t]=e,b[e]=t,_[t]=_[e]=n,C){var i=C[r];i[t]&&(i[e]=i[e]||i[t])}},reset:function(){i.reset(),this.error=null,this.missing=[],this.valid=!0},missing:[],error:null,valid:!0,normSchema:m,resolveUrl:f,getDocumentUri:g,errorCodes:v};return s.language(e||"en"),s}();return k.addLanguage("en-gb",_),k.tv4=k,k}.apply(e,[]))||(t.exports=n)},713:function(t){!function(){{const e=function(){var t={"http://webfinger.net/rel/avatar":"avatar",remotestorage:"remotestorage","http://tools.ietf.org/id/draft-dejong-remotestorage":"remotestorage",remoteStorage:"remotestorage","http://www.packetizer.com/rel/share":"share","http://webfinger.net/rel/profile-page":"profile",me:"profile",vcard:"vcard",blog:"blog","http://packetizer.com/rel/blog":"blog","http://schemas.google.com/g/2010#updates-from":"updates","https://camlistore.org/rel/server":"camilstore"},e={avatar:[],remotestorage:[],blog:[],vcard:[],updates:[],share:[],profile:[],camlistore:[]},n=["webfinger","host-meta","host-meta.json"],r="(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)",i=new RegExp(`^(?:${r}\\.){3}${r}$`),s=new RegExp(`^(${r})\\.(${r})\\.(${r})\\.(${r})$`),o=/^localhost(?:\.localdomain)?(?::\d+)?$/,a=/^\d+$/,l=/^[a-zA-Z0-9.-]+$/,c=/^127\.(?:\d{1,3}\.){2}\d{1,3}$/;function u(t){const e=t.match(s);return e?e.slice(1).map(Number):null}function h(t){const[e,n]=t;return 0===e||10===e||127===e||172===e&&n>=16&&n<=31||192===e&&168===n||169===e&&254===n||e>=224&&e<=239||e>=240}class d extends Error{status;constructor(t,e){super(t),this.name="WebFingerError",this.status=e}}class p{static default;config;constructor(t={}){this.config={tls_only:void 0===t.tls_only||t.tls_only,uri_fallback:void 0!==t.uri_fallback&&t.uri_fallback,request_timeout:void 0!==t.request_timeout?t.request_timeout:1e4,allow_private_addresses:void 0!==t.allow_private_addresses&&t.allow_private_addresses}}async fetchJRD(t,e=0){if(e>3)throw new d("too many redirects");const n=new AbortController,r=setTimeout(()=>{n.abort()},this.config.request_timeout);try{const i=await fetch(t,{headers:{Accept:"application/jrd+json, application/json"},redirect:"manual",signal:n.signal});if(i.status>=300&&i.status<400){const n=i.headers.get("location");if(!n)throw new d("redirect without location header");let s;try{s=new URL(n,t)}catch{throw new d("invalid redirect URL")}try{await this.resolveAndValidateHost(s.host)}catch(t){if(t instanceof d)throw new d("redirect to private or internal address blocked");throw t}return clearTimeout(r),this.fetchJRD(s.toString(),e+1)}if(404===i.status)throw new d("resource not found",404);if(!i.ok)throw new d("error during request",i.status);const s=i.headers.get("content-type")||"",o=s.toLowerCase().split(";")[0].trim();"application/jrd+json"===o||("application/json"===o?console.debug('WebFinger: Server uses "application/json" instead of RFC 7033 recommended "application/jrd+json".'):console.warn(`WebFinger: Server returned unexpected content-type "${s}". Expected "application/jrd+json" per RFC 7033.`));const a=await i.text();if(p.isValidJSON(a))return a;throw new d("invalid json")}catch(t){if(n.signal.aborted)throw new d("request timed out");throw t}finally{clearTimeout(r)}}static isValidJSON(t){try{JSON.parse(t)}catch{return!1}return!0}static isLocalhost(t){return o.test(t)}static isPrivateAddress(t){let e=t;if(e.startsWith("[")&&e.includes("]:"))e=e.substring(1,e.lastIndexOf("]:"));else if(e.startsWith("[")&&e.endsWith("]"))e=e.substring(1,e.length-1);else if(e.includes(":")&&1===(e.match(/:/g)||[]).length){const t=e.split(":"),n=t[0],r=t[1];if(r&&!a.test(r))throw new d("invalid host format");(n.match(i)||n.match(l))&&(e=n)}if("localhost"===e||"127.0.0.1"===e||e.match(c)||"::1"===e||"localhost.localdomain"===e)return!0;const n=u(e);if(n)return h(n);const r=function(t){let e=t.toLowerCase();const n=u(e.substring(e.lastIndexOf(":")+1));if(n&&(e=`${e.substring(0,e.lastIndexOf(":"))}:${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`),!/^[0-9a-f:]+$/.test(e)||e.indexOf("::")!==e.lastIndexOf("::"))return null;const r=e.includes("::"),[i="",s=""]=e.split("::"),o=i?i.split(":"):[],a=r&&s?s.split(":"):[],l=8-o.length-a.length;if(!r&&8!==o.length||r&&l<1)return null;const c=(r?[...o,...Array(l).fill("0"),...a]:o).map(t=>Number.parseInt(t,16));return 8===c.length&&c.every(t=>t>=0&&t<=65535)?c:null}(e);if(r){const t=r.slice(0,5).every(t=>0===t)&&65535===r[5],e=r.slice(0,6).every(t=>0===t);if(t||e)return h([r[6]>>8,255&r[6],r[7]>>8,255&r[7]]);const n=r[0];return 64512==(65024&n)||65152==(65472&n)||!(65280&~n)}return!1}static getExplicitPort(t){if(t.startsWith("[")){const e=t.lastIndexOf("]:");if(-1!==e){const n=t.substring(e+2);if(!a.test(n))throw new d("invalid host format");return n}return}if(1===(t.match(/:/g)||[]).length){const[,e=""]=t.split(":");if(!e||!a.test(e))throw new d("invalid host format");return e}}static parseAddress(t){const e=t.replace(/ /g,"");if(e.includes("://")){let t;try{t=new URL(e)}catch{throw new d("invalid URI format")}if(!t.hostname)throw new d("could not determine host from address");return{host:t.host}}const n=e.split("@");if(2!==n.length||!n[1])throw new d("invalid useraddress format");return{host:n[1]}}async resolveAndValidateHost(t){const e=p.normalizeHost(t);if(!this.config.allow_private_addresses){if(p.isPrivateAddress(e.host))throw new d("private or internal addresses are not allowed");await this.validateDNSResolution(e.hostname)}return e}static normalizeHost(t){const e=t.split("/")[0];if(!e||0===e.length)throw new d("invalid host format");if(/[?# @]/.test(e))throw new d("invalid characters in host");const n=p.getExplicitPort(e);let r;try{r=new URL(`http://${e}`)}catch{throw new d("invalid host format")}const i=r.hostname;return{host:n?`${i}:${n}`:r.host||i,hostname:i}}static async processJRD(n,r){const i=JSON.parse(r);if("object"!=typeof i||"object"!=typeof i.links)throw void 0!==i.error?new d(i.error):new d("unknown response from server");const s={object:i,idx:{properties:{name:void 0},links:JSON.parse(JSON.stringify(e))}};(Array.isArray(i.links)?i.links:[]).map(function(e){if(Object.prototype.hasOwnProperty.call(t,String(e.rel))){const n=t[String(e.rel)];if(s.idx.links[n]){const t={href:String(e.href||""),rel:String(e.rel||"")};Object.keys(e).map(function(n){"object"==typeof e[n]&&null!==e[n]?t[n]=e[n]:t[n]=String(e[n])}),s.idx.links[n].push(t)}}});const o=i.properties||{};for(const t in o)Object.prototype.hasOwnProperty.call(o,t)&&"http://packetizer.com/ns/name"===t&&(s.idx.properties.name=o[t]);return s}async validateDNSResolution(t){if(!t.match(i)&&!t.includes(":")&&"localhost"!==t&&"undefined"!=typeof process&&process.versions?.node){const e="function"==typeof process.getBuiltinModule?process.getBuiltinModule("node:dns")?.promises:null;if(e)try{const[n,r]=await Promise.allSettled([e.resolve4(t).catch(()=>[]),e.resolve6(t).catch(()=>[])]),i="fulfilled"===n.status?n.value:[],s="fulfilled"===r.status?r.value:[];for(const e of[...i,...s])if(p.isPrivateAddress(e))throw new d(`hostname ${t} resolves to private address ${e}`)}catch(t){if(t instanceof d)throw t}}}async lookup(t){if(!t)throw new d("address is required");const{host:e}=p.parseAddress(t),{host:r}=await this.resolveAndValidateHost(e);let i=0,s="https";p.isLocalhost(r)&&(s="http");const o=async t=>{if(this.config.uri_fallback&&i!==n.length-1)return i+=1,a();if(this.config.tls_only||"https"!==s)throw t instanceof Error?t:new d(String(t));return i=0,s="http",a()},a=async()=>{const e=(()=>{let e="";return t.split("://")[1]||(e="acct:"),s+"://"+r+"/.well-known/"+n[i]+"?resource="+e+t})();try{const t=await this.fetchJRD(e);return p.processJRD(e,t)}catch(t){return await o(t)}};return a()}async lookupLink(t,n){if(Object.prototype.hasOwnProperty.call(e,n)){const e=(await this.lookup(t)).idx.links[n];return 0===e.length?Promise.reject('no links found with rel="'+n+'"'):Promise.resolve(e[0])}return Promise.reject("unsupported rel "+n)}}return p.default=p,p}();t.exports=e,t.exports.default=e}}("undefined"!=typeof self&&self)}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var s=e[r]={exports:{}};return t[r].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n(423).default}()},"object"==typeof t&&"object"==typeof e?e.exports=r():"function"==typeof define&&define.amd?define("RemoteStorage",[],r):"object"==typeof t?t.RemoteStorage=r():n.RemoteStorage=r()}),m$=c(g$(),1),y$="0123456789ABCDEFGHJKMNPQRSTVWXYZ";!function(t){t.Base32IncorrectEncoding="B32_ENC_INVALID",t.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",t.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",t.EncodeTimeNegative="ENC_TIME_NEG",t.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",t.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",t.PRNGDetectFailure="PRNG_DETECT",t.ULIDInvalid="ULID_INVALID",t.Unexpected="UNEXPECTED",t.UUIDInvalid="UUID_INVALID"}(i$||(i$={}));var v$=class extends Error{constructor(t,e){super(`${e} (${t})`),this.name="ULIDError",this.code=t}};function b$(t){const e=Math.floor(32*t())%32;return y$.charAt(e)}var w$={type:"object",properties:{id:{type:"string"},title:{type:"string"},lat:{type:"number"},lon:{type:"number"},geohash:{type:"string"},zoom:{type:"number"},url:{type:"string"},osmId:{type:"string"},osmType:{type:"string"},osmTags:{type:"object",additionalProperties:{type:"string"}},description:{type:"string"},tags:{type:"array",items:{type:"string"},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","lat","lon","geohash","createdAt"]},_$={type:"object",properties:{id:{type:"string"},title:{type:"string"},color:{type:"string"},placeRefs:{type:"array",items:{type:"object",properties:{id:{type:"string"},geohash:{type:"string"}},required:["id","geohash"]},default:[]},createdAt:{type:"string",format:"date-time"},updatedAt:{type:"string",format:"date-time"}},required:["id","title","placeRefs","createdAt"]},x$={name:"places",builder:function(t){function e(t,e){return`${t.substring(0,2)}/${t.substring(2,4)}/${e}`}t.declareType("place",w$),t.declareType("list",_$);const n={async getAll(){const e=await t.getAll("_lists/");return e?Object.values(e):[]},async get(e){const n=`_lists/${e}`;return t.getObject(n)},async getPlaces(n){const r=await this.get(n);if(!r)throw new Error(`List not found: ${n}`);if(!r.placeRefs||!Array.isArray(r.placeRefs))return[];const i=r.placeRefs.map(async n=>{if(!n.id||!n.geohash)return null;const r=e(n.geohash,n.id);return await t.getObject(r)});return(await Promise.all(i)).filter(t=>!!t)},async create(e,n,r){const i=`_lists/${e}`;let s=await t.getObject(i);const o=(new Date).toISOString();return s?(s.title=n,r&&(s.color=r),s.updatedAt=o):s={id:e,title:n,color:r,placeRefs:[],createdAt:o,updatedAt:o},await t.storeObject("list",i,s),s},async delete(e){await t.remove(`_lists/${e}`)},async addPlace(e,n,r){const i=`_lists/${e}`,s=await t.getObject(i);if(!s)throw new Error(`List not found: ${e}`);return-1===s.placeRefs.findIndex(t=>t.id===n)&&(s.placeRefs.push({id:n,geohash:r}),s.updatedAt=(new Date).toISOString(),await t.storeObject("list",i,s)),s},async removePlace(e,n){const r=`_lists/${e}`,i=await t.getObject(r);if(!i)throw new Error(`List not found: ${e}`);const s=i.placeRefs.findIndex(t=>t.id===n);return-1!==s&&(i.placeRefs.splice(s,1),i.updatedAt=(new Date).toISOString(),await t.storeObject("list",r,i)),i},async initDefaults(){for(const t of[{id:"to-go",title:"Want to go",color:"#2e9e4f"},{id:"to-do",title:"To do",color:"#2a7fff"}])await this.get(t.id)||await this.create(t.id,t.title,t.color)}};return{exports:{lists:n,store:async function(n){const r=function(t){const e=(new Date).toISOString(),n=t.id||function(t,e){const n=e||function(){const t="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:null,e=t&&(t.crypto||t.msCrypto)||null;if("function"==typeof e?.getRandomValues)return()=>{const t=new Uint8Array(1);return e.getRandomValues(t),t[0]/256};if("function"==typeof e?.randomBytes)return()=>e.randomBytes(1).readUInt8()/256;throw new v$(i$.PRNGDetectFailure,"Failed to find a reliable PRNG")}();return function(t,e=10){if(isNaN(t))throw new v$(i$.EncodeTimeValueMalformed,`Time must be a number: ${t}`);if(t>0xffffffffffff)throw new v$(i$.EncodeTimeSizeExceeded,`Cannot encode a time larger than 281474976710655: ${t}`);if(t<0)throw new v$(i$.EncodeTimeNegative,`Time must be positive: ${t}`);if(!1===Number.isInteger(t))throw new v$(i$.EncodeTimeValueMalformed,`Time must be an integer: ${t}`);let n,r="";for(let i=e;i>0;i--)n=t%32,r=y$.charAt(n)+r,t=(t-n)/32;return r}(!t||isNaN(t)?Date.now():t,10)+function(t,e){let n="";for(;t>0;t--)n=b$(e)+n;return n}(16,n)}(),r="number"==typeof t.lat?t.lat:0,i="number"==typeof t.lon?t.lon:0,s=t.title||"Untitled Place",o=t.geohash||aB.encode(r,i,10),a={...t,id:n,lat:r,lon:i,geohash:o,title:s,tags:t.tags||[],createdAt:t.createdAt||e,updatedAt:t.id?e:void 0};return Object.keys(a).forEach(t=>{void 0===a[t]&&delete a[t]}),a}(n),i=e(r.geohash,r.id);return await t.storeObject("place",i,r),r},remove:async function(r,i){if(!r||!i)throw new Error("Both id and geohash are required to remove a place");const s=await n.getAll();await Promise.all(s.map(async e=>{const n=e.placeRefs.findIndex(t=>t.id===r);-1!==n&&(e.placeRefs.splice(n,1),e.updatedAt=(new Date).toISOString(),await t.storeObject("list",`_lists/${e.id}`,e))}));const o=e(i,r);return t.remove(o)},get:async function(n,r){if(!n||!r)throw new Error("Both id and geohash are required to get a place");const i=e(r,n);return t.getObject(i)},listByPrefix:async function(e){let n="";return e.length>=2&&(n+=e.substring(0,2)+"/"),e.length>=4&&(n+=e.substring(2,4)+"/"),t.getAll(n)},getPlaces:async function(e){const n=[],r=async e=>{const r=await t.getAll(e,!1);r&&Object.values(r).forEach(t=>{t&&"object"==typeof t&&!t.toString().endsWith("/")&&n.push(t)})};if(e&&e.length>0){const t=e.map(async t=>{if(t.length<4)return;const e=t.substring(0,2),n=t.substring(2,4);await r(`${e}/${n}/`)});await Promise.all(t)}else{const e=t=>{if(!t||"object"!=typeof t)return[];let e=t;return t.items&&"object"==typeof t.items&&(e=t.items),Object.keys(e).filter(t=>t.endsWith("/")&&!t.startsWith("@"))},n=e(await t.getListing("",!1));await Promise.all(n.map(async n=>{const i=await t.getListing(n,!1),s=e(i);await Promise.all(s.map(async t=>{await r(n+t)}))}))}return n}}}}},C$=o((t,e)=>{var n,r;n=self,r=()=>(()=>{var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}t.d(e,{default:()=>i});const i=function(){return t=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.rs=e,this.leaveOpen=!!n.leaveOpen&&n.leaveOpen,this.autoCloseAfter=n.autoCloseAfter?n.autoCloseAfter:1500,this.skipInitial=!!n.skipInitial&&n.skipInitial,this.logging=!!n.logging&&n.logging,this.parentContainerEl=null,n.hasOwnProperty("modalBackdrop")){if("boolean"!=typeof n.modalBackdrop&&"onlySmallScreens"!==n.modalBackdrop)throw'options.modalBackdrop has to be true/false or "onlySmallScreens"';this.modalBackdrop=n.modalBackdrop}else this.modalBackdrop="onlySmallScreens";this.active=!1,this.online=!1,this.closed=!1,this.lastSynced=null,this.lastSyncedUpdateLoop=null},e=[{key:"log",value:function(){if(this.logging){for(var t,e=arguments.length,n=new Array(e),r=0;r

Connect your storage

To sync data with your account
';var e=document.createElement("style");return e.innerHTML='#remotestorage-widget {\n z-index: 21000000;\n}\n\n.rs-widget {\n box-sizing: border-box;\n overflow: hidden;\n max-width: 350px;\n padding: 10px;\n margin: 10px;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n font-family: arial, sans-serif;\n font-size: 16px;\n color: #333;\n will-change: max-height, height, width, opacity, max-width, background, box-shadow;\n transition-property: width, height, opacity, max-width, max-height, background, box-shadow;\n transition-duration: 300ms;\n}\n\n.rs-widget * {\n box-sizing: border-box;\n}\n\n.rs-widget .rs-hidden {\n display: none;\n}\n\n.rs-box {\n overflow: hidden;\n will-change: height;\n transition-property: height, width, max-height;\n transition-duration: 300ms;\n transition-timing-function: ease-in;\n opacity: 0;\n max-height: 0px;\n}\n\n.rs-box.rs-selected:not([aria-hidden=true]) {\n opacity: 1;\n max-height: 420px;\n}\n\n/* Main logo */\n.rs-main-logo {\n float: left;\n height: 36px;\n width: 36px;\n margin-top: 1px;\n margin-right: 0.625em;\n transition: margin-left 300ms ease-out, transform 300ms ease-out;\n cursor: pointer;\n}\n.rs-widget .rs-backend-remotestorage svg#rs-main-logo-remotestorage {\n display: block;\n}\n.rs-widget[class*="rs-backend-"]:not(.rs-backend-remotestorage) svg#rs-main-logo-remotestorage {\n display: none;\n}\n.rs-widget.rs-backend-dropbox svg#rs-main-logo-dropbox {\n display: block;\n}\n.rs-widget:not(.rs-backend-dropbox) svg#rs-main-logo-dropbox {\n display: none;\n}\n.rs-widget.rs-backend-googledrive svg#rs-main-logo-googledrive {\n display: block;\n}\n.rs-widget:not(.rs-backend-googledrive) svg#rs-main-logo-googledrive {\n display: none;\n}\n\npolygon.rs-logo-shape {\n fill: #FF4B03;\n}\n\npolygon.rs-logo-shape,\n#rs-main-logo-dropbox path,\n#rs-main-logo-googledrive path {\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n.rs-offline polygon.rs-logo-shape,\n.rs-offline #rs-main-logo-dropbox path,\n.rs-offline #rs-main-logo-googledrive path {\n fill: #888;\n transition-property: fill;\n transition-duration: 0.5s;\n}\n\n/* Hide everything except logo when connected and clicked outside of box */\n.rs-closed {\n max-width: 56px;\n background-color: transparent;\n box-shadow: none;\n opacity: 0.5;\n\n transition: max-height 100ms ease-out 0ms, max-width 300ms ease-out 300ms, background 300ms ease-in 200ms, opacity 300ms ease 200ms;\n}\n\n.rs-closed:hover {\n cursor: pointer;\n opacity: 1;\n}\n\n.rs-box-initial {\n transition-duration: 0ms;\n}\n\n.rs-box-initial:hover {\n cursor: pointer;\n}\n\n.rs-widget a {\n color: #0093cc;\n}\n\n/* HEADLINE */\n.rs-small-headline {\n font-size: 1em;\n font-weight: bold;\n margin: 0;\n margin-bottom: 2px;\n height: 1.2em;\n word-break: break-all;\n overflow: hidden;\n line-height: 1em;\n}\n\n.rs-sub-headline {\n word-break: break-all;\n overflow: hidden;\n color: #666;\n font-size: 0.92em;\n height: 1.2em;\n}\n.rs-big-headline {\n font-size: 1.625em;\n font-weight: normal;\n text-align: center;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* BUTTONS */\n.rs-button {\n font: inherit;\n color: inherit;\n background-color: transparent;\n border: 1px solid #dcdcdc;\n border-radius: 3px;\n cursor: pointer;\n}\n.rs-button-small {\n padding: 0.6em 0.7em;\n margin-left: 0.2em;\n transition: border-color 300ms ease-out;\n}\n.rs-button-small svg {\n vertical-align: top;\n}\n.rs-button-wrap {\n margin-top: 10px;\n}\n\n.rs-button-wrap img,\n.rs-button-wrap svg {\n float: left;\n margin-right: 0.6em;\n width: 40px;\n height: 40px;\n}\n\n.rs-button-big {\n padding: 15px 10px;\n margin-bottom: 10px;\n display: block;\n width: 100%;\n text-align: left;\n transition: box-shadow 200ms;\n}\n.rs-button-big > div {\n font-size: 1.125em;\n padding: 10px 0;\n}\n.rs-button-big:hover {\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:active {\n background-color: #eee;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n.rs-button-big:last-child {\n margin-bottom: 0;\n}\n\n.rs-content {\n padding: 0 10px 10px 10px;\n}\n\n\n.rs-state-choose .rs-main-logo,\n.rs-state-sign-in .rs-main-logo {\n margin-left: 45%;\n float: none;\n}\n\n.rs-sign-in-form input[type=text] {\n padding: 15px 10px;\n display: block;\n width: 100%;\n font: inherit;\n height: 52px;\n border: 1px solid #aaa;\n border-radius: 0;\n box-shadow: none;\n}\n.rs-sign-in-form button.rs-connect {\n padding: 15px 10px;\n margin-top: 20px;\n margin-bottom: 15px;\n display: block;\n width: 100%;\n border: none;\n border-radius: 3px;\n background-color: #3fb34f;\n font: inherit;\n color: #fff;\n transition: box-shadow 200ms, background-color 200ms;\n}\n\n.rs-sign-in-form button.rs-connect:hover {\n cursor: pointer;\n background-color: #4BCB5D;\n box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 3px 8px 0 rgba(0,0,0,0.2);\n}\n\n.rs-sign-in-form button.rs-connect:active {\n background-color: #3fb34f;\n}\n\n.rs-sign-in-form button.rs-connect:disabled,\n.rs-sign-in-form button.rs-connect:disabled:hover {\n background-color: #aaa;\n}\n\n.rs-sign-in-form button.rs-connecting svg {\n height: 1em;\n width: auto;\n vertical-align: middle;\n margin-left: 0.5em;\n animation: rs-spin 1s linear infinite;\n}\n\n.rs-sign-in-error.rs-hidden,\n.rs-box-error.rs-hidden {\n height: 0;\n}\n\n.rs-sign-in-error.rs-visible,\n.rs-box-error.rs-visible {\n height: auto;\n border-radius: 3px;\n padding: 0.5em 0.5em;\n margin-top: 0.5em;\n text-align: center;\n background-color: rgba(255,0,0,0.1);\n color: darkred;\n}\n\n.rs-box-error {\n display: flex;\n flex-direction: row;\n}\n\n.rs-box-error .rs-error-message {\n flex: auto;\n}\n\n /*Choose provider box */\n.rs-box-choose {\n text-align: center;\n overflow: hidden;\n}\n\n.rs-box-choose p {\n margin-top: 0;\n margin-bottom: 20px;\n line-height: 1.4em;\n}\n\n/*Connected box */\n.rs-box-connected {\n display: flex;\n flex-direction: row;\n height: 40px;\n transition: height 0s;\n}\n.rs-connected-text {\n flex: auto;\n min-width: 0;\n}\n.rs-box-connected .rs-user {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n word-break: keep-all;\n}\n.rs-connected-buttons, .rs-error-buttons {\n flex: none;\n}\n.rs-disconnect:hover {\n border-color: #FF2D2D;\n}\n.rs-disconnect:hover .rs-icon{\n fill: #FF2D2D;\n}\n.rs-sync:hover {\n border-color: #FFBB0C;\n}\n.rs-sync:hover .rs-icon {\n fill: #FFBB0C;\n}\n.rs-sync.rs-rotate {\n border-color: #FFBB0C;\n}\n.rs-sync.rs-rotate .rs-icon {\n fill: #FFBB0C;\n animation: rs-spin 1s linear infinite;\n}\n\n/* Floating widget styles (top right corner) */\n.rs-floating {\n position: fixed;\n top: 0;\n right: 0;\n}\n\n@keyframes rs-spin {\n 100% {\n transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* Small/mobile screens */\n@media screen and (max-width: 420px) {\n .rs-widget {\n font-size: 100%;\n transition: all 300ms ease-out;\n max-width: 400px;\n }\n .rs-floating {\n position: relative;\n top: auto;\n right: auto\n }\n .rs-closed {\n max-width: 56px;\n }\n .rs-state-choose,\n .rs-state-sign-in {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n max-width: 100%;\n }\n}\n\n/* remove dotted outline border on Firefox */\n.rs-widget a:focus,\n.rs-widget a:active,\n.rs-widget button:focus,\n.rs-widget input:focus {\n outline:none;\n}\n.rs-widget button::-moz-focus-inner,\n.rs-widget input[type="button"]::-moz-focus-inner {\n border:0;\n}\n\n/* prevent rounded buttons on mobile Safari */\n.rs-widget button,\n.rs-widget input[type="button"] {\n -webkit-appearance: none;\n}\n\n.remotestorage-widget-modal-backdrop {\n display: none;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: opacity 0.3s linear;\n}\n\n.remotestorage-widget-modal-backdrop.visible {\n opacity: 1;\n transition: opacity 0.3s linear;\n}\n',t.appendChild(e),t}},{key:"setModalClass",value:function(){if(this.modalBackdrop){if("onlySmallScreens"===this.modalBackdrop&&!this.isSmallScreen())return;this.rsWidget.classList.add("rs-modal")}}},{key:"setupElements",value:function(){if(!this.parentContainerEl)throw new Error("Parent container element not found");this.rsWidget=this.parentContainerEl.querySelector(".rs-widget"),this.rsBackdrop=this.parentContainerEl.querySelector(".remotestorage-widget-modal-backdrop"),this.rsInitial=this.parentContainerEl.querySelector(".rs-box-initial"),this.rsChoose=this.parentContainerEl.querySelector(".rs-box-choose"),this.rsConnected=this.parentContainerEl.querySelector(".rs-box-connected"),this.rsSignIn=this.parentContainerEl.querySelector(".rs-box-sign-in"),this.rsConnectedLabel=this.parentContainerEl.querySelector(".rs-box-connected .rs-sub-headline"),this.rsChooseRemoteStorageButton=this.parentContainerEl.querySelector("button.rs-choose-rs"),this.rsChooseDropboxButton=this.parentContainerEl.querySelector("button.rs-choose-dropbox"),this.rsChooseGoogleDriveButton=this.parentContainerEl.querySelector("button.rs-choose-googledrive"),this.rsErrorBox=this.parentContainerEl.querySelector(".rs-box-error .rs-error-message"),this.rs.apiKeys.hasOwnProperty("googledrive")||this.rsChooseGoogleDriveButton.parentNode.removeChild(this.rsChooseGoogleDriveButton),this.rs.apiKeys.hasOwnProperty("dropbox")||this.rsChooseDropboxButton.parentNode.removeChild(this.rsChooseDropboxButton),this.rsSignInForm=this.parentContainerEl.querySelector(".rs-sign-in-form"),this.rsAddressInput=this.rsSignInForm.querySelector("input[name=rs-user-address]"),this.rsConnectButton=this.parentContainerEl.querySelector(".rs-connect"),this.rsDisconnectButton=this.parentContainerEl.querySelector(".rs-disconnect"),this.rsSyncButton=this.parentContainerEl.querySelector(".rs-sync"),this.rsLogo=this.parentContainerEl.querySelector(".rs-widget-icon"),this.rsErrorReconnectLink=this.parentContainerEl.querySelector(".rs-box-error a.rs-reconnect"),this.rsErrorDisconnectButton=this.parentContainerEl.querySelector(".rs-box-error button.rs-disconnect"),this.rsConnectedUser=this.parentContainerEl.querySelector(".rs-connected-text h1.rs-user")}},{key:"setupHandlers",value:function(){var t=this;this.rs.on("connected",function(){return t.eventHandler("connected")}),this.rs.on("ready",function(){return t.eventHandler("ready")}),this.rs.on("disconnected",function(){return t.eventHandler("disconnected")}),this.rs.on("network-online",function(){return t.eventHandler("network-online")}),this.rs.on("network-offline",function(){return t.eventHandler("network-offline")}),this.rs.on("error",function(e){return t.eventHandler("error",e)}),this.setEventListeners(),this.setClickHandlers()}},{key:"attach",value:function(t){var e=this.createHtmlTemplate(t);if(this.parentContainerEl,t instanceof HTMLElement)this.parentContainerEl=t;else if("string"==typeof t){if(this.parentContainerEl=document.getElementById(t),!this.parentContainerEl)throw new Error('Failed to find target DOM element with id="'+t+'"')}else{if(t)throw new Error("Unknown element type. Expected instance of HTMLElement or type of string.");this.parentContainerEl=document.body}this.parentContainerEl.appendChild(e),this.setupElements(),this.setupHandlers(),this.setInitialState(),this.setModalClass()}},{key:"setEventListeners",value:function(){var t=this;this.rsSignInForm.addEventListener("submit",function(e){e.preventDefault();var n=t.parentContainerEl.querySelector("input[name=rs-user-address]").value.trim();t.disableConnectButton(),t.rs.connect(n)})}},{key:"showChooseOrSignIn",value:function(){this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.style.display="block",this.rsBackdrop.classList.add("visible")),this.rs.apiKeys&&Object.keys(this.rs.apiKeys).length>0?this.setState("choose"):this.setState("sign-in")}},{key:"setClickHandlers",value:function(){var t=this;this.rsInitial.addEventListener("click",function(){return t.showChooseOrSignIn()}),this.rsChooseRemoteStorageButton.addEventListener("click",function(){t.setState("sign-in"),t.rsAddressInput.focus()}),this.rsChooseDropboxButton.addEventListener("click",function(){return t.rs.dropbox.connect()}),this.rsChooseGoogleDriveButton.addEventListener("click",function(){return t.rs.googledrive.connect()}),this.rsDisconnectButton.addEventListener("click",function(){return t.rs.disconnect()}),this.rsErrorReconnectLink.addEventListener("click",function(){return t.rs.reconnect()}),this.rsErrorDisconnectButton.addEventListener("click",function(){return t.rs.disconnect()}),this.rs.hasFeature("Sync")&&this.rsSyncButton.addEventListener("click",function(){t.rsSyncButton.classList.contains("rs-rotate")?(t.rs.stopSync(),t.rsSyncButton.classList.remove("rs-rotate")):(t.rsConnectedLabel.textContent="Synchronizing",t.rs.startSync(),t.rsSyncButton.classList.add("rs-rotate"))}),document.addEventListener("click",function(){return t.close()}),this.rsWidget.addEventListener("click",function(t){return t.stopPropagation()}),this.rsLogo.addEventListener("click",function(){return t.toggle()})}},{key:"toggle",value:function(){this.closed?this.open():"initial"===this.state?this.showChooseOrSignIn():this.close()}},{key:"open",value:function(){this.closed=!1,this.rsWidget.classList.remove("rs-closed"),this.shouldCloseWhenSyncDone=!1;var t=this.parentContainerEl.querySelector(".rs-box.rs-selected");t&&t.setAttribute("aria-hidden","false")}},{key:"close",value:function(){var t=this;if("error"!==this.state){if(!this.leaveOpen&&this.active){this.closed=!0,this.rsWidget.classList.add("rs-closed");var e=this.parentContainerEl.querySelector(".rs-box.rs-selected");e&&e.setAttribute("aria-hidden","true")}else this.active?this.setState("connected"):this.setInitialState();this.rsWidget.classList.contains("rs-modal")&&(this.rsBackdrop.classList.remove("visible"),setTimeout(function(){t.rsBackdrop.style.display="none"},300))}}},{key:"disableConnectButton",value:function(){this.rsConnectButton.disabled=!0,this.rsConnectButton.classList.add("rs-connecting"),this.rsConnectButton.innerHTML="Connecting ".concat('\n \n \n \n \n \n \n\n')}},{key:"enableConnectButton",value:function(){this.rsConnectButton.disabled=!1,this.rsConnectButton.textContent="Connect",this.rsConnectButton.classList.remove("rs-connecting")}},{key:"setOffline",value:function(){this.online&&(this.rsWidget.classList.add("rs-offline"),this.rsConnectedLabel.textContent="Offline",this.online=!1)}},{key:"setOnline",value:function(){this.online||(this.rsWidget.classList.remove("rs-offline"),this.active&&(this.rsConnectedLabel.textContent="Connected")),this.online=!0}},{key:"setBackendClass",value:function(t){this.rsWidget.classList.remove("rs-backend-remotestorage"),this.rsWidget.classList.remove("rs-backend-dropbox"),this.rsWidget.classList.remove("rs-backend-googledrive"),t&&this.rsWidget.classList.add("rs-backend-".concat(t))}},{key:"showErrorBox",value:function(t){this.rsErrorBox.innerHTML=t,this.setState("error")}},{key:"hideErrorBox",value:function(){this.rsErrorBox.innerHTML="",this.close()}},{key:"handleSyncStarted",value:function(){var t=this;this.syncInProgress=!0,this.rsSyncButton.classList.add("rs-rotate"),setTimeout(function(){t.syncInProgress&&(t.rsConnectedLabel.textContent="Synchronizing")},1e3)}},{key:"handleDiscoveryError",value:function(t){var e=this.parentContainerEl.querySelector(".rs-sign-in-error");e.innerHTML=t.message,e.classList.remove("rs-hidden"),e.classList.add("rs-visible"),this.enableConnectButton()}},{key:"handleSyncError",value:function(){this.setOffline()}},{key:"handleUnauthorized",value:function(t){t.code&&"access_denied"===t.code?this.rs.disconnect():(this.open(),this.showErrorBox(t.message+" "),this.rsErrorBox.appendChild(this.rsErrorReconnectLink),this.rsErrorReconnectLink.classList.remove("rs-hidden"))}},{key:"updateLastSyncedStatus",value:function(){var t=new Date;this.online?(this.lastSynced=t,this.rsConnectedLabel.textContent="Synced"):this.rsWidget.classList.contains("rs-state-unauthorized")||(this.rsConnectedLabel.textContent="Offline")}},{key:"isSmallScreen",value:function(){return window.innerWidth<421}}],e&&function(t,e){for(var n=0;nAs(t.cancelId))}))),s=r.has(e)?r.get(e).debouncedTask:(...n)=>{r.delete(e),t[e](...n)};let o=Os(t,s,...n);r.set(e,{debouncedTask:s,cancelId:o})}var R$=a({default:()=>L$}),L$=class extends fp{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");rs;widget;static{hF(this.prototype,"placesInView",[Wr],function(){return[]})}#Wt=void pF(this,"placesInView");static{hF(this.prototype,"savedPlaces",[Wr],function(){return[]})}#Ht=void pF(this,"savedPlaces");static{hF(this.prototype,"loadedPrefixes",[Wr],function(){return[]})}#Gt=void pF(this,"loadedPrefixes");static{hF(this.prototype,"currentBbox",[Wr],function(){return null})}#Zt=void pF(this,"currentBbox");static{hF(this.prototype,"lists",[Wr],function(){return[]})}#Kt=void pF(this,"lists");static{hF(this.prototype,"version",[Wr],function(){return 0})}#Yt=void pF(this,"version");static{hF(this.prototype,"initialSyncDone",[Wr],function(){return!1})}#Xt=void pF(this,"initialSyncDone");static{hF(this.prototype,"connected",[Wr],function(){return!1})}#Jt=void pF(this,"connected");static{hF(this.prototype,"userAddress",[Wr],function(){return null})}#Qt=void pF(this,"userAddress");static{hF(this.prototype,"isWidgetOpen",[Wr],function(){return!1})}#te=void pF(this,"isWidgetOpen");isNewConnection=!0;constructor(){super(...arguments),this.checkInitialConnectionState(),this.rs=new m$.default({modules:[x$]}),this.rs.access.claim("places","rw"),this.rs.caching.enable("/places/"),window.remoteStorage=this.rs,this.widget=new k$.default(this.rs,{leaveOpen:!0,skipInitial:!0}),this.rs.on("ready",()=>{}),this.rs.on("error",t=>{t&&(console.info("[rs] Error —",`${t.name}: ${t.message}`),"Unauthorized"===t.name&&this.showConnectWidget())}),this.rs.on("connected",()=>{this.connected=!0,this.userAddress=this.rs.remote.userAddress,this.initialSyncDone=!1,this.isNewConnection&&(this.toast.show("Remote storage connected",3e3),this.isNewConnection=!1),this.loadLists()}),this.rs.on("not-connected",()=>{this.initialSyncDone=!0,this.loadLists()}),this.rs.on("disconnected",()=>{this.connected=!1,this.userAddress=null,this.placesInView=[],this.savedPlaces=[],this.loadedPrefixes=[],this.lists=[],this.initialSyncDone=!1,this.isNewConnection=!0}),this.rs.on("sync-done",()=>{this.initialSyncDone||(this.initialSyncDone=!0,this.loadLists())}),this.rs.scope("/places/").on("change",t=>{t.relativePath.startsWith("_lists/")?this.loadLists():(this.handlePlaceChange(t),E$(this,"reloadCurrentView",200))})}checkInitialConnectionState(){this.isNewConnection=!0;try{if(window.localStorage)for(const t of["remotestorage:wireclient","remotestorage:dropbox","remotestorage:googledrive"]){const e=window.localStorage.getItem(t);if(e){const t=JSON.parse(e);if(t&&t.token){this.isNewConnection=!1;break}}}}catch(t){console.warn("Failed to check localStorage for existing connection:",t)}}handlePlaceChange(t){const{newValue:e,relativePath:n}=t,r=n.split("/"),i=r[r.length-1];if(e){const t={...e,id:i},n=this.savedPlaces.findIndex(t=>t.id===i);if(-1!==n){const e=[...this.savedPlaces];e[n]=t,this.savedPlaces=e}else this.savedPlaces=[...this.savedPlaces,t]}else this.savedPlaces=this.savedPlaces.filter(t=>t.id!==i)}get places(){return this.rs.places}notifyChange(){this.version++,E$(this,"reloadCurrentView",200)}reloadCurrentView(){if(!this.currentBbox)return;const t=cB(this.currentBbox);console.debug("Reloading view due to changes, prefixes:",t),this.loadAllPlaces(t)}async loadLists(){try{if(!this.places.lists)return;await this.places.lists.initDefaults();const t=await this.places.lists.getAll();this.lists=t||[],this.lists.forEach(t=>{"to-go"===t.id?t.icon="bookmark":"to-do"===t.id&&(t.icon="check-square")}),this.refreshPlaceListAssociations()}catch(t){console.error("Failed to load lists:",t)}}refreshPlaceListAssociations(){const t=new Map;this.lists.forEach(e=>{e.placeRefs&&Array.isArray(e.placeRefs)&&e.placeRefs.forEach(n=>{n.id&&(t.has(n.id)||t.set(n.id,[]),t.get(n.id).push(e.id))})});const e=e=>(e._listIds=t.get(e.id)||[],e);this.savedPlaces=this.savedPlaces.map(t=>e({...t})),this.placesInView=this.placesInView.map(t=>e({...t}))}async togglePlaceList(t,e,n){if(!t)return;let r=t;if(!t.id||!t.geohash){if(!n)return;r=await this.storePlace(t)}try{return n?await this.places.lists.addPlace(e,r.id,r.geohash):await this.places.lists.removePlace(e,r.id),await this.loadLists(),this.findPlaceById(r.id)}catch(i){throw console.error("Failed to toggle place in list:",i),i}}async getPlacesInList(t){return this.places&&this.places.lists?this.places.lists.getPlaces(t):[]}async loadPlacesInBounds(t){const e=cB(t).filter(t=>!this.loadedPrefixes.includes(t));0!==e.length&&(console.debug("Loading new prefixes:",e),await this.loadAllPlaces(e),this.loadedPrefixes=[...this.loadedPrefixes,...e],this.currentBbox=t)}async loadAllPlaces(t=null){try{const e=await this.places.getPlaces(t);if(e&&Array.isArray(e)){if(t){const n=new Set(t),r=this.placesInView.filter(t=>{if(!t.lat||!t.lon)return!1;try{const e=aB.encode(t.lat,t.lon,4);return!n.has(e)}catch{return!0}});this.placesInView=[...r,...e]}else this.placesInView=e;this.refreshPlaceListAssociations()}else t||(this.placesInView=[]);console.debug("Loaded saved places:",this.placesInView.length)}catch(e){console.error("Failed to load places:",e)}}findPlaceById(t){if(!t)return;const e=String(t);let n=this.savedPlaces.find(t=>t.id&&String(t.id)===e);return n||(n=this.placesInView.find(t=>t.id&&String(t.id)===e),n||(n=this.savedPlaces.find(t=>t.osmId&&String(t.osmId)===e),n||(n=this.placesInView.find(t=>t.osmId&&String(t.osmId)===e),n)))}isPlaceSaved(t){return!!this.findPlaceById(t)}async storePlace(t){const e=await this.places.store(t);return this.savedPlaces.some(t=>t.id===e.id)?this.savedPlaces=this.savedPlaces.map(t=>t.id===e.id?e:t):this.savedPlaces=[...this.savedPlaces,e],this.placesInView.some(t=>t.id===e.id)?this.placesInView=this.placesInView.map(t=>t.id===e.id?e:t):this.placesInView=[...this.placesInView,e],e}async updatePlace(t){const e=await this.places.store(t),n=this.savedPlaces.findIndex(t=>t.id===e.id);if(-1!==n){const t=[...this.savedPlaces];t[n]=e,this.savedPlaces=t}return this.placesInView=this.placesInView.map(t=>t.id===e.id?e:t),e}async removePlace(t){await this.places.remove(t.id,t.geohash),this.savedPlaces=this.savedPlaces.filter(e=>e.id!==t.id),this.placesInView.length>0&&(this.placesInView=this.placesInView.filter(e=>e.id!==t.id))}async refreshPlace(t){if(!(t&&t.id&&t.osmId&&t.osmType))return null;try{console.debug(`Checking for updates for ${t.title} (${t.osmId})`);const e=await this.osm.fetchOsmObject(t.osmId,t.osmType,{forceFresh:!0});if(!e)return console.warn("Could not fetch fresh data for",t.osmId),null;let n=!1;const r={},i=Math.abs(t.lat-e.lat),s=Math.abs(t.lon-e.lon);(i>1e-5||s>1e-5)&&(n=!0,r.lat=e.lat,r.lon=e.lon);const o=t.osmTags||{},a=e.osmTags||{},l=new Set([...Object.keys(o),...Object.keys(a)]);for(const t of l)if(o[t]!==a[t]){n=!0,r.osmTags=a;break}if(!n)return console.debug("No changes detected for",t.title),null;console.debug("Changes detected:",r);const c={...t,...r},u=JB(o),h=JB(a);return t.title===u&&u!==h&&(c.title=h),await this.updatePlace(c)}catch(e){return console.error("Failed to refresh place:",e),null}}showConnectWidget(){this.isWidgetOpen=!0,document.querySelector(".rs-widget")||this.widget.attach("rs-widget-container")}static{dF(this.prototype,"showConnectWidget",[Vl])}closeWidget(){this.isWidgetOpen=!1}static{dF(this.prototype,"closeWidget",[Vl])}disconnect(){this.rs.disconnect(),this.isWidgetOpen=!1}static{dF(this.prototype,"disconnect",[Vl])}},T$=a({default:()=>P$}),P$=class extends fp{static{hF(this.prototype,"message",[Wr],function(){return null})}#ee=void pF(this,"message");static{hF(this.prototype,"isVisible",[Wr],function(){return!1})}#ne=void pF(this,"isVisible");timeoutId=null;show(t,e=3e3){this.message=t,this.isVisible=!0,this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.isVisible=!1},e)}},I$=a({getDistance:()=>M$});function M$(t,e,n,r){const i=t*Math.PI/180,s=n*Math.PI/180,o=(n-t)*Math.PI/180,a=(r-e)*Math.PI/180,l=Math.sin(o/2)*Math.sin(o/2)+Math.cos(i)*Math.cos(s)*Math.sin(a/2)*Math.sin(a/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3}var A$=a({getIcon:()=>z$,isIconFilled:()=>F$}),O$={activity:'',angelfish:'\n \n',anchor:'\n \n',"airport-terminal":'\n \n',"arrow-left":'',barbell:'\n \n',"barrel-with-bunghole":'\n \n',banknote:'\n \n',"banknote-in-slot":'\n \n',"badge-shield-with-fire":'\n \n',"beach-umbrella-in-ground":'\n \n',"beer-mug-with-foam":'\n \n',bitcoin:'\n \n\n',bookmark:'',"boxing-glove-up":'\n \n',"burger-and-drink-cup-with-straw":'\n \n',bridge:'\n \n',bus:'\n \n',camera:'\n \n',"feather-camera":'',"check-square":'',"chevron-left":'',"chevron-right":'',"cigarette-with-smoke-curl":'\n \n',"city-gate":'\n \n',climbing_wall:'\n \n',check:'',"alert-circle":'',"alert-triangle":'',"classical-building":'\n \n',"classical-building-with-clock":'\n \n',"classical-building-with-dome-and-flag":'\n \n',"classical-building-with-flag":'\n \n',"commercial-building":'\n \n',"clothes-hanger":'\n \n',cleaver:'\n \n',cloth:'\n \n',cocktail:'\n \n',couch:'\n \n',clock:'',"coffee-bean":'\n \n',"comedy-mask-and-tragedy-mask":'\n \n',croissant:'\n \n',"cup-and-saucer":'\n \n',database:'',donut:'\n \n',"dollar-swap-to-euro":'\n \n',edit:'',eyeglasses:'\n \n',facebook:'',"fancy-mirror-with-reflection-and-stars":'\n \n',"family-restroom-symbol":'\n \n',film:'\n \n',"fingernail-polished":'\n \n',fish:'\n \n',"flag-checkered":'\n \n',"flower-bouquet":'\n \n',"fork-and-knife":'\n \n',fort:'\n \n',"gasoline-pump":'\n \n',gift:'',globe:'',grapes:'\n \n',gravestone:'\n \n',"grecian-vase":'\n \n',"greek-cross":'\n \n',heart:'',home:'',"ice-cream-on-cone":'\n \n',"industrial-building":'\n \n',info:'',"info-i":'\n \n',instagram:'',jewel:'\n \n',"log-in":'',"log-out":'',"lowrise-building":'\n \n',mail:'',map:'',"map-pin":'',"market-stall":'\n \n',"memorial-stone-with-inscription":'\n \n',menu:'',"mobile-phone-with-keypad-and-antenna":'\n \n',"molar-tooth":'\n \n',"more-horizontal":'',"more-vertical":'',navigation:'',"needle-and-spool-of-thread":'\n \n',nostrich:'\n \n\n',"open-book":'\n \n',palace:'\n \n',"payment-card":'\n \n',"person-cricket-batting-at-cricket-ball":'\n \n',"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track":'\n \n',"person-jockeying-racehorse":'\n \n',"person-playing-tennis":'\n \n',"person-running":'\n \n',"person-sleeping-in-bed":'\n \n',"person-swimming-in-water":'\n \n',"person-swinging-golf-club":'\n \n',phone:'',"plane-top-right":'\n \n',"plant-in-raised-planter":'\n \n',"place-of-worship-building":'\n \n',"play-structure-with-slide":'\n \n',"police-officer-with-stop-arm":'\n \n',plus:'',"round-structure-with-flag":'\n \n',remotestorage:'\n\x3c!-- Creator: CorelDRAW X7 --\x3e\n\n \n',"sailing-ship-in-water":'\n \n',"scissors-open":'\n \n',"shipwreck-in-water":'\n \n',"steam-train-on-railway-track":'\n \n',"shopping-bag":'\n \n',search:'',server:'',settings:'',"shopping-basket":'\n \n',"shopping-cart":'\n \n',"table-tennis-paddle":'\n \n',"tattoo-machine":'\n \n',toolbox:'\n \n',target:'',"trash-2":'',"upload-cloud":'',"tree-and-bench-with-backrest":'\n \n',user:'',"user-check":'',"village-buildings":'\n \n',"wall-hanging-with-mountains-and-sun":'\n \n',"womens-and-mens-restroom-symbol":'\n \n',whatsapp:'\n\n \n\n',wikipedia:'\n\n\n',winding_way_wide:'\n \n',"water-standpipe-with-handle-and-drinking-glass":'\n \n',parking_p:'\n \n',car:'\n \n',"car-and-wrench":'\n \n',"car-between-roller-brushes":'\n \n',"castle-keep":'\n \n',x:'',zap:'',shield:'',"loading-ring":''},N$=["banknote","bitcoin","fork-and-knife","payment-card","wikipedia","whatsapp","cup-and-saucer","coffee-bean","shopping-basket","person-sleeping-in-bed","loading-ring","nostrich"];function z$(t){return O$[t]}function F$(t){return N$.includes(t)}var D$=a({POI_ICON_RULES:()=>j$,getIconNameForTags:()=>U$,getIconSvgForTags:()=>B$}),j$=[{tags:{cuisine:"donut"},icon:"donut"},{tags:{cuisine:"doughnut"},icon:"donut"},{tags:{cuisine:"coffee_shop"},icon:"coffee-bean"},{tags:{cuisine:"coffee"},icon:"coffee-bean"},{tags:{craft:"brewery"},icon:"barrel-with-bunghole"},{tags:{amenity:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{cuisine:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{shop:"ice_cream"},icon:"ice-cream-on-cone"},{tags:{amenity:"cafe"},icon:"cup-and-saucer"},{tags:{amenity:"restaurant"},icon:"fork-and-knife"},{tags:{amenity:"fast_food"},icon:"burger-and-drink-cup-with-straw"},{tags:{amenity:"pub"},icon:"beer-mug-with-foam"},{tags:{amenity:"bar"},icon:"cocktail"},{tags:{amenity:"food_court"},icon:"fork-and-knife"},{tags:{amenity:"childcare"},icon:"family-restroom-symbol"},{tags:{amenity:"community_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_centre"},icon:"family-restroom-symbol"},{tags:{amenity:"social_facility"},icon:"family-restroom-symbol"},{tags:{amenity:"bank"},icon:"banknote"},{tags:{amenity:"atm"},icon:"banknote-in-slot"},{tags:{amenity:"bureau_de_change"},icon:"dollar-swap-to-euro"},{tags:{amenity:"place_of_worship"},icon:"place-of-worship-building"},{tags:{amenity:"townhall"},icon:"classical-building-with-clock"},{tags:{building:"townhall"},icon:"classical-building-with-clock"},{tags:{amenity:"fire_station"},icon:"badge-shield-with-fire"},{tags:{amenity:"police"},icon:"police-officer-with-stop-arm"},{tags:{amenity:"toilets"},icon:"womens-and-mens-restroom-symbol"},{tags:{amenity:"smoking_area"},icon:"cigarette-with-smoke-curl"},{tags:{amenity:"lounge"},icon:"couch"},{tags:{amenity:"drinking_water"},icon:"water-standpipe-with-handle-and-drinking-glass"},{tags:{amenity:"school"},icon:"open-book"},{tags:{amenity:"driving_school"},icon:"car"},{tags:{amenity:"car_wash"},icon:"car-between-roller-brushes"},{tags:{amenity:"fuel"},icon:"gasoline-pump"},{tags:{shop:"coffee"},icon:"coffee-bean"},{tags:{shop:"tea"},icon:"coffee-bean"},{tags:{shop:"pastry"},icon:"donut"},{tags:{shop:"supermarket"},icon:"shopping-cart"},{tags:{shop:"convenience"},icon:"shopping-basket"},{tags:{shop:"grocery"},icon:"shopping-basket"},{tags:{shop:"greengrocer"},icon:"shopping-basket"},{tags:{shop:"bakery"},icon:"croissant"},{tags:{shop:"butcher"},icon:"cleaver"},{tags:{shop:"seafood"},icon:"fish"},{tags:{shop:"deli"},icon:"shopping-basket"},{tags:{shop:"clothes"},icon:"clothes-hanger"},{tags:{shop:"clothing"},icon:"clothes-hanger"},{tags:{shop:"hairdresser"},icon:"scissors-open"},{tags:{shop:"optician"},icon:"eyeglasses"},{tags:{shop:"fabric"},icon:"cloth"},{tags:{shop:"flea_market"},icon:"market-stall"},{tags:{shop:"kiosk"},icon:"shopping-basket"},{tags:{shop:"leather"},icon:"shopping-bag"},{tags:{shop:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{shop:"jewelry"},icon:"jewel"},{tags:{shop:"jewellery"},icon:"jewel"},{tags:{shop:"tobacco"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"cannabis"},icon:"cigarette-with-smoke-curl"},{tags:{shop:"florist"},icon:"flower-bouquet"},{tags:{shop:"garden_centre"},icon:"plant-in-raised-planter"},{tags:{shop:"estate_agent"},icon:"village-buildings"},{tags:{shop:"mobile_phone"},icon:"mobile-phone-with-keypad-and-antenna"},{tags:{beauty:"nails"},icon:"fingernail-polished"},{tags:{shop:"tattoo"},icon:"tattoo-machine"},{tags:{shop:"beauty"},icon:"fancy-mirror-with-reflection-and-stars"},{tags:{shop:"car_repair"},icon:"car-and-wrench"},{tags:{craft:"tailor"},icon:"needle-and-spool-of-thread"},{tags:{office:"estate_agent"},icon:"village-buildings"},{tags:{office:!0},icon:"commercial-building"},{tags:{craft:!0},icon:"toolbox"},{tags:{shop:!0},icon:"shopping-bag"},{tags:{natural:"beach"},icon:"beach-umbrella-in-ground"},{tags:{leisure:"park"},icon:"tree-and-bench-with-backrest"},{tags:{leisure:"playground"},icon:"play-structure-with-slide"},{tags:{leisure:"marina"},icon:"anchor"},{tags:{landuse:"vineyard"},icon:"grapes"},{tags:{aeroway:"aerodrome"},icon:"plane-top-right"},{tags:{aeroway:"terminal"},icon:"airport-terminal"},{tags:{aeroway:"heliport"},icon:"plane-top-right"},{tags:{aeroway:"helipad"},icon:"plane-top-right"},{tags:{highway:"bus_stop"},icon:"bus"},{tags:{bus:!0},icon:"bus"},{tags:{railway:"tram_stop"},icon:"person-boarding-tram-with-destination-display-and-pantograph-on-tram-track"},{tags:{tourism:"museum"},icon:"classical-building"},{tags:{tourism:"gallery"},icon:"wall-hanging-with-mountains-and-sun"},{tags:{tourism:"aquarium"},icon:"angelfish"},{tags:{tourism:"theme_park"},icon:"camera"},{tags:{tourism:"attraction"},icon:"camera"},{tags:{tourism:"viewpoint"},icon:"camera"},{tags:{tourism:"zoo"},icon:"camera"},{tags:{tourism:"artwork"},icon:"camera"},{tags:{tourism:"information"},icon:"info-i"},{tags:{amenity:"cinema"},icon:"film"},{tags:{amenity:"theatre"},icon:"camera"},{tags:{amenity:"arts_centre"},icon:"comedy-mask-and-tragedy-mask"},{tags:{amenity:"arts_center"},icon:"comedy-mask-and-tragedy-mask"},{tags:{historic:"canal"},icon:"winding_way_wide"},{tags:{historic:"bridge"},icon:"bridge"},{tags:{historic:"bridge_site"},icon:"bridge"},{tags:{historic:"fort"},icon:"fort"},{tags:{historic:"city_gate"},icon:"city-gate"},{tags:{historic:"castle"},icon:"palace"},{tags:{building:"tower",historic:"yes"},icon:"castle-keep"},{tags:{historic:"building"},icon:"classical-building-with-flag"},{tags:{historic:"archaeological_site"},icon:"grecian-vase"},{tags:{historic:"memorial"},icon:"memorial-stone-with-inscription"},{tags:{historic:"tomb"},icon:"gravestone"},{tags:{historic:"monument"},icon:"classical-building-with-dome-and-flag"},{tags:{historic:"folly"},icon:"classical-building"},{tags:{historic:"industrial"},icon:"industrial-building"},{tags:{historic:"railway_station"},icon:"steam-train-on-railway-track"},{tags:{historic:"ship"},icon:"sailing-ship-in-water"},{tags:{historic:"wreck"},icon:"shipwreck-in-water"},{tags:{historic:"ruins"},icon:"camera"},{tags:{historic:"ruin"},icon:"camera"},{tags:{historic:"yes"},icon:"camera"},{tags:{tourism:"hotel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"hostel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"motel"},icon:"person-sleeping-in-bed"},{tags:{tourism:"guest_house"},icon:"person-sleeping-in-bed"},{tags:{leisure:"resort"},icon:"person-sleeping-in-bed"},{tags:{sport:"motor"},icon:"flag-checkered"},{tags:{sport:"karting"},icon:"flag-checkered"},{tags:{sport:"motocross"},icon:"flag-checkered"},{tags:{sport:"cricket"},icon:"person-cricket-batting-at-cricket-ball"},{tags:{sport:"boxing"},icon:"boxing-glove-up"},{tags:{sport:"martial_arts"},icon:"boxing-glove-up"},{tags:{sport:"tennis"},icon:"person-playing-tennis"},{tags:{sport:"squash"},icon:"person-playing-tennis"},{tags:{sport:"padel"},icon:"person-playing-tennis"},{tags:{sport:"table_tennis"},icon:"table-tennis-paddle"},{tags:{sport:"climbing"},icon:"climbing_wall"},{tags:{leisure:"water_park"},icon:"person-swimming-in-water"},{tags:{sport:"swimming"},icon:"person-swimming-in-water"},{tags:{sport:"golf"},icon:"person-swinging-golf-club"},{tags:{leisure:"golf_course"},icon:"person-swinging-golf-club"},{tags:{sport:"horse_racing"},icon:"person-jockeying-racehorse"},{tags:{sport:"fitness"},icon:"barbell"},{tags:{sport:"fitness_centre"},icon:"barbell"},{tags:{leisure:"fitness_centre"},icon:"barbell"},{tags:{sport:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"stadium"},icon:"round-structure-with-flag"},{tags:{leisure:"sports_centre"},icon:"person-running"},{tags:{leisure:"pitch"},icon:"person-running"},{tags:{sport:!0},icon:"person-running"},{tags:{amenity:"dentist"},icon:"molar-tooth"},{tags:{healthcare:"dentist"},icon:"molar-tooth"},{tags:{healthcare:!0},icon:"greek-cross"},{tags:{amenity:"parking"},icon:"parking_p"},{tags:{building:"commercial"},icon:"commercial-building"},{tags:{building:"apartments"},icon:"lowrise-building"},{tags:{building:"office"},icon:"lowrise-building"}];function U$(t){if(!t)return null;for(const e of j$){let n=!0;for(const[r,i]of Object.entries(e.tags)){const e=t[r];if(!e){n=!1;break}const s=e.split(";").map(t=>t.trim());if(!0!==i&&!s.includes(i)){n=!1;break}}if(n)return e.icon}return null}function B$(t){const e=U$(t);return e?z$(e):null}var $$=a({parsePaymentMethods:()=>H$}),q$=["payment:cards","payment:credit_cards","payment:debit_cards","payment:contactless","payment:visa","payment:mastercard","payment:american_express","payment:amex","payment:maestro","payment:girocard","payment:discover_card","payment:diners_club","payment:jcb","payment:unionpay","payment:bancontact","payment:postfinance_card","payment:mir","payment:dankort","payment:interac","payment:visa_debit","payment:mastercard_debit","payment:apple_pay","payment:google_pay"];function V$(t){return"yes"===t||"only"===t}function W$(t){return"no"===t}function H$(t={}){const e=t||{};let n=null;const r=e["payment:cash"],i=e["payment:coins"],s=e["payment:notes"];V$(r)||!W$(r)&&(V$(i)||V$(s))?n="accepted":(W$(r)||!V$(r)&&W$(i)&&W$(s))&&(n="denied");let o=null;if(q$.some(t=>V$(e[t])))o="accepted";else{const t=W$(e["payment:cards"]),n=W$(e["payment:credit_cards"])&&W$(e["payment:debit_cards"]),r="only"===e["payment:cash"];(t||n||r)&&(o="denied")}const a=e["currency:XBT"],l=e["payment:lightning"],c=e["payment:onchain"],u=e["payment:bitcoin"],h=e["currency:BTC"],d=V$(a)||V$(l)||V$(c)||V$(u)||V$(h),p=!d&&(W$(a)||W$(u)),f=V$(l),g=V$(c)||(V$(a)||V$(u)||V$(h))&&!W$(c),m={status:d?"accepted":p?"denied":null,lightning:f,onchain:!!d&&g};return{hasPaymentInfo:null!==n||null!==o||null!==m.status,cash:n,cards:o,bitcoin:m}}var G$=a({getMatchingPoiCategories:()=>Z$,getMatchingPoiCategoryIds:()=>K$});function Z$(t,e){return Array.isArray(e)&&t?e.filter(e=>!!Array.isArray(e.filter)&&e.filter.some(e=>function(t,e){const n=function(t){if(!t)return[];const e=t.match(/\[[^\]]+\]/g);return e?e.map(t=>function(t){const e=t.match(/^"([^"]+)"$/);if(e)return{type:"presence",key:e[1]};const n=t.match(/^"([^"]+)"\s*=\s*"([^"]*)"$/);if(n)return{type:"equals",key:n[1],value:n[2]};const r=t.match(/^"([^"]+)"\s*~\s*"([^"]*)"$/);if(r)return{type:"regex",key:r[1],pattern:r[2],regex:new RegExp(r[2])};const i=t.match(/^"([^"]+)"\s*!~\s*"([^"]*)"$/);return i?{type:"not-regex",key:i[1],pattern:i[2],regex:new RegExp(i[2])}:null}(t.slice(1,-1).trim())).filter(Boolean):[]}(e);return 0!==n.length&&n.every(e=>function(t,e){const n=function(t,e){if(!t||!e)return[];const n=t[e];return null==n?[]:String(n).split(";").map(t=>t.trim()).filter(Boolean)}(t,e.key);switch(e.type){case"presence":return n.length>0;case"equals":return n.some(t=>t===e.value);case"regex":return n.some(t=>e.regex.test(t));case"not-regex":return 0===n.length||!n.some(t=>e.regex.test(t));default:return!1}}(t,e))}(t,e))):[]}function K$(t,e){return Z$(t,e).map(t=>t.id)}var Y$=a({CATEGORY_TAGS:()=>X$,getSuggestedPhotoTags:()=>J$}),X$={restaurants:["front","food","drinks","menu","vibe"],coffee:["front","food","drinks","menu","vibe"],groceries:["front","products"],"things-to-do":["front","architecture","amenities","vibe"],accommodation:["front","rooms","amenities","food","drinks","vibe"]};function J$(t){const e=K$(t?.osmTags||t?.tags||{},n$),n=[];for(const r of e){const t=X$[r];if(Array.isArray(t))for(const e of t)n.includes(e)||n.push(e)}return 0===n.length?[]:n}var Q$=a({mapToStorageSchema:()=>tq});function tq(t){return{title:t.title||JB(t.osmTags,"Untitled Place"),lat:t.lat,lon:t.lon,tags:[],url:t.osmTags?.website,osmId:String(t.osmId||t.id),osmType:t.osmType,osmTags:t.osmTags||{},description:t.description}}var eq=a({getSocialInfo:()=>rq}),nq=(t,...e)=>{for(const n of e)if(t[n])return t[n];return null};function rq(t,e){if(!t)return null;const n=`${e}.com`,r=nq(t,`contact:${e}`,e);if(!r)return null;if(r.startsWith("http"))try{const t=new URL(r);return"facebook"===e&&"/profile.php"===t.pathname&&t.searchParams.has("id")?{url:r,username:t.searchParams.get("id")}:{url:r,username:t.pathname.replace(/^\/|\/$/g,"")||r}}catch{return{url:r,username:r}}const i=r.replace(/^@/,"");return{url:`https://${n}/${i}`,username:i}}var iq,sq,oq,aq,lq,cq=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],uq=t=>{let e=0;for(let n=0;n{var n="";for(let r=1;r<=e;r++){let i=Math.floor(t)/Math.pow(83,e-r)%83;n+=cq[Math.floor(i)]}return n},dq=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},pq=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(12.92*e*255+.5):Math.trunc(255*(1.055*Math.pow(e,.4166666666666667)-.055)+.5)},fq=(t,e)=>(t=>t<0?-1:1)(t)*Math.pow(Math.abs(t),e),gq=class extends Error{constructor(t){super(t),this.name="ValidationError",this.message=t}},mq=t=>{let e=t>>8&255,n=255&t;return[dq(t>>16),dq(e),dq(n)]},yq=(t,e)=>{let n=Math.floor(t/361),r=Math.floor(t/19)%19,i=t%19;return[fq((n-9)/9,2)*e,fq((r-9)/9,2)*e,fq((i-9)/9,2)*e]},vq=(t,e,n,r)=>{let i=0,s=0,o=0,a=4*e;for(let c=0;c{if("PROCESS_IMAGE"!==t.data?.type)return;const{id:e,file:n,targetWidth:r,targetHeight:i,quality:s,computeBlurhash:o}=t.data;try{let t,c;try{const e=await createImageBitmap(n,{resizeWidth:r,resizeHeight:i,resizeQuality:"high"});if(t=new OffscreenCanvas(r,i),c=t.getContext("2d"),!c)throw new Error("Failed to get 2d context from OffscreenCanvas");c.drawImage(e,0,0,r,i),e.close()}catch(a){console.warn("Hardware resize failed, falling back to stepped software scaling:",a);const e=await n.arrayBuffer(),s=new Blob([e],{type:n.type}),o=await createImageBitmap(s);let l=o.width,u=o.height,h=new OffscreenCanvas(l,u),d=h.getContext("2d");for(d.imageSmoothingEnabled=!0,d.imageSmoothingQuality="high",d.drawImage(o,0,0);.5*h.width>r&&.5*h.height>i;){const t=new OffscreenCanvas(Math.floor(.5*h.width),Math.floor(.5*h.height)),e=t.getContext("2d");e.imageSmoothingEnabled=!0,e.imageSmoothingQuality="high",e.drawImage(h,0,0,t.width,t.height),h=t}t=new OffscreenCanvas(r,i),c=t.getContext("2d"),c.imageSmoothingEnabled=!0,c.imageSmoothingQuality="high",c.drawImage(h,0,0,r,i),o.close()}let u=null;if(o)try{u=((t,e,n)=>{if(e*n*4!==t.length)throw new gq("Width and height must match the pixels array");let r=[];for(let l=0;l<3;l++)for(let i=0;i<4;i++){let s=0==i&&0==l?1:2,o=vq(t,e,n,(t,r)=>s*Math.cos(Math.PI*i*t/e)*Math.cos(Math.PI*l*r/n));r.push(o)}let i,s=r[0],o=r.slice(1),a="";if(a+=hq(21,1),o.length>0){let t=Math.max(...o.map(t=>Math.max(...t))),e=Math.floor(Math.max(0,Math.min(82,Math.floor(166*t-.5))));i=(e+1)/166,a+=hq(e,1)}else i=1,a+=hq(0,1);return a+=hq((t=>(pq(t[0])<<16)+(pq(t[1])<<8)+pq(t[2]))(s),4),o.forEach(t=>{a+=hq(((t,e)=>19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*fq(t[0]/e,.5)+9.5))))*19+19*Math.floor(Math.max(0,Math.min(18,Math.floor(9*fq(t[1]/e,.5)+9.5))))+Math.floor(Math.max(0,Math.min(18,Math.floor(9*fq(t[2]/e,.5)+9.5)))))(t,i),2)}),a})(c.getImageData(0,0,r,i).data,r,i)}catch(l){console.warn("Could not generate blurhash (possible canvas fingerprinting protection):",l)}const h=await t.convertToBlob({type:"image/jpeg",quality:s}),d=`${r}x${i}`;self.postMessage({id:e,success:!0,blob:h,dim:d,blurhash:u})}catch(s7){self.postMessage({id:e,success:!1,error:s7.message})}};var Cq="undefined"!=typeof FastBoot,kq="routeDidChange",Sq=["separator","prepend","replace"],Eq=(iq=pp("router"),sq=pp("-document"),oq=class extends fp{constructor(t){if(super(t),_q(this,"router",aq,this),_q(this,"document",lq,this),wq(this,"tokens",[]),wq(this,"_defaultConfig",{separator:" | ",prepend:!0,replace:null}),wq(this,"scheduleTitleUpdate",()=>{Is("afterRender",this,this._updateTitle)}),this._validateExistingTitleElement(),function(t){return"resolveRegistration"in t}(t)){const n=t.resolveRegistration("config:environment");"object"==typeof(e=n)&&null!==e&&"pageTitle"in e&&Sq.forEach(t=>{if(!function(t){if(null==t)return!0;if(!ur(t)&&"number"==typeof t.size)return!t.size;if("object"==typeof t){let e=hr(t,"size");if("number"==typeof e)return!e;let n=hr(t,"length");if("number"==typeof n)return!n}return"number"==typeof t.length&&"function"!=typeof t&&!t.length}(n.pageTitle[t])){const e=n.pageTitle[t];this._defaultConfig[t]=e}})}var e;this.router.on(kq,this.scheduleTitleUpdate)}applyTokenDefaults(t){const e=this._defaultConfig.separator,n=this._defaultConfig.prepend,r=this._defaultConfig.replace;t.previous??=null,t.next??=null,null==t.separator&&(t.separator=e),null==t.prepend&&null!=n&&(t.prepend=n),null==t.replace&&null!=r&&(t.replace=r)}inheritFromPrevious(t){const e=t.previous;e&&(null==t.separator&&(t.separator=e.separator),null==t.prepend&&(t.prepend=e.prepend))}push(t){const e=this._findTokenById(t.id);if(e){const n=this.tokens.indexOf(e),r=[...this.tokens];return t.previous=e.previous,t.next=e.next,this.inheritFromPrevious(t),this.applyTokenDefaults(t),r.splice(n,1,t),void(this.tokens=r)}const n=this.tokens.slice(-1)[0];n&&(t.previous=n??null,n.next=t,this.inheritFromPrevious(t)),this.applyTokenDefaults(t),this.tokens=[...this.tokens,t]}remove(t){const e=this._findTokenById(t);if(!e)return;const{next:n,previous:r}=e;n&&(n.previous=r),r&&(r.next=n),e.previous=e.next=null;const i=[...this.tokens];i.splice(i.indexOf(e),1),this.tokens=i}get visibleTokens(){const t=this.tokens;let e=t?t.length:0;const n=[];for(;e--;){const r=t[e];if(r){if(r.replace){n.unshift(r);break}n.unshift(r)}}return n}get sortedTokens(){const t=this.visibleTokens;if(!t)return[];let e=!0,n=[];const r=[n],i=[];return t.forEach(t=>{t.front?i.unshift(t):t.prepend?(e&&(e=!1,n=[],r.push(n)),n.unshift(t)):(e||(e=!0,n=[],r.push(n)),n.push(t))}),i.concat(r.reduce((t,e)=>t.concat(e),[]))}toString(){const t=this.sortedTokens,e=[];for(let n=0,r=t.length;ne.id===t)}updateFastbootTitle(t){if(!Cq)return;const e=this.document.head,n=e.childNodes;for(let s=0;sEq}),Lq=_l.create({target:null,action:null,actionContext:null,actionContextObject:Xn("actionContext",function(){let t=hr(this,"actionContext");if("string"==typeof t){let e=hr(this,t);return void 0===e&&(e=hr(Jr.lookup,t)),e}return t}),triggerAction(t={}){let{action:e,target:n,actionContext:r}=t;e=e||hr(this,"action"),n=n||function(t){let e=hr(t,"target");if(e){if("string"==typeof e){let n=hr(t,e);return void 0===n&&(n=hr(Jr.lookup,e)),n}return e}return t._target?t._target:null}(this),void 0===r&&(r=hr(this,"actionContextObject")||this);let i=Array.isArray(r)?r:[r];if(n&&e){let t;if(t=null!=(s=n)&&"object"==typeof s&&"function"==typeof s.send?n.send(e,...i):n[e](...i),!1!==t)return!0}var s;return!1}}),Tq=_l.create({send(t,...e){let n=this.actions&&this.actions[t];if(n&&!0!==n.apply(this,e))return;let r=hr(this,"target");r&&r.send(...arguments)}}),Pq=Object.freeze({appendChild(){throw new Error("You can't use appendChild outside of the rendering process")},handleEvent:()=>!0,rerender(){},destroy(){}}),Iq=Object.freeze({...Pq}),Mq=Object.freeze({...Pq,rerender(t){t.renderer.rerender()},destroy(t){t.renderer.remove(t)},handleEvent:(t,e,n)=>!t.has(e)||uv(0,0,()=>xs(t,t.trigger,e,n))}),Aq=Object.freeze({...Mq,enter(t){t.renderer.register(t)}}),Oq=Object.freeze({...Pq,appendChild(){throw new Error("You can't call appendChild on a view being destroyed")},rerender(){throw new Error("You can't call rerender on a view being destroyed")}}),Nq=Object.freeze({preRender:Iq,inDOM:Aq,hasElement:Mq,destroying:Oq}),zq=class extends(Xc.extend(bc,Sl)){isView=!0;_superTrigger;_superHas;init(t){super.init(t),this._superTrigger=this.trigger,this.trigger=this._trigger,this._superHas=this.has,this.has=this._has,this.parentView??=null,this._state="preRender",this._currentState=this._states.preRender}static{Zh(this.prototype,"renderer",[qr("renderer","-dom")])}#re=void Yh(this,"renderer");instrumentDetails(t){return t.object=this.toString(),t.containerKey=this._debugContainerKey,t.view=this,t}_trigger(t,...e){this._superTrigger(t,...e);let n=this[t];if("function"==typeof n)return n.apply(this,e)}_has(t){return"function"==typeof this[t]||this._superHas(t)}static isViewFactory=!0};zq.prototype._states=Nq;var Fq=a({Input:()=>c_,Textarea:()=>d_,capabilities:()=>cb,default:()=>Uq,getComponentTemplate:()=>Np,setComponentManager:()=>Bq,setComponentTemplate:()=>Op}),Dq=new WeakMap,jq=Object.freeze([]),Uq=class extends(zq.extend(Lq,Tq,{didReceiveAttrs(){},didRender(){},didUpdate(){},didUpdateAttrs(){},willRender(){},willUpdate(){}},{concatenatedProperties:["attributeBindings","classNames","classNameBindings"],classNames:jq,classNameBindings:jq})){isComponent=!0;init(t){super.init(t),this._superRerender=this.rerender,this.rerender=this._rerender,this[Tv]=!1,this[Lv]=gt(),this[Pv]=null;const e=this._dispatcher;if(e){let t=Dq.get(e);t||(t=new WeakSet,Dq.set(e,t));let n=Object.getPrototypeOf(this);t.has(n)||(e.lazyEvents.forEach((t,n)=>{null!==t&&"function"==typeof this[t]&&e.setupHandlerForBrowserEvent(n)}),t.add(n))}this.elementId||""===this.tagName||(this.elementId=ll(this))}__dispatcher;get _dispatcher(){if(void 0===this.__dispatcher){let t=Br(this);if(t.lookup("-environment:main").isInteractive){let e=t.lookup("event_dispatcher:main");this.__dispatcher=e}else this.__dispatcher=null}return this.__dispatcher}on(t,e,n){return this._dispatcher?.setupHandlerForEmberEvent(t),super.on(t,e,n)}_rerender(){pt(this[Lv]),this._superRerender()}[Bn](t,e){if(this[Tv])return;let n=Rv.get(this),r=void 0!==n?n[t]:void 0;void 0!==r&&we(r)&&xe(r,2===arguments.length?e:hr(this,t))}getAttr(t){return this.get(t)}readDOMAttr(t){let e=Ql(this),n="http://www.w3.org/2000/svg"===e.namespaceURI,{type:r,normalized:i}=kg(e,t);return n||"attr"===r?e.getAttribute(i):e[i]}get childViews(){return sc(this)}static{Kh(this.prototype,"childViews",[k({configurable:!1,enumerable:!1})])}appendChild(t){oc(this,t)}_transitionTo(t){let e=this._currentState,n=this._currentState=this._states[t];this._state=t,e&&e.exit&&e.exit(this),n.enter&&n.enter(this)}nearestOfType(t){let e=this.parentView;for(;e;){if(t.detect(e.constructor))return e;e=e.parentView}}nearestWithProperty(t){let e=this.parentView;for(;e;){if(t in e)return e;e=e.parentView}}rerender(){return this._currentState.rerender(this)}get element(){return this.renderer.getElement(this)}static{Kh(this.prototype,"element",[k({configurable:!1,enumerable:!1})])}appendTo(t){let e;return e=Ao&&"string"==typeof t?document.querySelector(t):t,this.renderer.appendTo(this,e),this}append(){return this.appendTo(document.body)}willInsertElement(){return this}didInsertElement(){return this}willClearRender(){return this}destroy(){return super.destroy(),this._currentState.destroy(this),this}willDestroyElement(){return this}didDestroyElement(){return this}parentViewDidChange(){return this}handleEvent(t,e){return this._currentState.handleEvent(this,t,e)}static isComponentFactory=!0;static toString(){return"@ember/component"}};function Bq(t,e){return mb(t,e)}Uq.reopenClass({positionalParams:[]}),zu(zv,Uq);var $q=a({default:()=>Yq}),qq=new WeakMap,Vq=new WeakMap,Wq=class{constructor(t,e){this.args=e,qq.set(this,!1),Vq.set(this,!1)}args;get isDestroying(){return qq.get(this)||!1}get isDestroyed(){return Vq.get(this)||!1}willDestroy(){}},Hq=class{owner;constructor(t){this.owner=t}createComponent(t,e){return new t(this.owner,e.named)}getContext(t){return t}},Gq=cb(0,{destructor:!0,asyncLifecycleCallbacks:!1,updateHook:!1});function Zq(t){t.isDestroyed||(nt(t),function(t){Vq.set(t,!0)}(t))}var Kq=class extends Hq{capabilities=Gq;destroyComponent(t){t.isDestroying||(function(t){qq.set(t,!0)}(t),Es("actions",t,t.willDestroy),Es("destroy",this,Zq,t))}},Yq=class extends Wq{constructor(t,e){super(t,e),$r(this,t)}};Bq(t=>new Kq(t),Yq);var Xq=yb;function Jq(t){return"number"==typeof t?`${t}px`:"string"==typeof t&&/^\d+(\.\d+)?$/.test(t.trim())?`${t.trim()}px`:t}var Qq=class extends Yq{get svg(){return z$(this.args.name)}get size(){return this.args.size||16}get width(){return void 0!==this.args.width?this.args.width:this.size}get height(){return void 0!==this.args.height?this.args.height:this.size}get color(){return this.args.color||"#898989"}get style(){return qv(`width:${Jq(this.width)};height:${Jq(this.height)};color:${this.color}`)}get title(){return this.args.title||""}get isFilled(){return this.args.filled||F$(this.args.name)}static{Op(ig({id:null,block:'[[[41,[30,0,["svg"]],[[[1," "],[11,1],[16,0,[29,["icon ",[52,[30,0,["isFilled"]],"icon-filled"]]]],[16,5,[30,0,["style"]]],[16,"title",[30,0,["title"]]],[17,1],[12],[1,"\\n "],[1,[28,[32,0],[[30,0,["svg"]]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],["&attrs"],["if"]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:qv}),isStrictMode:!0}),this)}};function tV(t){return $t(t.argsCache)}var eV=class{argsCache;constructor(t,e=()=>ly){let n=Bt(()=>e(t));this.argsCache=n}get named(){return tV(this).named||oy}get positional(){return tV(this).positional||ay}};function nV(t,e,n){const r=Ur(t),i=Nu(e).getDelegateFor(r);let s,o=new eV(t,n),a=i.createHelper(e,o);if(!_u(i))throw new Error("TODO: unreachable, to be implemented with hasScheduledEffect");return s=Bt(()=>i.getValue(a)),tt(t,s),xu(i)&&tt(s,i.getDestroyable(a)),s}function rV(t,e){return t===e}function iV(t,e){return t!==e}function sV(t,e){return t>e}function oV(t,e){return t>=e}function aV(t,e){return tge(()=>{let e;for(let n=0;nge(()=>{let e;for(let n=0;n!B(t[0]),dV={createInstance:!0,wrapped:!0},pV=new class{getCapabilities(){return dV}getDebugName(t){return`(element "${t.tagName}")`}getSelf(){return ue}getDestroyable(){return null}didCreateElement(){}create(t,e){return e.tagName||null}getTagName(t){return t}didRenderLayout(){}didUpdateLayout(){}didCreate(){}didUpdate(){}},fV=class{constructor(t){this.tagName=t}toString(){return`(element "${this.tagName}")`}};zu(pV,fV.prototype);var gV=new Map;Bv(({positional:t,named:e})=>ge(()=>function(t){let e=gV.get(t);return void 0===e&&(e=new fV(t),gV.set(t,e)),e}(_e(t[0])),null));var mV=Hv,yV=sV;function vV(t,e){return t===e}var bV=ab,wV=Op(ig({id:null,block:'[[[10,"nav"],[14,0,"tab-nav"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,1]],null]],null],null,[[[1," "],[11,"button"],[16,0,[29,["tab-nav-button ",[52,[28,[32,0],[[30,3],[30,2,["value"]]],null],"is-active"]]]],[24,4,"button"],[4,[32,1],["click",[28,[32,2],[[30,4],[30,2,["value"]]],null]],null],[12],[1,"\\n "],[1,[30,2,["label"]]],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[13]],["@tabs","tab","@active","@onChange"],["each","-track-array","if"]]',moduleName:"(unknown template module)",scope:()=>({eq:vV,on:Hw,fn:mV}),isStrictMode:!0}),bV()),_V=Eb(function([t]){return YB(t)}),xV=class extends Yq{get item(){return this.args.item}get senderName(){return this.item?.senderName}get senderDisplayName(){const t=this.senderName;if(t)return t;const e=this.item?.senderPubkey;if(!e)return"Someone";try{return`${fO(e).slice(0,12)}…`}catch{return`${e.slice(0,12)}…`}}get senderAvatar(){return this.item?.senderAvatar}get hasPhoto(){return!!this.item?.photo}get photoThumbUrl(){return this.item?.photo?.thumbUrl||this.item?.photo?.url}get placeName(){return this.item?.placeName}get placeNameLoading(){return this.item?.placeNameLoading}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"activity-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"header"],[12],[1,"\\n "],[10,1],[14,0,"sender-line"],[12],[1,"\\n "],[10,1],[14,0,"sender-name"],[12],[1,[30,0,["senderDisplayName"]]],[13],[1,"\\n"],[1," "],[10,1],[14,0,"action"],[12],[1," zapped your photo"],[13],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"amount"],[12],[1,[30,0,["item","amountSats"]]],[1," ⚡"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"context"],[12],[1,"\\n "],[10,0],[14,0,"context-images"],[12],[1,"\\n"],[41,[30,0,["senderAvatar"]],[[[1," "],[10,"img"],[14,0,"sender-avatar"],[15,"src",[30,0,["senderAvatar"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"sender-avatar-placeholder"],[12],[1,"\\n "],[8,[32,2],null,[["@name","@size","@color"],["user",16,"#999"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[41,[30,0,["hasPhoto"]],[[[1," "],[10,0],[14,0,"context-thumb"],[12],[1,"\\n "],[10,"img"],[15,"src",[30,0,["photoThumbUrl"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"context-text"],[12],[1,"\\n "],[10,1],[14,0,"activity-place-name"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[10,1],[14,0,"place-name-text"],[12],[1,[30,0,["placeName"]]],[13],[1,"\\n "]],[]],[[[41,[30,0,["placeNameLoading"]],[[],[]],[[[1,"\\n "],[10,1],[14,0,"place-name-text"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"activity-date"],[12],[1,[28,[32,3],[[30,2,["createdAt"]]],null]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["item","message"]],[[[1," "],[10,0],[14,0,"message"],[12],[1,[30,0,["item","message"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"],[13]],["@onSelect","@item"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:mV,Icon:Qq,formatRelativeDate:_V}),isStrictMode:!0}),this)}},CV=class extends Yq{get item(){return this.args.item}get senderName(){return this.item?.senderName}get senderDisplayName(){const t=this.senderName;if(t)return t;const e=this.item?.senderPubkey;if(!e)return"Someone";try{return`${fO(e).slice(0,12)}…`}catch{return`${e.slice(0,12)}…`}}get senderAvatar(){return this.item?.senderAvatar}get hasPhoto(){return this.photos.length>0}get photos(){const t=this.item?.photos;if(t&&t.length>0)return t;const e=this.item?.photo;return e?[e]:[]}get primaryPhoto(){return this.photos[0]}get extraPhotoCount(){return Math.max(0,this.photos.length-1)}get photoCountText(){const t=this.photos.length;return 1===t?"a photo":`${t} photos`}get photoThumbUrl(){return this.primaryPhoto?.thumbUrl||this.primaryPhoto?.url}get placeName(){return this.item?.placeName}get placeNameLoading(){return this.item?.placeNameLoading}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"activity-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"header"],[12],[1,"\\n "],[10,1],[14,0,"sender-line"],[12],[1,"\\n "],[10,1],[14,0,"sender-name"],[12],[1,[30,0,["senderDisplayName"]]],[13],[1,"\\n"],[1," "],[10,1],[14,0,"action"],[12],[1," shared "],[1,[30,0,["photoCountText"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"amount"],[12],[1,"\\n "],[8,[32,2],null,[["@name","@size","@color"],["feather-camera",16,"var(--secondary-text-color)"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"context"],[12],[1,"\\n "],[10,0],[14,0,"context-images"],[12],[1,"\\n"],[41,[30,0,["senderAvatar"]],[[[1," "],[10,"img"],[14,0,"sender-avatar"],[15,"src",[30,0,["senderAvatar"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"sender-avatar-placeholder"],[12],[1,"\\n "],[8,[32,2],null,[["@name","@size","@color"],["user",16,"#999"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[41,[30,0,["hasPhoto"]],[[[1," "],[10,0],[14,0,"context-thumb"],[12],[1,"\\n "],[10,"img"],[15,"src",[30,0,["photoThumbUrl"]]],[14,"alt",""],[14,"loading","lazy"],[12],[13],[1,"\\n"],[41,[28,[32,3],[[30,0,["extraPhotoCount"]],0],null],[[[1," "],[10,1],[14,0,"context-thumb-badge"],[12],[1,"+"],[1,[30,0,["extraPhotoCount"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"context-text"],[12],[1,"\\n "],[10,1],[14,0,"activity-place-name"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[10,1],[14,0,"place-name-text"],[12],[1,[30,0,["placeName"]]],[13],[1,"\\n "]],[]],[[[41,[30,0,["placeNameLoading"]],[[],[]],[[[1,"\\n "],[10,1],[14,0,"place-name-text"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1,"\\n "],[13],[1,"\\n "],[10,1],[14,0,"activity-date"],[12],[1,[28,[32,4],[[30,2,["createdAt"]]],null]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onSelect","@item"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:mV,Icon:Qq,__keyword__gt:yV,formatRelativeDate:_V}),isStrictMode:!0}),this)}},kV=Op(ig({id:null,block:'[[[11,0],[24,0,"modal-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[11,0],[24,0,"modal-content"],[24,"role","document"],[24,"tabindex","0"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[11,"button"],[16,0,[29,["close-modal-btn btn-text ",[52,[30,3],"disabled"]]]],[16,"disabled",[30,3]],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",24,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[18,4,null],[1,"\\n "],[13],[1,"\\n"],[13]],["@close","@stopProp","@disableClose","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq}),isStrictMode:!0}),bV()),SV=class extends Yq{get isTesting(){return"test"===ix.environment}get shouldPortal(){return!this.isTesting&&!this.args.inline}get destinationElement(){return document.getElementById("modal-portal")||document.body}stopProp(t){t.stopPropagation()}static{dF(this.prototype,"stopProp",[Vl])}close(){this.args.disableClose||this.args.onClose&&this.args.onClose()}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["shouldPortal"]],[[[40,[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]],[[[1," "],[8,[32,0],null,[["@close","@stopProp","@disableClose"],[[30,0,["close"]],[30,0,["stopProp"]],[30,1]]],[["default"],[[[[1,"\\n "],[18,2,null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]]]],["@disableClose","&default"],["if","in-element","-in-el-null","yield"]]',moduleName:"(unknown template module)",scope:()=>({ModalContent:kV}),isStrictMode:!0}),this)}};function EV(t){return"object"==typeof t&&t&&"isTruthy"in t&&"boolean"==typeof t.isTruthy?t.isTruthy:Ic(t)?0!==t.length:!!t}var RV=class extends _b{compute(t){for(let e=0,n=t.length;e!EV(t))}var TV=class extends _b{compute(t){for(let e=0,n=t.length;enew PV(t),class{constructor(t,e){X_(this,t)}modify(t,e,n){}});var IV=new class{capabilities=fb();createModifier(t){return{element:null,instance:t}}installModifier(t,e,n){const r=function(t,e){const n=t;return n.element=e,n}(t,e),{positional:i,named:s}=n,o=t.instance(e,i,s);"function"==typeof o&&(r.teardown=o)}updateModifier(t,e){"function"==typeof t.teardown&&t.teardown();const n=t.instance(t.element,e.positional,e.named);"function"==typeof n&&(t.teardown=n)}destroyModifier(t){"function"==typeof t.teardown&&t.teardown()}getDebugName(t){return t.instance.toString()}getDebugInstance(t){return t}};function MV(t,e){return t.toString=()=>e?.name||t.name,Xq(()=>IV,t)}var AV=o((t,e)=>{e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}}),OV=o(t=>{var e,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];t.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},t.getSymbolTotalCodewords=function(t){return n[t]},t.getBCHDigit=function(t){let e=0;for(;0!==t;)e++,t>>>=1;return e},t.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');e=t},t.isKanjiModeEnabled=function(){return void 0!==e},t.toSJIS=function(t){return e(t)}}),NV=o(t=>{t.L={bit:1},t.M={bit:0},t.Q={bit:3},t.H={bit:2},t.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},t.from=function(e,n){if(t.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return t.L;case"m":case"medium":return t.M;case"q":case"quartile":return t.Q;case"h":case"high":return t.H;default:throw new Error("Unknown EC Level: "+e)}}(e)}catch(r){return n}}}),zV=o((t,e)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){const e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(let n=0;n>>e-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n}),FV=o((t,e)=>{function n(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}n.prototype.set=function(t,e,n,r){const i=t*this.size+e;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(t,e){return this.data[t*this.size+e]},n.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n},n.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=n}),DV=o(t=>{var e=OV().getSymbolSize;t.getRowColCoords=function(t){if(1===t)return[];const n=Math.floor(t/7)+2,r=e(t),i=145===r?26:2*Math.ceil((r-13)/(2*n-2)),s=[r-7];for(let e=1;e{var e=OV().getSymbolSize;t.getPositions=function(t){const n=e(t);return[[0,0],[n-7,0],[0,n-7]]}}),UV=o(t=>{function e(e,n,r){switch(e){case t.Patterns.PATTERN000:return(n+r)%2==0;case t.Patterns.PATTERN001:return n%2==0;case t.Patterns.PATTERN010:return r%3==0;case t.Patterns.PATTERN011:return(n+r)%3==0;case t.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case t.Patterns.PATTERN101:return n*r%2+n*r%3==0;case t.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case t.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}}t.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},t.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},t.from=function(e){return t.isValid(e)?parseInt(e,10):void 0},t.getPenaltyN1=function(t){const e=t.size;let n=0,r=0,i=0,s=null,o=null;for(let a=0;a=5&&(n+=r-5+3),s=e,r=1),e=t.get(l,a),e===o?i++:(i>=5&&(n+=i-5+3),o=e,i=1)}r>=5&&(n+=r-5+3),i>=5&&(n+=i-5+3)}return n},t.getPenaltyN2=function(t){const e=t.size;let n=0;for(let r=0;r=10&&(1488===r||93===r)&&n++,i=i<<1&2047|t.get(o,s),o>=10&&(1488===i||93===i)&&n++}return 40*n},t.getPenaltyN4=function(t){let e=0;const n=t.data.length;for(let r=0;r{var e=NV(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];t.getBlocksCount=function(t,r){switch(r){case e.L:return n[4*(t-1)+0];case e.M:return n[4*(t-1)+1];case e.Q:return n[4*(t-1)+2];case e.H:return n[4*(t-1)+3];default:return}},t.getTotalCodewordsCount=function(t,n){switch(n){case e.L:return r[4*(t-1)+0];case e.M:return r[4*(t-1)+1];case e.Q:return r[4*(t-1)+2];case e.H:return r[4*(t-1)+3];default:return}}}),$V=o(t=>{var e=new Uint8Array(512),n=new Uint8Array(256);!function(){let t=1;for(let r=0;r<255;r++)e[r]=t,n[t]=r,t<<=1,256&t&&(t^=285);for(let n=255;n<512;n++)e[n]=e[n-255]}(),t.log=function(t){if(t<1)throw new Error("log("+t+")");return n[t]},t.exp=function(t){return e[t]},t.mul=function(t,r){return 0===t||0===r?0:e[n[t]+n[r]]}}),qV=o(t=>{var e=$V();t.mul=function(t,n){const r=new Uint8Array(t.length+n.length-1);for(let i=0;i=0;){const t=r[0];for(let s=0;s{var n=qV();function r(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(t){this.degree=t,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");const e=new Uint8Array(t.length+this.degree);e.set(t);const r=n.mod(e,this.genPoly),i=this.degree-r.length;if(i>0){const t=new Uint8Array(this.degree);return t.set(r,i),t}return r},e.exports=r}),WV=o(t=>{t.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}}),HV=o(t=>{var e="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",n="(?:(?![A-Z0-9 $%*+\\-./:]|"+(e=e.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";t.KANJI=new RegExp(e,"g"),t.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),t.BYTE=new RegExp(n,"g"),t.NUMERIC=new RegExp("[0-9]+","g"),t.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var r=new RegExp("^"+e+"$"),i=new RegExp("^[0-9]+$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");t.testKanji=function(t){return r.test(t)},t.testNumeric=function(t){return i.test(t)},t.testAlphanumeric=function(t){return s.test(t)}}),GV=o(t=>{var e=WV(),n=HV();t.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},t.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},t.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},t.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},t.MIXED={bit:-1},t.getCharCountIndicator=function(t,n){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!e.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?t.ccBits[0]:n<27?t.ccBits[1]:t.ccBits[2]},t.getBestModeForData=function(e){return n.testNumeric(e)?t.NUMERIC:n.testAlphanumeric(e)?t.ALPHANUMERIC:n.testKanji(e)?t.KANJI:t.BYTE},t.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},t.isValid=function(t){return t&&t.bit&&t.ccBits},t.from=function(e,n){if(t.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"numeric":return t.NUMERIC;case"alphanumeric":return t.ALPHANUMERIC;case"kanji":return t.KANJI;case"byte":return t.BYTE;default:throw new Error("Unknown mode: "+e)}}(e)}catch(r){return n}}}),ZV=o(t=>{var e=OV(),n=BV(),r=NV(),i=GV(),s=WV(),o=e.getBCHDigit(7973);function a(t,e){return i.getCharCountIndicator(t,e)+4}function l(t,e){let n=0;return t.forEach(function(t){const r=a(t.mode,e);n+=r+t.getBitsLength()}),n}t.from=function(t,e){return s.isValid(t)?parseInt(t,10):e},t.getCapacity=function(t,r,o){if(!s.isValid(t))throw new Error("Invalid QR Code version");void 0===o&&(o=i.BYTE);const l=8*(e.getSymbolTotalCodewords(t)-n.getTotalCodewordsCount(t,r));if(o===i.MIXED)return l;const c=l-a(o,t);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},t.getBestVersionForData=function(e,n){let s;const o=r.from(n,r.M);if(Array.isArray(e)){if(e.length>1)return function(e,n){for(let r=1;r<=40;r++)if(l(e,r)<=t.getCapacity(r,n,i.MIXED))return r}(e,o);if(0===e.length)return 1;s=e[0]}else s=e;return function(e,n,r){for(let i=1;i<=40;i++)if(n<=t.getCapacity(i,r,e))return i}(s.mode,s.getLength(),o)},t.getEncodedBits=function(t){if(!s.isValid(t)||t<7)throw new Error("Invalid QR Code version");let n=t<<12;for(;e.getBCHDigit(n)-o>=0;)n^=7973<{var e=OV(),n=e.getBCHDigit(1335);t.getEncodedBits=function(t,r){const i=t.bit<<3|r;let s=i<<10;for(;e.getBCHDigit(s)-n>=0;)s^=1335<{var n=GV();function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){let e,n,r;for(e=0;e+3<=this.data.length;e+=3)n=this.data.substr(e,3),r=parseInt(n,10),t.put(r,10);const i=this.data.length-e;i>0&&(n=this.data.substr(e),r=parseInt(n,10),t.put(r,3*i+1))},e.exports=r}),XV=o((t,e)=>{var n=GV(),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function i(t){this.mode=n.ALPHANUMERIC,this.data=t}i.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let n=45*r.indexOf(this.data[e]);n+=r.indexOf(this.data[e+1]),t.put(n,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=i}),JV=o((t,e)=>{var n=GV();function r(t){this.mode=n.BYTE,this.data="string"==typeof t?(new TextEncoder).encode(t):new Uint8Array(t)}r.getBitsLength=function(t){return 8*t},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){for(let e=0,n=this.data.length;e{var n=GV(),r=OV();function i(t){this.mode=n.KANJI,this.data=t}i.getBitsLength=function(t){return 13*t},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(t){let e;for(e=0;e=33088&&n<=40956)n-=33088;else{if(!(n>=57408&&n<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13)}},e.exports=i}),tW=o((t,e)=>{var n={single_source_shortest_paths:function(t,e,r){var i={},s={};s[e]=0;var o,a,l,c,u,h,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in a=(o=p.pop()).value,c=o.cost,u=t[a]||{})u.hasOwnProperty(l)&&(h=c+u[l],d=s[l],(void 0===s[l]||d>h)&&(s[l]=h,p.push(l,h),i[l]=a));if(void 0!==r&&void 0===s[r]){var f=["Could not find a path from ",e," to ",r,"."].join("");throw new Error(f)}return i},extract_shortest_path_from_predecessor_list:function(t,e){for(var n=[],r=e;r;)n.push(r),t[r],r=t[r];return n.reverse(),n},find_path:function(t,e,r){var i=n.single_source_shortest_paths(t,e,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(t){var e,r=n.PriorityQueue,i={};for(e in t=t||{},r)r.hasOwnProperty(e)&&(i[e]=r[e]);return i.queue=[],i.sorter=t.sorter||r.default_sorter,i},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var n={value:t,cost:e};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)}),eW=o(t=>{var e=GV(),n=YV(),r=XV(),i=JV(),s=QV(),o=HV(),a=OV(),l=tW();function c(t){return unescape(encodeURIComponent(t)).length}function u(t,e,n){const r=[];let i;for(;null!==(i=t.exec(n));)r.push({data:i[0],index:i.index,mode:e,length:i[0].length});return r}function h(t){const n=u(o.NUMERIC,e.NUMERIC,t),r=u(o.ALPHANUMERIC,e.ALPHANUMERIC,t);let i,s;return a.isKanjiModeEnabled()?(i=u(o.BYTE,e.BYTE,t),s=u(o.KANJI,e.KANJI,t)):(i=u(o.BYTE_KANJI,e.BYTE,t),s=[]),n.concat(r,i,s).sort(function(t,e){return t.index-e.index}).map(function(t){return{data:t.data,mode:t.mode,length:t.length}})}function d(t,o){switch(o){case e.NUMERIC:return n.getBitsLength(t);case e.ALPHANUMERIC:return r.getBitsLength(t);case e.KANJI:return s.getBitsLength(t);case e.BYTE:return i.getBitsLength(t)}}function p(t,o){let l;const c=e.getBestModeForData(t);if(l=e.from(o,c),l!==e.BYTE&&l.bit=0?t[t.length-1]:null;return n&&n.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[]))},t.rawSplit=function(e){return t.fromArray(h(e,a.isKanjiModeEnabled()))}}),nW=o(t=>{var e=OV(),n=NV(),r=zV(),i=FV(),s=DV(),o=jV(),a=UV(),l=BV(),c=VV(),u=ZV(),h=KV(),d=GV(),p=eW();function f(t,e,n){const r=t.size,i=h.getEncodedBits(e,n);let s,o;for(s=0;s<15;s++)o=1==(i>>s&1),s<6?t.set(s,8,o,!0):s<8?t.set(s+1,8,o,!0):t.set(r-15+s,8,o,!0),s<8?t.set(8,r-s-1,o,!0):s<9?t.set(8,15-s-1+1,o,!0):t.set(8,15-s-1,o,!0);t.set(r-8,8,1,!0)}t.create=function(t,h){if(void 0===t||""===t)throw new Error("No input text");let g,m,y=n.M;return void 0!==h&&(y=n.from(h.errorCorrectionLevel,n.M),g=u.from(h.version),m=a.from(h.maskPattern),h.toSJISFunc&&e.setToSJISFunction(h.toSJISFunc)),function(t,n,h,g){let m;if(Array.isArray(t))m=p.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");{let e=n;if(!e){const n=p.rawSplit(t);e=u.getBestVersionForData(n,h)}m=p.fromString(t,e||40)}}const y=u.getBestVersionForData(m,h);if(!y)throw new Error("The amount of data is too big to be stored in a QR Code");if(n){if(n=0&&r<=6&&(0===i||6===i)||i>=0&&i<=6&&(0===r||6===r)||r>=2&&r<=4&&i>=2&&i<=4?t.set(e+r,s+i,!0,!0):t.set(e+r,s+i,!1,!0))}}(w,n),function(t){const e=t.size;for(let n=8;n=7&&function(t,e){const n=t.size,r=u.getEncodedBits(e);let i,s,o;for(let a=0;a<18;a++)i=Math.floor(a/3),s=a%3+n-8-3,o=1==(r>>a&1),t.set(i,s,o,!0),t.set(s,i,o,!0)}(w,n),function(t,e){const n=t.size;let r=-1,i=n-1,s=7,o=0;for(let a=n-1;a>0;a-=2)for(6===a&&a--;;){for(let n=0;n<2;n++)if(!t.isReserved(i,a-n)){let r=!1;o>>s&1)),t.set(i,a-n,r),s--,-1===s&&(o++,s=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}(w,v),isNaN(g)&&(g=a.getBestMask(w,f.bind(null,w,h))),a.applyMask(g,w),f(w,h,g),{modules:w,version:n,errorCorrectionLevel:h,maskPattern:g,segments:m}}(t,g,y,m)}}),rW=o(t=>{function e(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");let e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map(function(t){return[t,t]}))),6===e.length&&e.push("F","F");const n=parseInt(e.join(""),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:255&n,hex:"#"+e.slice(0,6).join("")}}t.getOptions=function(t){t||(t={}),t.color||(t.color={});const n=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,r=t.width&&t.width>=21?t.width:void 0,i=t.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:e(t.color.dark||"#000000ff"),light:e(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},t.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},t.getImageWidth=function(e,n){const r=t.getScale(e,n);return Math.floor((e+2*n.margin)*r)},t.qrToImageData=function(e,n,r){const i=n.modules.size,s=n.modules.data,o=t.getScale(i,r),a=Math.floor((i+2*r.margin)*o),l=r.margin*o,c=[r.color.light,r.color.dark];for(let t=0;t=l&&n>=l&&t{var e=rW();t.render=function(t,n,r){let i=r,s=n;void 0!==i||n&&n.getContext||(i=n,n=void 0),n||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),i=e.getOptions(i);const o=e.getImageWidth(t.modules.size,i),a=s.getContext("2d"),l=a.createImageData(o,o);return e.qrToImageData(l.data,t,i),function(t,e,n){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=n,e.width=n,e.style.height=n+"px",e.style.width=n+"px"}(a,s,o),a.putImageData(l,0,0),s},t.renderToDataURL=function(e,n,r){let i=r;void 0!==i||n&&n.getContext||(i=n,n=void 0),i||(i={});const s=t.render(e,n,i),o=i.type||"image/png",a=i.rendererOpts||{};return s.toDataURL(o,a.quality)}}),sW=o(t=>{var e=rW();function n(t,e){const n=t.a/255,r=e+'="'+t.hex+'"';return n<1?r+" "+e+'-opacity="'+n.toFixed(2).slice(1)+'"':r}function r(t,e,n){let r=t+e;return void 0!==n&&(r+=" "+n),r}t.render=function(t,i,s){const o=e.getOptions(i),a=t.modules.size,l=t.modules.data,c=a+2*o.margin,u=o.color.light.a?"':"",h="0&&c>0&&t[l-1]||(i+=o?r("M",c+n,.5+u+n):r("m",s,0),s=0,o=!1),c+1',d='viewBox="0 0 '+c+" "+c+'"',p=''+u+h+"\n";return"function"==typeof s&&s(null,p),p}}),oW=o(t=>{var e=AV(),n=nW(),r=iW(),i=sW();function s(t,r,i,s,o){const a=[].slice.call(arguments,1),l=a.length,c="function"==typeof a[l-1];if(!c&&!e())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=r,r=s=void 0):2!==l||r.getContext||(s=i,i=r,r=void 0),new Promise(function(e,o){try{e(t(n.create(i,s),r,s))}catch(a){o(a)}})}if(l<2)throw new Error("Too few arguments provided");2===l?(o=i,i=r,r=s=void 0):3===l&&(r.getContext&&void 0===o?(o=s,s=void 0):(o=s,s=i,i=r,r=void 0));try{const e=n.create(i,s);o(null,t(e,r,s))}catch(u){o(u)}}t.create=n.create,t.toCanvas=s.bind(null,r.render),t.toDataURL=s.bind(null,r.renderToDataURL),t.toString=s.bind(null,function(t,e,n){return i.render(t,n)})}),aW=c(oW(),1),lW=MV((t,[e])=>{e&&aW.toCanvas(t,e,{width:256,margin:2,color:{dark:"#000000",light:"#ffffff"}}).catch(t=>{console.error("Failed to generate QR code",t)})}),cW=class extends Yq{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");get hasExtension(){return"undefined"!=typeof window&&void 0!==window.nostr}async connectExtension(){try{await this.nostrAuth.connectWithExtension(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(t){console.error(t),alert(t.message)}}static{dF(this.prototype,"connectExtension",[Vl])}async connectApp(){try{await this.nostrAuth.connectWithApp(),this.toast.show("Nostr connected successfully"),this.args.onConnect&&this.args.onConnect()}catch(t){console.error(t),alert(t.message)}}static{dF(this.prototype,"connectApp",[Vl])}async copyConnectUri(){const t=this.nostrAuth.connectUri;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select();const n=document.execCommand("copy");if(document.body.removeChild(e),!n)throw new Error("Fallback copy failed")}this.toast.show("Connection link copied to clipboard")}catch(PD){console.error("Failed to copy text: ",PD),alert("Failed to copy link")}}static{dF(this.prototype,"copyConnectUri",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"nostr-connect-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Connect with Nostr"],[13],[1,"\\n\\n "],[10,0],[14,0,"nostr-connect-options"],[12],[1,"\\n"],[41,[30,0,["hasExtension"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectExtension"]]],null],[12],[1,"\\n Browser Extension (nos2x, Alby)\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,"button"],[14,0,"btn btn-outline"],[14,"disabled",""],[14,"title","No Nostr extension found in your browser"],[14,4,"button"],[12],[1,"\\n Browser Extension (Not Found)\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,0],["click",[30,0,["connectApp"]]],null],[12],[1,"\\n Mobile Signer App (Amber, etc.)\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["nostrAuth","connectStatus"]],"waiting"],null],[[[1," "],[10,0],[14,0,"nostr-connect-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isMobile"]],[[[1," "],[10,2],[12],[1,"Waiting for you to approve the connection in your mobile signer\\n app..."],[13],[1,"\\n "],[10,0],[14,0,"mobile-connect-actions"],[12],[1,"\\n "],[10,3],[15,6,[30,0,["nostrAuth","connectUri"]]],[14,0,"btn btn-primary"],[12],[1,"\\n Open Signer App\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,0,["copyConnectUri"]]],null],[12],[1,"\\n Copy Connection Link\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[12],[1,"Scan this QR code with a Nostr signer app (like Amber):"],[13],[1,"\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,2],[[30,0,["nostrAuth","connectUri"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],null],[13]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,eq:vV,qrCode:lW}),isStrictMode:!0}),this)}},uW=MV((t,[e])=>{t&&"number"==typeof e&&e>0&&requestAnimationFrame(()=>{t.scrollTop=e})}),hW=MV((t,[e,n])=>{if(n)return;let r,i=!1;return r=new IntersectionObserver(t=>{i||t[0]?.isIntersecting&&e()},{root:null,rootMargin:"200px",threshold:0}),r.observe(t),()=>{i=!0,r&&r.disconnect()}}),dW=class extends Yq{static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");tabs=[{label:"Home",value:"home"},{label:"Explore",value:"explore"}];openNostrConnectModal(t){t.preventDefault(),this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.closeNostrConnectModal(),this.args.onNostrConnected?.()}static{dF(this.prototype,"onNostrConnected",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["activity",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n Activity\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[8,[32,2],null,[["@tabs","@active","@onChange"],[[30,0,["tabs"]],[30,3],[30,4]]],null],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,3],[[30,5]],null],[12],[1,"\\n"],[41,[30,6],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,4],[[28,[32,5],[[30,7]],null],[28,[32,6],[[30,3],"home"],null]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"\\n "],[11,3],[24,6,"#"],[24,"role","button"],[24,"tabindex","0"],[4,[32,0],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect your Nostr account"],[13],[1,"\\n to see your activity.\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,5],[[30,8,["length"]]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No activity yet."],[13],[1,"\\n"]],[]],[[[1," "],[10,"ul"],[14,0,"activity-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,8]],null]],null],null,[[[41,[28,[32,6],[[30,9,["type"]],"zap"],null],[[[1," "],[8,[32,7],null,[["@item","@onSelect"],[[30,9],[30,10]]],null],[1,"\\n"]],[]],[[[41,[28,[32,6],[[30,9,["type"]],"photo"],null],[[[1," "],[8,[32,8],null,[["@item","@onSelect"],[[30,9],[30,10]]],null],[1,"\\n "]],[]],null]],[]]]],[9]],null],[1," "],[11,"li"],[24,0,"activity-load-more"],[4,[32,9],[[30,11]],null],[12],[1,"\\n"],[41,[30,12],[[[1," "],[10,0],[14,0,"activity-load-more-spinner"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,10],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,11],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@onBack","@onClose","@sourceMode","@onSetSourceMode","@scrollTop","@isLoading","@isConnected","@items","item","@onSelect","@onLoadMore","@isLoadingMore"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq,TabNav:wV,restoreScroll:uW,and:RV,not:LV,eq:vV,ActivityZapItem:xV,ActivityPhotoItem:CV,observeIntersection:hW,Modal:SV,NostrConnect:cW}),isStrictMode:!0}),this)}},pW=a({default:()=>fW}),fW=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@items","@isLoading","@isConnected","@sourceMode","@onSetSourceMode","@isLoadingMore","@onLoadMore","@scrollTop","@onSelect","@onBack","@onClose","@onNostrConnected"],[[30,1,["items"]],[30,1,["isLoading"]],[30,1,["isConnected"]],[30,1,["sourceMode"]],[30,1,["setSourceMode"]],[30,1,["isLoadingMore"]],[30,1,["loadMore"]],[30,1,["scrollTop"]],[30,1,["selectItem"]],[30,1,["backToMenu"]],[30,1,["close"]],[30,1,["onNostrConnected"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({ActivityTimeline:dW}),isStrictMode:!0}),bV()),gW=class{assert(){}async(t){Promise.resolve().then(t)}reportUncaughtRejection(){this.async(t=>{throw t})}defer(){let t={promise:null,resolve:null,reject:null};return t.promise=new Promise((e,n)=>{t.resolve=e,t.reject=n}),t}globalDebuggingEnabled(){return!1}},mW=new gW,yW=class{constructor(t){this.maxConcurrency=t||1}},vW="CANCELLED",bW="STARTED",wW="QUEUED",_W={type:bW},xW={type:wW},CW=t=>({type:vW,reason:t}),kW=CW("it belongs to a 'drop' Task that was already running"),SW=class{constructor(t){this.remainingSlots=t}step(){return this.remainingSlots>0?(this.remainingSlots--,_W):kW}},EW=class extends yW{makeReducer(){return new SW(this.maxConcurrency)}},RW=class{constructor(t){this.remainingSlots=t}step(){return this.remainingSlots>0?(this.remainingSlots--,_W):xW}},LW=class extends yW{makeReducer(){return new RW(this.maxConcurrency)}},TW=CW("it belongs to a 'keepLatest' Task that was already running"),PW=class{constructor(t,e){this.remainingSlots=t,this.numToCancel=e}step(){return this.remainingSlots>0?(this.remainingSlots--,_W):this.numToCancel>0?(this.numToCancel--,TW):xW}},IW=class extends yW{makeReducer(t,e){let n=t+e;return new PW(this.maxConcurrency,n-this.maxConcurrency-1)}},MW=CW("it belongs to a 'restartable' Task that was .perform()ed again"),AW=class{constructor(t){this.numToCancel=t}step(){return this.numToCancel>0?(this.numToCancel--,MW):_W}},OW=class extends yW{makeReducer(t,e){return new AW(t+e-this.maxConcurrency)}},NW=new class{step(){return _W}},zW=class{makeReducer(){return NW}},FW=new Map,DW=class{constructor(t,e,n){this.stateTracker=e,this.schedulerPolicy=t,this.initialTaskInstances=n,this.startingInstances=[]}process(){let[t,e,n]=this.filterFinishedTaskInstances(),r=this.schedulerPolicy.makeReducer(e,n),i=t.filter(t=>this.setTaskInstanceExecutionState(t,r.step()));return this.stateTracker.computeFinalStates(t=>this.applyState(t)),this.startingInstances.forEach(t=>t.start()),i}filterFinishedTaskInstances(){let t=0,e=0;return[this.initialTaskInstances.filter(n=>{let r=this.stateTracker.stateFor(n.task),i=n.executor.state;return i.isFinished?(r.onCompletion(n),!1):(i.hasStarted?t+=1:e+=1,!0)}),t,e]}setTaskInstanceExecutionState(t,e){let n=this.stateTracker.stateFor(t.task);switch(t.executor.counted||(t.executor.counted=!0,n.onPerformed(t)),e.type){case vW:return t.cancel(e.reason),!1;case bW:return t.executor.state.hasStarted||(this.startingInstances.push(t),n.onStart(t)),n.onRunning(t),!0;case wW:return n.onQueued(t),!0}}applyState(t){let{taskable:e}=t;if(!e.onState)return;const{guid:n}=e;if(FW.has(n)&&t.tagt(e))}forEachState(t){this.states.forEach(e=>t(e))}},$W=new class{onCompletion(){}onPerformed(){}onStart(){}onRunning(){}onQueued(){}},qW=class{stateFor(){return $W}computeFinalStates(){}},VW=class{constructor(t,e){this.schedulerPolicy=t,this.stateTrackingEnabled=e,this.taskInstances=[]}cancelAll(t,e){let n=this.taskInstances.map(n=>{n.task.guids[t]&&n.executor.cancel(e)}).filter(t=>!!t);return Promise.all(n)}perform(t){t.onFinalize(()=>this.scheduleRefresh()),this.taskInstances.push(t),this.refresh()}scheduleRefresh(){Promise.resolve().then(()=>this.refresh())}refresh(){let t=this.stateTrackingEnabled?new BW:new qW,e=new DW(this.schedulerPolicy,t,this.taskInstances);this.taskInstances=e.process()}},WW=class{constructor(t,e,n){this.value=t,this.done=e,this.errored=n}},HW=class{constructor(t){this.done=!1,this.generatorFactory=t,this.iterator=null}step(t,e){try{let{value:n,done:r}=this.getIterator()[e](t);return r?this.finalize(n,!1):new WW(n,!1,!1)}catch(n){return this.finalize(n,!0)}}getIterator(){return this.iterator||this.done||(this.iterator=this.generatorFactory()),this.iterator}finalize(t,e){return this.done=!0,this.iterator=null,new WW(t,!0,e)}},GW="__ec_cancel__",ZW="__ec_yieldable__",KW="next",YW="throw",XW="return",JW="cancel",QW=class{constructor(t,e){this._taskInstance=t,this._resumeIndex=e}getTaskInstance(){return this._taskInstance}cancel(){let t=this._taskInstance;t.proceed.call(t,this._resumeIndex,JW)}next(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,KW,t)}return(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,XW,t)}throw(t){let e=this._taskInstance;e.proceed.call(e,this._resumeIndex,YW,t)}},tH=class{constructor(){this[ZW]=this[ZW].bind(this)}onYield(){}_deferable(){let t={resolve:void 0,reject:void 0};return t.promise=new Promise((e,n)=>{t.resolve=e,t.reject=n}),t}_toPromise(){let t=this._deferable(),e=this[ZW]({proceed(e,n,r){"next"==n||"return"==n?t.resolve(r):t.reject(r)}},0);return t.promise[GW]=e,t.promise}then(...t){return this._toPromise().then(...t)}catch(...t){return this._toPromise().catch(...t)}finally(...t){return this._toPromise().finally(...t)}[ZW](t,e){let n=new QW(t,e);return this.onYield(n)}},eH=(new class extends tH{onYield(){}},{completionState:0,value:null,error:null,isSuccessful:!1,isError:!1,isCanceled:!1,hasStarted:!1,isFinished:!1}),nH=class{constructor(t,e){this.kind=t,this.reason=e,this.promise=new Promise(t=>{this.finalize=t})}},rH={},iH=[],sH=class{constructor({generatorFactory:t,env:e,debug:n}){this.generatorState=new HW(t),this.state=Object.assign({},eH),this.index=1,this.disposers=[],this.finalizeCallbacks=[],this.env=e,this.debug=n,this.cancelRequest=null}start(){this.state.hasStarted||this.cancelRequest||(this.setState({hasStarted:!0}),this.proceedSync(KW,void 0))}cancel(t){return this.requestCancel(t)?(this.state.hasStarted?this.proceedWithCancelAsync():this.finalizeWithCancel(),this.cancelRequest.promise):(t.finalize(),t.promise)}setState(t){Object.assign(this.state,t),this.taskInstance.setState(this.state)}proceedChecked(t,e,n){this.state.isFinished||this.advanceIndex(t)&&("cancel"===e?(this.requestCancel(new nH("yielded"),n),this.proceedWithCancelAsync()):this.proceedAsync(e,n))}proceedWithCancelAsync(){this.proceedAsync(XW,rH)}proceedAsync(t,e){this.advanceIndex(this.index),this.env.async(()=>this.proceedSync(t,e))}proceedSync(t,e){this.state.isFinished||(this.dispose(),this.generatorState.done?this.handleResolvedReturnedValue(t,e):this.handleResolvedContinueValue(t,e))}handleResolvedContinueValue(t,e){let n=this.index,r=this.generatorStep(e,t);this.advanceIndex(n)&&(r.errored?this.finalize(r.value,2):this.handleYieldedValue(r))}handleResolvedReturnedValue(t,e){switch(t){case KW:case XW:this.finalize(e,1);break;case YW:this.finalize(e,2)}}handleYieldedUnknownThenable(t){let e=this.index;t.then(t=>{this.proceedChecked(e,KW,t)},t=>{this.proceedChecked(e,YW,t)})}advanceIndex(t){if(this.index===t)return++this.index}handleYieldedValue(t){let e=t.value;e?(this.addDisposer(e[GW]),e.__ec_yieldable__?this.invokeYieldable(e):"function"==typeof e.then?this.handleYieldedUnknownThenable(e):this.proceedWithSimpleValue(e)):this.proceedWithSimpleValue(e)}proceedWithSimpleValue(t){this.proceedAsync(KW,t)}addDisposer(t){"function"==typeof t&&this.disposers.push(t)}dispose(){let t=this.disposers;0!==t.length&&(this.disposers=[],t.forEach(t=>t()))}generatorStep(t,e){iH.push(this);let n=this.generatorState.step(t,e);if(iH.pop(),this._expectsLinkedYield){let t=n.value;t&&"PERFORM_TYPE_LINKED"===t.performType||console.warn("You performed a .linked() task without immediately yielding/returning it. This is currently unsupported (but might be supported in future version of ember-concurrency)."),this._expectsLinkedYield=!1}return n}maybeResolveDefer(){this.defer&&this.state.isFinished&&(1===this.state.completionState?this.defer.resolve(this.state.value):this.defer.reject(this.state.error))}onFinalize(t){this.finalizeCallbacks.push(t),this.state.isFinished&&this.runFinalizeCallbacks()}runFinalizeCallbacks(){this.finalizeCallbacks.forEach(t=>t()),this.finalizeCallbacks=[],this.maybeResolveDefer(),this.maybeThrowUnhandledTaskErrorLater()}promise(){return this.defer||(this.defer=this.env.defer(),this.asyncErrorsHandled=!0,this.maybeResolveDefer()),this.defer.promise}maybeThrowUnhandledTaskErrorLater(){var t;this.asyncErrorsHandled||2!==this.state.completionState||(t=this.state.error)&&"TaskCancelation"===t.name||this.env.async(()=>{this.asyncErrorsHandled||this.env.reportUncaughtRejection(this.state.error)})}requestCancel(t){return!this.cancelRequest&&!this.state.isFinished&&(this.cancelRequest=t,!0)}finalize(t,e){if(this.cancelRequest)return this.finalizeWithCancel();let n={completionState:e};1===e?(n.isSuccessful=!0,n.value=t):2===e?(n.isError=!0,n.error=t):3===e&&(n.error=t),this.finalizeShared(n)}finalizeWithCancel(){let t=this.taskInstance.formatCancelReason(this.cancelRequest.reason),e=new Error(t);this.debugEnabled()&&console.log(t),e.name="TaskCancelation",this.finalizeShared({isCanceled:!0,completionState:3,error:e,cancelReason:t}),this.cancelRequest.finalize()}debugEnabled(){return this.debug||this.env.globalDebuggingEnabled()}finalizeShared(t){this.index++,t.isFinished=!0,this.setState(t),this.runFinalizeCallbacks()}invokeYieldable(t){try{let e=t[ZW](this.taskInstance,this.index);this.addDisposer(e)}catch(e){this.env.reportUncaughtRejection(e)}}onYielded(t,e){this.asyncErrorsHandled=!0,this.onFinalize(()=>{let n=this.state.completionState;1===n?t.proceed(e,KW,this.state.value):2===n?t.proceed(e,YW,this.state.error):3===n&&t.proceed(e,JW,null)});let n=this.getPerformType();if("PERFORM_TYPE_UNLINKED"!==n)return()=>{this.detectSelfCancelLoop(n,t),this.cancel(new nH("parent_cancel"))}}getPerformType(){return this.taskInstance.performType||"PERFORM_TYPE_DEFAULT"}detectSelfCancelLoop(t,e){if("PERFORM_TYPE_DEFAULT"!==t)return;let n=e.executor&&e.executor.cancelRequest;!n||"lifespan_end"!==n.kind||this.cancelRequest||this.state.isFinished||this.taskInstance.selfCancelLoopWarning(e)}},oH={last:null,lastRunning:null,lastPerformed:null,lastSuccessful:null,lastComplete:null,lastErrored:null,lastCanceled:null,lastIncomplete:null,performCount:0};Object.freeze(oH);var aH=0,lH=class{constructor(t){this.context=t.context,this.debug=t.debug||!1,this.enabledModifiers=t.enabledModifiers,this.env=t.env,this.group=t.group,this.hasEnabledEvents=t.hasEnabledEvents,this.modifierOptions=t.modifierOptions,this.name=t.name,this.onStateCallback=t.onStateCallback,this.scheduler=t.scheduler,this.guid="ec_"+aH++,this.guids={},this.guids[this.guid]=!0,this.group&&Object.assign(this.guids,this.group.guids)}cancelAll(t){let{reason:e,cancelRequestKind:n,resetState:r}=t||{};e=e||".cancelAll() was explicitly called on the Task";let i=new nH(n||"explicit",e);return this.scheduler.cancelAll(this.guid,i).then(()=>{r&&this._resetState()})}get _isAlive(){return!0}_resetState(){this.setState(oH)}setState(){}};Object.assign(lH.prototype,oH),Object.assign(lH.prototype,{numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"});var cH,uH,hH=class{constructor(t,e,n){this.task=t,this.performType=e,this.linkedObject=n}perform(...t){return this.task._performShared(t,this.performType,this.linkedObject)}},dH=class t extends lH{constructor(t){super(t),this.generatorFactory=t.generatorFactory,this.perform=this._perform.bind(this)}linked(){let t=iH[iH.length-1];if(!t)throw new Error("You can only call .linked() from within a task.");return new hH(this,"PERFORM_TYPE_LINKED",t)}unlinked(){return new hH(this,"PERFORM_TYPE_UNLINKED",null)}toString(){return``}_clone(){return new t({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}_curry(...t){let e=this._clone();return e._curryArgs=[...this._curryArgs||[],...t],e}_perform(...t){return this._performShared(t,"PERFORM_TYPE_DEFAULT",null)}_performShared(t,e,n){let r=this._curryArgs?[...this._curryArgs,...t]:t,i=this._taskInstanceFactory(r,e,n);return"PERFORM_TYPE_LINKED"===e&&(n._expectsLinkedYield=!0),this._isAlive||i.cancel(),this.scheduler.perform(i),i}_taskInstanceOptions(t,e,n){return{args:t,executor:new sH({generatorFactory:()=>this.generatorFactory(t),env:this.env,debug:this.debug}),performType:e,hasEnabledEvents:this.hasEnabledEvents}}},pH={enqueue:(t,e)=>e&&t.setBufferPolicy(LW),debug:(t,e)=>e&&t.setDebug(e),drop:(t,e)=>e&&t.setBufferPolicy(EW),keepLatest:(t,e)=>e&&t.setBufferPolicy(IW),maxConcurrency:(t,e)=>t.setMaxConcurrency(e),onState:(t,e)=>t.setOnState(e),restartable:(t,e)=>e&&t.setBufferPolicy(OW)},fH=class{env=mW;_debug=null;_enabledModifiers=[];_hasSetConcurrencyConstraint=!1;_hasSetBufferPolicy=!1;_hasEnabledEvents=!1;_maxConcurrency=null;_onStateCallback=(t,e)=>e.setState(t);_schedulerPolicyClass=zW;constructor(t="",e=null,n={}){this.name=t,this.taskDefinition=e,this.options=n,this._processModifierOptions(n)}createTask(t){let e=this.getTaskOptions(t);return new dH(Object.assign({generatorFactory:e=>this.taskDefinition.apply(t,e)},e))}getModifier(t){if(function(t){return t in pH}(t))return pH[t].bind(null,this)}getOptions(){return this.options}getScheduler(t,e){return new VW(t,e)}getTaskOptions(t){let e,n=this._onStateCallback,r=new this._schedulerPolicyClass(this._maxConcurrency);return e=this.getScheduler(r,n&&"function"==typeof n),{context:t,debug:this._debug,env:this.env,name:this.name,group:void 0,scheduler:e,hasEnabledEvents:this._hasEnabledEvents,onStateCallback:n,enabledModifiers:this._enabledModifiers,modifierOptions:this.getOptions()}}setBufferPolicy(t){return function(t){if(t._hasSetBufferPolicy)throw new Error(`Cannot set multiple buffer policies on a task. ${t._schedulerPolicyClass} has already been set for task '${t.name}'`)}(this),this._hasSetBufferPolicy=!0,this._hasSetConcurrencyConstraint=!0,this._schedulerPolicyClass=t,this}setDebug(t){return this._debug=t,this}setEvented(t){return this._hasEnabledEvents=t,this}setMaxConcurrency(t){return this._hasSetConcurrencyConstraint=!0,this._maxConcurrency=t,this}setName(t){return this.name=t,this}setOnState(t){return this._onStateCallback=t,this}setTaskDefinition(t){return this.taskDefinition=t,this}_processModifierOptions(t){if(t)for(let e of Object.keys(t)){let n=t[e],r=this.getModifier(e);"function"==typeof r&&r(n)&&this._enabledModifiers.push(e)}}},gH=a({EventTarget:()=>No,Promise:()=>ia,all:()=>la,allSettled:()=>ua,asap:()=>Ra,async:()=>Da,cast:()=>Fa,configure:()=>Fo,default:()=>Ba,defer:()=>ya,denodeify:()=>oa,filter:()=>ka,hash:()=>pa,hashSettled:()=>ga,map:()=>ba,off:()=>Ua,on:()=>ja,race:()=>ha,reject:()=>_a,resolve:()=>wa,rethrow:()=>ma}),mH=new class extends gW{assert(...t){}async(t){xs(()=>Es("actions",t))}reportUncaughtRejection(t){Ms(null,function(){throw t})}defer(){return ya()}globalDebuggingEnabled(){return!1}},yH=class extends VW{scheduleRefresh(){Ps(this,this.refresh)}},vH=class{constructor({task:t,args:e,executor:n,performType:r,hasEnabledEvents:i}){this.task=t,this.args=e,this.performType=r,this.executor=n,this.executor.taskInstance=this,this.hasEnabledEvents=i}setState(){}formatCancelReason(){}selfCancelLoopWarning(){}onFinalize(t){this.executor.onFinalize(t)}proceed(t,e,n){this.executor.proceedChecked(t,e,n)}[ZW](t,e){return this.executor.onYielded(t,e)}cancel(t=".cancel() was explicitly called"){this.executor.cancel(new nH("explicit",t))}then(...t){return this.executor.promise().then(...t)}catch(...t){return this.executor.promise().catch(...t)}finally(...t){return this.executor.promise().finally(...t)}toString(){return`${this.task} TaskInstance`}start(){return this.executor.start(),this}};function bH(t,e){return Object.keys(t).reduce((e,n)=>function(t,e,n){const r=Object.getOwnPropertyDescriptor(t,n);return r.initializer=r.initializer||(()=>t[n]),delete r.value,e[n]=Wr(e,n,r),e}(t,e,n),e)}Object.assign(vH.prototype,eH),Object.assign(vH.prototype,{state:"waiting",isDropped:!1,isRunning:!0}),cH=bH(oH,{}),cH=bH({numRunning:0,numQueued:0,isRunning:!1,isQueued:!1,isIdle:!0,state:"idle"},cH),uH=bH(eH,{}),uH=bH({state:"waiting",isDropped:!1,isRunning:!1},uH),Object.freeze(cH),Object.freeze(uH);var wH=class extends vH{setState(t){let e=this._recomputeState(t);Object.assign(this,{...t,isRunning:!t.isFinished,isDropped:"dropped"===e,state:e})}_recomputeState(t){return t.isDropped?"dropped":t.isCanceled?t.hasStarted?"canceled":"dropped":t.isFinished?"finished":t.hasStarted?"running":"waiting"}formatCancelReason(t){return`TaskInstance '${this.getName()}' was canceled because ${t}. For more information, see: http://ember-concurrency.com/docs/task-cancelation-help`}getName(){return this.name||(this.name=this.task&&this.task.name||""),this.name}selfCancelLoopWarning(t){let e=`\`${t.getName()}\``,n=`\`${this.getName()}\``;console.warn(`ember-concurrency detected a potentially hazardous "self-cancel loop" between parent task ${e} and child task ${n}. If you want child task ${n} to be canceled when parent task ${e} is canceled, please change \`.perform()\` to \`.linked().perform()\`. If you want child task ${n} to keep running after parent task ${e} is canceled, change it to \`.unlinked().perform()\``)}triggerEvent(...t){if(!this.hasEnabledEvents)return;let e=this.task,n=e.context,r=e&&e.name;if(n&&n.trigger&&r){let[e,...i]=t;n.trigger(`${r}:${e}`,...i)}}};uH&&Object.defineProperties(wH.prototype,uH);var _H={_performCount:0,setState(t){this._performCount=this._performCount+(t.numPerformedInc||0);let e=t.numRunning>0,n=t.numQueued>0,r=Object.assign({},t,{performCount:this._performCount,isRunning:e,isQueued:n,isIdle:!e&&!n,state:e?"running":"idle"});Object.assign(this,r)},onState(t,e){e.onStateCallback&&e.onStateCallback(t,e)}},xH=class t extends dH{constructor(t){super(t),it(this.context)||Rx(this.context,()=>{this.cancelAll({reason:"the object it lives on was destroyed or unrendered",cancelRequestKind:"lifespan_end"})})}get _isAlive(){return!it(this.context)}_taskInstanceFactory(t,e,n){let r=this._taskInstanceOptions(t,e,n);return r.task=this,new wH(r)}_clone(){return new t({context:this.context,debug:this.debug,env:this.env,generatorFactory:this.generatorFactory,group:this.group,hasEnabledEvents:this.hasEnabledEvents,name:this.name,onStateCallback:this.onStateCallback,scheduler:this.scheduler})}};cH&&Object.defineProperties(xH.prototype,cH),Object.assign(xH.prototype,_H);var CH=class extends fH{env=mH;createTask(t){this.taskDefinition;let e=this.getTaskOptions(t);return new xH(Object.assign({generatorFactory:e=>this.taskDefinition.apply(t,e)},e))}getModifier(t){return super.getModifier(t)}getScheduler(t,e){return new yH(t,e)}get taskFn(){return this.taskDefinition}set taskFn(t){this.setTaskDefinition(t)}};function kH(t,e,n,r){let i=e;r&&(i=Object.assign({},i),i[r]=!0);const s=t();return new CH(n||"",s.generator,i).createTask(s.context)}var SH=a({default:()=>EH}),EH=class extends eu{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"activity",[pp])}#ae=void pF(this,"activity");loadTask=kH(()=>({context:this,generator:function*(t){yield this.activity.load(t)}}),{restartable:!0},"loadTask",null);get scrollTop(){return this.mapUi.getScrollPosition("activity")}get items(){return this.activity.items}get isLoading(){return this.activity.isLoading}get isConnected(){return this.nostrAuth.isConnected}get sourceMode(){return this.activity.sourceMode}get isLoadingMore(){return this.activity.isLoadingMore}setSourceMode(t){this.activity.setSourceMode(t)}static{dF(this.prototype,"setSourceMode",[Vl])}loadMore(){this.activity.loadMore()}static{dF(this.prototype,"loadMore",[Vl])}selectItem(t){if(!t||!t.placeIdentifier)return;const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("activity",e.scrollTop),this.mapUi.returnToRoute={name:"activity"},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo(`/place/${t.placeIdentifier}`)}static{dF(this.prototype,"selectItem",[Vl])}onNostrConnected(){this.loadTask.perform(this.nostrAuth.pubkey)}static{dF(this.prototype,"onNostrConnected",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{dF(this.prototype,"backToMenu",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}},RH=a({default:()=>LH}),LH=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"activity",[pp])}#ae=void pF(this,"activity");activate(){this.mapUi.showSidebar()}setupController(t,e){super.setupController(t,e),t&&t.loadTask&&t.loadTask.perform(this.nostrAuth.pubkey)}deactivate(){}},TH=class extends Yq{get item(){return this.args.item}get primaryPhoto(){return this.item?.photos?.[0]||null}get extraPhotoCount(){return Math.max(0,(this.item?.photos?.length||0)-1)}get placeName(){return this.item?.placeName}get isNameLoading(){return this.item?.placeNameLoading}get tags(){const t=(this.item?.photos||[]).flatMap(t=>t.tags||[]);return[...new Set(t)]}static{Op(ig({id:null,block:'[[[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"contribution-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,1],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"contribution-thumb"],[12],[1,"\\n"],[41,[30,0,["primaryPhoto"]],[[[1," "],[10,"img"],[15,"src",[28,[32,2],[[30,0,["primaryPhoto","thumbUrl"]],[30,0,["primaryPhoto","url"]]],null]],[15,"alt",[28,[32,2],[[30,0,["primaryPhoto","alt"]],"Place photo"],null]],[14,"loading","lazy"],[12],[13],[1,"\\n"]],[]],null],[41,[28,[32,3],[[30,0,["extraPhotoCount"]],0],null],[[[1," "],[10,1],[14,0,"contribution-thumb-badge"],[12],[1,"+"],[1,[30,0,["extraPhotoCount"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-info"],[12],[1,"\\n "],[10,0],[14,0,"contribution-place"],[12],[1,"\\n"],[41,[30,0,["placeName"]],[[[1," "],[1,[30,0,["placeName"]]],[1,"\\n"]],[]],[[[41,[30,0,["isNameLoading"]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Loading…"],[13],[1,"\\n"]],[]],[[[1," "],[10,1],[14,0,"contribution-name-loading"],[12],[1,"Unnamed place"],[13],[1,"\\n "]],[]]]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"contribution-meta"],[12],[1,"\\n "],[1,[28,[32,4],[[30,2,["createdAt"]]],null]],[1,"\\n"],[41,[28,[32,3],[[30,0,["item","photos","length"]],1],null],[[[1," ·\\n "],[1,[30,0,["item","photos","length"]]],[1,"\\n photos\\n"]],[]],[[[1," · 1 photo\\n"]],[]]],[1," "],[13],[1,"\\n"],[41,[30,0,["tags","length"]],[[[1," "],[10,0],[14,0,"contribution-tags"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["tags"]]],null]],null],null,[[[1," "],[10,1],[14,0,"contribution-tag"],[12],[1,[30,3]],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onSelect","@item","tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,fn:mV,or:TV,__keyword__gt:yV,formatRelativeDate:_V}),isStrictMode:!0}),this)}},PH=class extends Yq{static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");openNostrConnectModal(t){t.preventDefault(),this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.closeNostrConnectModal(),this.args.onNostrConnected?.()}static{dF(this.prototype,"onNostrConnected",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["user-check",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n My Contributions\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,2],[[30,3]],null],[12],[1,"\\n"],[41,[30,4],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,5]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"\\n "],[11,3],[24,6,"#"],[24,"role","button"],[24,"tabindex","0"],[4,[32,0],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect your Nostr account"],[13],[1,"\\n to see your contributions.\\n "],[13],[1,"\\n"]],[]],[[[41,[28,[32,3],[[30,6,["length"]]],null],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No contributions yet. Start by adding photos to\\n places."],[13],[1,"\\n"]],[]],[[[1," "],[10,"ul"],[14,0,"contributions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,6]],null]],null],null,[[[41,[28,[32,4],[[30,7,["type"]],"photo"],null],[[[1," "],[8,[32,5],null,[["@item","@onSelect"],[[30,7],[30,8]]],null],[1,"\\n"]],[]],null]],[7]],null],[1," "],[13],[1,"\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,6],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@onBack","@onClose","@scrollTop","@isLoading","@isConnected","@items","item","@onSelect"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq,restoreScroll:uW,not:LV,eq:vV,ContributionPhoto:TH,Modal:SV,NostrConnect:cW}),isStrictMode:!0}),this)}},IH=a({default:()=>MH}),MH=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@items","@isLoading","@isConnected","@scrollTop","@onSelect","@onBack","@onClose","@onNostrConnected"],[[30,1,["items"]],[30,1,["loadContributionsTask","isRunning"]],[30,1,["isConnected"]],[30,1,["scrollTop"]],[30,1,["selectContribution"]],[30,1,["backToMenu"]],[30,1,["close"]],[30,1,["onNostrConnected"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({ContributionsTimeline:PH}),isStrictMode:!0}),bV()),AH=a({default:()=>OH}),OH=class extends eu{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"contributions",[pp])}#le=void pF(this,"contributions");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");loadContributionsTask=kH(()=>({context:this,generator:function*(t){t&&(yield this.contributions.load(t))}}),{restartable:!0},"loadContributionsTask",null);get scrollTop(){return this.mapUi.getScrollPosition("contributions")}get items(){return this.contributions.items}get isConnected(){return this.nostrAuth.isConnected}selectContribution(t){if(!t)return;const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("contributions",e.scrollTop),this.mapUi.returnToRoute={name:"contributions"},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo(`/place/${t.placeIdentifier}`)}static{dF(this.prototype,"selectContribution",[Vl])}onNostrConnected(){this.loadContributionsTask.perform(this.nostrAuth.pubkey)}static{dF(this.prototype,"onNostrConnected",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{dF(this.prototype,"backToMenu",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}},NH=a({default:()=>zH}),zH=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"contributions",[pp])}#le=void pF(this,"contributions");activate(){this.mapUi.showSidebar()}setupController(t,e){super.setupController(t,e),t&&t.loadContributionsTask&&t.loadContributionsTask.perform(this.nostrAuth.pubkey)}deactivate(){this.contributions.stop()}},FH=a({default:()=>DH}),DH=Op(ig({id:null,block:'[[[46,[28,[31,1],null,null],null,null,null]],[],["component","-outlet"]]',moduleName:"(unknown template module)",isStrictMode:!0}),bV()),jH=a({default:()=>UH}),UH=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");activate(){this.mapUi.showSidebar()}},BH=class extends Yq{static{hF(this.prototype,"title",[Wr],function(){return""})}#ce=void pF(this,"title");static{hF(this.prototype,"description",[Wr],function(){return""})}#ue=void pF(this,"description");constructor(){super(...arguments),this.title=this.args.place?.title||"",this.description=this.args.place?.description||""}get shouldAutofocus(){return"undefined"!=typeof window&&window.innerWidth>768}handleSubmit(t){t.preventDefault(),this.args.onSave&&this.args.onSave({title:this.title,description:this.description})}static{dF(this.prototype,"handleSubmit",[Vl])}updateTitle(t){this.title=t.target.value}static{dF(this.prototype,"updateTitle",[Vl])}updateDescription(t){this.description=t.target.value}static{dF(this.prototype,"updateDescription",[Vl])}static{Op(ig({id:null,block:'[[[11,"form"],[24,0,"edit-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-title"],[12],[1,"Title"],[13],[1,"\\n"],[1," "],[11,"input"],[24,1,"edit-title"],[16,2,[30,0,["title"]]],[24,0,"form-control"],[24,"placeholder","Name of the place"],[16,"autofocus",[30,0,["shouldAutofocus"]]],[24,4,"text"],[4,[32,0],["input",[30,0,["updateTitle"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","edit-desc"],[12],[1,"Description"],[13],[1,"\\n "],[11,"textarea"],[24,1,"edit-desc"],[16,2,[30,0,["description"]]],[24,0,"form-control"],[24,"rows","3"],[24,"placeholder","Add some details..."],[4,[32,0],["input",[30,0,["updateDescription"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[10,"button"],[14,0,"btn btn-blue"],[14,4,"submit"],[12],[1,"Save"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"Cancel"],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onCancel"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw}),isStrictMode:!0}),this)}},$H=MV((t,[e])=>{const n=n=>{t&&!t.contains(n.target)&&e(n)},r=setTimeout(()=>{document.addEventListener("click",n)},0);return()=>{clearTimeout(r),document.removeEventListener("click",n)}}),qH=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"_forceClear",[Wr],function(){return!1})}#he=void pF(this,"_forceClear");get isSaved(){return this.args.isSaved}get placeListIds(){return this._forceClear?[]:this.args.place._listIds||[]}styleFor(t){return qv(`background-color: ${t}`)}isInList(t){return!!this.placeListIds&&this.placeListIds.includes(t.id)}static{dF(this.prototype,"isInList",[Vl])}async toggleSaved(){if(this.isSaved){const{osmId:t,osmType:e}=this.args.place;if(await this.storage.removePlace(this.args.place),this.args.place&&(this.args.place.id=null,this.args.place.createdAt=null,this.args.place._listIds=[],this._forceClear=!0),t&&e){const t={...this.args.place};delete t.id,delete t.createdAt,delete t._listIds,this.router.transitionTo("place",t)}else this.router.transitionTo("index");this.args.onClose&&this.args.onClose()}else await this.storage.storePlace(this.args.place)}static{dF(this.prototype,"toggleSaved",[Vl])}async toggleList(t){const e=!this.placeListIds.includes(t.id);e&&!this.isSaved&&await this.storage.storePlace(this.args.place);try{await this.storage.togglePlaceList(this.args.place,t.id,e)}catch(n){console.error(n),alert("Failed to update list: "+n.message)}}static{dF(this.prototype,"toggleList",[Vl])}static{Op(ig({id:null,block:'[[[11,0],[24,0,"place-lists-manager"],[4,[32,0],[[30,1]],null],[12],[1,"\\n "],[10,0],[14,0,"list-item master-toggle"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[30,0,["isSaved"]]],[24,4,"checkbox"],[4,[32,1],["change",[30,0,["toggleSaved"]]],null],[12],[13],[1,"\\n "],[10,1],[14,0,"list-color-dot"],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,"Saved places"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"divider"],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"lists-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,0],[14,0,"list-item"],[12],[1,"\\n "],[10,"label"],[12],[1,"\\n "],[11,"input"],[16,"checked",[28,[30,0,["isInList"]],[[30,2]],null]],[16,"disabled",[52,[51,[30,0,["isSaved"]]],true]],[24,4,"checkbox"],[4,[32,1],["change",[28,[32,2],[[30,0,["toggleList"]],[30,2]],null]],null],[12],[13],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,2,["color"]]],null]],[12],[13],[1,"\\n "],[10,1],[14,0,"list-name"],[12],[1,[30,2,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n"],[13]],["@onClose","list"],["each","-track-array","unless"]]',moduleName:"(unknown template module)",scope:()=>({onClickOutside:$H,on:Hw,fn:mV}),isStrictMode:!0}),this)}},VH=class extends Yq{renderBlurhash=MV((t,[e,n,r])=>{if(!e||!t)return;const i=n||32,s=r||18;t.width=i,t.height=s;const o=t.getContext("2d");if(o)try{const t=((t,e,n)=>{(t=>{if(!t||t.length<6)throw new gq("The blurhash string must be at least 6 characters");let e=uq(t[0]),n=Math.floor(e/9)+1,r=e%9+1;if(t.length!==4+2*r*n)throw new gq(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*r*n}`)})(t);let r=uq(t[0]),i=Math.floor(r/9)+1,s=r%9+1,o=(uq(t[1])+1)/166,a=new Array(s*i);for(let u=0;u({context:this,generator:function*(t){this.error="",this.statusText="Processing";try{const e=yield this.imageProcessor.process(t,1920,.9,!0);this.blurhash=e.blurhash;const n=yield this.imageProcessor.process(t,350,.9,!1);let r,i;const s=cj(),o=t=>{"signing"===t&&(this.statusText="Signing photo upload"),"uploading"===t&&(this.statusText="Uploading photo")},a=t=>{"signing"===t&&(this.statusText="Signing thumbnail upload"),"uploading"===t&&(this.statusText="Uploading thumbnail")};if(s)r=yield this.blossom.upload(e.blob,{sequential:!0,onProgress:o}),i=yield this.blossom.upload(n.blob,{sequential:!0,onProgress:a});else{const t=this.blossom.upload(e.blob,{onProgress:o}),s=this.blossom.upload(n.blob,{onProgress:a});[r,i]=yield Promise.all([t,s])}this.args.onSuccess&&this.args.onSuccess({file:t,url:r.url,fallbackUrls:r.fallbackUrls,thumbUrl:i.url,blurhash:e.blurhash,type:"image/jpeg",dim:e.dim,hash:r.hash,thumbHash:i.hash})}catch(e){this.error=e.message}}}),null,"uploadTask",null);static{Op(ig({id:null,block:'[[[10,0],[15,0,[29,["photo-upload-item\\n ",[52,[30,0,["uploadTask","isRunning"]],"is-uploading"],"\\n ",[52,[30,0,["error"]],"has-error"]]]],[12],[1,"\\n"],[41,[30,0,["blurhash"]],[[[1," "],[8,[32,0],[[24,0,"place-header-photo-blur"]],[["@hash"],[[30,0,["blurhash"]]]],null],[1,"\\n"]],[]],null],[1," "],[10,"img"],[15,"src",[30,0,["thumbnailUrl"]]],[14,"alt","thumbnail"],[12],[13],[1,"\\n\\n"],[41,[30,0,["uploadTask","isRunning"]],[[[1," "],[10,0],[14,0,"overlay"],[12],[1,"\\n "],[8,[32,1],[[24,0,"spin-animation"]],[["@name","@size","@color"],["loading-ring",24,"white"]],null],[1,"\\n"],[41,[30,0,["statusText"]],[[[1," "],[10,1],[14,0,"upload-status-text"],[12],[1,[30,0,["statusText"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["error"]],[[[1," "],[11,"button"],[24,0,"overlay error-overlay"],[16,"title",[30,0,["error"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["showErrorToast"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["alert-circle",24,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[11,"button"],[24,0,"btn-remove-photo"],[24,"title","Remove photo"],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,1],[30,2]],null]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",16,"white"]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onRemove","@file"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Blurhash:VH,Icon:Qq,on:Hw,fn:mV}),isStrictMode:!0}),this)}},HH=Eb(function([t]){return KB(t)}),GH=Eb(function([t,e]){return!!Array.isArray(t)&&t.includes(e)}),ZH=class extends Yq{static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"blossom",[pp])}#de=void pF(this,"blossom");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"file",[Wr],function(){return null})}#ve=void pF(this,"file");static{hF(this.prototype,"uploadedPhoto",[Wr],function(){return null})}#be=void pF(this,"uploadedPhoto");static{hF(this.prototype,"error",[Wr],function(){return""})}#me=void pF(this,"error");static{hF(this.prototype,"isPublishing",[Wr],function(){return!1})}#we=void pF(this,"isPublishing");static{hF(this.prototype,"isDragging",[Wr],function(){return!1})}#_e=void pF(this,"isDragging");static{hF(this.prototype,"selectedTags",[Wr],function(){return[]})}#xe=void pF(this,"selectedTags");static{hF(this.prototype,"altText",[Wr],function(){return""})}#Ce=void pF(this,"altText");get place(){return this.args.place||{}}get title(){return this.place.title||"this place"}get allUploaded(){return this.file&&this.uploadedPhoto&&this.file===this.uploadedPhoto.file}get suggestedTags(){return J$(this.place)}handleFileSelect(t){this.addFile(t.target.files[0]),t.target.value=""}static{dF(this.prototype,"handleFileSelect",[Vl])}handleDragOver(t){t.preventDefault(),this.isDragging=!0}static{dF(this.prototype,"handleDragOver",[Vl])}handleDragLeave(t){t.preventDefault(),this.isDragging=!1}static{dF(this.prototype,"handleDragLeave",[Vl])}handleDrop(t){t.preventDefault(),this.isDragging=!1,t.dataTransfer.files.length>0&&this.addFile(t.dataTransfer.files[0])}static{dF(this.prototype,"handleDrop",[Vl])}addFile(t){t&&t.type.startsWith("image/")?(this.error="",this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=t,this.uploadedPhoto=null,this.args.onUploadStateChange&&this.args.onUploadStateChange(!0)):this.error="Please select a valid image file."}handleUploadSuccess(t){this.uploadedPhoto=t}static{dF(this.prototype,"handleUploadSuccess",[Vl])}removeFile(){this.uploadedPhoto&&this.deletePhotoTask.perform(this.uploadedPhoto),this.file=null,this.uploadedPhoto=null,this.selectedTags=[],this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1)}static{dF(this.prototype,"removeFile",[Vl])}toggleTag(t){this.selectedTags.includes(t)?this.selectedTags=[]:this.selectedTags=[t]}static{dF(this.prototype,"toggleTag",[Vl])}updateAltText(t){this.altText=t.target.value}static{dF(this.prototype,"updateAltText",[Vl])}deletePhotoTask=kH(()=>({context:this,generator:function*(t){try{t.hash&&(yield this.blossom.delete(t.hash)),t.thumbHash&&(yield this.blossom.delete(t.thumbHash))}catch(e){this.toast.show(`Failed to delete photo from server: ${e.message}`,5e3)}}}),null,"deletePhotoTask",null);async publish(){if(!this.nostrAuth.isConnected)return void(this.error="You must connect Nostr first.");if(!this.allUploaded)return void(this.error="Please wait for all photos to finish uploading.");const{osmId:t,lat:e,lon:n}=this.place,r=this.place.osmType||"node";if(t){this.error="",this.isPublishing=!0;try{const i=[["i",`osm:${r}:${t}`]];for(const t of this.selectedTags)i.push(["t",t]);e&&n&&(i.push(["g",aB.encode(e,n,4)]),i.push(["g",aB.encode(e,n,6)]),i.push(["g",aB.encode(e,n,7)]),i.push(["g",aB.encode(e,n,9)]));const s=this.uploadedPhoto,o=["imeta",`url ${s.url}`];o.push(`m ${s.type}`),s.dim&&o.push(`dim ${s.dim}`);const a=this.altText.trim();if(a&&o.push(`alt ${a}`),s.fallbackUrls&&s.fallbackUrls.length>0)for(const t of s.fallbackUrls)o.push(`fallback ${t}`);s.thumbUrl&&o.push(`thumb ${s.thumbUrl}`),s.blurhash&&o.push(`blurhash ${s.blurhash}`),i.push(o);const l=await oz.fromKind(360).content("").modifyPublicTags(()=>i).as(this.nostrAuth.signer).sign();await this.nostrRelay.publish(this.nostrData.activeWriteRelays,l),this.nostrData.store.add(l),this.toast.show("Photo published successfully"),this.file=null,this.uploadedPhoto=null,this.altText="",this.args.onUploadStateChange&&this.args.onUploadStateChange(!1),this.args.onClose&&this.args.onClose(l.id)}catch(i){this.error="Failed to publish: "+i.message}finally{this.isPublishing=!1}}else this.error="This place does not have a valid OSM ID."}static{dF(this.prototype,"publish",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"place-photo-upload"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Add Photo for "],[1,[30,0,["title"]]],[13],[1,"\\n\\n"],[41,[30,0,["error"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,"\\n "],[1,[30,0,["error"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["file"]],[[[1," "],[8,[32,0],null,[["@file","@onSuccess","@onRemove"],[[30,0,["file"]],[30,0,["handleUploadSuccess"]],[30,0,["removeFile"]]]],null],[1,"\\n\\n"],[41,[30,0,["suggestedTags","length"]],[[[1," "],[10,0],[14,0,"photo-tag-suggestions"],[12],[1,"\\n "],[10,2],[14,0,"photo-tag-suggestions-title"],[12],[1,"\\n Choose a tag/category (optional):\\n "],[13],[1,"\\n "],[10,0],[14,0,"photo-tag-suggestions-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["suggestedTags"]]],null]],null],null,[[[1," "],[11,"button"],[16,0,[29,["photo-tag-chip\\n ",[52,[28,[32,1],[[30,0,["selectedTags"]],[30,1]],null],"is-selected"]]]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["toggleTag"]],[30,1]],null]],null],[12],[1,"\\n "],[1,[28,[32,4],[[30,1]],null]],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photo-alt-input"],[12],[1,"Description (optional):"],[13],[1,"\\n "],[11,"input"],[24,1,"photo-alt-input"],[24,0,"form-control"],[24,"placeholder","Describe this photo"],[16,2,[30,0,["altText"]]],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateAltText"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"btn btn-primary btn-publish"],[16,"disabled",[28,[32,5],[[28,[32,6],[[30,0,["allUploaded"]]],null],[30,0,["isPublishing"]]],null]],[24,4,"button"],[4,[32,2],["click",[30,0,["publish"]]],null],[12],[1,"\\n"],[41,[30,0,["isPublishing"]],[[[1," Publishing...\\n"]],[]],[[[1," Publish Photo\\n"]],[]]],[1," "],[13],[1,"\\n"]],[]],[[[1," "],[11,0],[16,0,[29,["dropzone ",[52,[30,0,["isDragging"]],"is-dragging"]]]],[4,[32,2],["dragover",[30,0,["handleDragOver"]]],null],[4,[32,2],["dragleave",[30,0,["handleDragLeave"]]],null],[4,[32,2],["drop",[30,0,["handleDrop"]]],null],[12],[1,"\\n "],[10,"label"],[14,"for","photo-upload-input"],[14,0,"dropzone-label"],[12],[1,"\\n "],[8,[32,7],null,[["@name","@size","@color"],["upload-cloud",48,"#ccc"]],null],[1,"\\n "],[10,2],[12],[1,"Drag and drop a photo here, or click to browse"],[13],[1,"\\n "],[13],[1,"\\n "],[11,"input"],[24,1,"photo-upload-input"],[24,"accept","image/*"],[24,0,"file-input-hidden"],[16,"disabled",[30,0,["isPublishing"]]],[24,4,"file"],[4,[32,2],["change",[30,0,["handleFileSelect"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n"]],[]]],[13]],["tag"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({PlacePhotoUploadItem:WH,includes:GH,on:Hw,fn:mV,capitalize:HH,or:TV,not:LV,Icon:Qq}),isStrictMode:!0}),this)}},KH=MV((t,[e])=>{if(!e)return;let n;t.classList.remove("loaded"),t.classList.remove("loaded-instant");const r=()=>{const e=t.parentElement,n=e&&"PICTURE"===e.tagName?e.parentElement:e;if(n&&n.closest(".photo-carousel.gallery-main")){const t=n.querySelector(".place-header-photo-blur");t&&(t.style.opacity="0")}},i=()=>{t.classList.contains("loaded-instant")||t.classList.add("loaded"),r()};return t.addEventListener("load",i),n=new IntersectionObserver((n,i)=>{n.forEach(n=>{if(n.isIntersecting){i.unobserve(t);const n=new Image;n.src=e,n.complete&&(t.classList.add("loaded-instant"),r());const s=t.parentElement;s&&"PICTURE"===s.tagName&&s.querySelectorAll("source").forEach(t=>{t.dataset.srcset&&(t.srcset=t.dataset.srcset)}),t.dataset.src?t.src=t.dataset.src:t.src=e}})},{root:null,rootMargin:"100px 100%",threshold:0}),n.observe(t),()=>{t.removeEventListener("load",i),n&&n.disconnect()}}),YH=class extends Yq{static{hF(this.prototype,"canScrollLeft",[Wr],function(){return!1})}#ke=void pF(this,"canScrollLeft");static{hF(this.prototype,"canScrollRight",[Wr],function(){return!1})}#Se=void pF(this,"canScrollRight");internalEventId=null;carouselElement=null;get photos(){return this.args.photos||[]}get showChevrons(){return this.photos.length>1}get cannotScrollLeft(){return!this.canScrollLeft}get cannotScrollRight(){return!this.canScrollRight}get isGalleryMain(){return"gallery-main"===this.args.variant}get isGalleryThumbnails(){return"gallery-thumbnails"===this.args.variant}get variantClass(){return this.args.variant||"inline"}lastResetKey=null;resetScrollPosition=MV((t,[e])=>{void 0!==e&&e!==this.lastResetKey&&(this.lastResetKey=e,t.scrollLeft=0,setTimeout(()=>this.updateScrollState(),50))});isProgrammaticScroll=!1;scrollToNewPhoto=MV((t,[e])=>{if(e&&e!==this.lastEventId){const n=!this.lastEventId;if(this.lastEventId=e,this.internalEventId===e)return;this.internalEventId=e,this.isProgrammaticScroll=!0;const r=()=>{const r=t.querySelector(`[data-event-id="${e}"]`);if(r)if(n){const e=t.style.scrollBehavior;t.style.scrollBehavior="auto",t.scrollLeft=r.offsetLeft,setTimeout(()=>{t.style.scrollBehavior=e,this.isProgrammaticScroll=!1},50)}else t.scrollLeft=r.offsetLeft,setTimeout(()=>{this.isProgrammaticScroll=!1},500);else this.isProgrammaticScroll=!1};n?r():setTimeout(r,100)}});setupCarousel=MV(t=>{let e,n;return this.carouselElement=t,setTimeout(()=>{this.updateScrollState()},50),window.ResizeObserver&&(e=new ResizeObserver(()=>this.updateScrollState()),e.observe(t)),this.args.onVisiblePhotoChange&&window.IntersectionObserver&&"test"!==ix.environment&&(n=new IntersectionObserver(t=>{if(!this.isProgrammaticScroll)for(let e of t)if(e.isIntersecting&&e.intersectionRatio>=.5){const t=e.target.dataset.eventId;this.internalEventId=t;const n=this.photos.find(e=>e.eventId===t);n&&this.args.onVisiblePhotoChange(n)}},{root:t,threshold:.5}),t.querySelectorAll(".carousel-slide").forEach(t=>n.observe(t))),()=>{e&&e.unobserve(t),n&&n.disconnect()}});updateScrollState(){if(!this.carouselElement)return;const{scrollLeft:t,scrollWidth:e,clientWidth:n}=this.carouselElement;this.canScrollLeft=t>1,this.canScrollRight=t+n({on:Hw,and:RV,eq:vV,fn:mV,Blurhash:VH,fadeInImage:KH,Icon:Qq}),isStrictMode:!0}),this)}},XH=class extends Yq{static{hF(this.prototype,"isOpen",[Wr],function(){return!1})}#Ee=void pF(this,"isOpen");toggleMenu(t){t?.stopPropagation(),this.isOpen=!this.isOpen}static{dF(this.prototype,"toggleMenu",[Vl])}closeMenu(t){t?.stopPropagation(),this.isOpen=!1}static{dF(this.prototype,"closeMenu",[Vl])}get triggerIcon(){return this.args.triggerIcon||"more-vertical"}static{Op(ig({id:null,block:'[[[10,0],[14,0,"dropdown-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"dropdown-trigger-btn btn-press"],[16,"title",[30,1]],[24,4,"button"],[4,[32,0],["click",[30,0,["toggleMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[30,0,["triggerIcon"]],[30,2],[30,3]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["isOpen"]],[[[1," "],[10,0],[15,0,[29,["dropdown-popover ",[30,4]]]],[12],[1,"\\n "],[18,5,[[30,0,["closeMenu"]]]],[1,"\\n "],[13],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,0],["click",[30,0,["closeMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[13]],["@triggerTitle","@iconSize","@iconColor","@popoverClass","&default"],["if","yield"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq}),isStrictMode:!0}),this)}},JH=1e5,QH=Math.round((Math.log(100)-Math.log(10))/(Math.log(JH)-Math.log(10))*200),tG=class extends Yq{static{hF(this.prototype,"nostrZap",[pp])}#Re=void pF(this,"nostrZap");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"step",[Wr],function(){return"select-amount"})}#Le=void pF(this,"step");static{hF(this.prototype,"sliderPosition",[Wr],function(){return QH})}#Te=void pF(this,"sliderPosition");static{hF(this.prototype,"message",[Wr],function(){return""})}#ee=void pF(this,"message");static{hF(this.prototype,"error",[Wr],function(){return null})}#me=void pF(this,"error");static{hF(this.prototype,"invoice",[Wr],function(){return null})}#Pe=void pF(this,"invoice");static{hF(this.prototype,"lightningAddress",[Wr],function(){return null})}#Ie=void pF(this,"lightningAddress");static{hF(this.prototype,"lnurlEndpoint",[Wr],function(){return null})}#Me=void pF(this,"lnurlEndpoint");static{hF(this.prototype,"lnurlLoading",[Wr],function(){return!1})}#Ae=void pF(this,"lnurlLoading");static{hF(this.prototype,"lnurlError",[Wr],function(){return null})}#Oe=void pF(this,"lnurlError");static{hF(this.prototype,"paymentNotDetected",[Wr],function(){return!1})}#Ne=void pF(this,"paymentNotDetected");sliderSteps=200;sliderTicks=["10","100","1k","10k","100k"];_receiptSub=null;_receiptTimeout=null;_zapRequest=null;RECEIPT_TIMEOUT_MS=3e5;constructor(){super(...arguments),this._loadLightningInfo()}get photo(){return this.args.photo}get hasWebLN(){return this.nostrZap.hasWebLN()}get effectiveAmount(){return function(t){const e=t/200;return Math.round(Math.exp(Math.log(10)+(Math.log(JH)-Math.log(10))*e))}(this.sliderPosition)}get amountMsats(){return 1e3*this.effectiveAmount}get formattedAmount(){return this.effectiveAmount.toLocaleString()}get cannotZap(){return!this.canZap}get canZap(){return!!this.lnurlEndpoint&&!this.lnurlError&&!(this.effectiveAmount<=0)&&this.amountMsats>=this.lnurlEndpoint.minSendable&&this.amountMsats<=this.lnurlEndpoint.maxSendable}get minSats(){return this.lnurlEndpoint?Math.ceil(this.lnurlEndpoint.minSendable/1e3):1}get maxSats(){return this.lnurlEndpoint?Math.floor(this.lnurlEndpoint.maxSendable/1e3):JH}get lightningUri(){return this.invoice?`lightning:${this.invoice}`:""}get parsedInvoice(){if(!this.invoice)return null;try{return this.nostrZap.parseInvoice(this.invoice)}catch{return null}}async _loadLightningInfo(){const t=this.photo?.pubkey;if(!t)return;this.nostrZap.loadRecipientRelays(t).catch(()=>{});const e=this.nostrZap.getLightningAddress(t);if(e){this.lightningAddress=e,this.lnurlLoading=!0,this.lnurlError=null;try{this.lnurlEndpoint=await this.nostrZap.resolveLnurl(e)}catch(PD){this.lnurlError=PD instanceof Error?PD.message:"Failed to fetch lightning info"}finally{this.lnurlLoading=!1}}else this.lnurlError="This user has no lightning address set in their profile"}updateSlider(t){this.sliderPosition=Number(t.target.value)}static{dF(this.prototype,"updateSlider",[Vl])}updateMessage(t){this.message=t.target.value}static{dF(this.prototype,"updateMessage",[Vl])}handleClose(){this.args.onClose&&this.args.onClose()}static{dF(this.prototype,"handleClose",[Vl])}resetAndClose(){this._cleanupReceiptSub(),this.step="select-amount",this.error=null,this.invoice=null,this.paymentNotDetected=!1,this.handleClose()}static{dF(this.prototype,"resetAndClose",[Vl])}retry(){this.step="select-amount",this.error=null}static{dF(this.prototype,"retry",[Vl])}showInvoice(){this.step="awaiting-payment",this.error=null}static{dF(this.prototype,"showInvoice",[Vl])}performZap(){this.zapTask.perform()}static{dF(this.prototype,"performZap",[Vl])}performWebLNPay(){this.webLNPayTask.perform()}static{dF(this.prototype,"performWebLNPay",[Vl])}copyInvoice(){if(this.invoice)try{navigator.clipboard.writeText(this.invoice),this.toast.show("Invoice copied to clipboard")}catch{}}static{dF(this.prototype,"copyInvoice",[Vl])}_startReceiptSubscription(t){this._cleanupReceiptSub(),this._zapRequest=t,this.paymentNotDetected=!1,this._receiptSub=this.nostrZap.subscribeForZapReceipt(t,this.photo,()=>{this.step="success",this._cleanupReceiptSub()}),this._receiptTimeout=setTimeout(()=>{this.paymentNotDetected=!0},this.RECEIPT_TIMEOUT_MS)}_cleanupReceiptSub(){this._receiptSub&&(this._receiptSub.unsubscribe(),this._receiptSub=null),this._receiptTimeout&&(clearTimeout(this._receiptTimeout),this._receiptTimeout=null)}zapTask=kH(()=>({context:this,generator:function*(){if(this.canZap){this.step="fetching-invoice",this.error=null;try{const{invoice:t,zapRequest:e}=yield this.nostrZap.zap(this.photo,this.amountMsats,this.message);this.invoice=t,this.step="awaiting-payment",this._startReceiptSubscription(e)}catch(PD){console.error("Zap failed:",PD),this.error=PD instanceof Error?PD.message:"Failed to create zap",this.step="error"}}}}),null,"zapTask",null);webLNPayTask=kH(()=>({context:this,generator:function*(){if(this.invoice){this.step="paying-with-wallet",this.error=null;try{yield this.nostrZap.payWithWebln(this.invoice),this._cleanupReceiptSub(),this.step="success"}catch(PD){console.error("WebLN pay failed:",PD),this.error=PD instanceof Error?PD.message:"Failed to pay with wallet",this.step="wallet-pay-error"}}}}),null,"webLNPayTask",null);willDestroy(){this._cleanupReceiptSub(),super.willDestroy(...arguments)}static{Op(ig({id:null,block:'[[[8,[32,0],null,[["@inline","@onClose"],[true,[30,0,["resetAndClose"]]]],[["default"],[[[[1,"\\n "],[10,0],[14,0,"zap-photo-modal"],[12],[1,"\\n "],[10,"h2"],[12],[1,"Zap Photo"],[13],[1,"\\n\\n"],[1," "],[10,"section"],[14,0,"status"],[12],[1,"\\n"],[41,[30,0,["lnurlLoading"]],[[[1," "],[10,2],[14,0,"meta-info"],[12],[1,"Loading lightning address..."],[13],[1,"\\n"]],[]],[[[41,[30,0,["lightningAddress"]],[[[1," "],[10,0],[14,0,"lightning-address"],[12],[1,"\\n "],[10,1],[14,0,"lightning-badge"],[12],[1,"Lightning"],[13],[1,"\\n "],[10,1],[14,0,"lightning-address-text"],[12],[1,[30,0,["lightningAddress"]]],[13],[1,"\\n "],[13],[1,"\\n "]],[]],null]],[]]],[41,[30,0,["lnurlError"]],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["lnurlError"]]],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[28,[32,1],[[30,0,["step"]],"select-amount"],null],[[[1," "],[10,"section"],[14,0,"slider"],[12],[1,"\\n "],[10,0],[14,0,"amount-display"],[12],[1,"\\n "],[10,1],[14,0,"amount-value zap-amount"],[12],[1,[30,0,["formattedAmount"]]],[13],[1,"\\n "],[10,1],[14,0,"amount-unit"],[12],[1,"sats"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"zap-slider"],[24,"min","0"],[16,"max",[30,0,["sliderSteps"]]],[16,2,[30,0,["sliderPosition"]]],[24,"aria-label","Zap amount in sats"],[24,4,"range"],[4,[32,2],["input",[30,0,["updateSlider"]]],null],[12],[13],[1,"\\n\\n "],[10,0],[14,0,"slider-ticks"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["sliderTicks"]]],null]],null],null,[[[1," "],[10,1],[12],[1,[30,1]],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Message (optional)"],[13],[1,"\\n "],[11,"input"],[24,0,"form-control"],[24,"placeholder","Say something nice..."],[24,"aria-label","Zap message"],[16,2,[30,0,["message"]]],[24,4,"text"],[4,[32,2],["input",[30,0,["updateMessage"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Cancel\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[16,"disabled",[30,0,["cannotZap"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["performZap"]]],null],[12],[1,"\\n Zap\\n "],[1,[30,0,["formattedAmount"]]],[1,"\\n sats\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"fetching-invoice"],null],[[[1," "],[10,0],[14,0,"centered"],[12],[1,"\\n "],[8,[32,3],[[24,0,"spin-animation"]],[["@name","@size"],["loading-ring",32]],null],[1,"\\n "],[10,2],[12],[1,"Creating zap request and fetching invoice..."],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"awaiting-payment"],null],[[[1," "],[10,2],[14,0,"zap-pay-prompt"],[12],[1,"\\n Scan to pay\\n "],[10,"strong"],[12],[1,[30,0,["formattedAmount"]]],[1," sats"],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"qr-code-container"],[12],[1,"\\n "],[11,"canvas"],[4,[32,4],[[30,0,["invoice"]]],null],[12],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["hasWebLN"]],[[[1," "],[11,"button"],[24,0,"btn btn-primary btn-full webln-pay-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["performWebLNPay"]]],null],[12],[1,"\\n Open in Lightning wallet\\n "],[13],[1,"\\n"]],[]],[[[1," "],[10,3],[15,6,[30,0,["lightningUri"]]],[14,0,"btn btn-primary btn-full"],[12],[1,"\\n Open in Lightning wallet\\n "],[13],[1,"\\n"]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full copy-invoice-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["copyInvoice"]]],null],[12],[1,"\\n Copy payment request\\n "],[13],[1,"\\n\\n"],[41,[30,0,["paymentNotDetected"]],[[[1," "],[10,2],[14,0,"meta-info"],[12],[1,"\\n Payment not detected yet. Keep the QR code open and try paying\\n again, or use a different Lightning wallet.\\n "],[13],[1,"\\n"]],[]],null]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"paying-with-wallet"],null],[[[1," "],[10,0],[14,0,"centered"],[12],[1,"\\n "],[8,[32,3],[[24,0,"spin-animation"]],[["@name","@size"],["loading-ring",32]],null],[1,"\\n "],[10,2],[12],[1,"Paying invoice with WebLN..."],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"wallet-pay-error"],null],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["error"]]],[13],[1,"\\n "],[10,2],[14,0,"meta-info"],[12],[1,"\\n The WebLN payment failed. You can still scan the QR code with a\\n Lightning wallet.\\n "],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Cancel\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["showInvoice"]]],null],[12],[1,"\\n Show Invoice\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"success"],null],[[[1," "],[10,0],[14,0,"success zap-success"],[12],[1,"\\n "],[10,0],[14,0,"success-icon"],[12],[1,"⚡"],[13],[1,"\\n "],[10,"h4"],[12],[1,"Zap Sent!"],[13],[1,"\\n "],[10,2],[12],[1,"\\n You zapped\\n "],[10,"strong"],[12],[1,[30,0,["formattedAmount"]]],[1," sats"],[13],[1,"\\n"],[41,[30,0,["message"]],[[[1," with message: \\""],[1,[30,0,["message"]]],[1,"\\"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Done\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[28,[32,1],[[30,0,["step"]],"error"],null],[[[1," "],[10,0],[14,0,"alert alert-error"],[12],[1,[30,0,["error"]]],[13],[1,"\\n "],[10,0],[14,0,"edit-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline"],[24,4,"button"],[4,[32,2],["click",[30,0,["resetAndClose"]]],null],[12],[1,"\\n Close\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-primary"],[24,4,"button"],[4,[32,2],["click",[30,0,["retry"]]],null],[12],[1,"\\n Try Again\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]]]]]],["label"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({Modal:SV,eq:vV,on:Hw,Icon:Qq,qrCode:lW}),isStrictMode:!0}),this)}},eG=Op(ig({id:null,block:'[[[11,0],[24,0,"photo-gallery-overlay"],[24,"role","dialog"],[24,"tabindex","-1"],[4,[32,0],["click",[30,1]],null],[4,[30,2],[[30,3]],null],[12],[1,"\\n"],[1," "],[10,0],[14,0,"photo-gallery-content"],[15,"data-current-event-id",[30,4,["eventId"]]],[12],[1,"\\n "],[10,0],[14,0,"photo-gallery-header"],[12],[1,"\\n "],[10,0],[14,0,"actions-btn-container"],[12],[1,"\\n "],[8,[32,1],null,[["@iconSize","@triggerIcon","@iconColor"],[24,[30,5],"white"]],[["default"],[[[[1,"\\n "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,7],[30,6]],null]],null],[12],[1,"Copy Photo Event ID"],[13],[1,"\\n"],[41,[30,8],[[[1," "],[11,"button"],[24,0,"dropdown-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,9],[30,6]],null]],null],[12],[1,"Zap this photo"],[13],[1,"\\n"]],[]],null],[41,[30,10],[[[1," "],[11,"button"],[24,0,"dropdown-item text-danger"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,11],[30,6]],null]],null],[12],[1,"Delete Photo"],[13],[1,"\\n"]],[]],null],[1," "]],[6]]]]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[28,[32,3],[[30,12],[30,13]],null],[[[1," "],[10,0],[14,0,"photo-gallery-uploader-info"],[12],[1,"\\n"],[41,[30,12],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-name"],[12],[1,[30,12]],[13],[1,"\\n"]],[]],null],[41,[30,13],[[[1," "],[10,1],[14,0,"photo-gallery-uploader-date"],[12],[1,"\\n "],[1,[28,[32,4],[[30,13]],null]],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[11,"button"],[24,0,"close-btn btn-text"],[24,"aria-label","Close gallery"],[24,"title","Close"],[24,4,"button"],[4,[32,0],["click",[30,14]],null],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["x",24,"white"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"main-photo-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onVisiblePhotoChange","@name"],["gallery-main",[30,15],[30,4,["eventId"]],[30,16],[30,17]]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"thumbnail-strip-container"],[12],[1,"\\n "],[8,[32,6],null,[["@variant","@photos","@scrollToEventId","@onPhotoClick","@name"],["gallery-thumbnails",[30,15],[30,4,["eventId"]],[30,18],[30,17]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,19],[[[1," "],[8,[32,7],null,[["@photo","@onClose"],[[30,4],[30,20]]],null],[1,"\\n"]],[]],null],[13]],["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@currentPhoto","@triggerIcon","closeMenu","@copyEventId","@canZapPhoto","@openZap","@canDeletePhoto","@deletePhoto","@uploaderName","@photoDate","@handleClose","@photos","@handleVisiblePhotoChange","@placeName","@selectPhoto","@zapModalOpen","@closeZap"],["if"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,DropdownMenu:XH,fn:mV,or:TV,formatRelativeDate:_V,Icon:Qq,PhotoCarousel:YH,ZapPhotoModal:tG}),isStrictMode:!0}),bV()),nG=class extends Yq{get isTesting(){return"test"===ix.environment}get destinationElement(){return document.getElementById("modal-portal")||document.body}static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"nostrRelay",[pp])}#ht=void pF(this,"nostrRelay");static{hF(this.prototype,"nostrZap",[pp])}#Re=void pF(this,"nostrZap");static{hF(this.prototype,"blossom",[pp])}#de=void pF(this,"blossom");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"currentPhoto",[Wr],function(){return this.args.selectedPhoto||this.args.photos?.[0]})}#ze=void pF(this,"currentPhoto");static{hF(this.prototype,"zapModalOpen",[Wr],function(){return!1})}#Fe=void pF(this,"zapModalOpen");get triggerIcon(){return"undefined"!=typeof window&&window.innerWidth<=768?"more-vertical":"more-horizontal"}get isCreator(){return this.currentPhoto?.pubkey&&this.nostrAuth.pubkey&&this.currentPhoto.pubkey===this.nostrAuth.pubkey}get canDeletePhoto(){return this.isCreator&&!0===this.settings.experimentalEnablePhotoDeletion}get canZapPhoto(){return!this.isCreator&&this.nostrAuth.isConnected&&!!this.nostrZap.getLightningAddress(this.currentPhoto?.pubkey)}get uploaderName(){const t=this.currentPhoto?.pubkey;if(!t)return null;const e=this.nostrData.getProfile?.(t);return e&&(e.displayName||e.display_name||e.name)||null}get photoDate(){return this.currentPhoto?.publishedAt||this.currentPhoto?.createdAt||null}bindKeyboard=MV((t,[e])=>(document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)));handleClose(){this.args.onClose&&this.args.onClose()}static{dF(this.prototype,"handleClose",[Vl])}handleBackgroundClick(t){t.target.closest(".thumbnail-strip-container")||t.target.closest(".carousel-nav-btn")||t.target.closest(".close-btn")||t.target.closest(".photo-gallery-header")||t.target.closest(".modal-overlay")||this.handleClose()}static{dF(this.prototype,"handleBackgroundClick",[Vl])}selectPhoto(t){this.currentPhoto=t}static{dF(this.prototype,"selectPhoto",[Vl])}handleVisiblePhotoChange(t){this.currentPhoto!==t&&(this.currentPhoto=t)}static{dF(this.prototype,"handleVisiblePhotoChange",[Vl])}handleKeydown(t){if(!this.args.photos||0===this.args.photos.length)return;if("Escape"===t.key)return void this.handleClose();const e=this.args.photos.indexOf(this.currentPhoto);-1!==e&&("ArrowLeft"===t.key&&e>0?this.currentPhoto=this.args.photos[e-1]:"ArrowRight"===t.key&&e({context:this,generator:function*(){const t=this.currentPhoto.eventId,e=this.args.photos?.indexOf(this.currentPhoto)??-1;try{const r=[["e",t]];this.currentPhoto.placeIdentifier&&r.push(["i",this.currentPhoto.placeIdentifier]);const i=yield oz.fromKind(5).content("Deleted photo").modifyPublicTags(()=>r).as(this.nostrAuth.signer).sign();yield this.nostrRelay.publish(this.nostrData.activeWriteRelays,i),this.nostrData.store.add(i);const s=/[0-9a-f]{64}/i;if(this.currentPhoto.url){const t=this.currentPhoto.url.match(s);if(t)try{yield this.blossom.delete(t[0])}catch(n){console.warn("Failed to delete main image from blossom:",n)}}if(this.currentPhoto.thumbUrl){const t=this.currentPhoto.thumbUrl.match(s);if(t)try{yield this.blossom.delete(t[0])}catch(n){console.warn("Failed to delete thumb image from blossom:",n)}}this.toast.show("Photo deleted successfully");const o=(this.args.photos||[]).filter(e=>e.eventId!==t);0===o.length?this.handleClose():this.currentPhoto=o[Math.min(e,o.length-1)]}catch(n){console.error("Failed to delete photo:",n),this.toast.show("Failed to delete photo: "+n.message)}}}),null,"deletePhotoTask",null);static{Op(ig({id:null,block:'[[[41,[30,0,["isTesting"]],[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhoto","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon","@openZap","@closeZap","@zapModalOpen","@canZapPhoto"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhoto"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]],[30,0,["openZap"]],[30,0,["closeZap"]],[30,0,["zapModalOpen"]],[30,0,["canZapPhoto"]]]],null],[1,"\\n"]],[]],[[[40,[[[1," "],[8,[32,0],null,[["@handleBackgroundClick","@bindKeyboard","@handleKeydown","@copyEventId","@canDeletePhoto","@deletePhoto","@handleClose","@photos","@currentPhoto","@handleVisiblePhotoChange","@placeName","@selectPhoto","@uploaderName","@photoDate","@triggerIcon","@openZap","@closeZap","@zapModalOpen","@canZapPhoto"],[[30,0,["handleBackgroundClick"]],[30,0,["bindKeyboard"]],[30,0,["handleKeydown"]],[30,0,["copyEventId"]],[30,0,["canDeletePhoto"]],[30,0,["deletePhoto"]],[30,0,["handleClose"]],[30,1],[30,0,["currentPhoto"]],[30,0,["handleVisiblePhotoChange"]],[30,2],[30,0,["selectPhoto"]],[30,0,["uploaderName"]],[30,0,["photoDate"]],[30,0,["triggerIcon"]],[30,0,["openZap"]],[30,0,["closeZap"]],[30,0,["zapModalOpen"]],[30,0,["canZapPhoto"]]]],null],[1,"\\n"]],[]],"%cursor:0%",[28,[31,2],[[30,0,["destinationElement"]]],null]]],[]]]],["@photos","@placeName"],["if","in-element","-in-el-null"]]',moduleName:"(unknown template module)",scope:()=>({GalleryContent:eG}),isStrictMode:!0}),this)}},rG=MV(t=>{let e=null;const n=document.getElementById("modal-portal")||document.body,r=()=>{const r=t.getAttribute("aria-description");if(!r||e)return;e=document.createElement("div"),e.className="tooltip",e.setAttribute("role","tooltip"),e.textContent=r,n.appendChild(e);const i=t.getBoundingClientRect(),s=e.getBoundingClientRect();let o=i.top-s.height-6;o<6&&(o=i.bottom+6);let a=i.left+i.width/2-s.width/2;a=Math.max(6,Math.min(a,window.innerWidth-s.width-6)),e.style.top=`${o}px`,e.style.left=`${a}px`},i=()=>{e?.remove(),e=null};return t.addEventListener("mouseenter",r),t.addEventListener("mouseleave",i),t.addEventListener("focus",r),t.addEventListener("blur",i),()=>{t.removeEventListener("mouseenter",r),t.removeEventListener("mouseleave",i),t.removeEventListener("focus",r),t.removeEventListener("blur",i),i()}}),iG=class extends Yq{get payment(){return H$(this.args.tags)}get methods(){const t=[];if(null!==this.payment.cash){const e="denied"===this.payment.cash;t.push({id:"cash",isDenied:e,icon:"banknote",color:"currentColor",description:e?"No cash":"Cash accepted",hasBadge:!1})}if(null!==this.payment.cards){const e="denied"===this.payment.cards;t.push({id:"cards",isDenied:e,icon:"payment-card",color:"currentColor",description:e?"No cards":"Cards accepted",hasBadge:!1})}if(null!==this.payment.bitcoin.status){const e="denied"===this.payment.bitcoin.status;let n="No Bitcoin";e||(n=this.payment.bitcoin.lightning?"Bitcoin (Lightning) accepted":"Bitcoin (On-chain) accepted"),t.push({id:"bitcoin",isDenied:e,icon:"bitcoin",width:17,height:22,color:"currentColor",description:n,hasBadge:!e&&this.payment.bitcoin.lightning})}return t}static{Op(ig({id:null,block:'[[[41,[30,0,["payment","hasPaymentInfo"]],[[[1," "],[10,0],[14,0,"place-payment-methods"],[14,"aria-label","Payment methods"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["methods"]]],null]],null],null,[[[1," "],[11,1],[16,0,[29,["payment-method ",[52,[30,1,["isDenied"]],"is-denied"]]]],[16,"data-test-payment-method",[30,1,["id"]]],[16,"aria-label",[30,1,["description"]]],[16,"aria-description",[30,1,["description"]]],[24,"tabindex","0"],[4,[32,0],null,null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@width","@height","@color"],[[30,1,["icon"]],22,[30,1,["width"]],[30,1,["height"]],[30,1,["color"]]]],null],[1,"\\n"],[41,[30,1,["hasBadge"]],[[[1," "],[10,1],[14,0,"payment-method-badge"],[14,"data-test-payment-badge","lightning"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color","@filled"],["zap",13,"#fff",true]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n"]],[]],null]],["method"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({tooltip:rG,Icon:Qq}),isStrictMode:!0}),this)}},sG=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"isEditing",[Wr],function(){return!1})}#De=void pF(this,"isEditing");static{hF(this.prototype,"showLists",[Wr],function(){return!1})}#je=void pF(this,"showLists");static{hF(this.prototype,"isPhotoUploadActive",[Wr],function(){return!1})}#Ue=void pF(this,"isPhotoUploadActive");static{hF(this.prototype,"isConnectingNostr",[Wr],function(){return!1})}#Be=void pF(this,"isConnectingNostr");static{hF(this.prototype,"isGalleryOpen",[Wr],function(){return!1})}#$e=void pF(this,"isGalleryOpen");static{hF(this.prototype,"selectedGalleryPhoto",[Wr],function(){return null})}#qe=void pF(this,"selectedGalleryPhoto");static{hF(this.prototype,"isPhotoUploadModalOpen",[Wr],function(){return!1})}#Ve=void pF(this,"isPhotoUploadModalOpen");static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");static{hF(this.prototype,"newlyUploadedPhotoId",[Wr],function(){return null})}#We=void pF(this,"newlyUploadedPhotoId");handleUploadStateChange(t){this.isPhotoUploadActive=t}static{dF(this.prototype,"handleUploadStateChange",[Vl])}openPhotoUploadModal(t){t&&t.preventDefault(),this.nostrAuth.isConnected?this.isPhotoUploadModalOpen=!0:this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openPhotoUploadModal",[Vl])}closePhotoUploadModal(t){this.isPhotoUploadActive||(this.isPhotoUploadModalOpen=!1,"string"==typeof t&&(this.newlyUploadedPhotoId=t,setTimeout(()=>{const t=document.querySelector(".sidebar-content");t&&(t.scrollTop=0)},50)))}static{dF(this.prototype,"closePhotoUploadModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}onNostrConnected(){this.isNostrConnectModalOpen=!1,this.isPhotoUploadModalOpen=!0}static{dF(this.prototype,"onNostrConnected",[Vl])}get isSaved(){return this.storage.isPlaceSaved(this.place.id||this.place.osmId)}get place(){return this.args.place||{}}get saveablePlace(){return this.place.createdAt?this.place:tq(this.place)}get tags(){return this.place.osmTags||{}}get name(){return this.place.title||JB(this.tags)||"Unnamed Place"}get photos(){return sB(this.nostrData.placePhotos).map(t=>({...t,style:qv(`--slide-ratio: ${t.aspectRatio};`)}))}get hasUntrustedContent(){return this.nostrData.untrustedContentCount>0&&!this.nostrData.showUntrustedContent}get hasMultipleUntrusted(){return this.nostrData.untrustedContentCount>1}startEditing(){this.isSaved&&(this.isEditing=!0)}static{dF(this.prototype,"startEditing",[Vl])}cancelEditing(){this.isEditing=!1}static{dF(this.prototype,"cancelEditing",[Vl])}toggleLists(t){t&&t.stopPropagation(),this.showLists=!this.showLists}static{dF(this.prototype,"toggleLists",[Vl])}closeLists(){this.showLists=!1}static{dF(this.prototype,"closeLists",[Vl])}async saveChanges(t){this.args.onSave&&await this.args.onSave({...this.place,...t}),this.isEditing=!1}static{dF(this.prototype,"saveChanges",[Vl])}get type(){return t$(this.tags)}get address(){const t=this.tags,e=[],n=(...e)=>{for(const n of e)if(t[n])return t[n];return null};let r=n("addr:street","street");const i=n("addr:housenumber","housenumber");r&&(i&&(r=`${r} ${i}`),e.push(r));let s=n("addr:city","city");const o=n("addr:postcode","postcode");s&&(o&&(s=`${o} ${s}`),e.push(s));const a=n("addr:state","state"),l=n("addr:country","country");return a&&a!==s&&e.push(a),l&&e.push(l),0===e.length?null:e.join(", ")}formatMultiLine(t,e){if(!t)return null;const n=[...new Set(t.split(";").map(t=>t.trim()).filter(Boolean))];return 0===n.length?null:qv("phone"===e?n.map(t=>`${t}`).join("
"):"email"===e?n.map(t=>`${t}`).join("
"):"whatsapp"===e?n.map(t=>`${t}`).join("
"):"url"===e?n.map(t=>`${this.getDomain(t)}`).join("
"):n.join("
"))}get phone(){const t=[this.tags.phone,this.tags["contact:phone"],this.tags.mobile,this.tags["contact:mobile"]].filter(Boolean);return 0===t.length?null:this.formatMultiLine(t.join(";"),"phone")}get whatsapp(){const t=[this.tags.whatsapp,this.tags["contact:whatsapp"]].filter(Boolean);return 0===t.length?null:this.formatMultiLine(t.join(";"),"whatsapp")}get email(){const t=this.tags.email||this.tags["contact:email"];return this.formatMultiLine(t,"email")}get website(){const t=this.place.url||this.tags.website||this.tags["contact:website"];return this.formatMultiLine(t,"url")}getDomain(t){try{return new URL(t).hostname}catch{return t}}get openingHours(){const t=this.tags.opening_hours;return this.formatMultiLine(t)}get cuisine(){return this.tags.cuisine?this.tags.cuisine.split(";").map(t=>ZB(t)).join(", "):null}get facebook(){return rq(this.tags,"facebook")}get instagram(){return rq(this.tags,"instagram")}get wikipedia(){const t=this.tags.wikipedia;return t?t.split(";").map(t=>t.trim()).filter(Boolean)[0]:null}get geoLink(){const t=this.place.lat,e=this.place.lon;return t&&e?`geo:${t},${e}?q=${t},${e}(${encodeURIComponent(this.name)})`:"#"}get visibleGeoLink(){const t=this.place.lat,e=this.place.lon;return t&&e?`${Number(t).toFixed(6)}, ${Number(e).toFixed(6)}`:""}get osmUrl(){const t=this.place.osmId;if(t)return`https://www.openstreetmap.org/${this.place.osmType||"node"}/${t}`;const e=this.place.lat,n=this.place.lon;if(!e||!n)return null;const r=this.mapUi.currentCenter?.lat??e,i=this.mapUi.currentCenter?.lon??n,s=this.mapUi.currentZoom??17,o=Math.round(s);return`https://www.openstreetmap.org/search?lat=${e}&lon=${n}&zoom=${o}#map=${o}/${Number(r).toFixed(5)}/${Number(i).toFixed(5)}`}get gmapsUrl(){return this.place.gmapsId||this.place.osmId?`https://www.google.com/maps/search/?api=1&query=${this.name}&query=${this.place.lat},${this.place.lon}`:null}get showDescription(){return"photon"!==this.place.source&&!!this.place.description}openGallery(t){this.selectedGalleryPhoto=t,this.isGalleryOpen=!0}static{dF(this.prototype,"openGallery",[Vl])}closeGallery(){this.isGalleryOpen=!1,this.selectedGalleryPhoto=null}static{dF(this.prototype,"closeGallery",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"place-details"],[12],[1,"\\n"],[41,[30,0,["isEditing"]],[[[1," "],[8,[32,0],null,[["@place","@onSave","@onCancel"],[[30,0,["place"]],[30,0,["saveChanges"]],[30,0,["cancelEditing"]]]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@variant","@photos","@name","@resetKey","@scrollToEventId","@onPhotoClick"],["inline",[30,0,["photos"]],[30,0,["name"]],[30,0,["place","osmId"]],[30,0,["newlyUploadedPhotoId"]],[30,0,["openGallery"]]]],null],[1,"\\n "],[10,"h3"],[12],[1,[30,0,["name"]]],[13],[1,"\\n "],[10,2],[14,0,"place-type"],[12],[1,"\\n "],[1,[30,0,["type"]]],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["showDescription"]],[[[1," "],[10,2],[14,0,"place-description"],[12],[1,"\\n "],[1,[30,0,["place","description"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[]]],[1,"\\n "],[10,0],[14,0,"actions"],[12],[1,"\\n "],[10,0],[14,0,"save-button-wrapper"],[12],[1,"\\n "],[11,"button"],[16,0,[52,[30,0,["isSaved"]],"btn btn-secondary","btn btn-outline"]],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleLists"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["bookmark",[52,[30,0,["isSaved"]],"currentColor","var(--link-color)"]]],null],[1,"\\n "],[1,[52,[30,0,["isSaved"]],"Saved","Save"]],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showLists"]],[[[1," "],[8,[32,4],null,[["@place","@onClose","@isSaved"],[[30,0,["saveablePlace"]],[30,0,["closeLists"]],[30,0,["isSaved"]]]],null],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isSaved"]],[[[1," "],[11,"button"],[24,0,"btn btn-outline"],[24,"title","Edit"],[16,"disabled",[30,0,["isEditing"]]],[24,4,"button"],[4,[32,2],["click",[30,0,["startEditing"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@color"],["edit","var(--link-color)"]],null],[1,"\\n Edit\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[8,[32,5],null,[["@tags"],[[30,0,["tags"]]]],null],[1,"\\n\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["cuisine"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["fork-and-knife","Cuisine"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["cuisine"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["openingHours"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["clock","Opening hours"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["openingHours"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["phone"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["phone","Phone"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["phone"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["whatsapp"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["whatsapp","WhatsApp"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["whatsapp"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["website"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["globe","Website"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["website"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["email"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["mail","Email"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[1,[30,0,["email"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["facebook"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["facebook","Facebook"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["facebook","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["facebook","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["instagram"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["instagram","Instagram"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["instagram","url"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["instagram","username"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["wikipedia"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["wikipedia","Wikipedia"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[29,["https://wikipedia.org/wiki/",[30,0,["wikipedia"]]]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Wikipedia\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"meta-info"],[12],[1,"\\n\\n"],[41,[30,0,["address"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["home","Address"]],null],[1,"\\n "],[10,1],[12],[1,[30,0,["address"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@title"],["map-pin","Geo link"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["geoLink"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n "],[1,[30,0,["visibleGeoLink"]]],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["osmUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["osmUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n OpenStreetMap\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["gmapsUrl"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["map"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[10,3],[15,6,[30,0,["gmapsUrl"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[1,"\\n Google Maps\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["place","osmId"]],[[[1," "],[10,0],[14,0,"meta-info"],[12],[1,"\\n "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["feather-camera"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[11,"button"],[24,0,"btn-link"],[24,4,"button"],[4,[32,2],["click",[30,0,["openPhotoUploadModal"]]],null],[12],[1,"\\n Add a photo\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasUntrustedContent"]],[[[1," "],[10,2],[14,0,"content-with-icon"],[12],[1,"\\n "],[8,[32,3],null,[["@name"],["shield"]],null],[1,"\\n "],[10,1],[12],[1,"\\n "],[11,"button"],[24,0,"btn-link"],[24,4,"button"],[4,[32,2],["click",[30,0,["nostrData","toggleShowUntrustedContent"]]],null],[12],[1,"\\n Show\\n "],[1,[30,0,["nostrData","untrustedContentCount"]]],[1,"\\n hidden photo"],[1,[52,[30,0,["hasMultipleUntrusted"]],"s",""]],[1,"\\n (untrusted relays)\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n"]],[]],null],[13],[1,"\\n\\n"],[41,[30,0,["isPhotoUploadModalOpen"]],[[[1," "],[8,[32,6],null,[["@onClose","@disableClose"],[[30,0,["closePhotoUploadModal"]],[30,0,["isPhotoUploadActive"]]]],[["default"],[[[[1,"\\n "],[8,[32,7],null,[["@place","@onClose","@onUploadStateChange"],[[30,0,["saveablePlace"]],[30,0,["closePhotoUploadModal"]],[30,0,["handleUploadStateChange"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,6],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,8],null,[["@onConnect"],[[30,0,["onNostrConnected"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null],[1,"\\n"],[41,[30,0,["isGalleryOpen"]],[[[1," "],[8,[32,9],null,[["@photos","@selectedPhoto","@placeName","@onClose"],[[30,0,["photos"]],[30,0,["selectedGalleryPhoto"]],[30,0,["name"]],[30,0,["closeGallery"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlaceEditForm:BH,PhotoCarousel:YH,on:Hw,Icon:Qq,PlaceListsManager:qH,PlacePaymentMethods:iG,Modal:SV,PlacePhotoUpload:ZH,NostrConnect:cW,PhotoGallery:nG}),isStrictMode:!0}),this)}},oG=Eb(function([t]){return ZB(t)}),aG=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");createNewPlace(){const t=this.router.currentRoute.queryParams,e=t.lat,n=t.lon;e&&n?this.router.transitionTo("place.new",{queryParams:{lat:e,lon:n}}):this.router.transitionTo("place.new",{queryParams:{lat:0,lon:0}})}static{dF(this.prototype,"createNewPlace",[Vl])}selectPlace(t){this.args.onSelect&&this.args.onSelect(t)}static{dF(this.prototype,"selectPlace",[Vl])}clearSelection(){this.args.onSelect&&this.args.onSelect(null)}static{dF(this.prototype,"clearSelection",[Vl])}async toggleSave(t){if(t)if(t.createdAt)try{if(await this.storage.removePlace(t),console.debug("Place deleted:",t.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate){const e={...t,id:void 0,geohash:void 0,createdAt:void 0};this.args.onUpdate(e)}this.args.onSelect&&this.args.onSelect(null),this.args.onClose&&this.args.onClose()}catch(e){console.error("Failed to delete:",e),alert("Failed to delete: "+e.message)}else{const e={title:JB(t.osmTags,"Untitled Place"),lat:t.lat,lon:t.lon,tags:[],url:t.osmTags.website,osmId:String(t.osmId||t.id),osmType:t.osmType,osmTags:t.osmTags};try{const t=await this.storage.storePlace(e);console.debug("Place saved:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(t),this.args.onSelect&&this.args.onSelect(t)}catch(s7){console.error("Failed to save place:",s7),alert("Failed to save place: "+s7.message)}}}static{dF(this.prototype,"toggleSave",[Vl])}async updateBookmark(t){try{const e=await this.storage.updatePlace(t);console.debug("Place updated:",e.title),this.args.onBookmarkChange&&this.args.onBookmarkChange(),this.args.onUpdate&&this.args.onUpdate(e)}catch(e){console.error("Failed to update place:",e),alert("Failed to update place: "+e.message)}}static{dF(this.prototype,"updateBookmark",[Vl])}get isNearbySearch(){const t=this.router.currentRoute.queryParams;return!t.q&&!t.category&&t.lat&&t.lon}get hasHeaderPhoto(){return this.args.selectedPlace&&this.nostrData.placePhotos&&this.nostrData.placePhotos.length>0}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[15,0,[29,["sidebar-header\\n ",[52,[30,0,["hasHeaderPhoto"]],"no-border"],"\\n ",[52,[28,[32,0],[[28,[32,1],[[30,1]],null],[30,2]],null],"has-back-btn"]]]],[12],[1,"\\n"],[41,[30,1],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,0,["clearSelection"]]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],[[[41,[30,2],[[[1," "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[13],[1,"\\n"]],[]],null],[41,[30,2],[[[1," "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["bookmark",20,[28,[32,4],[[30,3],"#898989"],null]]],null],[1,"\\n "],[13],[1,"\\n "],[1,[30,4]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["target",20,"#ea4335"]],null],[1,"\\n Nearby"],[13],[1,"\\n"]],[]],[[[1," "],[10,"h2"],[12],[8,[32,3],null,[["@name","@size","@color"],["search",20,"#333"]],null],[1,"\\n Results"],[13],[1,"\\n"]],[]]]],[]]]],[]]],[1," "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,5]],null],[12],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[11,0],[24,0,"sidebar-content"],[4,[32,5],[[30,6]],null],[12],[1,"\\n"],[41,[30,1],[[[1," "],[8,[32,6],null,[["@place","@onToggleSave","@onSave"],[[30,1],[30,0,["toggleSave"]],[30,0,["updateBookmark"]]]],null],[1,"\\n"]],[]],[[[41,[30,7],[[[1," "],[10,0],[14,0,"sidebar-loading"],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["loading-ring",24,"#898989"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],[[[41,[30,8],[[[1," "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,8]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"place-item"],[24,4,"button"],[4,[32,2],["click",[28,[32,7],[[30,0,["selectPlace"]],[30,9]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"place-name"],[12],[1,[28,[32,4],[[30,9,["title"]],[30,9,["osmTags","name"]],[30,9,["osmTags","name:en"]],"Unnamed Place"],null]],[13],[1,"\\n "],[10,0],[14,0,"place-type"],[12],[1,"\\n"],[41,[28,[32,8],[[30,9,["source"]],"osm"],null],[[[1," "],[1,[28,[32,9],[[30,9,["type"]]],null]],[1,"\\n"]],[]],[[[41,[28,[32,8],[[30,9,["source"]],"photon"],null],[[[1," "],[1,[30,9,["description"]]],[1,"\\n"]],[]],[[[41,[28,[32,10],[[30,9,["osmTags"]]],null],[[[1," "],[1,[28,[32,10],[[30,9,["osmTags"]]],null]],[1,"\\n"]],[]],[[[1," Saved place\\n "]],[]]]],[]]]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[9]],null],[1," "],[13],[1,"\\n"]],[]],[[[41,[30,0,["isNearbySearch"]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No places found nearby."],[13],[1,"\\n"]],[]],[[[1," "],[10,2],[14,0,"empty-state"],[12],[1,"No results found."],[13],[1,"\\n"]],[]]]],[]]],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline create-place"],[24,4,"button"],[4,[32,2],["click",[30,0,["createNewPlace"]]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["plus",18,"var(--link-color)"]],null],[1,"\\n Create new place\\n "],[13],[1,"\\n"]],[]]]],[]]],[1," "],[13],[1,"\\n"],[13]],["@selectedPlace","@onBack","@color","@title","@onClose","@scrollTop","@isLoading","@places","place"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:RV,not:LV,on:Hw,Icon:Qq,or:TV,restoreScroll:uW,PlaceDetails:sG,fn:mV,eq:vV,humanizeOsmTag:oG,getPlaceType:t$}),isStrictMode:!0}),this)}},lG=a({default:()=>cG}),cG=Op(ig({id:null,block:'[[[41,[30,1,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@title","@color","@scrollTop","@isLoading","@onSelect","@onClose","@onBack"],[[30,1,["places"]],[30,1,["listTitle"]],[30,1,["listColor"]],[30,1,["scrollTop"]],[30,1,["loadPlacesTask","isRunning"]],[30,1,["selectPlace"]],[30,1,["close"]],[30,1,["backToLists"]]]],null],[1,"\\n"]],[]],null]],["@controller"],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:aG}),isStrictMode:!0}),bV()),uG=a({default:()=>mG});function hG(t){const e=t.createdAt;if(!e)return 0;if("number"==typeof e)return e;const n=Date.parse(e);return isNaN(n)?0:n}var dG,pG,fG,gG="saved",mG=class extends eu{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"model",[Wr])}#He=void pF(this,"model");static{hF(this.prototype,"loadedPlaces",[Wr],function(){return[]})}#Ge=void pF(this,"loadedPlaces");get listId(){return this.model?.list_id}loadPlacesTask=kH(()=>({context:this,generator:function*(t){this.loadedPlaces=[];try{this.loadedPlaces=yield this.storage.getPlacesInList(t)}catch(e){console.error("Failed to load places in list",t,e),this.loadedPlaces=[]}}}),{restartable:!0},"loadPlacesTask",null);get scrollTop(){return this.mapUi.getScrollPosition(`list-${this.listId}`)}get listColor(){if(this.listId===gG)return getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim();const t=this.storage.lists.find(t=>t.id===this.listId);return t&&t.color?t.color:getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()}get listTitle(){if(this.listId===gG)return"Saved Places";const t=this.storage.lists.find(t=>t.id===this.listId);return t?t.title:"Collections"}get places(){if(this.listId===gG)return[...this.storage.savedPlaces].sort((t,e)=>hG(e)-hG(t));const t=this.storage.lists.find(t=>t.id===this.listId),e=new Set(t?.placeRefs?.map(t=>t.id)||[]),n=this.storage.savedPlaces.filter(t=>e.has(t.id)),r=[],i=new Set;return n.forEach(t=>{r.push(t),i.add(t.id)}),this.loadedPlaces.forEach(t=>{e.has(t.id)&&!i.has(t.id)&&(r.push(t),i.add(t.id))}),r.sort((t,e)=>hG(e)-hG(t))}selectPlace(t){if(t){const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition(`list-${this.listId}`,e.scrollTop),this.mapUi.returnToRoute={name:"lists.list",model:this.listId},this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",t)}}static{dF(this.prototype,"selectPlace",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}backToLists(){this.router.transitionTo("lists.index")}static{dF(this.prototype,"backToLists",[Vl])}},yG=a({default:()=>vG}),vG=class extends Qh{model(t){return{list_id:t.list_id}}setupController(t,e){t.model=e,super.setupController(t,e),"saved"!==e.list_id&&(t&&t.loadPlacesTask?t.loadPlacesTask.perform(e.list_id):console.error("controller.loadPlacesTask is undefined"))}},bG=a({default:()=>wG}),wG=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");savedList={id:"saved",title:"Saved",color:"var(--default-list-color)"};styleFor(t){const e=t||getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim();return qv(`background-color: ${e}`)}selectList(t){this.router.transitionTo("lists.list",t)}static{dF(this.prototype,"selectList",[Vl])}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}backToMenu(){this.router.transitionTo("menu")}static{dF(this.prototype,"backToMenu",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["backToMenu"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"\\n "],[10,1],[14,0,"sidebar-header-icon-wrapper"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["bookmark",20,"#898989"]],null],[1,"\\n "],[13],[1,"\\n Saved Places\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,0,["close"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"places-list"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"lists-index-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,0,["selectList"]],[30,0,["savedList","id"]]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"lists-index-item-left"],[12],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,0,["savedList","color"]]],null]],[12],[13],[1,"\\n "],[10,0],[14,0,"lists-index-name"],[12],[1,[30,0,["savedList","title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"lists-index-count"],[12],[1,"\\n"],[41,[30,0,["storage","savedPlaces","length"]],[[[1," "],[1,[30,0,["storage","savedPlaces","length"]]],[1,"\\n places\\n"]],[]],[[[1," empty\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["storage","lists"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"lists-index-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,2],[[30,0,["selectList"]],[30,1,["id"]]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"lists-index-item-left"],[12],[1,"\\n"],[1," "],[10,1],[14,0,"list-color-dot"],[15,5,[28,[30,0,["styleFor"]],[[30,1,["color"]]],null]],[12],[13],[1,"\\n "],[10,0],[14,0,"lists-index-name"],[12],[1,[30,1,["title"]]],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"lists-index-count"],[12],[1,"\\n"],[41,[30,1,["placeRefs","length"]],[[[1," "],[1,[30,1,["placeRefs","length"]]],[1,"\\n places\\n"]],[]],[[[1," empty\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],["list"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq,fn:mV}),isStrictMode:!0}),this)}},_G=a({default:()=>xG}),xG=class extends Qh{},CG=a({default:()=>kG}),kG=class extends Yq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");selectPlace(t){if(t){const e=document.querySelector(".sidebar-content");e&&this.mapUi.saveScrollPosition("search",e.scrollTop),this.mapUi.returnToSearch=!0,this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!0,this.router.transitionTo("place",t)}}static{dF(this.prototype,"selectPlace",[Vl])}close(){this.mapUi.hideSidebar()}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@places","@scrollTop","@onSelect","@onClose"],[[30,0,["mapUi","searchResults"]],[28,[30,0,["mapUi","getScrollPosition"]],["search"],null],[30,0,["selectPlace"]],[30,0,["close"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:aG}),isStrictMode:!0}),this)}},SG=a({default:()=>EG}),EG=class extends eu{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"photon",[pp])}#Ze=void pF(this,"photon");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");queryParams=["lat","lon","q","selected","category"];lat=null;lon=null;q=null;selected=null;category=null;fetchResultsTask=kH(()=>({context:this,generator:function*(t){const e=this.mapUi.currentSearch&&t.q===this.mapUi.currentSearch.q&&t.category===this.mapUi.currentSearch.category&&t.lat===this.mapUi.currentSearch.lat&&t.lon===this.mapUi.currentSearch.lon,n=this.mapUi.searchResults&&this.mapUi.searchResults.length>0;if(e&&n)return void(this.mapUi.isSidebarVisible&&this.mapUi.showSidebar());this.mapUi.hideSidebar(),this.mapUi.clearSearchResults();const r=t.lat?parseFloat(t.lat):null,i=t.lon?parseFloat(t.lon):null;let s=[],o=null,a=null;try{if(t.category&&r&&i){o="category",a=t.category,this.mapUi.startLoading(o,a);let e=this.mapUi.currentBounds;if(!e){const t=.01;e={minLat:r-t,maxLat:r+t,minLon:i-t,maxLon:i+t}}s=yield this.osm.getCategoryPois(e,t.category,r,i),s=s.map(t=>({...t,_distance:M$(r,i,t.lat,t.lon)})).sort((t,e)=>t._distance-e._distance)}else if(t.q){o="text",a=t.q,this.mapUi.startLoading(o,a),s=yield this.photon.search(t.q,r,i);const e=t.q.toLowerCase();let n=[];e.length>=3&&(n=this.storage.savedPlaces.filter(t=>t.title?.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e))),n.forEach(t=>{s.find(e=>t.osmId&&e.osmId===t.osmId||e.id&&e.id===t.id)||s.push(t)})}else if(r&&i){const t=50;s=yield this.osm.getNearbyPois(r,i,t),this.storage.savedPlaces.filter(e=>M$(r,i,e.lat,e.lon)<=t).forEach(t=>{s.find(e=>t.osmId&&e.osmId===t.osmId||e.id&&e.id===t.id)||s.push(t)}),s=s.map(t=>({...t,_distance:M$(r,i,t.lat,t.lon)})).sort((t,e)=>t._distance-e._distance)}}catch(s7){return console.error("Search request failed.",s7),this.toast.show("Search request failed. Please try again."),void this.mapUi.stopSearch()}finally{o&&a&&this.mapUi.stopLoading(o,a)}s=s.map(t=>this.storage.findPlaceById(t.osmId)||t);const l=t.selected||t.q;if(l&&s.length>0){let t=s.find(t=>t.osmTags&&(t.osmTags.name===l||t.osmTags["name:en"]===l));if(!t){const e=s[0];e._distance<=10&&(t=e)}if(t)return this.router.replaceWith("place",t),void this.mapUi.stopSearch()}this.mapUi.setSearchResults(s),this.mapUi.showSidebar(),this.mapUi.stopSearch()}}),{restartable:!0},"fetchResultsTask",null)},RG=a({default:()=>LG}),LG=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0},q:{refreshModel:!0},selected:{refreshModel:!0},category:{refreshModel:!0}};model(t){return t}setupController(t,e){super.setupController(t,e),t.fetchResultsTask.perform(e);const{q:n,category:r,lat:i,lon:s}=this.paramsFor("search");this.mapUi.currentSearch={q:n,category:r,lat:i,lon:s}}resetController(t,e){e&&(t.fetchResultsTask.cancelAll(),this.mapUi.stopSearch())}error(t,e){return this.mapUi.stopSearch(),this.toast.show("Search request failed. Please try again."),e&&e.abort(),!1}static{dF(this.prototype,"error",[Vl])}},TG=a({cacheFor:()=>tr,guidFor:()=>ll}),PG=(dG=pp("page-title"),fG=xq((pG=class extends _b{constructor(t){super(t),_q(this,"tokens",fG,this),wq(this,"tokenId",ll(this)),this.tokens.push({id:this.tokenId})}compute(t,e){const n={...e,id:this.tokenId,title:t.join("")};return this.tokens.push(n),this.tokens.scheduleTitleUpdate(),""}willDestroy(){super.willDestroy(),this.tokens.remove(this.tokenId),this.tokens.scheduleTitleUpdate()}}).prototype,"tokens",[dG],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),pG),IG="add",MG="remove",AG="propertychange";function OG(t){for(const e in t)delete t[e]}function NG(t){let e;for(e in t)return!1;return!e}function zG(t,e,n,r,i){if(i){const i=n;n=function(s){return t.removeEventListener(e,n),i.call(r??this,s)}}else r&&r!==t&&(n=n.bind(r));const s={target:t,type:e,listener:n};return t.addEventListener(e,n),s}function FG(t,e,n,r){return zG(t,e,n,r,!0)}function DG(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),OG(t))}var jG="change",UG="contextmenu",BG="click",$G="keydown",qG="keypress",VG="touchmove",WG="wheel",HG=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function GG(t,e){return t>e?1:te?-1:0}function KG(t,e,n){if(t[0]<=e)return 0;const r=t.length;if(e<=t[r-1])return r-1;if("function"==typeof n){for(let i=1;i0?i-1:i}return r-1}if(n>0){for(let n=1;n0)}removeEventListener(t,e){if(!this.listeners_)return;const n=this.listeners_[t];if(!n)return;const r=n.indexOf(e);-1!==r&&(this.pendingRemovals_&&t in this.pendingRemovals_?(n[r]=eZ,++this.pendingRemovals_[t]):(n.splice(r,1),0===n.length&&delete this.listeners_[t]))}},oZ=class extends sZ{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(jG)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const n=t.length,r=new Array(n);for(let i=0;i0;)this.pop()}extend(t){for(let e=0,n=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new pZ(IG,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let n=0,r=e.length;n=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new pZ(MG,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const n=this.array_[t];this.array_[t]=e,this.dispatchEvent(new pZ(MG,n,t)),this.dispatchEvent(new pZ(IG,e,t))}updateLength_(){this.set(dZ,this.array_.length)}assertUnique_(t,e){const n=this.array_;for(let r=0,i=n.length;r{this.clickTimeoutId_=void 0;const e=new mZ(yZ.SINGLECLICK,this.map_,t);this.dispatchEvent(e)},250)}updateActivePointers_(t){const e=t,n=e.pointerId;if(e.type==yZ.POINTERUP||e.type==yZ.POINTERCANCEL){delete this.trackedTouches_[n];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=yZ.POINTERDOWN&&e.type!=yZ.POINTERMOVE||(this.trackedTouches_[n]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new mZ(yZ.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(DG),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new mZ(yZ.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(zG(t,yZ.POINTERMOVE,this.handlePointerMove_,this),zG(t,yZ.POINTERUP,this.handlePointerUp_,this),zG(this.element_,yZ.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(zG(this.element_.getRootNode(),yZ.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new mZ(yZ.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new mZ(yZ.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(DG(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(VG,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(DG(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(DG),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},LZ="postrender",TZ="loadstart",PZ="loadend",IZ="layergroup",MZ="size",AZ="target",OZ="view";function NZ(t,e){if(!t)throw new Error(e)}var zZ=1/0,FZ=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,OG(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,n=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(t){NZ(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,n=this.priorities_,r=e.length,i=e[t],s=n[t],o=t;for(;t>1;){const i=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(r[t]>s))break;n[e]=n[t],r[e]=r[t],e=t}n[e]=i,r[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,n=this.priorities_;let r=0;const i=e.length;let s,o,a;for(o=0;ot.apply(null,e),t=>t[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=e,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(t){const e=super.enqueue(t);return e&&t[0].addEventListener(jG,this.boundHandleTileChange_),e}getTilesLoading(){return this.tilesLoading_}handleTileChange(t){const e=t.target,n=e.getState();if(2===n||3===n||4===n){3!==n&&e.removeEventListener(jG,this.boundHandleTileChange_);const t=e.getKey();t in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[t],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(t,e){let n=0;for(;this.tilesLoading_0;){const t=this.dequeue()[0],e=t.getKey();0!==t.getState()||e in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[e]=!0,++this.tilesLoading_,++n,t.load())}}},jZ={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function UZ(t,e,n){return Math.min(Math.max(t,e),n)}function BZ(t,e,n,r,i,s){const o=i-n,a=s-r;if(0!==o||0!==a){const l=((t-n)*o+(e-r)*a)/(o*o+a*a);l>1?(n=i,r=s):l>0&&(n+=o*l,r+=a*l)}return $Z(t,e,n,r)}function $Z(t,e,n,r){const i=n-t,s=r-e;return i*i+s*s}function qZ(t){return 180*t/Math.PI}function VZ(t){return t*Math.PI/180}function WZ(t,e){const n=t%e;return n*e<0?n+e:n}function HZ(t,e,n){return t+n*(e-t)}function GZ(t,e){const n=Math.pow(10,e);return Math.round(t*n)/n}function ZZ(t,e){return Math.floor(GZ(t,e))}function KZ(t,e){return Math.ceil(GZ(t,e))}function YZ(t,e,n){if(t>=e&&tp&&(d=(p+d)/2,p=d),f>g&&(f=(g+f)/2,g=f);let m=UZ(r[0],d,p),y=UZ(r[1],f,g);if(o&&n&&i){const t=30*i;m+=-t*Math.log(1+Math.max(0,d-r[0])/t)+t*Math.log(1+Math.max(0,r[0]-p)/t),y+=-t*Math.log(1+Math.max(0,f-r[1])/t)+t*Math.log(1+Math.max(0,r[1]-g)/t)}return[m,y]}}function JZ(t){return t}function QZ(t){const e=[1/0,1/0,-1/0,-1/0];for(let n=0,r=t.length;ni&&(l|=4),as&&(l|=2),0===l&&(l=1),l}function aK(t,e,n,r,i){return i?(i[0]=t,i[1]=e,i[2]=n,i[3]=r,i):[t,e,n,r]}function lK(t){return aK(1/0,1/0,-1/0,-1/0,t)}function cK(t,e){const n=t[0],r=t[1];return aK(n,r,n,r,e)}function uK(t,e,n,r,i){return fK(lK(i),t,e,n,r)}function hK(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function dK(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function pK(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function fK(t,e,n,r,i){for(;ne[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]n&&u.push([n,r,o,s]),lr&&u.push([o,r,l,a]),c=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function IK(t){return t[2]1){const e=t[2]-t[0],n=t[3]-t[1];for(let s=0;s=n[2])){const e=TK(n),i=Math.floor((r[0]-n[0])/e)*e;t[0]-=i,t[2]-=i}return t}function OK(t,e,n){if(e.canWrapX()){const r=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[r[0],t[1],r[2],t[3]]];AK(t,e);const i=TK(r);if(TK(t)>i&&!n)return[[r[0],t[1],r[2],t[3]]];if(t[0]r[2])return[[t[0],t[1],r[2],t[3]],[r[0],t[1],t[2]-i,t[3]]]}return[t]}function NK(t,e){let n=[t];for(let r=0,i=e.length;r0;++r){const t=[];for(let i=0,s=n.length;i=0;--r)if(t[r]!=e[r]){n=!1;break}return n}function FK(t,e){const n=Math.cos(e),r=Math.sin(e),i=t[0]*n-t[1]*r,s=t[1]*n+t[0]*r;return t[0]=i,t[1]=s,t}function DK(t,e){if(e.canWrapX()){const n=TK(e.getExtent()),r=function(t,e,n){const r=e.getExtent();let i=0;return e.canWrapX()&&(t[0]r[2])&&(n=n||TK(r),i=Math.floor((t[0]-r[0])/n)),i}(t,e,n);r&&(t[0]-=r*n)}return t}function jK(t){return Math.pow(t,3)}function UK(t){return 1-jK(1-t)}function BK(t){return 3*t*t-2*t*t*t}function $K(t){return t}function qK(t,e,n){n=n||6371008.8;const r=VZ(t[1]),i=VZ(e[1]),s=(i-r)/2,o=VZ(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(r)*Math.cos(i);return 2*n*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function VK(t,e,n,r){r=r||6371008.8;const i=VZ(t[1]),s=VZ(t[0]),o=e/r,a=Math.asin(Math.sin(i)*Math.cos(o)+Math.cos(i)*Math.sin(o)*Math.cos(n));return[qZ(s+Math.atan2(Math.sin(n)*Math.sin(o)*Math.cos(i),Math.cos(o)-Math.sin(i)*Math.sin(a))),qZ(a)]}function WK(...t){console.warn(...t)}var HK={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937},GK=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||HK[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}},ZK=6378137,KK=Math.PI*ZK,YK=[-KK,-KK,KK,KK],XK=[-180,-85,180,85],JK=ZK*Math.log(Math.tan(Math.PI/2)),QK=class extends GK{constructor(t){super({code:t,units:"m",extent:YK,global:!0,worldExtent:XK,getPointResolution:function(t,e){return t/Math.cosh(e[1]/ZK)}})}},tY=[new QK("EPSG:3857"),new QK("EPSG:102100"),new QK("EPSG:102113"),new QK("EPSG:900913"),new QK("http://www.opengis.net/def/crs/EPSG/0/3857"),new QK("http://www.opengis.net/gml/srs/epsg.xml#3857")],eY=[-180,-90,180,90],nY=6378137*Math.PI/180,rY=class extends GK{constructor(t,e){super({code:t,units:"degrees",extent:eY,axisOrientation:e,global:!0,metersPerUnit:nY,worldExtent:eY})}},iY=[new rY("CRS:84"),new rY("EPSG:4326","neu"),new rY("urn:ogc:def:crs:OGC:1.3:CRS84"),new rY("urn:ogc:def:crs:OGC:2:84"),new rY("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new rY("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new rY("http://www.opengis.net/def/crs/EPSG/0/4326","neu")],sY={},oY={};function aY(t,e,n){const r=t.getCode(),i=e.getCode();r in oY||(oY[r]={}),oY[r][i]=n}function lY(t,e){return t in oY&&e in oY[t]?oY[t][e]:null}var cY=.9996,uY=.00669438,hY=uY*uY*uY,dY=uY/.99330562,pY=Math.sqrt(.99330562),fY=(1-pY)/(1+pY),gY=fY*fY,mY=gY*fY,yY=mY*fY,vY=yY*fY,bY=.9983242984503243,wY=35*hY/3072,_Y=1.5*fY-27/32*mY+269/512*vY,xY=21/16*gY-55/32*yY,CY=151/96*mY-417/128*vY,kY=1097/512*yY,SY=6378137;function EY(t,e,n){const r=t-5e5,i=(n.north?e:e-1e7)/cY/(SY*bY),s=i+_Y*Math.sin(2*i)+xY*Math.sin(4*i)+CY*Math.sin(6*i)+kY*Math.sin(8*i),o=Math.sin(s),a=o*o,l=Math.cos(s),c=o/l,u=c*c,h=u*u,d=1-uY*a,p=Math.sqrt(1-uY*a),f=dY*l**2,g=f*f,m=r/(SY/p*cY),y=m*m,v=y*m,b=v*m,w=b*m,_=s-c/(.99330562/d)*(y/2-b/24*(5+3*u+10*f-4*g-9*dY))+w*m/720*(61+90*u+298*f+45*h-252*dY-3*g);let x=(m-v/6*(1+2*u+f)+w/120*(5-2*f+28*u-3*g+8*dY+24*h))/l;return x=YZ(x+VZ(LY(n.number)),-Math.PI,Math.PI),[qZ(x),qZ(_)]}function RY(t,e,n){t=YZ(t,-180,180),e<-80?e=-80:e>84&&(e=84);const r=VZ(e),i=Math.sin(r),s=Math.cos(r),o=i/s,a=o*o,l=a*a,c=VZ(t),u=VZ(LY(n.number)),h=SY/Math.sqrt(1-uY*i**2),d=dY*s**2,p=s*YZ(c-u,-Math.PI,Math.PI),f=p*p,g=f*p,m=g*p,y=m*p,v=y*p,b=SY*(bY*r-.002514607064228144*Math.sin(2*r)+26390466021299826e-22*Math.sin(4*r)-wY*Math.sin(6*r)),w=cY*h*(p+g/6*(1-a+d)+y/120*(5-18*a+l+72*d-58*dY))+5e5;let _=cY*(b+h*o*(f/2+m/24*(5-a+9*d+4*d**2)+v/720*(61-58*a+l+600*d-330*dY)));return n.north||(_+=1e7),[w,_]}function LY(t){return 6*(t-1)-180+3}var TY=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function PY(t){let e=0;for(const i of TY){const n=t.match(i);if(n){e=parseInt(n[1]);break}}if(!e)return null;let n=0,r=!1;return e>32700&&e<32761?n=e-32700:e>32600&&e<32661&&(r=!0,n=e-32600),n?{number:n,north:r}:null}function IY(t,e){return function(n,r,i,s){const o=n.length;i=i>1?i:2,s=s??i,r||(r=i>2?n.slice():new Array(o));for(let a=0;a180)&&(n[0]=WZ(r+180,360)-180),n}function ZY(t,e){if(t===e)return!0;const n=t.getUnits()===e.getUnits();return(t.getCode()===e.getCode()||KY(t,e)===jY)&&n}function KY(t,e){const n=t.getCode(),r=e.getCode();let i=lY(n,r);if(i)return i;let s=null,o=null;for(const l of NY)s||(s=l(t)),o||(o=l(e));if(!s&&!o)return null;const a="EPSG:4326";if(o)if(s)i=YY(s.inverse,o.forward);else{const t=lY(n,a);t&&(i=YY(t,o.forward))}else{const t=lY(a,r);t&&(i=YY(s.inverse,t))}return i&&(BY(t),BY(e),aY(t,e,i)),i}function YY(t,e){return function(n,r,i,s){return r=t(n,r,i,s),e(r,r,i,s)}}function XY(t,e){return KY($Y(t),$Y(e))}function JY(t,e,n){const r=XY(e,n);if(!r){const t=$Y(e).getCode(),r=$Y(n).getCode();throw new Error(`No transform available between ${t} and ${r}`)}return r(t,void 0,t.length)}function QY(t,e,n,r){return MK(t,XY(e,n),void 0,r)}function tX(t){return t}function eX(t){return FY&&!zK(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(FY=!1,WK("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t}function nX(t){return t}VY(tY),VY(iY),MY=tY,AY=function(t,e,n,r){const i=t.length;n=n>1?n:2,r=r??n,void 0===e&&(e=n>2?t.slice():new Array(i));for(let s=0;sJK?n=JK:n<-JK&&(n=-JK),e[s+1]=n}return e},OY=function(t,e,n,r){const i=t.length;n=n>1?n:2,r=r??n,void 0===e&&(e=n>2?t.slice():new Array(i));for(let s=0;s{if(!n)return this.getSimplifiedGeometry(e);const r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(e)})}simplifyTransformed(t,e){return this.simplifyTransformedInternal(this.getRevision(),t,e)}clone(){return aZ()}closestPointXY(t,e,n,r){return aZ()}containsXY(t,e){return 0===this.closestPointXY(t,e,vX,Number.MIN_VALUE)}getClosestPoint(t,e){return e=e||[NaN,NaN],this.closestPointXY(t[0],t[1],e,1/0),e}intersectsCoordinate(t){return this.containsXY(t[0],t[1])}computeExtent(t){return aZ()}getExtent(t){if(this.extentRevision_!=this.getRevision()){const t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&lK(t),this.extentRevision_=this.getRevision()}return function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)}rotate(t,e){aZ()}scale(t,e,n){aZ()}simplify(t){return this.getSimplifiedGeometry(t*t)}getSimplifiedGeometry(t){return aZ()}getType(){return aZ()}applyTransform(t){aZ()}intersectsExtent(t){return aZ()}translate(t,e){aZ()}transform(t,e){const n=$Y(t),r="tile-pixels"==n.getUnits()?function(t,r,i){const s=n.getExtent(),o=n.getWorldExtent(),a=kK(o)/kK(s);hX(yX,o[0],o[3],a,-a,0,0,0);const l=gX(t,0,t.length,i,yX,r),c=XY(n,e);return c?c(l,l,i):l}:XY(n,e);return this.applyTransform(r),this}},wX=class extends bX{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(t){return uK(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinates(){return aZ()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=this.getSimplifiedGeometryInternal(t);return e.getFlatCoordinates().length1)h=n;else{if(d>0){for(let i=0;ii&&(i=a),s=n,o=r}return i}function RX(t,e,n,r,i){for(let s=0,o=n.length;ss&&(n-a)*(s-l)-(i-a)*(r-l)>0&&o++:r<=s&&(n-a)*(s-l)-(i-a)*(r-l)<0&&o--,a=n,l=r}return 0!==o}function DX(t,e,n,r,i,s){if(0===n.length)return!1;if(!FX(t,e,n[0],r,i,s))return!1;for(let o=1,a=n.length;o=i[0]&&s[2]<=i[2]||s[1]>=i[1]&&s[3]<=i[3]||jX(t,e,n,r,function(t,e){return function(t,e,n){let r=!1;const i=oK(t,e),s=oK(t,n);if(1===i||1===s)r=!0;else{const o=t[0],a=t[1],l=t[2],c=t[3],u=e[0],h=e[1],d=n[0],p=n[1],f=(p-h)/(d-u);let g,m;2&s&&!(2&i)&&(g=d-(p-c)/f,r=g>=o&&g<=l),r||!(4&s)||4&i||(m=p-(d-l)*f,r=m>=a&&m<=c),r||!(8&s)||8&i||(g=d-(p-a)/f,r=g>=o&&g<=l),r||!(16&s)||16&i||(m=p-(d-o)*f,r=m>=a&&m<=c)}return r}(i,t,e)}))}function BX(t,e,n,r,i){return!!(UX(t,e,n,r,i)||FX(t,e,n,r,i[0],i[1])||FX(t,e,n,r,i[0],i[3])||FX(t,e,n,r,i[2],i[1])||FX(t,e,n,r,i[2],i[3]))}function $X(t,e,n,r,i){if(!BX(t,e,n[0],r,i))return!1;if(1===n.length)return!0;for(let s=1,o=n.length;s0;){const n=c.pop(),s=c.pop();let o=0;const a=t[s],h=t[s+1],d=t[n],p=t[n+1];for(let e=s+r;eo&&(u=e,o=n)}o>i&&(l[(u-e)/r]=1,s+r0&&f>d)&&(p<0&&g0&&g>p)?(a=n,l=h):(s[o++]=a,s[o++]=l,c=a,u=l,a=n,l=h)}return s[o++]=a,s[o++]=l,o}function GX(t,e,n,r,i,s,o,a){for(let l=0,c=n.length;ly&&(c=(u+h)/2,DX(t,e,n,r,c,f)&&(m=c,y=i)),u=h}return isNaN(m)&&(m=i[s]),o?(o.push(m,f,y),o):[m,f,y]}function XX(t,e,n,r,i){let s=[];for(let o=0,a=n.length;o0}function tJ(t,e,n,r,i){i=void 0!==i&&i;for(let s=0,o=n.length;su&&h1&&"function"==typeof arguments[n-1]&&(e=arguments[n-1],--n);let r=0;for(;r0}getInteracting(){return this.hints_[1]>0}cancelAnimations(){let t;this.setHint(0,-this.hints_[0]);for(let e=0,n=this.animations_.length;e=0;--n){const r=this.animations_[n];let i=!0;for(let n=0,s=r.length;n0?o/s.duration:1;a>=1?(s.complete=!0,a=1):i=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],n=s.targetCenter[0],r=s.targetCenter[1];this.nextCenter_=s.targetCenter;const i=t+l*(n-t),o=e+l*(r-e);this.targetCenter_=[i,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),n=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(n,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?WZ(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(i){this.animations_[n]=null,this.setHint(0,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=r[0].callback;t&&pJ(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let n;const r=this.getCenterInternal();var i,s;return void 0!==r&&(n=[r[0]-e[0],r[1]-e[1]],FK(n,t-this.getRotation()),s=e,(i=n)[0]+=+s[0],i[1]+=+s[1]),n}calculateCenterZoom(t,e){let n;const r=this.getCenterInternal(),i=this.getResolution();return void 0!==r&&void 0!==i&&(n=[e[0]-t*(e[0]-r[0])/i,e[1]-t*(e[1]-r[1])/i]),n}getViewportSize_(t){const e=this.viewportSize_;if(t){const n=e[0],r=e[1];return[Math.abs(n*Math.cos(t))+Math.abs(r*Math.sin(t)),Math.abs(n*Math.sin(t))+Math.abs(r*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?tX(t,this.getProjection()):t}getCenterInternal(){return this.get(jZ.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return e=this.calculateExtentInternal(t),this.getProjection(),e;var e}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();NZ(e,"The view center is not defined");const n=this.getResolution();NZ(void 0!==n,"The view resolution is not defined");const r=this.getRotation();return NZ(void 0!==r,"The view rotation is not defined"),xK(e,n,r,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(jZ.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(nX(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const n=TK(t)/e[0],r=kK(t)/e[1];return Math.max(n,r)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(e/n)/Math.log(t);return function(n){return e/Math.pow(t,n*r)}}getRotation(){return this.get(jZ.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,i=Math.log(n/r)/e;return function(t){return Math.log(n/t)/e/i}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const n=this.padding_;return n&&(e=[e[0]-n[1]-n[3],e[1]-n[0]-n[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),n=this.getRotation();let r=this.getCenterInternal();const i=this.padding_;if(i){const t=this.getViewportSizeMinusPadding_();r=gJ(r,this.getViewportSize_(),[t[0]/2+i[3],t[1]/2+i[0]],e,n)}return{center:r.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,n,r=this.minZoom_||0;if(this.resolutions_){const i=KG(this.resolutions_,t,1);r=i,e=this.resolutions_[i],n=i==this.resolutions_.length-1?2:e/this.resolutions_[i+1]}else e=this.maxResolution_,n=this.zoomFactor_;return r+Math.log(e/t)/Math.log(n)}getResolutionForZoom(t){if(this.resolutions_?.length){if(1===this.resolutions_.length)return this.resolutions_[0];const e=UZ(Math.floor(t),0,this.resolutions_.length-2),n=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(n,UZ(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let n;if(NZ(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t))NZ(!IK(t),"Cannot fit empty extent provided as `geometry`"),n=oJ(nX(t,this.getProjection()));else if("Circle"===t.getType()){const e=nX(t.getExtent(),this.getProjection());n=oJ(e),n.rotate(this.getRotation(),wK(e))}else{const e=null;n=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(n,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),n=Math.cos(e),r=Math.sin(-e),i=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,c=-1/0;for(let u=0,h=i.length;ut.trim().replace(/^['"]|['"]$/g,"")),n};function SJ(t,e,n,r){let i;return i=n&&n.length?n.shift():xZ?new class extends OffscreenCanvas{style={}}(t??300,e??150):document.createElement("canvas"),t&&(i.width=t),e&&(i.height=e),i.getContext("2d",r)}function EJ(){return mJ||(mJ=SJ(1,1)),mJ}function RJ(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function LJ(t){let e=t.offsetWidth;const n=getComputedStyle(t);return e+=parseInt(n.marginLeft,10)+parseInt(n.marginRight,10),e}function TJ(t){let e=t.offsetHeight;const n=getComputedStyle(t);return e+=parseInt(n.marginTop,10)+parseInt(n.marginBottom,10),e}function PJ(t,e){const n=e.parentNode;n&&n.replaceChild(t,e)}function IJ(t){for(;t.lastChild;)t.lastChild.remove()}function MJ(){return new Proxy({childNodes:[],appendChild:function(t){return this.childNodes.push(t),t},remove:function(){},removeChild:function(t){const e=this.childNodes.indexOf(t);if(-1===e)throw new Error("Node to remove was not found");return this.childNodes.splice(e,1),t},insertBefore:function(t,e){const n=this.childNodes.indexOf(e);if(-1===n)throw new Error("Reference node not found");return this.childNodes.splice(n,0,t),t},style:{}},{get:(t,e,n)=>"firstElementChild"===e?t.childNodes.length>0?t.childNodes[0]:null:Reflect.get(t,e,n)})}function AJ(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas}var OJ=class extends hZ{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&this.element?.remove();for(let e=0,n=this.listenerKeys.length;ee.getAttributions(t)));if(void 0!==this.attributions_&&(Array.isArray(this.attributions_)?this.attributions_.forEach(t=>n.add(t)):n.add(this.attributions_)),!this.overrideCollapsible_){const t=!e.some(t=>!1===t.getSource()?.getAttributionsCollapsible());this.setCollapsible(t)}return Array.from(n)}async updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=await Promise.all(this.collectSourceAttributions_(t).map(t=>rZ(()=>t))),n=e.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!JG(e,this.renderedAttributions_)){IJ(this.ulElement_);for(let t=0,n=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:UK}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const n=e.viewState.rotation;if(n!=this.rotation_){const t="rotate("+n+"rad)";if(this.autoHide_){const t=this.element.classList.contains(yJ);t||0!==n?t&&0!==n&&this.element.classList.remove(yJ):this.element.classList.add(yJ)}this.label_.style.transform=t}this.rotation_=n}},FJ=class extends OJ{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",n=void 0!==t.delta?t.delta:1,r=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",i=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=a,c.appendChild("string"==typeof s?document.createTextNode(s):s),c.addEventListener(BG,this.handleClick_.bind(this,n),!1);const u=document.createElement("button");u.className=i,u.setAttribute("type","button"),u.title=l,u.appendChild("string"==typeof o?document.createTextNode(o):o),u.addEventListener(BG,this.handleClick_.bind(this,-n),!1);const h=e+" "+vJ+" "+bJ,d=this.element;d.className=h,d.appendChild(c),d.appendChild(u),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const n=e.getZoom();if(void 0!==n){const r=e.getConstrainedZoom(n+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:r,duration:this.duration_,easing:UK})):e.setZoom(r)}}};function DJ(t){t=t||{};const e=new fZ;return(void 0===t.zoom||t.zoom)&&e.push(new FJ(t.zoomOptions)),(void 0===t.rotate||t.rotate)&&e.push(new zJ(t.rotateOptions)),(void 0===t.attribution||t.attribution)&&e.push(new NJ(t.attributionOptions)),e}var jJ=class{constructor(t,e,n){this.decay_=t,this.minVelocity_=e,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[n+2]>t;)n-=3;const r=this.points_[e+2]-this.points_[n+2];if(r<1e3/60)return!1;const i=this.points_[e]-this.points_[n],s=this.points_[e+1]-this.points_[n+1];return this.angle_=Math.atan2(s,i),this.initialVelocity_=Math.sqrt(i*i+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},UJ="active",BJ=class extends hZ{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(UJ)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(UJ,t)}setMap(t){this.map_=t}};function $J(t,e,n,r){const i=t.getZoom();if(void 0===i)return;const s=t.getConstrainedZoom(i+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:n,duration:void 0!==r?r:250,easing:UK})}var qJ=class extends BJ{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==yZ.DBLCLICK){const n=t.originalEvent,r=t.map,i=t.coordinate,s=n.shiftKey?-this.delta_:this.delta_;$J(r.getView(),s,i,this.duration_),n.preventDefault(),e=!0}return!e}};function VJ(t){const e=arguments;return function(t){let n=!0;for(let r=0,i=e.length;r0}}else if(t.type==yZ.POINTERDOWN){const n=this.handleDownEvent(t);this.handlingDownUpSequence=n,e=this.stopDown(n)}else t.type==yZ.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function eQ(t){const e=t.length;let n=0,r=0;for(let i=0;i0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},rQ=class extends tQ{constructor(t){t=t||{},super({stopDown:tZ}),this.condition_=t.condition?t.condition:WJ,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!JJ(t))return;const e=t.map,n=e.getView();if(n.getConstraints().rotation===uJ)return;const r=e.getSize(),i=t.pixel,s=Math.atan2(r[1]/2-i[1],i[0]-r[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;n.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){return!JJ(t)||(t.map.getView().endInteraction(this.duration_),!1)}handleDownEvent(t){return!(!JJ(t)||!ZJ(t)||!this.condition_(t)||(t.map.getView().beginInteraction(),this.lastAngle_=void 0,0))}},iQ=class extends HG{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(t[0],e[0])+n,r.top=Math.min(t[1],e[1])+n,r.width=Math.abs(e[0]-t[0])+n,r.height=Math.abs(e[1]-t[1])+n}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;const t=this.startPixel_,e=this.endPixel_,n=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new sJ([n])}getGeometry(){return this.geometry_}},sQ="boxcancel",oQ=class extends iZ{constructor(t,e,n){super(t),this.coordinate=e,this.mapBrowserEvent=n}},aQ=class extends tQ{constructor(t){super(),this.on,this.once,this.un,t=t??{},this.box_=new iQ(t.className||"ol-dragbox"),this.minArea_=t.minArea??64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition??ZJ,this.boxEndCondition_=t.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,n){const r=n[0]-e[0],i=n[1]-e[1];return r*r+i*i>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.startPixel_&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new oQ("boxdrag",t.coordinate,t)))}handleUpEvent(t){if(!this.startPixel_)return!1;const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new oQ(e?"boxend":sQ,t.coordinate,t)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new oQ("boxstart",t.coordinate,t)),!0)}onBoxEnd(t){}setActive(t){t||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new oQ(sQ,this.startPixel_,null)),this.startPixel_=null)),super.setActive(t)}setMap(t){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new oQ(sQ,this.startPixel_,null)),this.startPixel_=null)),super.setMap(t)}},lQ=class extends aQ{constructor(t){super({condition:(t=t||{}).condition?t.condition:YJ,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let n=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(n),r=e.getResolutionForExtentInternal(t),i=e.getResolution()/r;n=n.clone(),n.scale(i*i)}e.fitInternal(n,{duration:this.duration_,easing:UK})}},cQ="ArrowLeft",uQ="ArrowRight",hQ="ArrowDown",dQ=class extends BJ{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return KJ(t)&&XJ(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==$G){const n=t.originalEvent,r=n.key;if(this.condition_(t)&&(r==hQ||r==cQ||r==uQ||"ArrowUp"==r)){const i=t.map.getView(),s=i.getResolution()*this.pixelDelta_;let o=0,a=0;r==hQ?a=-s:r==cQ?o=-s:r==uQ?o=s:a=s;const l=[o,a];FK(l,i.getRotation()),function(t,e,n){const r=t.getCenterInternal();if(r){const i=[r[0]+e[0],r[1]+e[1]];t.animateInternal({duration:void 0!==n?n:250,easing:$K,center:t.getConstrainedCenter(i)})}}(i,l,this.duration_),n.preventDefault(),e=!0}}return!e}},pQ=class extends BJ{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!function(t){const e=t.originalEvent;return wZ?e.metaKey:e.ctrlKey}(t)&&XJ(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==$G||t.type==qG){const n=t.originalEvent,r=n.key;if(this.condition_(t)&&("+"===r||"-"===r)){const i=t.map,s="+"===r?this.delta_:-this.delta_;$J(i.getView(),s,void 0,this.duration_),n.preventDefault(),e=!0}}return!e}},fQ=class extends BJ{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:GJ;this.condition_=t.onFocusOnly?VJ(HJ,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300,this.ctrlKeyPressed_=!1,this.ctrlKeyListenerKeys_=[]}setMap(t){if(this.ctrlKeyListenerKeys_.forEach(DG),this.ctrlKeyListenerKeys_.length=0,this.ctrlKeyPressed_=!1,super.setMap(t),t){const e=t.getOwnerDocument();this.ctrlKeyListenerKeys_.push(zG(e,"keydown",t=>{"Control"===t.key&&(this.ctrlKeyPressed_=!0)}),zG(e,"keyup",t=>{"Control"===t.key&&(this.ctrlKeyPressed_=!1)}))}}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;const e=t.getView(),n=this.lastDelta_?this.lastDelta_>0?1:-1:0;e.endInteraction(this.constrainResolution_||e.getConstrainResolution()?100:void 0,n,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==WG)return!0;const e=t.map,n=t.originalEvent;n.preventDefault();const r=n.ctrlKey&&!this.ctrlKeyPressed_;n.ctrlKey||(this.ctrlKeyPressed_=!1),this.useAnchor_&&(this.lastAnchor_=t.pixel);let i=n.deltaY;switch(n.deltaMode){case WheelEvent.DOM_DELTA_LINE:i*=40;break;case WheelEvent.DOM_DELTA_PAGE:i*=300}if(0===i)return!1;this.lastDelta_=i;const s=Date.now();void 0===this.startTime_&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?"trackpad":"wheel");const o=e.getView();if("trackpad"===this.mode_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),r&&(i*=3),o.adjustZoom(-i/this.deltaPerZoom_,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=i;const a=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),a),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let n=-UZ(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),$J(e,n,this.lastAnchor_?t.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}},gQ=class extends tQ{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=tZ),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const n=this.targetPointers[0],r=this.targetPointers[1],i=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(void 0!==this.lastAngle_){const t=i-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=i;const s=t.map,o=s.getView();o.getConstraints().rotation!==uJ&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(eQ(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){return!(this.targetPointers.length<2&&(t.map.getView().endInteraction(this.duration_),1))}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}},mQ=class extends tQ{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=tZ),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const n=this.targetPointers[0],r=this.targetPointers[1],i=n.clientX-r.clientX,s=n.clientY-r.clientY,o=Math.sqrt(i*i+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(eQ(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),n=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,n),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function yQ(t){t=t||{};const e=new fZ,n=new jJ(-.005,.05,100);return(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new rQ),(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new qJ({delta:t.zoomDelta,duration:t.zoomDuration})),(void 0===t.dragPan||t.dragPan)&&e.push(new nQ({onFocusOnly:t.onFocusOnly,kinetic:n})),(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new gQ),(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new mQ({duration:t.zoomDuration})),(void 0===t.keyboard||t.keyboard)&&(e.push(new dQ),e.push(new pQ({delta:t.zoomDelta,duration:t.zoomDuration}))),(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new fQ({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration})),(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new lQ({duration:t.zoomDuration})),e}var vQ="opacity",bQ="visible",wQ="extent",_Q="zIndex",xQ="maxResolution",CQ="minResolution",kQ="maxZoom",SQ="minZoom",EQ="source",RQ=class extends hZ{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[vQ]=void 0!==t.opacity?t.opacity:1,NZ("number"==typeof e[vQ],"Layer opacity must be a number"),e[bQ]=void 0===t.visible||t.visible,e[_Q]=t.zIndex,e[xQ]=void 0!==t.maxResolution?t.maxResolution:1/0,e[CQ]=void 0!==t.minResolution?t.minResolution:0,e[SQ]=void 0!==t.minZoom?t.minZoom:-1/0,e[kQ]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},n=this.getZIndex();return e.opacity=UZ(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==n||e.managed?n:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return aZ()}getLayerStatesArray(t){return aZ()}getExtent(){return this.get(wQ)}getMaxResolution(){return this.get(xQ)}getMinResolution(){return this.get(CQ)}getMinZoom(){return this.get(SQ)}getMaxZoom(){return this.get(kQ)}getOpacity(){return this.get(vQ)}getSourceState(){return aZ()}getVisible(){return this.get(bQ)}getZIndex(){return this.get(_Q)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(wQ,t)}setMaxResolution(t){this.set(xQ,t)}setMinResolution(t){this.set(CQ,t)}setMaxZoom(t){this.set(kQ,t)}setMinZoom(t){this.set(SQ,t)}setOpacity(t){NZ("number"==typeof t,"Layer opacity must be a number"),this.set(vQ,t)}setVisible(t){this.set(bQ,t)}setZIndex(t){this.set(_Q,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},LQ="addlayer",TQ="removelayer",PQ=class extends iZ{constructor(t,e){super(t),this.layer=e}},IQ="layers",MQ=class t extends RQ{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let n=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(IQ,this.handleLayersChanged_),n?Array.isArray(n)?n=new fZ(n.slice(),{unique:!0}):NZ("function"==typeof n.getArray,"Expected `layers` to be an array or a `Collection`"):n=new fZ(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(DG),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(zG(t,IG,this.handleLayersAdd_,this),zG(t,MG,this.handleLayersRemove_,this));for(const n in this.listenerKeys_)this.listenerKeys_[n].forEach(DG);OG(this.listenerKeys_);const e=t.getArray();for(let n=0,r=e.length;n{this.dispatchEvent("sourceready")},0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const n=this.getMapInternal();let r;if(!t&&n&&(t=n.getView()),e=t instanceof dJ?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&n&&(e.layerStatesArray=n.getLayerGroup().getLayerStatesArray()),e.layerStatesArray){if(r=e.layerStatesArray.find(t=>t.layer===this),!r)return!1}else r=this.getLayerState();const i=this.getExtent();return DQ(r,e.viewState)&&(!i||PK(i,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];const e=this.getSource()?.getAttributions();if(!e)return[];let n=e(t instanceof dJ?t.getViewStateAndExtent():t);return Array.isArray(n)||(n=[n]),n}render(t,e){const n=this.getRenderer();return n.prepareFrame(t)?(this.rendered=!0,n.renderFrame(t,e)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(t,e){}renderDeferred(t){const e=this.getRenderer();e&&e.renderDeferred(t)}setMapInternal(t){t||this.unrender(),this.set("map",t)}getMapInternal(){return this.get("map")}setMap(t){this.mapPrecomposeKey_&&(DG(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(DG(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=zG(t,NQ,this.handlePrecompose_,this),this.mapRenderKey_=zG(this,jG,t.render,t),this.changed())}handlePrecompose_(t){const e=t.frameState.layerStatesArray,n=this.getLayerState(!1);NZ(!e.some(t=>t.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),e.push(n)}setSource(t){this.set(EQ,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function DQ(t,e){if(!t.visible)return!1;const n=e.resolution;if(n=t.maxResolution)return!1;const r=e.zoom;return r>t.minZoom&&r<=t.maxZoom}function jQ(t,e,n=0,r=t.length-1,i=BQ){for(;r>n;){if(r-n>600){const s=r-n+1,o=e-n+1,a=Math.log(s),l=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);jQ(t,e,Math.max(n,Math.floor(e-o*l/s+c)),Math.min(r,Math.floor(e+(s-o)*l/s+c)),i)}const s=t[e];let o=n,a=r;for(UQ(t,n,e),i(t[r],s)>0&&UQ(t,n,r);o0;)a--}0===i(t[n],s)?UQ(t,n,a):(a++,UQ(t,a,r)),a<=e&&(n=a+1),e<=a&&(r=a-1)}}function UQ(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function BQ(t,e){return te?1:0}var $Q=class{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const n=[];if(!t0(t,e))return n;const r=this.toBBox,i=[];for(;e;){for(let s=0;s=0&&i[e].children.length>this._maxEntries;)this._split(i,e),e--;this._adjustParentBBoxes(r,i,e)}_split(t,e){const n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);const s=this._chooseSplitIndex(n,i,r),o=e0(n.children.splice(s,n.children.length-s));o.height=n.height,o.leaf=n.leaf,VQ(n,this.toBBox),VQ(o,this.toBBox),e?t[e-1].children.push(o):this._splitRoot(n,o)}_splitRoot(t,e){this.data=e0([t,e]),this.data.height=t.height+1,this.data.leaf=!1,VQ(this.data,this.toBBox)}_chooseSplitIndex(t,e,n){let r,i=1/0,s=1/0;for(let o=e;o<=n-e;o++){const e=WQ(t,0,o,this.toBBox),a=WQ(t,o,n,this.toBBox),l=JQ(e,a),c=KQ(e)+KQ(a);l=e;l--){const e=t.children[l];HQ(o,t.leaf?i(e):e),a+=YQ(o)}return a}_adjustParentBBoxes(t,e,n){for(let r=n;r>=0;r--)HQ(e[r],t)}_condense(t){for(let e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children,e.splice(e.indexOf(t[n]),1)):this.clear():VQ(t[n],this.toBBox)}};function qQ(t,e,n){if(!n)return e.indexOf(t);for(let r=0;r=t.minX&&e.maxY>=t.minY}function e0(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function n0(t,e,n,r,i){const s=[e,n];for(;s.length;){if((n=s.pop())-(e=s.pop())<=r)continue;const o=e+Math.ceil((n-e)/r/2)*r;jQ(t,o,e,n,i),s.push(e,o,o,n)}}var r0,i0=[NaN,NaN,NaN,0],s0=/^rgba?\(\s*(\d+%?)\s+(\d+%?)\s+(\d+%?)(?:\s*\/\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,o0=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,a0=/^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(\d+%|\d*\.\d+|[01]))?\s*\)$/i,l0=/^#([\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$/i;function c0(t,e){return t.endsWith("%")?Number(t.substring(0,t.length-1))/e:Number(t)}function u0(t){throw new Error('failed to parse "'+t+'" as color')}function h0(t){if(t.toLowerCase().startsWith("rgb")){const e=t.match(o0)||t.match(s0)||t.match(a0);if(e){const t=e[4],n=100/255;return[UZ(c0(e[1],n)+.5|0,0,255),UZ(c0(e[2],n)+.5|0,0,255),UZ(c0(e[3],n)+.5|0,0,255),void 0!==t?UZ(c0(t,100),0,1):1]}u0(t)}if(t.startsWith("#")){if(l0.test(t)){const e=t.substring(1),n=e.length<=4?1:2,r=[0,0,0,255];for(let t=0,i=e.length;t.0031308?269.025*Math.pow(t,1/2.4)-14.025:3294.6*t}function m0(t){return t>.2068965?Math.pow(t,3):108/841*(t-4/29)}function y0(t){return t>10.314724?Math.pow((t+14.025)/269.025,2.4):t/3294.6}function v0(t){return t>.0088564?Math.pow(t,1/3):t/(108/841)+4/29}function b0(t){const e=y0(t[0]),n=y0(t[1]),r=y0(t[2]),i=v0(.222488403*e+.716873169*n+.06060791*r),s=500*(v0(.452247074*e+.399439023*n+.148375274*r)-i),o=200*(i-v0(.016863605*e+.117638439*n+.865350722*r)),a=Math.atan2(o,s)*(180/Math.PI);return[116*i-16,Math.sqrt(s*s+o*o),a<0?a+360:a,t[3]]}function w0(t){if("none"===t)return i0;if(d0.hasOwnProperty(t))return d0[t];if(p0>=1024){let t=0;for(const e in d0)3&t++||(delete d0[e],--p0)}const e=h0(t);4!==e.length&&u0(t);for(const n of e)isNaN(n)&&u0(t);return d0[t]=e,++p0,e}function _0(t){return Array.isArray(t)?t:w0(t)}function x0(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let n=t[1];n!=(0|n)&&(n=n+.5|0);let r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+n+","+r+","+(void 0===t[3]?1:Math.round(1e3*t[3])/1e3)+")"}function C0(t){return t[0]>0&&t[1]>0}function k0(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}var S0=0,E0=1<e)throw new Error(`expected ${e===1/0?`${t} or more`:`${t} to ${e}`} arguments for ${r}, got ${i}`)}}function B1(t,e,n){const r=t.length-1,i=new Array(r);for(let s=0;s{for(let e=0;e{for(let e=0;e{const r=t.args;let i=n.properties[e];for(let t=1,e=r.length;tt.variables[e];case N1:return n=>{const r=t.args;if(!(e in n.properties))return!1;let i=n.properties[e];for(let t=1,e=r.length;tt.featureId;case H0:return t=>t.geometryType;case W0:{const n=t.args.map(t=>Z1(t,e));return t=>"".concat(...n.map(e=>e(t).toString()))}case X0:return t=>t.resolution;case Z0:case K0:case x1:case E1:case"!":return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{for(let e=0;e{for(let e=0;e{const e=i[0](t),n=i[1](t),r=i[2](t);return e>=n&&e<=r};case E1:return t=>{const e=i[0](t);for(let n=1;n!i[0](t);default:throw new Error(`Unsupported logical operator ${n}`)}}(t,e);case t1:case e1:case"<":case s1:case">":case r1:return function(t,e){const n=t.operator,r=Z1(t.args[0],e),i=Z1(t.args[1],e);switch(n){case t1:return t=>r(t)===i(t);case e1:return t=>r(t)!==i(t);case"<":return t=>r(t)r(t)<=i(t);case">":return t=>r(t)>i(t);case r1:return t=>r(t)>=i(t);default:throw new Error(`Unsupported comparison operator ${n}`)}}(t,e);case"*":case"/":case"+":case"-":case u1:case"%":case"^":case p1:case f1:case g1:case m1:case y1:case v1:case b1:case w1:return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{let e=1;for(let n=0;ni[0](t)/i[1](t);case"+":return t=>{let e=0;for(let n=0;ni[0](t)-i[1](t);case u1:return t=>{const e=i[0](t),n=i[1](t);if(er?r:e};case"%":return t=>i[0](t)%i[1](t);case"^":return t=>Math.pow(i[0](t),i[1](t));case p1:return t=>Math.abs(i[0](t));case f1:return t=>Math.floor(i[0](t));case g1:return t=>Math.ceil(i[0](t));case m1:return t=>Math.round(i[0](t));case y1:return t=>Math.sin(i[0](t));case v1:return t=>Math.cos(i[0](t));case b1:return 2===r?t=>Math.atan2(i[0](t),i[1](t)):t=>Math.atan(i[0](t));case w1:return t=>Math.sqrt(i[0](t));default:throw new Error(`Unsupported numeric operator ${n}`)}}(t,e);case S1:return function(t,e){const n=t.args.length,r=new Array(n);for(let i=0;i{for(let e=0;e{const e=r[0](t);for(let i=1;i{const e=r[0](t),i=r[1](t);let s,o;for(let a=2;a=i)return 2===a?l:c?Y1(e,i,s,o,n,l):K1(e,i,s,o,n,l);s=n,o=l}return o}}(t,e);case O1:return function(t,e){const n=t.operator,r=t.args.length,i=new Array(r);for(let s=0;s{const n=i[0](e);return t.args[0].type===T0?x0(n):n.toString()};throw new Error(`Unsupported convert operator ${n}`)}(t,e);default:throw new Error(`Unsupported operator ${n}`)}}function K1(t,e,n,r,i,s){const o=i-n;if(0===o)return r;const a=e-n;return r+(1===t?a/o:(Math.pow(t,a)-1)/(Math.pow(t,o)-1))*(s-r)}function Y1(t,e,n,r,i,s){if(i-n===0)return r;const o=b0(r),a=b0(s);let l=a[2]-o[2];return l>180?l-=360:l<-180&&(l+=360),function(t){const e=(t[0]+16)/116,n=t[1],r=t[2]*Math.PI/180,i=m0(e),s=m0(e+n/500*Math.cos(r)),o=m0(e-n/200*Math.sin(r)),a=g0(3.021973625*s-1.617392459*i-.404875592*o),l=g0(-.943766287*s+1.916279586*i+.027607165*o),c=g0(.069407491*s-.22898585*i+1.159737864*o);return[UZ(a+.5|0,0,255),UZ(l+.5|0,0,255),UZ(c+.5|0,0,255),t[3]]}([K1(t,e,n,o[0],i,a[0]),K1(t,e,n,o[1],i,a[1]),o[2]+K1(t,e,n,0,i,l),K1(t,e,n,r[3],i,s[3])])}var X1=class extends sZ{constructor(t,e,n,r){super(),this.extent=t,this.pixelRatio_=n,this.resolution=e,this.state="function"==typeof r?0:r,this.image_=null,this.loader="function"==typeof r?r:null}changed(){this.dispatchEvent(jG)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(0==this.state&&this.loader){this.state=1,this.changed();const t=this.getResolution(),e=Array.isArray(t)?t[0]:t;rZ(()=>this.loader(this.getExtent(),e,this.getPixelRatio())).then(t=>{"image"in t&&(this.image_=t.image),"extent"in t&&(this.extent=t.extent),"resolution"in t&&(this.resolution=t.resolution),"pixelRatio"in t&&(this.pixelRatio_=t.pixelRatio),(t instanceof HTMLImageElement||kZ&&t instanceof ImageBitmap||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)&&(this.image_=t),this.state=2}).catch(t=>{this.state=3,console.error(t)}).finally(()=>this.changed())}}setImage(t){this.image_=t}setResolution(t){this.resolution=t}};function J1(t,e){return t+":"+(e?_0(e):"null")}var Q1=new class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const n=this.cache_[e];3&t++||n.hasListener()||(delete this.cache_[e],delete this.patternCache_[e],--this.cacheSize_)}}}get(t,e){const n=J1(t,e);return n in this.cache_?this.cache_[n]:null}getPattern(t,e){const n=J1(t,e);return n in this.patternCache_?this.patternCache_[n]:null}set(t,e,n,r){const i=J1(t,e),s=i in this.cache_;this.cache_[i]=n,r&&(0===n.getImageState()&&n.load(),1===n.getImageState()?n.ready().then(()=>{this.patternCache_[i]=EJ().createPattern(n.getImage(1),"repeat")}):this.patternCache_[i]=EJ().createPattern(n.getImage(1),"repeat")),s||++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}},t2=null,e2=class extends sZ{constructor(t,e,n,r,i){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=n?.crossOrigin,this.referrerPolicy_=n?.referrerPolicy,this.canvas_={},this.color_=i,this.imageState_=void 0===r?0:r,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)}isTainted_(){if(void 0===this.tainted_&&2===this.imageState_){t2||(t2=SJ(1,1,void 0,{willReadFrequently:!0})),t2.drawImage(this.image_,0,0);try{t2.getImageData(0,0,1,1),this.tainted_=!1}catch{t2=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(jG)}handleImageError_(){this.imageState_=3,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=2,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}setImage(t){this.image_=t}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],n=SJ(t,e);n.fillRect(0,0,t,e),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(0===this.imageState_){this.image_||this.initializeImage_(),this.imageState_=1;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&(t=this.image_,e=this.src_,e&&(t.src=e),t.src&&CZ?new Promise((e,n)=>t.decode().then(()=>e(t)).catch(r=>t.complete&&t.width?e(t):n(r))):function(t){return new Promise((e,n)=>{function r(){s(),e(t)}function i(){s(),n(new Error("Image load error"))}function s(){t.removeEventListener("load",r),t.removeEventListener("error",i)}t.addEventListener("load",r),t.addEventListener("error",i)})}(t)).then(t=>{this.image_=t,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}var t,e}replaceColor_(t){if(!this.color_||this.canvas_[t]||2!==this.imageState_)return;const e=this.image_,n=SJ(Math.ceil(e.width*t),Math.ceil(e.height*t)),r=n.canvas;var i;n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle="string"==typeof(i=this.color_)?i:x0(i),n.fillRect(0,0,r.width/t,r.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=r}ready(){return this.ready_||(this.ready_=new Promise(t=>{if(2===this.imageState_||3===this.imageState_)t();else{const e=()=>{2!==this.imageState_&&3!==this.imageState_||(this.removeEventListener(jG,e),t())};this.addEventListener(jG,e)}})),this.ready_}};function n2(t,e,n,r,i,s){let o=void 0===e?void 0:Q1.get(e,i);return o||(o=new e2(t,t&&"src"in t?t.src||void 0:e,n,r,i),Q1.set(e,i,o,s)),s&&o&&!Q1.getPattern(e,i)&&Q1.set(e,i,o,s),o}function r2(t){return t?Array.isArray(t)?x0(t):"object"==typeof t&&"src"in t?function(t){if(!t.offset||!t.size)return Q1.getPattern(t.src,t.color);const e=t.src+":"+t.offset,n=Q1.getPattern(e,t.color);if(n)return n;const r=Q1.get(t.src,null);if(2!==r.getImageState())return null;const i=SJ(t.size[0],t.size[1]);return i.drawImage(r.getImage(1),t.offset[0],t.offset[1],t.size[0],t.size[1],0,0,t.size[0],t.size[1]),n2(i.canvas,e,void 0,2,t.color,!0),Q1.getPattern(e,t.color)}(t):t:null}var i2,s2="#000",o2="round",a2=[],l2="round",c2="#000",u2="center",h2=[0,0,0,0],d2=new hZ,p2=null,f2={},g2=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","emoji","math","fangsong"]);function m2(t,e,n){return`${t} ${e} 16px "${n}"`}var y2=function(){const t=100;let e,n;async function r(t){await n.ready;const e=kJ(t),r=e.families[0].toLowerCase(),i=e.weight,s=[];return n.forEach(t=>{const n=t.family.replace(/^['"]|['"]$/g,"").toLowerCase(),o=CJ[t.weight]||t.weight;n===r&&t.style===e.style&&o==i&&s.push(t)}),0!==s.length&&(await Promise.all(s.map(t=>t.load().then(()=>!0,()=>!1)))).some(t=>t)}async function i(){await n.ready;let s=!0;const o=d2.getProperties(),a=Object.keys(o).filter(e=>o[e]=0;--e){const n=a[e];let i=o[n];iMath.max(e,w2(t,n)),0);return n[e]=r,r}var x2=class t{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=k0(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const e=this.getScale();return new t({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return aZ()}getImage(t){return aZ()}getHitDetectionImage(){return aZ()}getPixelRatio(t){return 1}getImageState(){return aZ()}getImageSize(){return aZ()}getOrigin(){return aZ()}getSize(){return aZ()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=k0(t)}listenImageChange(t){aZ()}load(){aZ()}unlistenImageChange(t){aZ()}ready(){return Promise.resolve()}},C2=class t extends x2{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius=t.radius,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?1:2,1===this.imageState_&&this.ready().then(()=>this.imageState_=2),this.render()}clone(){const e=this.getScale(),n=new t({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return n.setOpacity(this.getOpacity()),n}getAnchor(){const t=this.size_,e=this.getDisplacement(),n=this.getScaleArray();return[t[0]/2-e[0]/n[0],t[1]/2+e[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(t){const e=this.fill_?.getKey(),n=`${t},${this.angle_},${this.radius},${this.radius2_},${this.points_},${e}`+Object.values(this.renderOptions_).join(",");let r=Q1.get(n,null)?.getImage(1);if(!r){const e=this.renderOptions_,i=Math.ceil(e.size*t),s=SJ(i,i);this.draw_(e,s,t),r=s.canvas;const o=new e2(r,void 0,null,2,null);Q1.set(n,null,o),createImageBitmap(r).then(t=>{o.setImage(t)})}return r}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}setRadius(t){this.radius!==t&&(this.radius=t,this.render())}getRadius2(){return this.radius2_}setRadius2(t){this.radius2_!==t&&(this.radius2_=t,this.render())}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,n){if(0===e||this.points_===1/0||"bevel"!==t&&"miter"!==t)return e;let r=this.radius,i=void 0===this.radius2_?r:this.radius2_;if(r{this.patternImage_=null}),0===e.getImageState()&&e.load(),1===e.getImageState()&&(this.patternImage_=e)}this.color_=t}getKey(){const t=this.getColor();return t?t instanceof CanvasPattern||t instanceof CanvasGradient?cZ(t):"object"==typeof t&&"src"in t?t.src+":"+t.offset:_0(t).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}};function E2(t,e,n,r){return void 0!==n&&void 0!==r?[n/t,r/e]:void 0!==n?n/t:void 0!==r?r/e:1}var R2=class t extends x2{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,n=void 0!==t.rotation?t.rotation:0,r=void 0!==t.scale?t.scale:1,i=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:n,scale:r,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:i,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.referrerPolicy_=t.referrerPolicy;const s=void 0!==t.img?t.img:null;let o,a=t.src;if(NZ(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||cZ(s)),NZ(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),NZ(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=0:void 0!==s&&(o="complete"in s?s.complete?s.src?2:0:1:2),this.color_=void 0!==t.color?_0(t.color):null,this.iconImage_=n2(s,a,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,this.initialOptions_,void 0!==t.width||void 0!==t.height){let e,n;if(t.size)[e,n]=t.size;else{const r=this.getImage(1);if(r.width&&r.height)e=r.width,n=r.height;else if(r instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const n=this.iconImage_.getSize();this.setScale(E2(n[0],n[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(E2(e,n,t.width,t.height))}}clone(){let e,n,r;return this.initialOptions_?(n=this.initialOptions_.width,r=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new t({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:n,height:r,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),n=this.getScaleArray();return[t[0]-e[0]/n[0],t[1]+e[1]/n[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}setColor(t){const e=t?_0(t):null;if(this.color_===e||this.color_&&e&&this.color_.length===e.length&&this.color_.every((t,n)=>t===e[n]))return;this.color_=e;const n=this.getSrc(),r=void 0!==n?null:this.getHitDetectionImage(),i=void 0!==n?0:this.iconImage_.getImageState();this.iconImage_=n2(r,n,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},i,this.color_)}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),n=this.iconImage_.getSize();if(!e||!n)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=n[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=n[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}setSrc(t){this.iconImage_=n2(null,t,{crossOrigin:this.crossOrigin_,referrerPolicy:this.referrerPolicy_},0,this.color_)}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:2==this.iconImage_.getImageState()?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(jG,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(jG,t)}ready(){return this.iconImage_.ready()}},L2=class t{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.offset_=t.offset,this.width_=t.width}clone(){const e=this.getColor();return new t({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),offset:this.getOffset(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getOffset(){return this.offset_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setOffset(t){this.offset_=t}setWidth(t){this.width_=t}},T2=class t{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=M2,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let e=this.getGeometry();return e&&"object"==typeof e&&(e=e.clone()),new t({geometry:e??void 0,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer()??void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=M2,this.geometry_=t}setZIndex(t){this.zIndex_=t}},P2=null;function I2(){if(!P2){const t=new S2({color:"rgba(255,255,255,0.4)"}),e=new L2({color:"#3399CC",width:1.25});P2=[new T2({image:new k2({fill:t,stroke:e,radius:5}),fill:t,stroke:e})]}return P2}function M2(t){return t.getGeometry()}var A2=class t{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.keepUpright_=t.keepUpright,this.scale_=t.scale,this.scaleArray_=k0(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.repeat_=t.repeat,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new S2({color:"#333"}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding,this.declutterMode_=t.declutterMode}clone(){const e=this.getScale();return new t({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),keepUpright:this.getKeepUpright(),scale:Array.isArray(e)?e.slice():e,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()instanceof S2?this.getFill().clone():this.getFill(),stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0,declutterMode:this.getDeclutterMode()})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getKeepUpright(){return this.keepUpright_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}getDeclutterMode(){return this.declutterMode_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRepeat(t){this.repeat_=t}setRotateWithView(t){this.rotateWithView_=t}setKeepUpright(t){this.keepUpright_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=k0(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}};function O2(){return!0}function N2(t,e){e=e??B0();const n=t.length,r=new Array(n);for(let o=0;o0&&"string"==typeof p[0]?g=q2(t,"icon-color",e):f=n3(p,"icon-color"));const m=function(t,e){const n=t[e];if(void 0!==n){if("string"!=typeof n)throw new Error(`Expected a string for ${e}`);return n}}(t,"icon-cross-origin"),y=function(t,e){const n=t[e];if(void 0!==n)return Q2(n,e)}(t,"icon-offset"),v=Y2(t,"icon-offset-origin"),b=Z2(t,"icon-width"),w={src:r,anchorOrigin:u,anchorXUnits:h,anchorYUnits:d,crossOrigin:m,offset:y,offsetOrigin:v,height:Z2(t,"icon-height"),width:b,size:K2(t,"icon-size"),declutterMode:J2(t,"icon-declutter-mode")};let _=null;return function(t){if(_)g&&_.setColor(g(t));else{const e=g?g(t):f;_=new R2(void 0!==e?Object.assign({},w,{color:e}):Object.assign({},w))}return o&&_.setOpacity(o(t)),a&&_.setDisplacement(a(t)),l&&_.setRotation(l(t)),c&&_.setRotateWithView(c(t)),s&&_.setScale(s(t)),i&&_.setAnchor(i(t)),_}}(t,e):"shape-points"in t?function(t,e){const n="shape-",r="shape-points",i="shape-radius",s=e3(t[r],r);if(!(i in t))throw new Error(`Expected a number for ${i}`);const o=U2(t,i,e),a="number"==typeof t[i]?t[i]:5,l="shape-radius2",c=U2(t,l,e),u="number"==typeof t[l]?t[l]:void 0,h=F2(t,n,e),d=D2(t,n,e),p=G2(t,"shape-scale",e),f=W2(t,"shape-displacement",e),g=U2(t,"shape-rotation",e),m=$2(t,"shape-rotate-with-view",e),y=Z2(t,"shape-angle"),v=J2(t,"shape-declutter-mode"),b=new C2({points:s,radius:a,radius2:u,angle:y,declutterMode:v});return function(t){return o&&b.setRadius(o(t)),c&&b.setRadius2(c(t)),h&&b.setFill(h(t)),d&&b.setStroke(d(t)),f&&b.setDisplacement(f(t)),g&&b.setRotation(g(t)),m&&b.setRotateWithView(m(t)),p&&b.setScale(p(t)),b}}(t,e):"circle-radius"in t?function(t,e){const n="circle-",r=F2(t,n,e),i=D2(t,n,e),s=U2(t,"circle-radius",e),o=G2(t,"circle-scale",e),a=W2(t,"circle-displacement",e),l=U2(t,"circle-rotation",e),c=$2(t,"circle-rotate-with-view",e),u=J2(t,"circle-declutter-mode"),h=new k2({radius:5,declutterMode:u});return function(t){return s&&h.setRadius(s(t)),r&&h.setFill(r(t)),i&&h.setStroke(i(t)),a&&h.setDisplacement(a(t)),l&&h.setRotation(l(t)),c&&h.setRotateWithView(c(t)),o&&h.setScale(o(t)),h}}(t,e):null}(t,e),o=U2(t,"z-index",e);if(!(n||r||i||s||NG(t)))throw new Error("No fill, stroke, point, or text symbolizer properties in style: "+JSON.stringify(t));const a=new T2;return function(t){let e=!0;if(n){const r=n(t);r&&(e=!1),a.setFill(r)}if(r){const n=r(t);n&&(e=!1),a.setStroke(n)}if(i){const n=i(t);n&&(e=!1),a.setText(n)}if(s){const n=s(t);n&&(e=!1),a.setImage(n)}return o&&a.setZIndex(o(t)),e?null:a}}function F2(t,e,n){let r;if(e+"fill-pattern-src"in t)r=function(t,e,n){const r=B2(t,e+"pattern-src",n),i=H2(t,e+"pattern-offset",n),s=H2(t,e+"pattern-size",n),o=q2(t,e+"color",n);return function(t){return{src:r(t),offset:i&&i(t),size:s&&s(t),color:o&&o(t)}}}(t,e+"fill-",n);else{if("none"===t[e+"fill-color"])return()=>null;r=q2(t,e+"fill-color",n)}if(!r)return null;const i=new S2;return function(t){const e=r(t);return e===i0?null:(i.setColor(e),i)}}function D2(t,e,n){const r=U2(t,e+"stroke-width",n),i=q2(t,e+"stroke-color",n);if(!r&&!i)return null;const s=B2(t,e+"stroke-line-cap",n),o=B2(t,e+"stroke-line-join",n),a=V2(t,e+"stroke-line-dash",n),l=U2(t,e+"stroke-line-dash-offset",n),c=U2(t,e+"stroke-miter-limit",n),u=U2(t,e+"stroke-offset",n),h=new L2;return function(t){if(i){const e=i(t);if(e===i0)return null;h.setColor(e)}if(r&&h.setWidth(r(t)),s){const e=s(t);if("butt"!==e&&"round"!==e&&"square"!==e)throw new Error("Expected butt, round, or square line cap");h.setLineCap(e)}if(o){const e=o(t);if("bevel"!==e&&"round"!==e&&"miter"!==e)throw new Error("Expected bevel, round, or miter line join");h.setLineJoin(e)}return a&&h.setLineDash(a(t)),l&&h.setLineDashOffset(l(t)),c&&h.setMiterLimit(c(t)),u&&h.setOffset(u(t)),h}}function j2(t,e){if(!(e in t))return;const n=t[e];return void 0===n?void 0:n}function U2(t,e,n){const r=j2(t,e);if(void 0===r)return;const i=G1(r,R0,n);return function(t){return e3(i(t),e)}}function B2(t,e,n){const r=j2(t,e);if(void 0===r)return null;const i=G1(r,L0,n);return function(t){return t3(i(t),e)}}function $2(t,e,n){const r=j2(t,e);if(void 0===r)return null;const i=G1(r,E0,n);return function(t){const n=i(t);if("boolean"!=typeof n)throw new Error(`Expected a boolean for ${e}`);return n}}function q2(t,e,n){const r=j2(t,e);if(void 0===r)return null;const i=G1(r,T0,n);return function(t){return n3(i(t),e)}}function V2(t,e,n){const r=j2(t,e);if(void 0===r)return null;if(Array.isArray(r)&&(0===r.length||"string"!=typeof r[0])){const t=r.map((t,r)=>{if("number"==typeof t)return()=>t;const i=G1(t,R0,n);return function(t){return e3(i(t),`${e}[${r}]`)}});return function(e){const n=new Array(t.length);for(let r=0;r4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return n}function r3(t,e){const n=Q2(t,e);if(2!==n.length)throw new Error(`Expected an array of two numbers for ${e}`);return n}var i3="renderOrder",s3=class extends FQ{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=t.declutter?String(t.declutter):void 0,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(i3)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t,e){const n=this.getDeclutter();n in t.declutter==0&&(t.declutter[n]=new $Q(9)),this.getRenderer().renderDeclutter(t,e)}setRenderOrder(t){this.set(i3,t)}setStyle(t){this.style_=void 0===t?I2:t;const e=function(t){if(void 0===t)return I2;if(!t)return null;if("function"==typeof t)return t;if(t instanceof T2)return t;if(Array.isArray(t)&&0===t.length)return[];if(Array.isArray(t)&&t[0]instanceof T2){const e=t.length,n=new Array(e);for(let r=0;r=0;--r){const i=f[r],s=i.layer;if(s.hasRenderer()&&DQ(i,c)&&o.call(a,s)){const r=s.getRenderer(),o=s.getSource();if(r&&o){const s=o.getWrapX()?d:t,a=u.bind(null,i.managed);y[0]=s[0]+p[b][0],y[1]=s[1]+p[b][1],l=r.forEachFeatureAtCoordinate(y,e,n,a,m)}if(l)return l}}if(0===m.length)return;const v=1/m.length;return m.forEach((t,e)=>t.distanceSq+=e*v),m.sort((t,e)=>t.distanceSq-e.distanceSq),m.some(t=>l=t.callback(t.feature,t.layer,t.geometry)),l}hasFeatureAtCoordinate(t,e,n,r,i,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,n,r,QG,this,i,s)}getMap(){return this.map_}renderFrame(t){aZ()}scheduleExpireIconCache(t){Q1.canExpireCache()&&t.postRenderFunctions.push(l3)}};function l3(){Q1.expire()}var c3=class extends a3{constructor(t){super(t),this.fontChangeListenerKey_=zG(d2,AG,t.redrawText,t),this.element_=xZ?MJ():document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className=vJ+" ol-layers";const n=t.getViewport();n&&n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(t,e){const n=this.getMap();if(n.hasListener(t)){const r=new o3(t,void 0,e);n.dispatchEvent(r)}}disposeInternal(){DG(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent(NQ,t);const e=t.layerStatesArray.sort((t,e)=>t.zIndex-e.zIndex);e.some(t=>t.layer instanceof s3&&t.layer.getDeclutter())&&(t.declutter={});const n=t.viewState;this.children_.length=0;const r=this.getMap().getTargetElement();let i;AJ(r)&&(i=r.getContext("2d"),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,r.width,r.height));const s=[];let o=i?r:null;for(let a=0,l=e.length;a0)&&(i.fillStyle=e,i.fillRect(0,0,i.canvas.width,i.canvas.height)),!AJ(t)||0===t.width)continue;i.save();const n=a.style.opacity||t.style.opacity;i.globalAlpha=""===n?1:Number(n);const r=t.style.transform;if(r)i.transform(...fX(r));else{const e=parseFloat(t.style.width)/t.width,n=parseFloat(t.style.height)/t.height;i.transform(e,0,0,n,0,0)}i.drawImage(t,0,0),i.restore()}this.dispatchRenderEvent("postcompose",t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}declutter(t,e){if(t.declutter){for(let n=e.length-1;n>=0;--n){const r=e[n],i=r.layer;i.getDeclutter()&&i.renderDeclutter(t,r)}e.forEach(e=>e.layer.renderDeferred(t))}}};function u3(t){t instanceof FQ?t.setMapInternal(null):t instanceof MQ&&t.getLayers().forEach(u3)}function h3(t,e){if(t instanceof FQ)t.setMapInternal(e);else if(t instanceof MQ){const n=t.getLayers().getArray();for(let t=0,r=n.length;tthis.updateSize())),this.controls=e.controls||(xZ?new fZ:DJ()),this.interactions=e.interactions||(xZ?new fZ:yQ({onFocusOnly:!0})),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new DZ(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(IZ,this.handleLayerGroupChanged_),this.addChangeListener(OZ,this.handleViewChanged_),this.addChangeListener(MZ,this.handleSizeChanged_),this.addChangeListener(AZ,this.handleTargetChanged_),this.setProperties(e.values);const n=this;!t.view||t.view instanceof dJ||t.view.then(function(t){n.setView(new dJ(t))}),this.controls.addEventListener(IG,t=>{t.element.setMap(this)}),this.controls.addEventListener(MG,t=>{t.element.setMap(null)}),this.interactions.addEventListener(IG,t=>{t.element.setMap(this)}),this.interactions.addEventListener(MG,t=>{t.element.setMap(null)}),this.overlays_.addEventListener(IG,t=>{this.addOverlayInternal_(t.element)}),this.overlays_.addEventListener(MG,t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}),this.controls.forEach(t=>{t.setMap(this)}),this.interactions.forEach(t=>{t.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){h3(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_?.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,n){if(!this.frameState_||!this.renderer_)return;const r=this.getCoordinateFromPixelInternal(t),i=void 0!==(n=void 0!==n?n:{}).hitTolerance?n.hitTolerance:0,s=void 0!==n.layerFilter?n.layerFilter:QG,o=!1!==n.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,i,o,e,null,s,null)}getFeaturesAtPixel(t,e){const n=[];return this.forEachFeatureAtPixel(t,function(t){n.push(t)},e),n}getAllLayers(){const t=[];return function e(n){n.forEach(function(n){n instanceof MQ?e(n.getLayers()):t.push(n)})}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:QG,i=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,i,s,r,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),n=this.getSize(),r=e.width/n[0],i=e.height/n[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/r,(s.clientY-e.top)/i]}getTarget(){return this.get(AZ)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return tX(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?cX(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(IZ)}setLayers(t){const e=this.getLayerGroup();if(t instanceof fZ)return void e.setLayers(t);const n=e.getLayers();n.clear(),n.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,n=t.length;e=0;n--){const r=e[n];if(r.getMap()===this&&r.getActive()&&this.getTargetElement()&&(!r.handleEvent(t)||t.propagationStopped))break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let n=this.maxTilesLoading_,r=n;const i=t?t.viewHints:void 0,s=!!i&&(i[0]||i[1]);if(s){const e=Date.now()-t.time>8;n=e?0:8,r=e?0:2}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new PQ("removelayer",e)),this.set(IZ,t)}setSize(t){this.set(MZ,t)}setTarget(t){this.set(AZ,t)}setView(t){if(!t||t instanceof dJ)return void this.set(OZ,t);this.set(OZ,new dJ);const e=this;t.then(function(t){e.setView(new dJ(t))})}updateSize(){const t=this.getTargetElement();let e;if(t){let n,r;if(AJ(t)){const e=t.getContext("2d").getTransform();n=t.width/e.a,r=t.height/e.d}else{const e=getComputedStyle(t);n=t.offsetWidth-parseFloat(e.borderLeftWidth)-parseFloat(e.paddingLeft)-parseFloat(e.paddingRight)-parseFloat(e.borderRightWidth),r=t.offsetHeight-parseFloat(e.borderTopWidth)-parseFloat(e.paddingTop)-parseFloat(e.paddingBottom)-parseFloat(e.borderBottomWidth)}isNaN(n)||isNaN(r)||(e=[Math.max(0,n),Math.max(0,r)],!C0(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&WK("No map visible because the map container's width or height are 0."))}const n=this.getSize();!e||n&&JG(e,n)||(this.updateViewportSize_(e),this.setSize(e))}updateViewportSize_(t){const e=this.getView();e&&e.setViewportSize(t)}},p3="element",f3="map",g3="offset",m3="position",y3="positioning",v3=class extends hZ{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(p3,this.handleElementChanged),this.addChangeListener(f3,this.handleMapChanged),this.addChangeListener(g3,this.handleOffsetChanged),this.addChangeListener(m3,this.handlePositionChanged),this.addChangeListener(y3,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(p3)}getId(){return this.id}getMap(){return this.get(f3)||null}getOffset(){return this.get(g3)}getPosition(){return this.get(m3)}getPositioning(){return this.get(y3)}handleElementChanged(){IJ(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),DG(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=zG(t,LZ,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(p3,t)}setMap(t){this.set(f3,t)}setOffset(t){this.set(g3,t)}setPosition(t){this.set(m3,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(m3))return;const n=this.getRect(e.getTargetElement(),e.getSize()),r=this.getElement(),i=this.getRect(r,[LJ(r),TJ(r)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!iK(n,i)){const r=i[0]-n[0],o=n[2]-i[2],a=i[1]-n[1],l=n[3]-i[3],c=[0,0];if(r<0?c[0]=r-s:o<0&&(c[0]=Math.abs(o)+s),a<0?c[1]=a-s:l<0&&(c[1]=Math.abs(l)+s),0!==c[0]||0!==c[1]){const n=e.getView().getCenterInternal(),r=e.getPixelFromCoordinateInternal(n);if(!r)return;const i=[r[0]+c[0],r[1]+c[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(i),duration:s.duration,easing:s.easing})}}}getRect(t,e){const n=t.getBoundingClientRect(),r=n.left+window.pageXOffset,i=n.top+window.pageYOffset;return[r,i,r+e[0],i+e[1]]}setPositioning(t){this.set(y3,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const n=t.getPixelFromCoordinate(e),r=t.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(t,e){const n=this.element.style,r=this.getOffset(),i=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==i||"center-right"==i||"top-right"==i?s="-100%":"bottom-center"!=i&&"center-center"!=i&&"top-center"!=i||(s="-50%"),"bottom-left"==i||"bottom-center"==i||"bottom-right"==i?o="-100%":"center-left"!=i&&"center-center"!=i&&"center-right"!=i||(o="-50%");const a=`translate(${s}, ${o}) translate(${t[0]+r[0]}px, ${t[1]+r[1]}px)`;this.rendered.transform_!=a&&(this.rendered.transform_=a,n.transform=a)}getOptions(){return this.options}},b3=class t extends hZ{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const e=new t,n=this.geometryName_;e.setGeometryName(n);const r=this.getPropertiesInternal();if(r){const t=this.getGeometry();for(const i in r)i===n&&t?e.set(i,t.clone()):e.set(i,r[i],!0)}const i=this.getStyle();return i&&e.setStyle(i),e}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(DG(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=zG(t,jG,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?function(t){if("function"==typeof t)return t;let e;return Array.isArray(t)?e=t:(NZ("function"==typeof t.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`"),e=[t]),function(){return e}}(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){t!==this.geometryName_&&(this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_())}};function w3(t,e,n,r,i,s,o){let a,l;const c=(n-e)/r;if(1===c)a=e;else if(2===c)a=e,l=i;else if(0!==c){let s=t[e],o=t[e+1],c=0;const u=[0];for(let i=e+r;i>1),i=+n(t[r],e),i<0?s=r+1:(o=r,a=!i);return a?s:~s}(u,h);d<0?(l=(h-u[-d-2])/(u[-d-1]-u[-d-2]),a=e+(-d-2)*r):a=e+d*r}o=o>1?o:2,s=s||new Array(o);for(let u=0;u>1;ia&&(this.instructions.push([4,a,c,t,n,AX,i]),this.hitDetectionInstructions.push([4,a,c,t,r||n,AX,i]));break;case"Point":l=t.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([4,a,c,t,n,void 0,i]),this.hitDetectionInstructions.push([4,a,c,t,r||n,void 0,i])}this.endGeometry(e)}beginGeometry(t,e,n){this.beginGeometryInstruction1_=[0,e,0,t,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[0,e,0,t,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const n=t.length;let r,i,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=e.lineWidth,this.bufferedMaxExtent_=null)}else e.strokeStyle=void 0,e.lineCap=void 0,e.lineDash=null,e.lineDashOffset=void 0,e.lineJoin=void 0,e.lineWidth=void 0,e.miterLimit=void 0,e.strokeOffset=void 0;return e}setFillStrokeStyle(t,e){const n=this.state;this.fillStyleToState(t,n),this.strokeStyleToState(e,n)}createFill(t){const e=t.fillStyle,n=[10,e];return"string"!=typeof e&&n.push(t.fillPatternScale),n}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[T3,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,t.lineDash?this.applyPixelRatio(t.lineDash):null,t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const n=t.fillStyle;(void 0!==n&&"string"!=typeof n||t.currentFillStyle!=n)&&(this.instructions.push(e.call(this,t)),t.currentFillStyle=n)}updateStrokeStyle(t,e){const n=t.strokeStyle,r=t.lineCap,i=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit,c=t.strokeOffset;(t.currentStrokeStyle!=n||t.currentLineCap!=r||i!=t.currentLineDash&&!JG(t.currentLineDash,i)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l||t.currentStrokeOffset!=c)&&(e.call(this,t),t.currentStrokeStyle=n,t.currentLineCap=r,t.currentLineDash=i,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l,t.currentStrokeOffset=c)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[7,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=eK(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;tK(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},N3=class extends O3{constructor(t,e,n,r){super(t,e,n,r)}drawFlatCoordinatess_(t,e,n,r,i){const s=this.state,o=void 0!==s.fillStyle,a=void 0!==s.strokeStyle,l=n.length;this.instructions.push(M3),this.hitDetectionInstructions.push(M3);for(let c=0;cthis.drawCircle(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,s2]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([T3,c2,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,a2,0]);const a=t.getFlatCoordinates(),l=t.getStride(),c=this.coordinates.length;this.appendFlatLineCoordinates(a,0,a.length,l,!1,!1);const u=[2,c,o];this.instructions.push(M3,u),this.hitDetectionInstructions.push(M3,u),void 0!==r.fillStyle&&(this.instructions.push(P3),this.hitDetectionInstructions.push(P3)),void 0!==r.strokeStyle&&(this.instructions.push(I3),this.hitDetectionInstructions.push(I3)),this.endGeometry(e)}drawPolygon(t,e,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawPolygon(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,s2]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([T3,c2,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,a2,0]);const a=t.getEnds(),l=t.getOrientedFlatCoordinates(),c=t.getStride();this.drawFlatCoordinatess_(l,0,a,c,o),this.endGeometry(e)}drawMultiPolygon(t,e,n){const r=this.state,i=r.fillStyle,s=r.strokeStyle,o=r.strokeOffset;if(void 0===i&&void 0===s)return;if(this.handleStrokeOffset_(()=>this.drawMultiPolygon(t,e,n)))return;this.setFillStrokeStyles_(),this.beginGeometry(t,e,n),void 0!==r.fillStyle&&this.hitDetectionInstructions.push([10,s2]),void 0!==r.strokeStyle&&this.hitDetectionInstructions.push([T3,c2,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,a2,0]);const a=t.getEndss(),l=t.getOrientedFlatCoordinates(),c=t.getStride();let u=0;for(let h=0,d=a.length;h0&&void 0!==n&&void 0!==r&&(e.strokeStyle=void 0,e.strokeOffset=0,t(),e.fillStyle=void 0,e.strokeStyle=r,e.strokeOffset=i,t(),e.fillStyle=n,!0)}},z3=0,F3=1;function D3(t,e,n,r,i,s,o,a){const l=o-i,c=a-s;let u=0,h=1;if(0===l){if(in)return!1}else{let e=(t-i)/l,r=(n-i)/l;if(e>r){const t=e;e=r,r=t}if(e>u&&(u=e),rh)return!1}if(0===c){if(sr)return!1}else{let t=(e-s)/c,n=(r-s)/c;if(t>n){const e=t;t=n,n=e}if(t>u&&(u=t),nh)return!1}return z3=u,F3=h,!0}function j3(t,e,n,r,i){const s=[];let o=n,a=0,l=e.slice(n,2);for(;a=t){const e=(t-a+h)/h,d=HZ(n,c,e),p=HZ(r,u,e);l.push(d,p),s.push(l),l=[d,p],a==t&&(o+=i),a=0}else if(a0&&s.push(l),s}function U3(t,e,n,r,i){let s,o,a,l,c,u,h,d,p,f,g=n,m=n,y=0,v=0,b=n;for(o=n;ot&&(v>y&&(y=v,g=b,m=o),v=0,b=o-i)),a=l,h=p,d=f),c=n,u=r}return v+=l,v>y?[b,o]:[g,m]}var B3,$3={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},q3={Circle:N3,Default:O3,Image:class extends O3{constructor(t,e,n,r){super(t,e,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e,n){if(!this.image_||this.maxExtent&&!rK(this.maxExtent,t.getFlatCoordinates()))return;this.beginGeometry(t,e,n);const r=t.getFlatCoordinates(),i=t.getStride(),s=this.coordinates.length,o=this.appendFlatPointCoordinates(r,i);this.instructions.push([6,s,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([6,s,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e,n){if(!this.image_)return;this.beginGeometry(t,e,n);const r=t.getFlatCoordinates(),i=[];for(let a=0,l=r.length;a{const r=o[2*(t+n)]===c[n*u]&&o[2*(t+n)+1]===c[n*u+1];return r||--t,r})}this.saveTextStates_();const h=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,d=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(t,e,n);let p=s.padding;if(p!=h2&&(s.scale[0]<0||s.scale[1]<0)){let t=s.padding[0],e=s.padding[1],n=s.padding[2],r=s.padding[3];s.scale[0]<0&&(e=-e,r=-r),s.scale[1]<0&&(t=-t,n=-n),p=[t,e,n,r]}const f=this.pixelRatio;this.instructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,p==h2?h2:p.map(function(t){return t*f}),h,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]);const g=1/f,m=h?h.slice(0):null;m&&(m[1]=s2),this.hitDetectionInstructions.push([6,a,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[g,g],NaN,this.declutterMode_,this.declutterImageWithText_,p,m,d,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?s2:this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]),this.endGeometry(e)}else{const r=t.getExtent();if(!PK(this.maxExtent,r))return;let i;if(c=t.getFlatCoordinates(),"LineString"==l)i=[c.length];else if("MultiLineString"==l)i=t.getEnds();else if("Polygon"==l)i=t.getEnds().slice(0,1);else if("MultiPolygon"==l){const e=t.getEndss();i=[];for(let t=0,n=e.length;t0?l:2*Math.PI-l}([t,e],[n,r],[i,s]);if(Math.cos(d)>.998)return[t+u*o,e+h*o];const p=Math.cos(d/2),f=Math.sin(d/2);return[t+1/f*(f*a+p*l)*o,e+1/f*(-p*a+f*l)*o]}function G3(t,e,n=!1){for(let r=0,i=t.length-2;rr+e;s-=e){const n=t[r],i=t[r+1],o=t[r+e],a=t[r+e+1],l=t[s],c=t[s+1],u=t[s+e],h=t[s+e+1],d=(h-c)*(o-n)-(u-l)*(a-i);if(0===d)continue;const p=((u-l)*(i-c)-(h-c)*(n-l))/d,f=((o-n)*(i-c)-(a-i)*(n-l))/d;if(p>0&&p<1&&f>0&&f<1){const l=n+p*(o-n),c=i+p*(a-i);t[r+e]=l,t[r+e+1]=c,t.splice(r+2*e,s-r-e);break}}return t}function Z3(t,e,n,r,i,s,o,a,l,c,u,h,d=!0){let p=t[e],f=t[e+1],g=0,m=0,y=0,v=0;function b(){g=p,m=f,p=t[e+=r],f=t[e+1],v+=y,y=Math.sqrt((p-g)*(p-g)+(f-m)*(f-m))}do{b()}while(et[2]}else L=_>E;const T=Math.PI,P=[],I=C+r===e;let M;if(y=0,v=k,p=t[e=C],f=t[e+1],I)return b(),M=Math.atan2(f-m,p-g),L&&(M+=M>0?-T:T),P[0]=[(E+_)/2,(R+x)/2,(S-s)/2,M,i],P;i=i.replace(/\n/g," ");const A=Array.from((B3||(B3=new Intl.Segmenter(void 0,{granularity:"grapheme"})),B3).segment(i),t=>t.segment);for(let O=0,N=A.length;O0?-T:T),void 0!==M){let e=t-M;if(e+=e>T?-2*T:e<-T?2*T:0,Math.abs(e)>o)return null}M=t;const i=O;let h=0;for(;O{if("function"==typeof t[e])return this.pendingMethod_=e,this.pushMethodArgs_},set:(t,e,n)=>(this.push_(e,n),!0)})}push_(...t){const e=this.instructions_,n=this.zIndex+this.offset_;e[n]||(e[n]=[]),e[n].push(...t)}pushMethodArgs_=(...t)=>{this.push_(this.pendingMethod_,t)};pushFunction(t){this.push_(t)}getContext(){return this.context_}draw(t){this.instructions_.forEach(e=>{for(let n=0,r=e.length;n0&&t.push("\n",""),t.push(e,""),t}function s5(t,e,n){return n%2==0&&(t+=e),t}var o5=class{constructor(t,e,n,r,i){this.overlaps=n,this.pixelRatio=e,this.resolution=t,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=sX(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=i?new K3:null}getZIndexContext(){return this.zIndexContext_}createLabel(t,e,n,r){const i=t+e+n+r;if(this.labels_[i])return this.labels_[i];const s=r?this.strokeStates[r]:null,o=n?this.fillStates[n]:null,a=this.textStates[e],l=this.pixelRatio,c=[a.scale[0]*l,a.scale[1]*l],u=a.justify?$3[a.justify]:r5(Array.isArray(t)?t[0]:t,a.textAlign||"center"),h=r&&s.lineWidth?s.lineWidth:0,d=Array.isArray(t)?t:String(t).split("\n").reduce(i5,[]),{width:p,height:f,widths:g,heights:m,lineWidths:y}=function(t,e){const n=[],r=[],i=[];let s=0,o=0,a=0,l=0;for(let c=0,u=e.length;c<=u;c+=2){const h=e[c];if("\n"===h||c===u){s=Math.max(s,o),i.push(o),o=0,a+=l,l=0;continue}const d=e[c+1]||t.font,p=w2(d,h);n.push(p),o+=p;const f=v2(d);r.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:n,heights:r,lineWidths:i}}(a,d),v=p+h,b=[],w=(v+2)*c[0],_=(f+h)*c[1],x={width:w<0?Math.floor(w):Math.ceil(w),height:_<0?Math.floor(_):Math.ceil(_),contextInstructions:b};1==c[0]&&1==c[1]||b.push("scale",c),r&&(b.push("strokeStyle",s.strokeStyle),b.push("lineWidth",h),b.push("lineCap",s.lineCap),b.push("lineJoin",s.lineJoin),b.push("miterLimit",s.miterLimit),b.push("setLineDash",[s.lineDash]),b.push("lineDashOffset",s.lineDashOffset)),n&&b.push("fillStyle",o.fillStyle),b.push("textBaseline","middle"),b.push("textAlign","center");const C=.5-u;let k=u*v+C*h;const S=[],E=[];let R,L=0,T=0,P=0,I=0;for(let M=0,A=d.length;Mt?t-l:i,b=s+c>e?e-c:s,w=p[3]+v*h[0]+p[1],_=p[0]+b*h[1]+p[2],x=m-p[3],C=y-p[0];let k;return(f||0!==u)&&(X3[0]=x,t5[0]=x,X3[1]=C,J3[1]=C,J3[0]=x+w,Q3[0]=J3[0],Q3[1]=C+_,t5[1]=Q3[1]),0!==u?(k=hX(sX(),n,r,1,1,u,-n,-r),cX(k,X3),cX(k,J3),cX(k,Q3),cX(k,t5),aK(Math.min(X3[0],J3[0],Q3[0],t5[0]),Math.min(X3[1],J3[1],Q3[1],t5[1]),Math.max(X3[0],J3[0],Q3[0],t5[0]),Math.max(X3[1],J3[1],Q3[1],t5[1]),Y3)):aK(Math.min(x,x+w),Math.min(C,C+_),Math.max(x,x+w),Math.max(C,C+_),Y3),d&&(m=Math.round(m),y=Math.round(y)),{drawImageX:m,drawImageY:y,drawImageW:v,drawImageH:b,originX:l,originY:c,declutterBox:{minX:Y3[0],minY:Y3[1],maxX:Y3[2],maxY:Y3[3],value:g},canvasTransform:k,scale:h}}replayImageOrLabel_(t,e,n,r,i,s,o){const a=!(!s&&!o),l=r.declutterBox,c=o?o[2]*r.scale[0]/2:0;return l.minX-c<=e[0]&&l.maxX+c>=0&&l.minY-c<=e[1]&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,X3,J3,Q3,t5,s,o),function(t,e,n,r,i,s,o,a,l,c,u){t.save(),1!==n&&(void 0===t.globalAlpha?t.globalAlpha=t=>t.globalAlpha*=n:t.globalAlpha*=n),e&&t.transform.apply(t,e),r.contextInstructions?(t.translate(l,c),t.scale(u[0],u[1]),function(t,e){const n=t.contextInstructions;for(let r=0,i=n.length;rz&&(this.fill_(t),P=0),I>z&&(t.stroke(),I=0),P||I||(t.beginPath(),_=NaN,x=NaN),++d;break;case 2:g=n[1],b=n[2]??0;const r=c[g],u=c[g+1],h=c[g+2]-b-r,p=c[g+3]-b-u,B=Math.sqrt(h*h+p*p);t.moveTo(r+B,u),t.arc(r,u,B,0,2*Math.PI,!0),++d;break;case 3:t.closePath(),++d;break;case 4:g=n[1],f=n[2];const $=n[3],q=n[4],V=n[5];N.geometry=$,N.feature=F,d in M||(M[d]=[]);const W=M[d];V?V(c,g,f,2,W):(W[0]=c[g],W[1]=c[g+1],W.length=2),l&&(l.zIndex=n[6]),q(W,N),++d;break;case 6:g=n[1],f=n[2],S=n[3],y=n[4],v=n[5];let H=n[6];const G=n[7],Z=n[8],K=n[9],Y=n[10];let X=n[11];const J=n[12];let Q=n[13];w=n[14]||"declutter";const tt=n[15];if(!S&&n.length>=20){E=n[19],R=n[20],L=n[21],T=n[22];const t=this.drawLabelWithPointPlacement_(E,R,L,T);S=t.label,n[3]=S;const e=n[23];y=(t.anchorX-e)*this.pixelRatio,n[4]=y;const r=n[24];v=(t.anchorY-r)*this.pixelRatio,n[5]=v,H=S.height,n[6]=H,Q=S.width,n[13]=Q}let et,nt,rt,it;n.length>25&&(et=n[25]),n.length>17?(nt=n[16],rt=n[17],it=n[18]):(nt=h2,rt=null,it=null),Y&&O?X+=A:Y||O||(X-=A);let st=0;for(;g!l5.includes(t)),u5=!1,h5=!1,d5=class{constructor(t,e,n,r,i,s,o){this.maxExtent_=t,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=e,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=sX(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(i,o)}clip(t,e){const n=this.getClipCoords(e);t.beginPath(),t.moveTo(n[0],n[1]),t.lineTo(n[2],n[3]),t.lineTo(n[4],n[5]),t.lineTo(n[6],n[7]),t.clip()}createExecutors_(t,e){for(const n in t){let r=this.executorsByZIndex_[n];void 0===r&&(r={},this.executorsByZIndex_[n]=r);const i=t[n];for(const t in i){const n=i[t];r[t]=new o5(this.resolution_,this.pixelRatio_,this.overlaps_,n,e)}}}hasExecutors(t){for(const e in this.executorsByZIndex_){const n=this.executorsByZIndex_[e];for(let e=0,r=t.length;e{const n=SJ(1,1,null,{willReadFrequently:e});let r=0;const i=performance.now();for(;performance.now()-i<50;++r)n.fillStyle=`rgba(255,0,${r%256},1)`,n.fillRect(0,0,1,1),n.getImageData(0,0,1,1);return t=r>t?r:t,r};u5={[e(!0)]:!0,[e(!1)]:!1,[e(void 0)]:void 0}[t],h5=!0}();const o=2*(r=Math.round(r))+1,a=hX(this.hitDetectionTransform_,r+.5,r+.5,1/e,-1/e,-n,-t[0],-t[1]),l=!this.hitDetectionContext_;l&&(this.hitDetectionContext_=SJ(o,o,null,{willReadFrequently:u5}));const c=this.hitDetectionContext_;let u;c.canvas.width!==o||c.canvas.height!==o?(c.canvas.width=o,c.canvas.height=o):l||c.clearRect(0,0,o,o),void 0!==this.renderBuffer_&&(u=[1/0,1/0,-1/0,-1/0],pK(u,t),tK(u,e*(this.renderBuffer_+r),u));const h=function(t){if(void 0!==p5[t])return p5[t];const e=2*t+1,n=t*t,r=new Array(n+1);for(let s=0;s<=t;++s)for(let i=0;i<=t;++i){const o=s*s+i*i;if(o>n)break;let a=r[o];a||(a=[],r[o]=a),a.push(4*((t+s)*e+(t+i))+3),s>0&&a.push(4*((t-s)*e+(t+i))+3),i>0&&(a.push(4*((t+s)*e+(t-i))+3),s>0&&a.push(4*((t-s)*e+(t-i))+3))}const i=[];for(let s=0,o=r.length;s0){if(!s||"none"===n||"Image"!==d&&"Text"!==d||s.includes(t)){const n=(h[l]-3)/4,s=r-n%o,a=r-(n/o|0),c=i(t,e,s*s+a*a);if(c)return c}c.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let g,m,y,v,b;for(f.sort(GG),g=f.length-1;g>=0;--g){const t=f[g].toString();for(y=this.executorsByZIndex_[t],m=a5.length-1;m>=0;--m)if(d=a5[m],v=y[d],void 0!==v&&(b=v.executeHitDetection(c,a,n,p,u),b))return b}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const n=e[0],r=e[1],i=e[2],s=e[3],o=[n,r,n,s,i,s,i,r];return gX(o,0,8,2,t,o),o}isEmpty(){return NG(this.executorsByZIndex_)}execute(t,e,n,r,i,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);a.sort(o?ZG:GG),s=s||a5;const l=a5.length;for(let c=0,u=a.length;cp.execute(t,e,n,r,i,o)):p.execute(h,e,n,r,i,o),d&&h.restore(),s){s.offset();const t=a[c]*l+a5.indexOf(u);this.deferredZIndexContexts_[t]||(this.deferredZIndexContexts_[t]=[]),this.deferredZIndexContexts_[t].push(s)}}}}this.renderedContext_=t}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){const t=this.deferredZIndexContexts_,e=Object.keys(t).map(Number).sort(GG);for(let n=0,r=e.length;n{t.draw(this.renderedContext_),t.clear()}),t[e[n]].length=0}},p5={},f5=class extends L3{constructor(t,e,n,r,i,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=n,this.transform_=r,this.transformRotation_=r?GZ(Math.atan2(r[1],r[0]),10):0,this.viewRotation_=i,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=sX()}drawImages_(t,e,n,r){if(!this.image_)return;const i=gX(t,e,n,r,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let c=0,u=i.length;c0){const t=a.length,e=i||Math.abs(a[0]-a[t-2])<1e-6&&Math.abs(a[1]-a[t-1])<1e-6;a=W3(a,0,t,2,s,e,a),G3(a,2,e)}o.moveTo(a[0],a[1]);let l=a.length;i&&(l-=2);for(let c=2;ct*this.pixelRatio_),lineDashOffset:(i||0)*this.pixelRatio_,lineJoin:void 0!==s?s:l2,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:r2(t||c2),strokeOffset:(c??0)*this.pixelRatio_}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const n=t.getPixelRatio(this.pixelRatio_),r=t.getAnchor(),i=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=e[1]*n,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=i[0],this.imageOriginY_=i[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=e[0]*n}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:r2(t||s2)}}else this.textFillState_=null;const n=t.getStroke();if(n){const t=n.getColor(),e=n.getLineCap(),r=n.getLineDash(),i=n.getLineDashOffset(),s=n.getLineJoin(),o=n.getWidth(),a=n.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:o2,lineDash:r||a2,lineDashOffset:i||0,lineJoin:void 0!==s?s:l2,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:r2(t||c2)}}else this.textStrokeState_=null;const r=t.getFont(),i=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),c=t.getText(),u=t.getTextAlign(),h=t.getTextBaseline();this.textState_={font:void 0!==r?r:"10px sans-serif",textAlign:void 0!==u?u:u2,textBaseline:void 0!==h?h:"middle"},this.text_=void 0!==c?Array.isArray(c)?c.reduce((t,e,n)=>t+(n%2?" ":e),""):c:"",this.textOffsetX_=void 0!==i?this.pixelRatio_*i:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}},g5=.5;function m5(t,e,n,r,i,s,o,a,l){const c=i,u=SJ(t[0]*g5,t[1]*g5);u.imageSmoothingEnabled=!1;const h=u.canvas,d=new f5(u,g5,i,null,o,a,l?KY(null,l):null),p=n.length,f=Math.floor(16777215/p),g={};for(let y=1;y<=p;++y){const t=n[y-1],e=t.getStyleFunction()||r;if(!e)continue;let i=e(t,s);if(!i)continue;Array.isArray(i)||(i=[i]);const o=(y*f).toString(16).padStart(7,"#00000");for(let n=0,r=i.length;n0;return h&&Promise.all(l).then(()=>i(null)),function(t,e,n,r,i,s,o){const a=n.getGeometryFunction()(e);if(!a)return;const l=a.simplifyTransformed(r,i);n.getRenderer()?C5(t,l,n,e,o):(0,v5[l.getType()])(t,l,n,e,o,s)}(t,e,n,r,s,o,a),h}function C5(t,e,n,r,i){if("GeometryCollection"==e.getType()){const s=e.getGeometries();for(let e=0,o=s.length;ethis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}updateStaleKeys(t){this.renderedSourceKey_?this.renderedSourceKey_!==t&&(this.prependStaleKey(this.renderedSourceKey_),this.renderedSourceKey_=t):this.renderedSourceKey_=t}getFeatures(t){return aZ()}getData(t){return null}prepareFrame(t){return aZ()}renderFrame(t,e){return aZ()}forEachFeatureAtCoordinate(t,e,n,r,i){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;2!==e.getState()&&3!==e.getState()||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return 2!=e&&3!=e&&t.addEventListener(jG,this.boundHandleImageChange_),0==e&&(t.load(),e=t.getState()),2==e}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}renderDeferred(t){}disposeInternal(){delete this.layer_,super.disposeInternal()}},S5=[],E5=null,R5=class extends k5{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=sX(),this.pixelTransform=sX(),this.inversePixelTransform=sX(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(t,e,n){let r;E5||(E5=SJ(1,1,void 0,{willReadFrequently:!0})),E5.clearRect(0,0,1,1);try{E5.drawImage(t,e,n,1,1,0,0,1,1),r=E5.getImageData(0,0,1,1).data}catch{return E5=null,null}return r}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,n,r,i){if(AJ(t)&&0===this.pixelTransform[1]&&0===this.pixelTransform[2]&&0===this.pixelTransform[4]&&0===this.pixelTransform[5]&&t.width===r&&t.height===i){const e=t,r=e.getContext("2d");if(r)return this.container=t,this.context=r,this.containerReused=!0,void(n&&(r.fillStyle=n,r.fillRect(0,0,e.width,e.height)))}const s=this.getLayer().getClassName();let o,a;if(t&&t.className===s&&(!n||t&&t.style.backgroundColor&&JG(_0(t.style.backgroundColor),_0(n)))){const e=t.firstElementChild;AJ(e)&&(a=e.getContext("2d"))}if(a&&function(t,e){const n=fX(t),r=fX(e);for(let i=0;i<6;++i)if(0!==Math.round((n[i]-r[i])*pX[i]))return!1;return!0}(a.canvas.style.transform,e)?(this.container=t,this.context=a,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=xZ?MJ():document.createElement("div"),o.className=s;let t=o.style;t.position="absolute",t.width="100%",t.height="100%",a=SJ();const e=a.canvas;o.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=o,this.context=a}this.containerReused||!n||this.container.style.backgroundColor||(this.container.style.backgroundColor=n)}clipUnrotated(t,e,n){const r=RK(n),i=LK(n),s=bK(n),o=vK(n);cX(e.coordinateToPixelTransform,r),cX(e.coordinateToPixelTransform,i),cX(e.coordinateToPixelTransform,s),cX(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;cX(a,r),cX(a,i),cX(a,s),cX(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(i[0]),Math.round(i[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}prepareContainer(t,e){const n=t.extent,r=t.viewState.resolution,i=t.viewState.rotation,s=t.pixelRatio,o=Math.round(TK(n)/r*s),a=Math.round(kK(n)/r*s);hX(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/s,1/s,i,-o/2,-a/2),dX(this.inversePixelTransform,this.pixelTransform);const l="matrix("+this.pixelTransform.join(", ")+")",c=this.getBackground(t);if(this.useContainer(e,l,c,o,a),!this.containerReused){const t=this.context.canvas;t.width!=o||t.height!=a?(t.width=o,t.height=a):this.context.clearRect(0,0,o,a),l!==t.style.transform&&(t.style.transform=l)}}dispatchRenderEvent_(t,e,n){const r=this.getLayer();if(r.hasListener(t)){const i=new o3(t,this.inversePixelTransform,n,e);r.dispatchEvent(i)}}preRender(t,e){this.frameState=e,e.declutter||this.dispatchRenderEvent_(AQ,t,e)}postRender(t,e){e.declutter||this.dispatchRenderEvent_(OQ,t,e)}renderDeferredInternal(t){}getRenderContext(t){return t.declutter&&!this.deferredContext_&&(this.deferredContext_=new K3),t.declutter?this.deferredContext_.getContext():this.context}renderDeferred(t){t.declutter&&(this.dispatchRenderEvent_(AQ,this.context,t),t.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(t),this.dispatchRenderEvent_(OQ,this.context,t))}getRenderTransform(t,e,n,r,i,s,o){const a=i/2,l=s/2,c=r/e,u=-c,h=-t[0]+o,d=-t[1];return hX(this.tempTransform,a,l,c,u,-n,h,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}},L5=class extends R5{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipExtent_=null,this.extendX_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.wrappedRenderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(t,e,n){const r=e.extent,i=e.viewState,s=i.center,o=i.resolution,a=i.projection,l=i.rotation,c=a.getExtent(),u=this.getLayer().getSource(),h=this.getLayer().getDeclutter(),d=e.pixelRatio,p=e.viewHints,f=!(p[0]||p[1]),g=this.context,m=Math.round(TK(r)/o*d),y=Math.round(kK(r)/o*d),v=u.getWrapX()&&a.canWrapX(),b=v?TK(c):null,w=v?Math.ceil((r[2]-c[2])/b)+(this.extendX_?2:1):1;let _=v?Math.floor((r[0]-c[0])/b)-(this.extendX_?1:0):0;do{let r=this.getRenderTransform(s,o,0,d,m,y,_*b);e.declutter&&(r=r.slice(0)),t.execute(g,[g.canvas.width,g.canvas.height],r,l,f,void 0===n?a5:n?l5:c5,n?h&&e.declutter[h]:void 0)}while(++_{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=this.frameState.size.slice(),e=this.renderedCenter_,n=this.renderedResolution_,r=this.renderedRotation_,i=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*g5,c=t[1]*g5;a.push(this.getRenderTransform(e,n,r,g5,l,c,0).slice());const u=o.getSource(),h=i.getExtent();if(u.getWrapX()&&i.canWrapX()&&!iK(h,s)){let t=s[0];const i=TK(h);let o,u=0;for(;th[2];)++u,o=i*u,a.push(this.getRenderTransform(e,n,r,g5,l,c,o).slice()),t-=i}const d=null;this.hitDetectionImageData_=m5(t,a,this.renderedFeatures_,o.getStyleFunction(),s,n,r,w5(n,this.renderedPixelRatio_),d?i:null)}e(y5(t,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(t,e,n,r,i){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},c=this.getLayer().getDeclutter();return this.replayGroup_.forEachFeatureAtCoordinate(t,s,o,n,function(t,e,n){const s=cZ(t),o=l[s];if(o){if(!0!==o&&nt.value):null)}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),n=e.getSource();if(!n)return!1;const r=t.viewHints[0],i=t.viewHints[1],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&r||!o&&i)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,c=l.projection,u=l.resolution,h=t.pixelRatio,d=e.getRevision(),p=e.getRenderBuffer();let f=e.getRenderOrder();void 0===f&&(f=b5);const g=l.center.slice(),m=tK(a,p*u),y=m.slice(),v=[m.slice()],b=c.getExtent(),w=n.getWrapX()&&c.canWrapX();if(this.extendX_=!1,w){const t=n.getExtent();t&&!IK(t)&&(this.extendX_=t[0]b[2])}if(w&&(!iK(b,t.extent)||this.extendX_)){const t=TK(b),e=Math.max(TK(m)/2,t);let n=b[0],r=b[2];this.extendX_&&(n-=t,r+=t),m[0]=n-e,m[2]=r+e,DK(g,c);const i=AK(v[0],c);i[0]b[0]&&i[2]>b[2]&&v.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedPixelRatio_===h&&this.renderedRevision_==d&&this.renderedRenderOrder_==f&&this.renderedFrameDeclutter_===!!t.declutter&&iK(this.wrappedRenderedExtent_,m))return JG(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=g,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const _=new V3(_5(u,h),m,u,h);for(let T=0,P=v.length;T{let r;const i=t.getStyleFunction()||e.getStyleFunction();if(i&&(r=i(t,u)),r){const e=this.renderFeature(t,x,r,_,undefined,this.getLayer().getDeclutter(),n);C=C&&!e}},S=m,E=n.getFeaturesInExtent(S);f&&E.sort(f);for(let T=0,P=E.length;T=200&&a.status<300){const t=e.getType();try{let r;"text"==t||"json"==t?r=a.responseText:"xml"==t?r=a.responseXML||a.responseText:"arraybuffer"==t&&(r=a.response),r?s(e.readFeatures(r,{extent:n,featureProjection:i}),e.readProjection(r)):o()}catch{o()}}else o()},a.onerror=o,a.send()}function I5(t,e){return function(n,r,i,s,o){P5(t,e,n,r,i,t=>{this.addFeatures(t),void 0!==s&&s(t)},()=>{this.changed(),void 0!==o&&o()})}}function M5(){return[[-1/0,-1/0,1/0,1/0]]}function A5(t){return[t]}var O5=sX(),N5=class t{constructor(t,e,n,r,i,s){this.styleFunction,this.extent_,this.id_=s,this.type_=t,this.flatCoordinates_=e,this.flatInteriorPoints_=null,this.flatMidpoints_=null,this.ends_=n||null,this.properties_=i,this.squaredTolerance_,this.stride_=r,this.simplifiedGeometry_}get(t){return this.properties_[t]}getExtent(){return this.extent_||(this.extent_="Point"===this.type_?cK(this.flatCoordinates_):uK(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_)),this.extent_}getFlatInteriorPoint(){if(!this.flatInteriorPoints_){const t=wK(this.getExtent());this.flatInteriorPoints_=YX(this.flatCoordinates_,0,this.ends_,this.stride_,t,0)}return this.flatInteriorPoints_}getFlatInteriorPoints(){if(!this.flatInteriorPoints_){const t=iJ(this.flatCoordinates_,this.ends_),e=E3(this.flatCoordinates_,0,t,this.stride_);this.flatInteriorPoints_=XX(this.flatCoordinates_,0,t,this.stride_,e)}return this.flatInteriorPoints_}getFlatMidpoint(){return this.flatMidpoints_||(this.flatMidpoints_=w3(this.flatCoordinates_,0,this.flatCoordinates_.length,this.stride_,.5)),this.flatMidpoints_}getFlatMidpoints(){if(!this.flatMidpoints_){this.flatMidpoints_=[];const t=this.flatCoordinates_;let e=0;const n=this.ends_;for(let r=0,i=n.length;r{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),n&&this.simplifiedGeometry_.applyTransform(n);const r=this.simplifiedGeometry_.getFlatCoordinates();let i;switch(this.type_){case"LineString":r.length=qX(r,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,r,0),i=[r.length];break;case"MultiLineString":i=[],r.length=VX(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,r,0,i);break;case"Polygon":i=[],r.length=GX(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),r,0,i)}return i&&(this.simplifiedGeometry_=new t(this.type_,r,i,this.stride_,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};N5.prototype.getFlatCoordinates=N5.prototype.getOrientedFlatCoordinates;var z5=class{constructor(t){this.rbush_=new $Q(t),this.items_={}}insert(t,e){const n={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(n),this.items_[cZ(e)]=n}load(t,e){const n=new Array(e.length);for(let r=0,i=e.length;r{const n=()=>{const r=this.getState();"ready"===r?(this.un("change",n),t()):"error"===r&&(this.un("change",n),e(new Error("Source failed to load")))};this.on("change",n)})}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=D5(t),this.changed()}setState(t){this.state_=t,this.changed()}};function D5(t){return t?"function"==typeof t?t:(Array.isArray(t)||(t=[t]),()=>t):null}var j5="addfeature",U5="removefeature",B5=class extends iZ{constructor(t,e,n){super(t),this.feature=e,this.features=n}},$5=class extends F5{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=eZ,this.format_=t.format||null,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(NZ(this.format_,"`format` must be set when `url` is set"),this.loader_=I5(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:M5;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let n,r;this.featuresRtree_=e?new z5:null,this.loadedExtentsRtree_=new z5,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?r=t.features:t.features&&(n=t.features,r=n.getArray()),e||void 0!==n||(n=new fZ(r)),void 0!==r&&this.addFeaturesInternal(r),void 0!==n&&this.bindFeaturesCollection_(n)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=cZ(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const n=t.getGeometry();if(n){const e=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new B5(j5,t))}setupChangeEvents_(t,e){e instanceof N5||(this.featureChangeKeys_[t]=[zG(e,jG,this.handleFeatureChange_,this),zG(e,AG,this.handleFeatureChange_,this)])}addToIndex_(t,e){let n=!0;if(void 0!==e.getId()){const t=String(e.getId());if(t in this.idIndex_)if(e instanceof N5){const r=this.idIndex_[t];r instanceof N5?Array.isArray(r)?r.push(e):this.idIndex_[t]=[r,e]:n=!1}else n=!1;else this.idIndex_[t]=e}return n&&(NZ(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),n}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],n=[],r=[];for(let i=0,s=t.length;i{e||(e=!0,this.addFeature(t.element),e=!1)}),t.addEventListener(MG,t=>{e||(e=!0,this.removeFeature(t.element),e=!1)}),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_)this.featureChangeKeys_[t].forEach(DG);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(t=>{this.removeFeatureInternal(t)});for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new B5("clear");this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const n=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(n,function(n){const r=n.getGeometry();if(r instanceof N5||r.intersectsCoordinate(t))return e(n)})}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,function(n){const r=n.getGeometry();if(r instanceof N5||r.intersectsExtent(t)){const t=e(n);if(t)return t}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),NG(this.nullGeometryFeatures_)||XG(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,function(t){e.push(t)}),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const n=OK(t,e);return[].concat(...n.map(t=>this.featuresRtree_.getInExtent(t)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const n=t[0],r=t[1];let i=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||QG,this.featuresRtree_.forEachInExtent(a,function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e instanceof N5?0:e.closestPointXY(n,r,s,o),o{this.loading=Number(this.loading)-1,this.dispatchEvent(new B5("featuresloadend",void 0,t))},s=()=>{this.changed(),this.loading=Number(this.loading)-1,this.dispatchEvent(new B5("featuresloaderror"))};let o=!1;const a=this.loader_.call(this,t,e,n,t=>o||i(t),()=>o||s());a instanceof Promise?(o=!0,a.then(t=>{this.addFeatures(t),i(t)}).catch(s)):this.loader_.length<4&&(this.loading=!1),r.insert(t,{extent:t.slice()})}}}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_,n=[];e.forEachInExtent(t,function(t){n.push(t)}),n.forEach(n=>{e.remove(n);const r=EK(n.extent,t);for(const t of r)e.insert(t,{extent:t})})}removeFeatures(t){let e=!1;for(let n=0,r=t.length;nt.clone())}var W5=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=b3,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let n=e.dataProjection?$Y(e.dataProjection):this.readProjection(t);e.extent&&n&&"tile-pixels"===n.getUnits()&&(n=$Y(n),n.setWorldExtent(e.extent)),e={dataProjection:n,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},t)}getType(){return aZ()}readFeature(t,e){return aZ()}readFeatures(t,e){return aZ()}readGeometry(t,e){return aZ()}readProjection(t){return aZ()}writeFeature(t,e){return aZ()}writeFeatures(t,e){return aZ()}writeGeometry(t,e){return aZ()}};function H5(t,e,n){const r=n?$Y(n.featureProjection):null,i=n?$Y(n.dataProjection):null;let s=t;if(r&&i&&!ZY(r,i)){e&&(s=t.clone());const n=e?r:i,o=e?i:r;"tile-pixels"===n.getUnits()?s.transform(n,o):s.applyTransform(XY(n,o))}if(e&&n&&void 0!==n.decimals){const e=Math.pow(10,n.decimals),r=function(t){for(let n=0,r=t.length;nZ5({...t,geometry:e})).flat();const r="MultiPolygon"===n.type?"Polygon":n.type;if("GeometryCollection"===r||"Circle"===r)throw new Error("Unsupported geometry type: "+r);const i=n.layout.length;return H5(new N5(r,"Polygon"===r?function(t,e,n){return Array.isArray(e[0])?(eJ(t,0,e,n)||rJ(t=t.slice(),0,e,n),t):(tJ(t,0,e,n)||nJ(t=t.slice(),0,e,n),t)}(n.flatCoordinates,n.ends,i):n.flatCoordinates,n.ends?.flat(),i,t.properties||{},t.id).enableSimplifyTransformed(),!1,e)}function K5(t,e){if(!t)return null;if(Array.isArray(t)){const n=t.map(t=>K5(t,e));return new q5(n)}return H5(new(0,G5[t.type])(t.flatCoordinates,t.layout||"XY",t.ends),!1,e)}var Y5=class extends W5{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(X5(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(X5(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return aZ()}readFeaturesFromObject(t,e){return aZ()}readGeometry(t,e){return this.readGeometryFromObject(X5(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return aZ()}readProjection(t){return this.readProjectionFromObject(X5(t))}readProjectionFromObject(t){return aZ()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return aZ()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return aZ()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return aZ()}};function X5(t){return"string"==typeof t?JSON.parse(t)||null:null!==t?t:null}var J5=class extends Y5{constructor(t){t=t||{},super(),this.dataProjection=$Y(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=$Y(t.featureProjection)),t.featureClass&&(this.featureClass=t.featureClass),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let n=null;n="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const r=Q5(n.geometry);if(this.featureClass===N5)return Z5({geometry:r,id:n.id,properties:n.properties},e);const i=new(0,this.featureClass);return this.geometryName_?i.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&i.setGeometryName(n.geometry_name),i.setGeometry(K5(r,e)),"id"in n&&i.setId(n.id),n.properties&&i.setProperties(n.properties,!0),i}readFeaturesFromObject(t,e){let n=null;if("FeatureCollection"===t.type){n=[];const r=t.features;for(let t=0,i=r.length;t":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"expression_name",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-layer-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}},f4=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function g4(t,e){const n={};for(const r in t)"ref"!==r&&(n[r]=t[r]);return f4.forEach(t=>{t in e&&(n[t]=e[t])}),n}function m4(t){t=t.slice();const e=Object.create(null);for(let n=0;n`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}var D4=[_4,x4,C4,k4,S4,E4,P4,R4,z4(L4),I4,A4,M4,O4,N4];function j4(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!j4(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of D4)if(!j4(t,e))return null}return`Expected ${F4(t)} but found ${F4(e)} instead.`}function U4(t,e){return e.some(e=>e.kind===t.kind)}function B4(t,e){return e.some(e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t)}function $4(t,e){return"array"===t.kind&&"array"===e.kind?t.itemType.kind===e.itemType.kind&&"number"==typeof t.N:t.kind===e.kind}var q4=.96422,V4=.82521,W4=4/29,H4=6/29,G4=3*H4*H4,Z4=H4*H4*H4,K4=Math.PI/180,Y4=180/Math.PI;function X4(t){return(t%=360)<0&&(t+=360),t}function J4([t,e,n,r]){let i,s;const o=t6((.2225045*(t=Q4(t))+.7168786*(e=Q4(e))+.0606169*(n=Q4(n)))/1);t===e&&e===n?i=s=o:(i=t6((.4360747*t+.3850649*e+.1430804*n)/q4),s=t6((.0139322*t+.0971045*e+.7141733*n)/V4));const a=116*o-16;return[a<0?0:a,500*(i-o),200*(o-s),r]}function Q4(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function t6(t){return t>Z4?Math.pow(t,1/3):t/G4+W4}function e6([t,e,n,r]){let i=(t+16)/116,s=isNaN(e)?i:i+e/500,o=isNaN(n)?i:i-n/200;return i=1*r6(i),s=q4*r6(s),o=V4*r6(o),[n6(3.1338561*s-1.6168667*i-.4906146*o),n6(-.9787684*s+1.9161415*i+.033454*o),n6(.0719453*s-.2289914*i+1.4052427*o),r]}function n6(t){return(t=t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055)<0?0:t>1?1:t}function r6(t){return t>H4?t*t*t:G4*(t-W4)}var i6=Object.hasOwn||function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};function s6(t,e){return i6(t,e)?t[e]:void 0}function o6(t){return parseInt(t.padEnd(2,t),16)/255}function a6(t,e){return l6(e?t/100:t,0,1)}function l6(t,e,n){return Math.min(Math.max(e,t),n)}function c6(t){return!t.some(Number.isNaN)}var u6={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function h6(t,e,n){return t+n*(e-t)}function d6(t,e,n){return t.map((t,r)=>h6(t,e[r],n))}var p6=class t{constructor(t,e,n,r=1,i=!0){this.r=t,this.g=e,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter("rgb",[t,e,n,r]))}static{this.black=new t(0,0,0,1)}static{this.white=new t(1,1,1,1)}static{this.transparent=new t(0,0,0,0)}static{this.red=new t(1,0,0,1)}static parse(e){if(e instanceof t)return e;if("string"!=typeof e)return;const n=function(t){if("transparent"===(t=t.toLowerCase().trim()))return[0,0,0,0];const e=s6(u6,t);if(e){const[t,n,r]=e;return[t/255,n/255,r/255,1]}if(t.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t)){const e=t.length<6?1:2;let n=1;return[o6(t.slice(n,n+=e)),o6(t.slice(n,n+=e)),o6(t.slice(n,n+=e)),o6(t.slice(n,n+e)||"ff")]}if(t.startsWith("rgb")){const e=t.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(e){const[t,n,r,i,s,o,a,l,c,u,h,d]=e,p=[i||" ",a||" ",u].join("");if(" "===p||" /"===p||",,"===p||",,,"===p){const t=[r,o,c].join(""),e="%%%"===t?100:""===t?255:0;if(e){const t=[l6(+n/e,0,1),l6(+s/e,0,1),l6(+l/e,0,1),h?a6(+h,d):1];if(c6(t))return t}}return}}const n=t.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){const[t,e,r,i,s,o,a,l,c]=n,u=[r||" ",s||" ",a].join("");if(" "===u||" /"===u||",,"===u||",,,"===u){const t=[+e,l6(+i,0,100),l6(+o,0,100),l?a6(+l,c):1];if(c6(t))return function([t,e,n,r]){function i(r){const i=(r+t/30)%12,s=e*Math.min(n,1-n);return n-s*Math.max(-1,Math.min(i-3,9-i,1))}return t=X4(t),e/=100,n/=100,[i(0),i(8),i(4),r]}(t)}}}(e);return n?new t(...n,!1):void 0}get rgb(){const{r:t,g:e,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter("rgb",[t/i,e/i,n/i,r])}get hcl(){return this.overwriteGetter("hcl",function(t){const[e,n,r,i]=J4(t),s=Math.sqrt(n*n+r*r);return[Math.round(1e4*s)?X4(Math.atan2(r,n)*Y4):NaN,s,e,i]}(this.rgb))}get lab(){return this.overwriteGetter("lab",J4(this.rgb))}overwriteGetter(t,e){return Object.defineProperty(this,t,{value:e}),e}toString(){const[t,e,n,r]=this.rgb;return`rgba(${[t,e,n].map(t=>Math.round(255*t)).join(",")},${r})`}static interpolate(e,n,r,i="rgb"){switch(i){case"rgb":{const[i,s,o,a]=d6(e.rgb,n.rgb,r);return new t(i,s,o,a,!1)}case"hcl":{const[i,s,o,a]=e.hcl,[l,c,u,h]=n.hcl;let d,p;if(isNaN(i)||isNaN(l))isNaN(i)?isNaN(l)?d=NaN:(d=l,1!==o&&0!==o||(p=c)):(d=i,1!==u&&0!==u||(p=s));else{let t=l-i;l>i&&t>180?t-=360:l180&&(t+=360),d=i+r*t}const[f,g,m,y]=function([t,e,n,r]){return t=isNaN(t)?0:t*K4,e6([n,Math.cos(t)*e,Math.sin(t)*e,r])}([d,p??h6(s,c,r),h6(o,u,r),h6(a,h,r)]);return new t(f,g,m,y,!1)}case"lab":{const[i,s,o,a]=e6(d6(e.lab,n.lab,r));return new t(i,s,o,a,!1)}}}},f6=class{constructor(t,e,n){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}},g6=["bottom","center","top"],m6=class{constructor(t,e,n,r,i,s){this.text=t,this.image=e,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=s}},y6=class t{constructor(t){this.sections=t}static fromString(e){return new t([new m6(e,null,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(e){return e instanceof t?e:t.fromString(e)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}},v6=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("number"==typeof e)return new t([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const t of e)if("number"!=typeof t)return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new t(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r){return new t(d6(e.values,n.values,r))}},b6=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("number"==typeof e)return new t([e]);if(Array.isArray(e)){for(const t of e)if("number"!=typeof t)return;return new t(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r){return new t(d6(e.values,n.values,r))}},w6=class t{constructor(t){this.values=t.slice()}static parse(e){if(e instanceof t)return e;if("string"==typeof e){const n=p6.parse(e);if(!n)return;return new t([n])}if(!Array.isArray(e))return;const n=[];for(const t of e){if("string"!=typeof t)return;const e=p6.parse(t);if(!e)return;n.push(e)}return new t(n)}toString(){return JSON.stringify(this.values)}static interpolate(e,n,r,i="rgb"){const s=[];if(e.values.length!=n.values.length)throw new Error(`colorArray: Arrays have mismatched length (${e.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let t=0;t=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof n&&n>=0&&n<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,e,n,r].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,e,n,r]:[t,e,n]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function R6(t){if(null===t||"string"==typeof t||"boolean"==typeof t||"number"==typeof t||t instanceof S6||t instanceof p6||t instanceof f6||t instanceof y6||t instanceof v6||t instanceof b6||t instanceof w6||t instanceof C6||t instanceof k6)return!0;if(Array.isArray(t)){for(const e of t)if(!R6(e))return!1;return!0}if("object"==typeof t){for(const e in t)if(!R6(t[e]))return!1;return!0}return!1}function L6(t){if(null===t)return _4;if("string"==typeof t)return C4;if("boolean"==typeof t)return k4;if("number"==typeof t)return x4;if(t instanceof p6)return S4;if(t instanceof S6)return E4;if(t instanceof f6)return T4;if(t instanceof y6)return P4;if(t instanceof v6)return I4;if(t instanceof b6)return A4;if(t instanceof w6)return M4;if(t instanceof C6)return N4;if(t instanceof k6)return O4;if(Array.isArray(t)){const e=t.length;let n;for(const r of t){const t=L6(r);if(n){if(n===t)continue;n=L4;break}n=t}return z4(n||L4,e)}return R4}function T6(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof p6||t instanceof S6||t instanceof y6||t instanceof v6||t instanceof b6||t instanceof w6||t instanceof C6||t instanceof k6?t.toString():JSON.stringify(t)}var P6=class t{constructor(t,e){this.type=t,this.value=e}static parse(e,n){if(2!==e.length)return n.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!R6(e[1]))return n.error("invalid value");const r=e[1];let i=L6(r);const s=n.expectedType;return"array"!==i.kind||0!==i.N||!s||"array"!==s.kind||"number"==typeof s.N&&0!==s.N||(i=s),new t(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}},I6={string:C4,number:x4,boolean:k4,object:R4},M6=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");let r,i=1;const s=e[0];if("array"===s){let t,s;if(e.length>2){const r=e[1];if("string"!=typeof r||!(r in I6)||"object"===r)return n.error('The item type argument of "array" must be one of string, number, boolean',1);t=I6[r],i++}else t=L4;if(e.length>3){if(null!==e[2]&&("number"!=typeof e[2]||e[2]<0||e[2]!==Math.floor(e[2])))return n.error('The length argument to "array" must be a positive integer literal',2);s=e[2],i++}r=z4(t,s)}else{if(!I6[s])throw new Error(`Types doesn't contain name = ${s}`);r=I6[s]}const o=[];for(;it.outputDefined())}},A6={"to-boolean":k4,"to-color":S4,"to-number":x4,"to-string":C4},O6=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");const r=e[0];if(!A6[r])throw new Error(`Can't parse ${r} as it is not part of the known types`);if(("to-boolean"===r||"to-string"===r)&&2!==e.length)return n.error("Expected one argument.");const i=A6[r],s=[];for(let t=1;t4?`Invalid rgba value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:E6(e[0],e[1],e[2],e[3]),!n))return new p6(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new _6(n||`Could not parse color from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"padding":{let e;for(const n of this.args){e=n.evaluate(t);const r=v6.parse(e);if(r)return r}throw new _6(`Could not parse padding from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"numberArray":{let e;for(const n of this.args){e=n.evaluate(t);const r=b6.parse(e);if(r)return r}throw new _6(`Could not parse numberArray from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"colorArray":{let e;for(const n of this.args){e=n.evaluate(t);const r=w6.parse(e);if(r)return r}throw new _6(`Could not parse colorArray from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"variableAnchorOffsetCollection":{let e;for(const n of this.args){e=n.evaluate(t);const r=C6.parse(e);if(r)return r}throw new _6(`Could not parse variableAnchorOffsetCollection from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"number":{let e=null;for(const n of this.args){if(e=n.evaluate(t),null===e)return 0;const r=Number(e);if(!isNaN(r))return r}throw new _6(`Could not convert ${JSON.stringify(e)} to number.`)}case"formatted":return y6.fromString(T6(this.args[0].evaluate(t)));case"resolvedImage":return k6.fromString(T6(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return T6(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}},N6=["Unknown","Point","LineString","Polygon"],z6=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?N6[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache.get(t);return e||(e=p6.parse(t),this._parseColorCache.set(t,e)),e}},F6=class t{constructor(t,e,n=[],r,i=new w4,s=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=i,this.errors=s,this.expectedType=r,this._isConstant=e}parse(t,e,n,r,i={}){return e?this.concat(e,n,r)._parse(t,i):this._parse(t,i)}_parse(t,e){function n(t,e,n){return"assert"===n?new M6(e,[t]):"coerce"===n?new O6(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const i=t[0];if("string"!=typeof i)return this.error(`Expression name must be a string, but found ${typeof i} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const s=this.registry[i];if(s){let i=s.parse(t,this);if(!i)return null;if(this.expectedType){const t=this.expectedType,r=i.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==r.kind){if("projectionDefinition"===t.kind&&["string","array"].includes(r.kind)||["color","formatted","resolvedImage"].includes(t.kind)&&["value","string"].includes(r.kind)||["padding","numberArray"].includes(t.kind)&&["value","number","array"].includes(r.kind)||"colorArray"===t.kind&&["value","string","array"].includes(r.kind)||"variableAnchorOffsetCollection"===t.kind&&["value","array"].includes(r.kind))i=n(i,t,e.typeAnnotation||"coerce");else if(this.checkSubtype(t,r))return null}else i=n(i,t,e.typeAnnotation||"assert")}if(!(i instanceof P6)&&"resolvedImage"!==i.type.kind&&this._isConstant(i)){const t=new z6;try{i=new P6(i.type,i.evaluate(t))}catch(r){return this.error(r.message),null}}return i}return this.error(`Unknown expression "${i}". If you wanted a literal array, use ["literal", [...]].`,0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error(`Expected an array, but found ${typeof t} instead.`)}concat(e,n,r){const i="number"==typeof e?this.path.concat(e):this.path,s=r?this.scope.concat(r):this.scope;return new t(this.registry,this._isConstant,i,n||null,s,this.errors)}error(t,...e){const n=`${this.key}${e.map(t=>`[${t}]`).join("")}`;this.errors.push(new b4(n,t))}checkSubtype(t,e){const n=j4(t,e);return n&&this.error(n),n}},D6=class t{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result)}static parse(e,n){if(e.length<4)return n.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const r=[];for(let t=1;te))throw new _6("Input is not a number.");o=a-1}return 0}var B6=class t{constructor(t,e,n){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[r,i]of n)this.labels.push(r),this.outputs.push(i)}static parse(e,n){if(e.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return n.error("Expected an even number of arguments.");const r=n.parse(e[1],1,x4);if(!r)return null;const i=[];let s=null;n.expectedType&&"value"!==n.expectedType.kind&&(s=n.expectedType);for(let t=1;t=r)return n.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',a);const c=n.parse(o,l,s);if(!c)return null;s=s||c.type,i.push([r,c])}return new t(s,r,i)}evaluate(t){const e=this.labels,n=this.outputs;if(1===e.length)return n[0].evaluate(t);const r=this.input.evaluate(t);if(r<=e[0])return n[0].evaluate(t);const i=e.length;return r>=e[i-1]?n[i-1].evaluate(t):n[U6(e,r)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}},$6=class t{constructor(t,e,n,r,i){this.type=t,this.operator=e,this.interpolation=n,this.input=r,this.labels=[],this.outputs=[];for(const[s,o]of i)this.labels.push(s),this.outputs.push(o)}static interpolationFactor(t,e,n,r){let i=0;if("exponential"===t.name)i=q6(e,t.base,n,r);else if("linear"===t.name)i=q6(e,1,n,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=function(t,e,n,r){const i=3*t,s=3*(n-t)-i,o=1-i-s,a=3*e,l=3*(r-e)-a,c=1-a-l;return function(t,e=1e-6){if(t<=0)return 0;if(t>=1)return 1;let n=t;for(let h=0;h<8;h++){const r=((o*n+s)*n+i)*n-t;if(Math.abs(r)a?r=n:u=n,n=.5*(r+u)}return((c*n+l)*n+a)*n}}(s[0],s[1],s[2],s[3])(q6(e,1,n,r))}return i}static parse(e,n){let[r,i,s,...o]=e;if(!Array.isArray(i)||0===i.length)return n.error("Expected an interpolation type expression.",1);if("linear"===i[0])i={name:"linear"};else if("exponential"===i[0]){const t=i[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);i={name:"exponential",base:t}}else{if("cubic-bezier"!==i[0])return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);{const t=i.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);i={name:"cubic-bezier",controlPoints:t}}}if(e.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(s=n.parse(s,2,x4),!s)return null;const a=[];let l=null;"interpolate-hcl"!==r&&"interpolate-lab"!==r||n.expectedType==M4?n.expectedType&&"value"!==n.expectedType.kind&&(l=n.expectedType):l=S4;for(let t=0;t=e)return n.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const c=n.parse(r,s,l);if(!c)return null;l=l||c.type,a.push([e,c])}return $4(l,x4)||$4(l,E4)||$4(l,S4)||$4(l,I4)||$4(l,A4)||$4(l,M4)||$4(l,N4)||$4(l,z4(x4))?new t(l,r,i,s,a):n.error(`Type ${F4(l)} is not interpolatable.`)}evaluate(e){const n=this.labels,r=this.outputs;if(1===n.length)return r[0].evaluate(e);const i=this.input.evaluate(e);if(i<=n[0])return r[0].evaluate(e);const s=n.length;if(i>=n[s-1])return r[s-1].evaluate(e);const o=U6(n,i),a=n[o],l=n[o+1],c=t.interpolationFactor(this.interpolation,i,a,l),u=r[o].evaluate(e),h=r[o+1].evaluate(e);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return h6(u,h,c);case"color":return p6.interpolate(u,h,c);case"padding":return v6.interpolate(u,h,c);case"colorArray":return w6.interpolate(u,h,c);case"numberArray":return b6.interpolate(u,h,c);case"variableAnchorOffsetCollection":return C6.interpolate(u,h,c);case"array":return d6(u,h,c);case"projectionDefinition":return S6.interpolate(u,h,c)}case"interpolate-hcl":switch(this.type.kind){case"color":return p6.interpolate(u,h,c,"hcl");case"colorArray":return w6.interpolate(u,h,c,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return p6.interpolate(u,h,c,"lab");case"colorArray":return w6.interpolate(u,h,c,"lab")}}}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}};function q6(t,e,n,r){const i=r-n,s=t-n;return 0===i?0:1===e?s/i:(Math.pow(e,s)-1)/(Math.pow(e,i)-1)}p6.interpolate,v6.interpolate,b6.interpolate,w6.interpolate,C6.interpolate;var V6=class t{constructor(t,e){this.type=t,this.args=e}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");let r=null;const i=n.expectedType;i&&"value"!==i.kind&&(r=i);const s=[];for(const t of e.slice(1)){const e=n.parse(t,1+s.length,r,void 0,{typeAnnotation:"omit"});if(!e)return null;r=r||e.type,s.push(e)}if(!r)throw new Error("No output type");return i&&s.some(t=>j4(i,t.type))?new t(L4,s):new t(r,s)}evaluate(t){let e,n=null,r=0;for(const i of this.args)if(r++,n=i.evaluate(t),n&&n instanceof k6&&!n.available&&(e||(e=n.name),n=null,r===this.args.length&&(n=e)),null!==n)break;return n}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}};function W6(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function H6(t,e,n,r){return 0===r.compare(e,n)}function G6(t,e,n){const r="=="!==t&&"!="!==t;return class i{constructor(t,e,n){this.type=k4,this.lhs=t,this.rhs=e,this.collator=n,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const n=t[0];let s=e.parse(t[1],1,L4);if(!s)return null;if(!W6(n,s.type))return e.concat(1).error(`"${n}" comparisons are not supported for type '${F4(s.type)}'.`);let o=e.parse(t[2],2,L4);if(!o)return null;if(!W6(n,o.type))return e.concat(2).error(`"${n}" comparisons are not supported for type '${F4(o.type)}'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error(`Cannot compare types '${F4(s.type)}' and '${F4(o.type)}'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new M6(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new M6(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(a=e.parse(t[3],3,T4),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const e=L6(s),n=L6(o);if(e.kind!==n.kind||"string"!==e.kind&&"number"!==e.kind)throw new _6(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${n.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=L6(s),n=L6(o);if("string"!==t.kind||"string"!==n.kind)return e(i,s,o)}return this.collator?n(i,s,o,this.collator.evaluate(i)):e(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}}}var Z6=G6("==",function(t,e,n){return e===n},H6),K6=G6("!=",function(t,e,n){return e!==n},function(t,e,n,r){return!H6(0,e,n,r)}),Y6=G6("<",function(t,e,n){return e",function(t,e,n){return e>n},function(t,e,n,r){return r.compare(e,n)>0}),J6=G6("<=",function(t,e,n){return e<=n},function(t,e,n,r){return r.compare(e,n)<=0}),Q6=G6(">=",function(t,e,n){return e>=n},function(t,e,n,r){return r.compare(e,n)>=0}),t8=class t{constructor(t,e,n){this.type=T4,this.locale=n,this.caseSensitive=t,this.diacriticSensitive=e}static parse(e,n){if(2!==e.length)return n.error("Expected one argument.");const r=e[1];if("object"!=typeof r||Array.isArray(r))return n.error("Collator options argument must be an object.");const i=n.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,k4);if(!i)return null;const s=n.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,k4);if(!s)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,C4),!o)?null:new t(i,s,o)}evaluate(t){return new f6(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}},e8=8192;function n8(t,e){const n=(180+t[0])/360,r=(i=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360);var i;const s=Math.pow(2,e.z);return[Math.round(n*s*e8),Math.round(r*s*e8)]}function r8(t,e){const n=Math.pow(2,e.z);return[(i=(t[0]/e8+e.x)/n,360*i-180),(r=(t[1]/e8+e.y)/n,360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90)];var r,i}function i8(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1])}function s8(t,e){return!(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function o8(t,e,n){return e[1]>t[1]!=n[1]>t[1]&&t[0]<(n[0]-e[0])*(t[1]-e[1])/(n[1]-e[1])+e[0]}function a8(t,e,n){const r=t[0]-e[0],i=t[1]-e[1],s=t[0]-n[0],o=t[1]-n[1];return r*o-s*i===0&&r*s<=0&&i*o<=0}function l8(t,e,n,r){const i=[e[0]-t[0],e[1]-t[1]];return 0!==function(t,e){return t[0]*e[1]-t[1]*e[0]}([r[0]-n[0],r[1]-n[1]],i)&&!(!f8(t,e,n,r)||!f8(n,r,t,e))}function c8(t,e,n){for(const r of n)for(let n=0;n0&&h<0||u<0&&h>0}function g8(t,e,n){const r=[];for(let i=0;in[2]){const e=.5*r;let i=t[0]-n[0]>e?-r:n[0]-t[0]>e?r:0;0===i&&(i=t[0]-n[2]>e?-r:n[2]-t[0]>e?r:0),t[0]+=i}i8(e,t)}function v8(t,e,n,r){const i=Math.pow(2,r.z)*e8,s=[r.x*e8,r.y*e8],o=[];for(const a of t)for(const t of a){const r=[t.x+s[0],t.y+s[1]];y8(r,e,n,i),o.push(r)}return o}function b8(t,e,n,r){const i=Math.pow(2,r.z)*e8,s=[r.x*e8,r.y*e8],o=[];for(const a of t){const t=[];for(const n of a){const r=[n.x+s[0],n.y+s[1]];i8(e,r),t.push(r)}o.push(t)}if(e[2]-e[0]<=i/2){!function(t){t[0]=t[1]=1/0,t[2]=t[3]=-1/0}(e);for(const t of o)for(const r of t)y8(r,e,n,i)}return o}var w8=class t{constructor(t,e){this.type=k4,this.geojson=t,this.geometries=e}static parse(e,n){if(2!==e.length)return n.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(R6(e[1])){const n=e[1];if("FeatureCollection"===n.type){const e=[];for(const t of n.features){const{type:n,coordinates:r}=t.geometry;"Polygon"===n&&e.push(r),"MultiPolygon"===n&&e.push(...r)}if(e.length)return new t(n,{type:"MultiPolygon",coordinates:e})}else if("Feature"===n.type){const e=n.geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new t(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new t(n,n)}return n.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){const s=g8(e.coordinates,r,i),o=v8(t.geometry(),n,r,i);if(!s8(n,r))return!1;for(const t of o)if(!u8(t,s))return!1}if("MultiPolygon"===e.type){const s=m8(e.coordinates,r,i),o=v8(t.geometry(),n,r,i);if(!s8(n,r))return!1;for(const t of o)if(!h8(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){const s=g8(e.coordinates,r,i),o=b8(t.geometry(),n,r,i);if(!s8(n,r))return!1;for(const t of o)if(!d8(t,s))return!1}if("MultiPolygon"===e.type){const s=m8(e.coordinates,r,i),o=b8(t.geometry(),n,r,i);if(!s8(n,r))return!1;for(const t of o)if(!p8(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}},_8=class{constructor(t=[],e=(t,e)=>te?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:n}=this,r=e[t];for(;t>0;){const i=t-1>>1,s=e[i];if(n(r,s)>=0)break;e[t]=s,t=i}e[t]=r}_down(t){const{data:e,compare:n}=this,r=this.length>>1,i=e[t];for(;t=0)break;e[t]=e[r],t=r}e[t]=i}};function x8(t){let e=0;for(let n,r,i=0,s=t.length,o=s-1;i1?(l=t[a+1][0],c=t[a+1][1]):d>0&&(l+=u/this.kx*d,c+=h/this.ky*d)),u=this.wrap(e[0]-l)*this.kx,h=(e[1]-c)*this.ky;const p=u*u+h*h;p180;)t-=360;return t}};function S8(t,e){return e[0]-t[0]}function E8(t){return t[1]-t[0]+1}function R8(t,e){return t[1]>=t[0]&&t[1]t[1])return[null,null];const n=E8(t);if(e){if(2===n)return[t,null];const e=Math.floor(n/2);return[[t[0],t[0]+e],[t[0]+e,t[1]]]}if(1===n)return[t,null];const r=Math.floor(n/2)-1;return[[t[0],t[0]+r],[t[0]+r+1,t[1]]]}function T8(t,e){if(!R8(e,t.length))return[1/0,1/0,-1/0,-1/0];const n=[1/0,1/0,-1/0,-1/0];for(let r=e[0];r<=e[1];++r)i8(n,t[r]);return n}function P8(t){const e=[1/0,1/0,-1/0,-1/0];for(const n of t)for(const t of n)i8(e,t);return e}function I8(t){return t[0]!==-1/0&&t[1]!==-1/0&&t[2]!==1/0&&t[3]!==1/0}function M8(t,e,n){if(!I8(t)||!I8(e))return NaN;let r=0,i=0;return t[2]e[2]&&(r=t[0]-e[2]),t[1]>e[3]&&(i=t[1]-e[3]),t[3]=r)return r;if(s8(i,s)){if(j8(t,e))return 0}else if(j8(e,t))return 0;let o=1/0;for(const a of t)for(let t=0,r=a.length,i=r-1;t0;){const i=o.pop();if(i[0]>=s)continue;const l=i[1],c=e?50:100;if(E8(l)<=c){if(!R8(l,t.length))return NaN;if(e){const e=D8(t,l,n,r);if(isNaN(e)||0===e)return e;s=Math.min(s,e)}else for(let e=l[0];e<=l[1];++e){const i=F8(t[e],n,r);if(s=Math.min(s,i),0===s)return 0}}else{const n=L8(l,e);B8(o,s,r,t,a,n[0]),B8(o,s,r,t,a,n[1])}}return s}function V8(t,e,n,r,i,s=1/0){let o=Math.min(s,i.distance(t[0],n[0]));if(0===o)return o;const a=new _8([[0,[0,t.length-1],[0,n.length-1]]],S8);for(;a.length>0;){const s=a.pop();if(s[0]>=o)continue;const l=s[1],c=s[2],u=e?50:100,h=r?50:100;if(E8(l)<=u&&E8(c)<=h){if(!R8(l,t.length)&&R8(c,n.length))return NaN;let s;if(e&&r)s=N8(t,l,n,c,i),o=Math.min(o,s);else if(e&&!r){const e=t.slice(l[0],l[1]+1);for(let t=c[0];t<=c[1];++t)if(s=A8(n[t],e,i),o=Math.min(o,s),0===o)return o}else if(!e&&r){const e=n.slice(c[0],c[1]+1);for(let n=l[0];n<=l[1];++n)if(s=A8(t[n],e,i),o=Math.min(o,s),0===o)return o}else s=z8(t,l,n,c,i),o=Math.min(o,s)}else{const s=L8(l,e),u=L8(c,r);$8(a,o,i,t,n,s[0],u[0]),$8(a,o,i,t,n,s[0],u[1]),$8(a,o,i,t,n,s[1],u[0]),$8(a,o,i,t,n,s[1],u[1])}}return o}function W8(t){return"MultiPolygon"===t.type?t.coordinates.map(t=>({type:"Polygon",coordinates:t})):"MultiLineString"===t.type?t.coordinates.map(t=>({type:"LineString",coordinates:t})):"MultiPoint"===t.type?t.coordinates.map(t=>({type:"Point",coordinates:t})):[t]}var H8=class t{constructor(t,e){this.type=x4,this.geojson=t,this.geometries=e}static parse(e,n){if(2!==e.length)return n.error(`'distance' expression requires exactly one argument, but found ${e.length-1} instead.`);if(R6(e[1])){const n=e[1];if("FeatureCollection"===n.type)return new t(n,n.features.map(t=>W8(t.geometry)).flat());if("Feature"===n.type)return new t(n,W8(n.geometry));if("type"in n&&"coordinates"in n)return new t(n,W8(n))}return n.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){const n=t.geometry(),r=n.flat().map(e=>r8([e.x,e.y],t.canonical));if(0===n.length)return NaN;const i=new k8(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,V8(r,!1,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,V8(r,!1,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,q8(r,!1,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){const n=t.geometry(),r=n.flat().map(e=>r8([e.x,e.y],t.canonical));if(0===n.length)return NaN;const i=new k8(r[0][1]);let s=1/0;for(const o of e){switch(o.type){case"Point":s=Math.min(s,V8(r,!0,[o.coordinates],!1,i,s));break;case"LineString":s=Math.min(s,V8(r,!0,o.coordinates,!0,i,s));break;case"Polygon":s=Math.min(s,q8(r,!0,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries);if("Polygon"===t.geometryType())return function(t,e){const n=t.geometry();if(0===n.length||0===n[0].length)return NaN;const r=function(t){if(t.length<=1)return[t];const e=[];let n,r;for(const i of t){const t=x8(i);0!==t&&(i.area=Math.abs(t),void 0===r&&(r=t<0),r===t<0?(n&&e.push(n),n=[i]):n.push(i))}return n&&e.push(n),e}(n).map(e=>e.map(e=>e.map(e=>r8([e.x,e.y],t.canonical)))),i=new k8(r[0][0][0][1]);let s=1/0;for(const o of e)for(const t of r){switch(o.type){case"Point":s=Math.min(s,q8([o.coordinates],!1,t,i,s));break;case"LineString":s=Math.min(s,q8(o.coordinates,!0,t,i,s));break;case"Polygon":s=Math.min(s,U8(t,o.coordinates,i,s))}if(0===s)return s}return s}(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}},G8=class t{constructor(t){this.type=L4,this.key=t}static parse(e,n){if(2!==e.length)return n.error(`Expected 1 argument, but found ${e.length-1} instead.`);const r=e[1];return null==r?n.error("Global state property must be defined."):"string"!=typeof r?n.error(`Global state property must be string, but found ${typeof e[1]} instead.`):new t(r)}evaluate(t){const e=t.globals?.globalState;return e&&0!==Object.keys(e).length?s6(e,this.key)??null:null}eachChild(){}outputDefined(){return!1}},Z8={"==":Z6,"!=":K6,">":X6,"<":Y6,">=":Q6,"<=":J6,array:M6,at:class t{constructor(t,e,n){this.type=t,this.index=e,this.input=n}static parse(e,n){if(3!==e.length)return n.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,x4),i=n.parse(e[2],2,z4(n.expectedType||L4));if(!r||!i)return null;const s=i.type;return new t(s.itemType,r,i)}evaluate(t){const e=this.index.evaluate(t),n=this.input.evaluate(t);if(e<0)throw new _6(`Array index out of bounds: ${e} < 0.`);if(e>=n.length)throw new _6(`Array index out of bounds: ${e} > ${n.length-1}.`);if(e!==Math.floor(e))throw new _6(`Array index must be an integer, but found ${e} instead.`);return n[e]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}},boolean:M6,case:class t{constructor(t,e,n){this.type=t,this.branches=e,this.otherwise=n}static parse(e,n){if(e.length<4)return n.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return n.error("Expected an odd number of arguments.");let r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i=[];for(let t=1;te.outputDefined())&&this.otherwise.outputDefined()}},coalesce:V6,collator:t8,format:class t{constructor(t){this.type=P4,this.sections=t}static parse(e,n){if(e.length<2)return n.error("Expected at least one argument.");const r=e[1];if(!Array.isArray(r)&&"object"==typeof r)return n.error("First argument must be an image or text section.");const i=[];let s=!1;for(let t=1;t<=e.length-1;++t){const r=e[t];if(s&&"object"==typeof r&&!Array.isArray(r)){s=!1;let t=null;if(r["font-scale"]&&(t=n.parse(r["font-scale"],1,x4),!t))return null;let e=null;if(r["text-font"]&&(e=n.parse(r["text-font"],1,z4(C4)),!e))return null;let o=null;if(r["text-color"]&&(o=n.parse(r["text-color"],1,S4),!o))return null;let a=null;if(r["vertical-align"]){if("string"==typeof r["vertical-align"]&&!g6.includes(r["vertical-align"]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r["vertical-align"]}' instead.`);if(a=n.parse(r["vertical-align"],1,C4),!a)return null}const l=i[i.length-1];l.scale=t,l.font=e,l.textColor=o,l.verticalAlign=a}else{const r=n.parse(e[t],1,L4);if(!r)return null;const o=r.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");s=!0,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null})}}return new t(i)}evaluate(t){return new y6(this.sections.map(e=>{const n=e.content.evaluate(t);return L6(n)===O4?new m6("",n,null,null,null,e.verticalAlign?e.verticalAlign.evaluate(t):null):new m6(T6(n),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null,e.verticalAlign?e.verticalAlign.evaluate(t):null)}))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor),e.verticalAlign&&t(e.verticalAlign)}outputDefined(){return!1}},image:class t{constructor(t){this.type=O4,this.input=t}static parse(e,n){if(2!==e.length)return n.error("Expected two arguments.");const r=n.parse(e[1],1,C4);return r?new t(r):n.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),n=k6.fromString(e);return n&&t.availableImages&&(n.available=t.availableImages.indexOf(e)>-1),n}eachChild(t){t(this.input)}outputDefined(){return!1}},in:class t{constructor(t,e){this.type=k4,this.needle=t,this.haystack=e}static parse(e,n){if(3!==e.length)return n.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,L4),i=n.parse(e[2],2,L4);return r&&i?U4(r.type,[k4,C4,x4,_4,L4])?new t(r,i):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${F4(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),n=this.haystack.evaluate(t);if(!n)return!1;if(!B4(e,["boolean","string","number","null"]))throw new _6(`Expected first argument to be of type boolean, string, number or null, but found ${F4(L6(e))} instead.`);if(!B4(n,["string","array"]))throw new _6(`Expected second argument to be of type array or string, but found ${F4(L6(n))} instead.`);return n.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}},"index-of":class t{constructor(t,e,n){this.type=x4,this.needle=t,this.haystack=e,this.fromIndex=n}static parse(e,n){if(e.length<=2||e.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,L4),i=n.parse(e[2],2,L4);if(!r||!i)return null;if(!U4(r.type,[k4,C4,x4,_4,L4]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${F4(r.type)} instead`);if(4===e.length){const s=n.parse(e[3],3,x4);return s?new t(r,i,s):null}return new t(r,i)}evaluate(t){const e=this.needle.evaluate(t),n=this.haystack.evaluate(t);if(!B4(e,["boolean","string","number","null"]))throw new _6(`Expected first argument to be of type boolean, string, number or null, but found ${F4(L6(e))} instead.`);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(t)),B4(n,["string"])){const t=n.indexOf(e,r);return-1===t?-1:[...n.slice(0,t)].length}if(B4(n,["array"]))return n.indexOf(e,r);throw new _6(`Expected second argument to be of type array or string, but found ${F4(L6(n))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}},interpolate:$6,"interpolate-hcl":$6,"interpolate-lab":$6,length:class t{constructor(t){this.type=x4,this.input=t}static parse(e,n){if(2!==e.length)return n.error(`Expected 1 argument, but found ${e.length-1} instead.`);const r=n.parse(e[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?n.error(`Expected argument of type string or array, but found ${F4(r.type)} instead.`):new t(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return[...e].length;if(Array.isArray(e))return e.length;throw new _6(`Expected value to be of type string or array, but found ${F4(L6(e))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}},let:D6,literal:P6,match:class t{constructor(t,e,n,r,i,s){this.inputType=t,this.type=e,this.input=n,this.cases=r,this.outputs=i,this.otherwise=s}static parse(e,n){if(e.length<5)return n.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return n.error("Expected an even number of arguments.");let r,i;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);const s={},o=[];for(let t=2;tNumber.MAX_SAFE_INTEGER)return c.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,L6(t)))return null}else r=L6(t);if(void 0!==s[String(t)])return c.error("Branch labels must be unique.");s[String(t)]=o.length}const u=n.parse(l,t,i);if(!u)return null;i=i||u.type,o.push(u)}const a=n.parse(e[1],1,L4);if(!a)return null;const l=n.parse(e[e.length-1],e.length-1,i);return l?"value"!==a.type.kind&&n.concat(1).checkSubtype(r,a.type)?null:new t(r,i,a,s,o,l):null}evaluate(t){const e=this.input.evaluate(t);return(L6(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}},number:M6,"number-format":class t{constructor(t,e,n,r,i,s){this.type=C4,this.number=t,this.locale=e,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(e,n){if(3!==e.length)return n.error("Expected two arguments.");const r=n.parse(e[1],1,x4);if(!r)return null;const i=e[2];if("object"!=typeof i||Array.isArray(i))return n.error("NumberFormat options argument must be an object.");let s=null;if(i.locale&&(s=n.parse(i.locale,1,C4),!s))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,C4),!o))return null;let a=null;if(i.unit&&(a=n.parse(i.unit,1,C4),!a))return null;if(o&&a)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let l=null;if(i["min-fraction-digits"]&&(l=n.parse(i["min-fraction-digits"],1,x4),!l))return null;let c=null;return i["max-fraction-digits"]&&(c=n.parse(i["max-fraction-digits"],1,x4),!c)?null:new t(r,s,o,a,l,c)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":this.unit?"unit":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}},object:M6,slice:class t{constructor(t,e,n,r){this.type=t,this.input=e,this.beginIndex=n,this.endIndex=r}static parse(e,n){if(e.length<=2||e.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const r=n.parse(e[1],1,L4),i=n.parse(e[2],2,x4);if(!r||!i)return null;if(!U4(r.type,[z4(L4),C4,L4]))return n.error(`Expected first argument to be of type array or string, but found ${F4(r.type)} instead`);if(4===e.length){const s=n.parse(e[3],3,x4);return s?new t(r.type,r,i,s):null}return new t(r.type,r,i)}evaluate(t){const e=this.input.evaluate(t),n=this.beginIndex.evaluate(t);let r;if(this.endIndex&&(r=this.endIndex.evaluate(t)),B4(e,["string"]))return[...e].slice(n,r).join("");if(B4(e,["array"]))return e.slice(n,r);throw new _6(`Expected first argument to be of type array or string, but found ${F4(L6(e))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}},step:B6,string:M6,"to-boolean":O6,"to-color":O6,"to-number":O6,"to-string":O6,var:j6,within:w8,distance:H8,"global-state":G8},K8=class t{constructor(t,e,n,r){this.name=t,this.type=e,this._evaluate=n,this.args=r}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(e,n){const r=e[0],i=t.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const s=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,a=o.filter(([t])=>!Array.isArray(t)||t.length===e.length-1);let l=null;for(const[c,u]of a){l=new F6(n.registry,t7,n.path,null,n.scope);const i=[];let o=!1;for(let t=1;t{return e=t,Array.isArray(e)?`(${e.map(F4).join(", ")})`:`(${F4(e.type)}...)`;var e}).join(" | "),r=[];for(let i=1;i{n=e?n&&t7(t):n&&t instanceof P6}),!!n&&e7(t)&&r7(t,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function e7(t){if(t instanceof K8){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof w8)return!1;if(t instanceof H8)return!1;let e=!0;return t.eachChild(t=>{e&&!e7(t)&&(e=!1)}),e}function n7(t){if(t instanceof K8&&"feature-state"===t.name)return!1;let e=!0;return t.eachChild(t=>{e&&!n7(t)&&(e=!1)}),e}function r7(t,e){if(t instanceof K8&&e.indexOf(t.name)>=0)return!1;let n=!0;return t.eachChild(t=>{n&&!r7(t,e)&&(n=!1)}),n}function i7(t){return{result:"success",value:t}}function s7(t){return{result:"error",value:t}}function o7(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function a7(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function l7(t){return!!t.expression&&t.expression.interpolated}function c7(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function u7(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)&&L6(t)===R4}K8.register(Z8,{error:[{kind:"error"},[C4],(t,[e])=>{throw new _6(e.evaluate(t))}],typeof:[C4,[L4],(t,[e])=>F4(L6(e.evaluate(t)))],"to-rgba":[z4(x4,4),[S4],(t,[e])=>{const[n,r,i,s]=e.evaluate(t).rgb;return[255*n,255*r,255*i,s]}],rgb:[S4,[x4,x4,x4],Y8],rgba:[S4,[x4,x4,x4,x4],Y8],has:{type:k4,overloads:[[[C4],(t,[e])=>X8(e.evaluate(t),t.properties())],[[C4,R4],(t,[e,n])=>X8(e.evaluate(t),n.evaluate(t))]]},get:{type:L4,overloads:[[[C4],(t,[e])=>J8(e.evaluate(t),t.properties())],[[C4,R4],(t,[e,n])=>J8(e.evaluate(t),n.evaluate(t))]]},"feature-state":[L4,[C4],(t,[e])=>J8(e.evaluate(t),t.featureState||{})],properties:[R4,[],t=>t.properties()],"geometry-type":[C4,[],t=>t.geometryType()],id:[L4,[],t=>t.id()],zoom:[x4,[],t=>t.globals.zoom],"heatmap-density":[x4,[],t=>t.globals.heatmapDensity||0],elevation:[x4,[],t=>t.globals.elevation||0],"line-progress":[x4,[],t=>t.globals.lineProgress||0],accumulated:[L4,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[x4,Q8(x4),(t,e)=>{let n=0;for(const r of e)n+=r.evaluate(t);return n}],"*":[x4,Q8(x4),(t,e)=>{let n=1;for(const r of e)n*=r.evaluate(t);return n}],"-":{type:x4,overloads:[[[x4,x4],(t,[e,n])=>e.evaluate(t)-n.evaluate(t)],[[x4],(t,[e])=>-e.evaluate(t)]]},"/":[x4,[x4,x4],(t,[e,n])=>e.evaluate(t)/n.evaluate(t)],"%":[x4,[x4,x4],(t,[e,n])=>e.evaluate(t)%n.evaluate(t)],ln2:[x4,[],()=>Math.LN2],pi:[x4,[],()=>Math.PI],e:[x4,[],()=>Math.E],"^":[x4,[x4,x4],(t,[e,n])=>Math.pow(e.evaluate(t),n.evaluate(t))],sqrt:[x4,[x4],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[x4,[x4],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[x4,[x4],(t,[e])=>Math.log(e.evaluate(t))],log2:[x4,[x4],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[x4,[x4],(t,[e])=>Math.sin(e.evaluate(t))],cos:[x4,[x4],(t,[e])=>Math.cos(e.evaluate(t))],tan:[x4,[x4],(t,[e])=>Math.tan(e.evaluate(t))],asin:[x4,[x4],(t,[e])=>Math.asin(e.evaluate(t))],acos:[x4,[x4],(t,[e])=>Math.acos(e.evaluate(t))],atan:[x4,[x4],(t,[e])=>Math.atan(e.evaluate(t))],min:[x4,Q8(x4),(t,e)=>Math.min(...e.map(e=>e.evaluate(t)))],max:[x4,Q8(x4),(t,e)=>Math.max(...e.map(e=>e.evaluate(t)))],abs:[x4,[x4],(t,[e])=>Math.abs(e.evaluate(t))],round:[x4,[x4],(t,[e])=>{const n=e.evaluate(t);return n<0?-Math.round(-n):Math.round(n)}],floor:[x4,[x4],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[x4,[x4],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[k4,[C4,L4],(t,[e,n])=>t.properties()[e.value]===n.value],"filter-id-==":[k4,[L4],(t,[e])=>t.id()===e.value],"filter-type-==":[k4,[C4],(t,[e])=>t.geometryType()===e.value],"filter-<":[k4,[C4,L4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r{const n=t.id(),r=e.value;return typeof n==typeof r&&n":[k4,[C4,L4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[k4,[L4],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n>r}],"filter-<=":[k4,[C4,L4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[k4,[L4],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n<=r}],"filter->=":[k4,[C4,L4],(t,[e,n])=>{const r=t.properties()[e.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[k4,[L4],(t,[e])=>{const n=t.id(),r=e.value;return typeof n==typeof r&&n>=r}],"filter-has":[k4,[L4],(t,[e])=>e.value in t.properties()],"filter-has-id":[k4,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[k4,[z4(C4)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[k4,[z4(L4)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[k4,[C4,z4(L4)],(t,[e,n])=>n.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[k4,[C4,z4(L4)],(t,[e,n])=>function(t,e,n,r){for(;n<=r;){const i=n+r>>1;if(e[i]===t)return!0;e[i]>t?r=i-1:n=i+1}return!1}(t.properties()[e.value],n.value,0,n.value.length-1)],all:{type:k4,overloads:[[[k4,k4],(t,[e,n])=>e.evaluate(t)&&n.evaluate(t)],[Q8(k4),(t,e)=>{for(const n of e)if(!n.evaluate(t))return!1;return!0}]]},any:{type:k4,overloads:[[[k4,k4],(t,[e,n])=>e.evaluate(t)||n.evaluate(t)],[Q8(k4),(t,e)=>{for(const n of e)if(n.evaluate(t))return!0;return!1}]]},"!":[k4,[k4],(t,[e])=>!e.evaluate(t)],"is-supported-script":[k4,[C4],(t,[e])=>{const n=t.globals&&t.globals.isSupportedScript;return!n||n(e.evaluate(t))}],upcase:[C4,[C4],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[C4,[C4],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[C4,Q8(L4),(t,e)=>e.map(e=>T6(e.evaluate(t))).join("")],split:[z4(C4),[C4,C4],(t,[e,n])=>e.evaluate(t).split(n.evaluate(t))],join:[C4,[z4(C4),C4],(t,[e,n])=>e.evaluate(t).join(n.evaluate(t))],"resolved-locale":[C4,[T4],(t,[e])=>e.evaluate(t).resolvedLocale()]});var h7=class{constructor(t,e,n){this.expression=t,this._warningHistory={},this._evaluator=new z6,this._defaultValue=e?function(t){if("color"===t.type&&u7(t.default))return new p6(0,0,0,0);switch(t.type){case"color":return p6.parse(t.default)||null;case"padding":return v6.parse(t.default)||null;case"numberArray":return b6.parse(t.default)||null;case"colorArray":return w6.parse(t.default)||null;case"variableAnchorOffsetCollection":return C6.parse(t.default)||null;case"projectionDefinition":return S6.parse(t.default)||null;default:return void 0===t.default?null:t.default}}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null,this._globalState=n}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=b7(t,this._globalState)),this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s,this.expression.evaluate(this._evaluator)}evaluate(t,e,n,r,i,s){this._globalState&&(t=b7(t,this._globalState)),this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=s||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new _6(`Expected value to be one of ${Object.keys(this._enumValues).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(o){return this._warningHistory[o.message]||(this._warningHistory[o.message]=!0,"undefined"!=typeof console&&console.warn(o.message)),this._defaultValue}}};function d7(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in Z8}function p7(t,e,n){const r=new F6(Z8,t7,[],e?function(t){const e={color:S4,string:C4,number:x4,enum:C4,boolean:k4,formatted:P4,padding:I4,numberArray:A4,colorArray:M4,projectionDefinition:E4,resolvedImage:O4,variableAnchorOffsetCollection:N4};return"array"===t.type?z4(e[t.value]||L4,t.length):e[t.type]}(e):void 0),i=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return i?i7(new h7(i,e,n)):s7(r.errors)}var f7=class{constructor(t,e,n){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!n7(e.expression),this.globalStateRefs=v7(e.expression),this._globalState=n}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=b7(t,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(t,e,n,r,i,s)}evaluate(t,e,n,r,i,s){return this._globalState&&(t=b7(t,this._globalState)),this._styleExpression.evaluate(t,e,n,r,i,s)}},g7=class{constructor(t,e,n,r,i){this.kind=t,this.zoomStops=n,this._styleExpression=e,this.isStateDependent="camera"!==t&&!n7(e.expression),this.globalStateRefs=v7(e.expression),this.interpolationType=r,this._globalState=i}evaluateWithoutErrorHandling(t,e,n,r,i,s){return this._globalState&&(t=b7(t,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(t,e,n,r,i,s)}evaluate(t,e,n,r,i,s){return this._globalState&&(t=b7(t,this._globalState)),this._styleExpression.evaluate(t,e,n,r,i,s)}interpolationFactor(t,e,n){return this.interpolationType?$6.interpolationFactor(this.interpolationType,t,e,n):0}};function m7(t,e,n){const r=p7(t,e,n);if("error"===r.result)return r;const i=r.value.expression,s=e7(i);if(!s&&!o7(e))return s7([new b4("","data expressions not supported")]);const o=r7(i,["zoom"]);if(!o&&!a7(e))return s7([new b4("","zoom expressions not supported")]);const a=y7(i);if(!a&&!o)return s7([new b4("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof b4)return s7([a]);if(a instanceof $6&&!l7(e))return s7([new b4("",'"interpolate" expressions cannot be used with this property')]);if(!a)return i7(new f7(s?"constant":"source",r.value,n));const l=a instanceof $6?a.interpolation:void 0;return i7(new g7(s?"camera":"composite",r.value,a.labels,l,n))}function y7(t){let e=null;if(t instanceof D6)e=y7(t.result);else if(t instanceof V6){for(const n of t.args)if(e=y7(n),e)break}else(t instanceof B6||t instanceof $6)&&t.input instanceof K8&&"zoom"===t.input.name&&(e=t);return e instanceof b4||t.eachChild(t=>{const n=y7(t);n instanceof b4?e=n:!e&&n?e=new b4("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&n&&e!==n&&(e=new b4("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function v7(t,e=new Set){return t instanceof G8&&e.add(t.key),t.eachChild(t=>{v7(t,e)}),e}function b7(t,e){const{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a}=t??{};return{zoom:n,heatmapDensity:r,elevation:i,lineProgress:s,isSupportedScript:o,accumulated:a,globalState:e}}function w7(t){if(!0===t||!1===t)return!0;if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!w7(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}}var _7={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function x7(t,e){return te?1:0}function C7(t){if(!Array.isArray(t))return!1;if("within"===t[0]||"distance"===t[0])return!0;for(let e=1;e"===e||"<="===e||">="===e?S7(t[1],t[2],e):"any"===e?(n=t.slice(1),["any"].concat(n.map(k7))):"all"===e?["all"].concat(t.slice(1).map(k7)):"none"===e?["all"].concat(t.slice(1).map(k7).map(L7)):"in"===e?E7(t[1],t.slice(2)):"!in"===e?L7(E7(t[1],t.slice(2))):"has"===e?R7(t[1]):"!has"!==e||L7(R7(t[1]));var n}function S7(t,e,n){switch(t){case"$type":return[`filter-type-${n}`,e];case"$id":return[`filter-id-${n}`,e];default:return[`filter-${n}`,t,e]}}function E7(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(t=>typeof t!=typeof e[0])?["filter-in-large",t,["literal",e.sort(x7)]]:["filter-in-small",t,["literal",e]]}}function R7(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function L7(t){return["!",t]}function T7(t){return"object"==typeof t?["literal",t]:t}function P7(t,e){let n=t.stops;if(!n)return function(t,e){const n=["get",t.property];if(void 0===t.default)return"string"===e.type?["string",n]:n;if("enum"===e.type)return["match",n,Object.keys(e.values),n,t.default];{const r=["color"===e.type?"to-color":e.type,n,T7(t.default)];return"array"===e.type&&r.splice(1,0,e.value,e.length||null),r}}(t,e);const r=n&&"object"==typeof n[0][0],i=r||void 0!==t.property,s=r||!i;return n=n.map(t=>!i&&e.tokens&&"string"==typeof t[1]?[t[0],F7(t[1])]:[t[0],T7(t[1])]),r?function(t,e,n){const r={},i={},s=[];for(let o=0;o3&&e===t[t.length-2]||(r&&2===t.length||t.push(e),t.push(n))}function z7(t,e){return t.type?t.type:e.expression.interpolated?"exponential":"interval"}function F7(t){const e=["concat"],n=/{([^{}]+)}/g;let r=0;for(let i=n.exec(t);null!==i;i=n.exec(t)){const s=t.slice(r,n.lastIndex-i[0].length);r=n.lastIndex,s.length>0&&e.push(s),e.push(["get",i[1]])}if(1===e.length)return t;if(rr.maximum?[new y4(e,n,`${n} is greater than the maximum value ${r.maximum}`)]:[]}function V7(t){const e=t.valueSpec,n=j7(t.value.type);let r,i,s,o={};const a="categorical"!==n&&void 0===t.value.property,l=!a,c="array"===c7(t.value.stops)&&"array"===c7(t.value.stops[0])&&"object"===c7(t.value.stops[0][0]),u=B7({key:t.key,value:t.value,valueSpec:t.styleSpec.function,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===n)return[new y4(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const r=t.value;return e=e.concat($7({key:t.key,value:r,valueSpec:t.valueSpec,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===c7(r)&&0===r.length&&e.push(new y4(t.key,r,"array must have at least one stop")),e},default:function(t){return t.validateSpec({key:t.key,value:t.value,valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===n&&a&&u.push(new y4(t.key,t.value,'missing required property "property"')),"identity"===n||t.value.stops||u.push(new y4(t.key,t.value,'missing required property "stops"')),"exponential"===n&&t.valueSpec.expression&&!l7(t.valueSpec)&&u.push(new y4(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!o7(t.valueSpec)?u.push(new y4(t.key,t.value,"property functions not supported")):a&&!a7(t.valueSpec)&&u.push(new y4(t.key,t.value,"zoom functions not supported"))),"categorical"!==n&&!c||void 0!==t.value.property||u.push(new y4(t.key,t.value,'"property" property is required')),u;function h(t){let n=[];const r=t.value,a=t.key;if("array"!==c7(r))return[new y4(a,r,`array expected, ${c7(r)} found`)];if(2!==r.length)return[new y4(a,r,`array length 2 expected, length ${r.length} found`)];if(c){if("object"!==c7(r[0]))return[new y4(a,r,`object expected, ${c7(r[0])} found`)];if(void 0===r[0].zoom)return[new y4(a,r,"object stop key must have zoom")];if(void 0===r[0].value)return[new y4(a,r,"object stop key must have value")];if(s&&s>j7(r[0].zoom))return[new y4(a,r[0].zoom,"stop zoom values must appear in ascending order")];j7(r[0].zoom)!==s&&(s=j7(r[0].zoom),i=void 0,o={}),n=n.concat(B7({key:`${a}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:q7,value:d}}))}else n=n.concat(d({key:`${a}[0]`,value:r[0],valueSpec:{},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec},r));return d7(U7(r[1]))?n.concat([new y4(`${a}[1]`,r[1],"expressions are not allowed in function stops.")]):n.concat(t.validateSpec({key:`${a}[1]`,value:r[1],valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec}))}function d(t,s){const a=c7(t.value),l=j7(t.value),c=null!==t.value?t.value:s;if(r){if(a!==r)return[new y4(t.key,c,`${a} stop domain type must match previous stop domain type ${r}`)]}else r=a;if("number"!==a&&"string"!==a&&"boolean"!==a)return[new y4(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==a&&"categorical"!==n){let r=`number expected, ${a} found`;return o7(e)&&void 0===n&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new y4(t.key,c,r)]}return"categorical"!==n||"number"!==a||isFinite(l)&&Math.floor(l)===l?"categorical"!==n&&"number"===a&&void 0!==i&&lnew y4(`${t.key}${e.key}`,t.value,e.message));const n=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!n.outputDefined())return[new y4(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!n7(n))return[new y4(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!n7(n))return[new y4(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!r7(n,["zoom","feature-state"]))return[new y4(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!e7(n))return[new y4(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function H7(t){const e=t.key,n=t.value,r=c7(n);return"string"!==r?[new y4(e,n,`color expected, ${r} found`)]:p6.parse(String(n))?[]:[new y4(e,n,`color expected, "${n}" found`)]}function G7(t){const e=t.key,n=t.value,r=t.valueSpec,i=[];return Array.isArray(r.values)?-1===r.values.indexOf(j7(n))&&i.push(new y4(e,n,`expected one of [${r.values.join(", ")}], ${JSON.stringify(n)} found`)):-1===Object.keys(r.values).indexOf(j7(n))&&i.push(new y4(e,n,`expected one of [${Object.keys(r.values).join(", ")}], ${JSON.stringify(n)} found`)),i}function Z7(t){return w7(U7(t.value))?W7(v4({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):K7(t)}function K7(t){const e=t.value,n=t.key;if("array"!==c7(e))return[new y4(n,e,`array expected, ${c7(e)} found`)];const r=t.styleSpec;let i,s=[];if(e.length<1)return[new y4(n,e,"filter array must have at least 1 element")];switch(s=s.concat(G7({key:`${n}[0]`,value:e[0],valueSpec:r.filter_operator,style:t.style,styleSpec:t.styleSpec})),j7(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===j7(e[1])&&s.push(new y4(n,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&s.push(new y4(n,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(i=c7(e[1]),"string"!==i&&s.push(new y4(`${n}[1]`,e[1],`string expected, ${i} found`)));for(let o=2;o{t in n&&e.push(new y4(r,n[t],`"${t}" is prohibited for ref layers`))}),i.layers.forEach(e=>{j7(e.id)===a&&(t=e)}),t?t.ref?e.push(new y4(r,n.ref,"ref cannot reference another ref layer")):o=j7(t.type):e.push(new y4(r,n.ref,`ref layer "${a}" not found`))}else if("background"!==o)if(n.source){const t=i.sources&&i.sources[n.source],s=t&&j7(t.type);t?"vector"===s&&"raster"===o?e.push(new y4(r,n.source,`layer "${n.id}" requires a raster source`)):"raster-dem"!==s&&"hillshade"===o||"raster-dem"!==s&&"color-relief"===o?e.push(new y4(r,n.source,`layer "${n.id}" requires a raster-dem source`)):"raster"===s&&"raster"!==o?e.push(new y4(r,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==s||n["source-layer"]?"raster-dem"===s&&"hillshade"!==o&&"color-relief"!==o?e.push(new y4(r,n.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):"line"!==o||!n.paint||!n.paint["line-gradient"]||"geojson"===s&&t.lineMetrics||e.push(new y4(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new y4(r,n,`layer "${n.id}" must specify a "source-layer"`)):e.push(new y4(r,n.source,`source "${n.source}" not found`))}else e.push(new y4(r,n,'missing required property "source"'));return"raster"===o&&n.paint?.resampling&&n.paint?.["raster-resampling"]&&e.push(new y4(r,n.paint,`layer "${n.id}" redundantly specifies "resampling" and "raster-resampling" paint properties, but only one is allowed. It is advised to use "resampling".`)),e=e.concat(B7({key:r,value:n,valueSpec:s.layer,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":()=>[],type:()=>t.validateSpec({key:`${r}.type`,value:n.type,valueSpec:s.layer.type,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,object:n,objectKey:"type"}),filter:Z7,layout:t=>B7({layer:n,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>J7(v4({layerType:o},t))}}),paint:t=>B7({layer:n,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>X7(v4({layerType:o},t))}})}})),e}function t9(t){const e=t.value,n=t.key,r=c7(e);return"string"!==r?[new y4(n,e,`string expected, ${r} found`)]:[]}var e9={promoteId:function({key:t,value:e}){if("string"===c7(e))return t9({key:t,value:e});{const n=[];for(const r in e)n.push(...t9({key:`${t}.${r}`,value:e[r]}));return n}}};function n9(t){const e=t.value,n=t.key,r=t.styleSpec,i=t.style,s=t.validateSpec;if(!e.type)return[new y4(n,e,'"type" is required')];const o=j7(e.type);let a;switch(o){case"vector":case"raster":return a=B7({key:n,value:e,valueSpec:r[`source_${o.replace("-","_")}`],style:t.style,styleSpec:r,objectElementValidators:e9,validateSpec:s}),a;case"raster-dem":return a=function(t){const e=t.sourceName??"",n=t.value,r=t.styleSpec,i=r.source_raster_dem,s=t.style;let o=[];const a=c7(n);if(void 0===n)return o;if("object"!==a)return o.push(new y4("source_raster_dem",n,`object expected, ${a} found`)),o;const l="custom"===j7(n.encoding),c=["redFactor","greenFactor","blueFactor","baseShift"],u=t.value.encoding?`"${t.value.encoding}"`:"Default";for(const h in n)!l&&c.includes(h)?o.push(new y4(h,n[h],`In "${e}": "${h}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):i[h]?o=o.concat(t.validateSpec({key:h,value:n[h],valueSpec:i[h],validateSpec:t.validateSpec,style:s,styleSpec:r})):o.push(new y4(h,n[h],`unknown property "${h}"`));return o}({sourceName:n,value:e,style:t.style,styleSpec:r,validateSpec:s}),a;case"geojson":if(a=B7({key:n,value:e,valueSpec:r.source_geojson,style:i,styleSpec:r,validateSpec:s,objectElementValidators:e9}),e.cluster)for(const t in e.clusterProperties){const[r,i]=e.clusterProperties[t],o="string"==typeof r?[r,["accumulated"],["get",t]]:r;a.push(...W7({key:`${n}.${t}.map`,value:i,validateSpec:s,expressionContext:"cluster-map"})),a.push(...W7({key:`${n}.${t}.reduce`,value:o,validateSpec:s,expressionContext:"cluster-reduce"}))}return a;case"video":return B7({key:n,value:e,valueSpec:r.source_video,style:i,validateSpec:s,styleSpec:r});case"image":return B7({key:n,value:e,valueSpec:r.source_image,style:i,validateSpec:s,styleSpec:r});case"canvas":return[new y4(n,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return G7({key:`${n}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,validateSpec:s,styleSpec:r})}}function r9(t){const e=t.value,n=t.styleSpec,r=n.light,i=t.style;let s=[];const o=c7(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new y4("light",e,`object expected, ${o} found`)]),s;for(const a in e){const o=a.match(/^(.*)-transition$/);s=o&&r[o[1]]&&r[o[1]].transition?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:n.transition,validateSpec:t.validateSpec,style:i,styleSpec:n})):r[a]?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:i,styleSpec:n})):s.concat([new y4(a,e[a],`unknown property "${a}"`)])}return s}function i9(t){const e=t.value,n=t.styleSpec,r=n.sky,i=t.style,s=c7(e);if(void 0===e)return[];if("object"!==s)return[new y4("sky",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=r[a]?o.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new y4(a,e[a],`unknown property "${a}"`)]);return o}function s9(t){const e=t.value,n=t.styleSpec,r=n.terrain,i=t.style;let s=[];const o=c7(e);if(void 0===e)return s;if("object"!==o)return s=s.concat([new y4("terrain",e,`object expected, ${o} found`)]),s;for(const a in e)s=r[a]?s.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],validateSpec:t.validateSpec,style:i,styleSpec:n})):s.concat([new y4(a,e[a],`unknown property "${a}"`)]);return s}function o9(t){let e=[];const n=t.value,r=t.key;if(Array.isArray(n)){const i=[],s=[];for(const o in n)n[o].id&&i.includes(n[o].id)&&e.push(new y4(r,n,`all the sprites' ids must be unique, but ${n[o].id} is duplicated`)),i.push(n[o].id),n[o].url&&s.includes(n[o].url)&&e.push(new y4(r,n,`all the sprites' URLs must be unique, but ${n[o].url} is duplicated`)),s.push(n[o].url),e=e.concat(B7({key:`${r}[${o}]`,value:n[o],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:t.validateSpec}));return e}return t9({key:r,value:n})}function a9(t){return Boolean(t)&&t.constructor===Object}function l9(t){return a9(t.value)?[]:[new y4(t.key,t.value,`object expected, ${c7(t.value)} found`)]}var c9={"*":()=>[],array:$7,boolean:function(t){const e=t.value,n=t.key,r=c7(e);return"boolean"!==r?[new y4(n,e,`boolean expected, ${r} found`)]:[]},number:q7,color:H7,constants:D7,enum:G7,filter:Z7,function:V7,layer:Q7,object:B7,source:n9,light:r9,sky:i9,terrain:s9,projection:function(t){const e=t.value,n=t.styleSpec,r=n.projection,i=t.style,s=c7(e);if(void 0===e)return[];if("object"!==s)return[new y4("projection",e,`object expected, ${s} found`)];let o=[];for(const a in e)o=r[a]?o.concat(t.validateSpec({key:a,value:e[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new y4(a,e[a],`unknown property "${a}"`)]);return o},projectionDefinition:function(t){const e=t.key;let n=t.value;n=n instanceof String?n.valueOf():n;const r=c7(n);return"array"!==r||function(t){return Array.isArray(t)&&3===t.length&&"string"==typeof t[0]&&"string"==typeof t[1]&&"number"==typeof t[2]}(n)||function(t){return!!["interpolate","step","literal"].includes(t[0])}(n)?["array","string"].includes(r)?[]:[new y4(e,n,`projection expected, invalid type "${r}" found`)]:[new y4(e,n,`projection expected, invalid array ${JSON.stringify(n)} found`)]},string:t9,formatted:function(t){return 0===t9(t).length?[]:W7(t)},resolvedImage:function(t){return 0===t9(t).length?[]:W7(t)},padding:function(t){const e=t.key,n=t.value;if("array"===c7(n)){if(n.length<1||n.length>4)return[new y4(e,n,`padding requires 1 to 4 values; ${n.length} values found`)];const r={type:"number"};let i=[];for(let s=0;s[]}})),t.constants&&(n=n.concat(D7({key:"constants",value:t.constants,style:t,styleSpec:e,validateSpec:u9}))),f9(n)}function p9(t){return function(e){return t(Object.assign({},e,{validateSpec:u9}))}}function f9(t){return[].concat(t).sort((t,e)=>t.line-e.line)}function g9(t){return function(...e){return f9(t.apply(this,e))}}d9.source=g9(p9(n9)),d9.sprite=g9(p9(o9)),d9.glyphs=g9(p9(h9)),d9.light=g9(p9(r9)),d9.sky=g9(p9(i9)),d9.terrain=g9(p9(s9)),d9.state=g9(p9(l9)),d9.layer=g9(p9(Q7)),d9.filter=g9(p9(Z7)),d9.paintProperty=g9(p9(X7)),d9.layoutProperty=g9(p9(J7));var m9=p4,y9=4294967296,v9="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8"),b9=class{constructor(t){this.buf=ArrayBuffer.isView(t)?t:new Uint8Array(t),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length}readFields(t,e,n=this.length){let r;for(;r=this.nextField(n);)t(r,e,this);return e}readMessage(t,e){return this.readFields(t,e,this.readVarint()+this.pos)}readFixed32(){const t=this.dataView.getUint32(this.pos,!0);return this.pos+=4,t}readSFixed32(){const t=this.dataView.getInt32(this.pos,!0);return this.pos+=4,t}readFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*y9;return this.pos+=8,t}readSFixed64(){const t=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*y9;return this.pos+=8,t}readFloat(){const t=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,t}readDouble(){const t=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,t}readVarint(t){const e=this.buf,n=e[this.pos++];if(n<128)return n;let r,i=127&n;return r=e[this.pos++],i|=(127&r)<<7,r<128?i:(r=e[this.pos++],i|=(127&r)<<14,r<128?i:(r=e[this.pos++],i|=(127&r)<<21,r<128?i:(r=e[this.pos],i|=(15&r)<<28,function(t,e,n){const r=n.buf;let i,s;if(s=r[n.pos++],i=(112&s)>>4,s<128)return w9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<3,s<128)return w9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<10,s<128)return w9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<17,s<128)return w9(t,i,e);if(s=r[n.pos++],i|=(127&s)<<24,s<128)return w9(t,i,e);if(s=r[n.pos++],i|=(1&s)<<31,s<128)return w9(t,i,e);throw new Error("Expected varint not more than 10 bytes")}(i,t,this))))}readSVarint(){const t=this.readVarint();return t%2==1?(t+1)/-2:t/2}readBoolean(){return Boolean(this.readVarint())}readString(){const t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&v9?v9.decode(this.buf.subarray(e,t)):function(t,e,n){let r="",i=e;for(;i239?4:e>223?3:e>191?2:1;if(i+c>n)break;1===c?e<128&&(l=e):2===c?(s=t[i+1],128==(192&s)&&(l=(31&e)<<6|63&s,l<=127&&(l=null))):3===c?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&(l=(15&e)<<12|(63&s)<<6|63&o,(l<=2047||l>=55296&&l<=57343)&&(l=null))):4===c&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(l=(15&e)<<18|(63&s)<<12|(63&o)<<6|63&a,(l<=65535||l>=1114112)&&(l=null))),null===l?(l=65533,c=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=c}return r}(this.buf,e,t)}readBytes(){const t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e}readPackedVarint(t=[],e){const n=this.readPackedEnd();for(;this.pos=t)return 0;const e=this.readVarint();return this.type=7&e,this._valueStart=this.pos,e>>>3}skip(t){const e=7&t;if(0===e)for(;this.buf[this.pos++]>127;);else if(2===e)this.pos=this.readVarint()+this.pos;else if(5===e)this.pos+=4;else{if(1!==e)throw new Error(`Unimplemented type: ${e}`);this.pos+=8}}};function w9(t,e,n){return n?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}var _9=class extends W5{constructor(t){super(),t=t||{},this.dataProjection=new GK({code:"",units:"tile-pixels"}),this.featureClass=t.featureClass?t.featureClass:N5,this.geometryName_=t.geometryName,this.layerName_=t.layerName?t.layerName:"layer",this.layers_=t.layers?t.layers:null,this.idProperty_=t.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(t,e,n,r){t.pos=e.geometry;const i=t.readVarint()+t.pos;let s=1,o=0,a=0,l=0,c=0,u=0;for(;t.pos>3}if(o--,1===s||2===s)a+=t.readSVarint(),l+=t.readSVarint(),1===s&&c>u&&(r.push(c),u=c),n.push(a,l),c+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");c>u&&(n.push(n[u],n[u+1]),c+=2)}}c>u&&(r.push(c),u=c)}createFeature_(t,e,n){const r=e.type;if(0===r)return null;let i;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const c=function(t,e){let n;return 1===t?n=1===e?"Point":"MultiPoint":2===t?n=1===e?"LineString":"MultiLineString":3===t&&(n="Polygon"),n}(r,l.length);if(this.featureClass===N5)i=new this.featureClass(c,a,l,2,s,o),i.transform(n.dataProjection);else{let t;if("Polygon"==c){const e=iJ(a,l);t=e.length>1?new R3(a,"XY",e):new sJ(a,"XY",l)}else t="Point"===c?new KX(a,"XY"):"LineString"===c?new C3(a,"XY"):"MultiPoint"===c?new S3(a,"XY"):"MultiLineString"===c?new k3(a,"XY",l):null;i=new(0,this.featureClass),this.geometryName_&&i.setGeometryName(this.geometryName_);const e=H5(t,!1,n);i.setGeometry(e),void 0!==o&&i.setId(o),i.setProperties(s,!0)}return i}getType(){return"arraybuffer"}readFeatures(t,e){const n=this.layers_,r=$Y((e=this.adaptOptions(e)).dataProjection);r.setWorldExtent(e.extent),e.dataProjection=r;const i=new b9(t),s=i.readFields(x9,{}),o=[];for(const a in s){if(n&&!n.includes(a))continue;const t=s[a],l=t?[0,0,t.extent,t.extent]:null;r.setExtent(l);for(let n=0,r=t.length;n>3)?n.readString():2===t?n.readFloat():3===t?n.readDouble():4===t?n.readVarint(!0):5===t?n.readVarint():6===t?n.readSVarint():7===t?n.readBoolean():null;e.values.push(r)}}function k9(t,e,n){if(1==t)e.id=n.readVarint();else if(2==t){const t=n.readVarint()+n.pos;for(;n.post)throw new Error("Tile load sequence violation");this.state=t,this.changed()}}load(){aZ()}getAlpha(t,e){if(!this.transition_)return 1;let n=this.transitionStarts_[t];if(n){if(-1===n)return 1}else n=e,this.transitionStarts_[t]=n;const r=e-n+1e3/60;return r>=this.transition_?1:jK(r/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}disposeInternal(){this.release(),super.disposeInternal()}};function R9(t){return t instanceof Image||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageBitmap?t:null}var L9,T9=new Error("disposed"),P9=[256,256],I9=class extends E9{constructor(t){super(t.tileCoord,0,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||null,this.controller_=t.controller||null}getSize(){if(this.size_)return this.size_;const t=R9(this.data_);return t?[t.width,t.height]:P9}getData(){return this.data_}getError(){return this.error_}load(){if(0!==this.state&&3!==this.state)return;this.state=1,this.changed();const t=this;this.loader_().then(function(e){t.data_=e,t.state=2,t.changed()}).catch(function(e){t.error_=e,t.state=3,t.changed()})}disposeInternal(){this.controller_&&(this.controller_.abort(T9),this.controller_=null),super.disposeInternal()}},M9=class extends E9{constructor(t,e,n,r,i,s){super(t,e,s),this.crossOrigin_=r?.crossOrigin,this.referrerPolicy_=r?.referrerPolicy,this.src_=n,this.key=n,this.image_,xZ?this.image_=new OffscreenCanvas(1,1):(this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),this.unlisten_=null,this.tileLoadFunction_=i}getImage(){return this.image_}setImage(t){this.image_=t,this.state=2,this.unlistenImage_(),this.changed()}getCrossOrigin(){return this.crossOrigin_}getReferrerPolicy(){return this.referrerPolicy_}handleImageError_(){this.state=3,this.unlistenImage_(),this.image_=function(){const t=SJ(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){if(xZ)this.state=2;else{const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=2:this.state=4}this.unlistenImage_(),this.changed()}load(){3==this.state&&(this.state=0,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_),void 0!==this.referrerPolicy_&&(this.image_.referrerPolicy=this.referrerPolicy_)),0==this.state&&(this.state=1,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=function(t,e,n){const r=t;let i=!0,s=!1,o=!1;const a=[FG(r,"load",function(){o=!0,s||e()})];return r.src&&CZ?(s=!0,r.decode().then(function(){i&&e()}).catch(function(){i&&(o?e():n())})):a.push(FG(r,"error",n)),function(){i=!1,a.forEach(DG)}}(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}},A9=class{constructor(t,e,n,r){this.minX=t,this.maxX=e,this.minY=n,this.maxY=r}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}};function O9(t,e,n,r,i){return void 0!==i?(i.minX=t,i.maxX=e,i.minY=n,i.maxY=r,i):new A9(t,e,n,r)}var N9=[];function z9(t,e,n,r,i){t.beginPath(),t.moveTo(0,0),t.lineTo(e,n),t.lineTo(r,i),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,r)+1,Math.max(n,i)),t.restore()}function F9(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function D9(t,e,n,r){const i=JY(n,e,t);let s=qY(e,r,n);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||rK(l,i)){const e=qY(t,s,i)/s;isFinite(e)&&e>0&&(s/=e)}return s}function j9(t,e,n,r,i,s,o,a,l,c,u,h,d,p){const f=SJ(Math.round(n*t),Math.round(n*e),N9);if(h||(f.imageSmoothingEnabled=!1),0===l.length)return f.canvas;function g(t){return Math.round(t*n)/n}f.scale(n,n),f.globalCompositeOperation="lighter";const m=[1/0,1/0,-1/0,-1/0];let y;l.forEach(function(t){dK(m,t.extent)});const v=n/r,b=(h?1:1+Math.pow(2,-24))/v;if(!d||1!==l.length||0!==c){if(y=SJ(Math.round(TK(m)*v),Math.round(kK(m)*v),N9),h||(y.imageSmoothingEnabled=!1),i&&p){const t=(i[0]-m[0])*v,e=-(i[3]-m[3])*v,n=TK(i)*v,r=kK(i)*v;y.rect(t,e,n,r),y.clip()}l.forEach(function(t){if(t.image.width>0&&t.image.height>0){if(t.clipExtent){y.save();const e=(t.clipExtent[0]-m[0])*v,n=-(t.clipExtent[3]-m[3])*v,r=TK(t.clipExtent)*v,i=kK(t.clipExtent)*v;y.rect(h?e:Math.round(e),h?n:Math.round(n),h?r:Math.round(e+r)-Math.round(e),h?i:Math.round(n+i)-Math.round(n)),y.clip()}const e=(t.extent[0]-m[0])*v,n=-(t.extent[3]-m[3])*v,r=TK(t.extent)*v,i=kK(t.extent)*v;y.drawImage(t.image,c,c,t.image.width-2*c,t.image.height-2*c,h?e:Math.round(e),h?n:Math.round(n),h?r:Math.round(e+r)-Math.round(e),h?i:Math.round(n+i)-Math.round(n)),t.clipExtent&&y.restore()}})}const w=RK(o);return a.getTriangles().forEach(function(t){const e=t.source,n=t.target;let r=e[0][0],i=e[0][1],o=e[1][0],a=e[1][1],c=e[2][0],u=e[2][1];const d=g((n[0][0]-w[0])/s),p=g(-(n[0][1]-w[1])/s),v=g((n[1][0]-w[0])/s),_=g(-(n[1][1]-w[1])/s),x=g((n[2][0]-w[0])/s),C=g(-(n[2][1]-w[1])/s),k=r,S=i;r=0,i=0,o-=k,a-=S,c-=k,u-=S;const E=function(t){const e=t.length;for(let r=0;ri&&(i=e,n=o)}if(0===i)return null;const s=t[n];t[n]=t[r],t[r]=s;for(let o=r+1;o=0;r--){n[r]=t[r][e]/t[r][r];for(let i=r-1;i>=0;i--)t[i][e]-=t[i][r]*n[r]}return n}([[o,a,0,0,v-d],[c,u,0,0,x-d],[0,0,o,a,_-p],[0,0,c,u,C-p]]);if(!E)return;if(f.save(),f.beginPath(),function(){if(void 0===L9){const t=SJ(6,6,N9);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",z9(t,4,5,4,0),z9(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;L9=F9(e,0)||F9(e,4)||F9(e,8),RJ(t),N9.push(t.canvas)}return L9}()||!h){f.moveTo(v,_);const t=4,e=d-v,n=p-_;for(let r=0;rcX(o,JY(t,this.targetProj_,this.sourceProj_)),function(t,e,n,r){const i=t.length;n=void 0!==n?n:2,r=r??n,e=void 0!==e?e:new Array(i);for(let s=0;s=o?t[s+n]:i[n]}return e}):XY(this.targetProj_,this.sourceProj_);var c;this.transformInv_=function(t){const e=t[0]+"/"+t[1];return a[e]||(a[e]=l(t)),a[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=i*i,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&TK(r)>=TK(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?TK(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?TK(this.targetProj_.getExtent()):null;const u=RK(n),h=LK(n),d=bK(n),p=vK(n),f=this.transformInv_(u),g=this.transformInv_(h),m=this.transformInv_(d),y=this.transformInv_(p),v=10+(s?Math.max(0,Math.ceil(Math.log2(yK(n)/(s*s*256*256)))):0);if(this.addQuad_(u,h,d,p,f,g,m,y,v),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach(function(e){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])}),this.triangles_.forEach(e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const n=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];n[0][0]-t>this.sourceWorldWidth_/2&&(n[0][0]-=this.sourceWorldWidth_),n[1][0]-t>this.sourceWorldWidth_/2&&(n[1][0]-=this.sourceWorldWidth_),n[2][0]-t>this.sourceWorldWidth_/2&&(n[2][0]-=this.sourceWorldWidth_);const r=Math.min(n[0][0],n[1][0],n[2][0]);Math.max(n[0][0],n[1][0],n[2][0])-r.5&&u<1;let p=!1;if(l>0&&(this.targetProj_.isGlobal()&&this.targetWorldWidth_&&(p=TK(QZ([t,e,n,r]))/this.targetWorldWidth_>.25||p),!d&&this.sourceProj_.isGlobal()&&u&&(p=u>.25||p)),!p&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!PK(c,this.maxSourceExtent_))return;let f=0;if(!(p||isFinite(i[0])&&isFinite(i[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)p=!0;else if(f=(isFinite(i[0])&&isFinite(i[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!p){const e=[(t[0]+n[0])/2,(t[1]+n[1])/2],r=this.transformInv_(e);let s;s=d?(WZ(i[0],h)+WZ(o[0],h))/2-WZ(r[0],h):(i[0]+o[0])/2-r[0];const a=(i[1]+o[1])/2-r[1];p=s*s+a*a>this.errorThresholdSquared_}if(p){if(Math.abs(t[0]-n[0])<=Math.abs(t[1]-n[1])){const c=[(e[0]+n[0])/2,(e[1]+n[1])/2],u=this.transformInv_(c),h=[(r[0]+t[0])/2,(r[1]+t[1])/2],d=this.transformInv_(h);this.addQuad_(t,e,c,h,i,s,u,d,l-1),this.addQuad_(h,c,n,r,d,u,o,a,l-1)}else{const c=[(t[0]+e[0])/2,(t[1]+e[1])/2],u=this.transformInv_(c),h=[(n[0]+r[0])/2,(n[1]+r[1])/2],d=this.transformInv_(h);this.addQuad_(t,c,h,r,i,u,d,a,l-1),this.addQuad_(c,e,n,h,u,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}11&f||this.addTriangle_(t,n,r,i,o,a),14&f||this.addTriangle_(t,n,e,i,o,s),f&&(13&f||this.addTriangle_(e,r,t,s,a,i),7&f||this.addTriangle_(e,r,n,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e){const n=e.source;pK(t,n[0]),pK(t,n[1]),pK(t,n[2])}),t}getTriangles(){return this.triangles_}},B9=class extends E9{constructor(t,e,n,r,i,s,o,a,l,c,u,h){super(i,0,h),this.renderEdges_=void 0!==u&&u,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=r,this.wrappedTileCoord_=s||i,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=t.canWrapX()?t.getExtent():void 0;const d=r.getTileCoordExtent(this.wrappedTileCoord_),p=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const g=p?SK(d,p):d;if(0===yK(g))return void(this.state=4);const m=t.getExtent();m&&(f=f?SK(f,m):m);const y=r.getResolution(this.wrappedTileCoord_[0]),v=function(t,e,n,r){let i=D9(t,e,wK(n),r);return(!isFinite(i)||i<=0)&&mK(n,function(n){return i=D9(t,e,n,r),isFinite(i)&&i>0}),i}(t,n,g,y);if(!isFinite(v)||v<=0)return void(this.state=4);const b=void 0!==c?c:.5;if(this.triangulation_=new U9(t,n,g,f,v*b,y),0===this.triangulation_.getTriangles().length)return void(this.state=4);this.sourceZ_=e.getZForResolution(v);let w=this.triangulation_.calculateSourceExtent();if(f&&(t.canWrapX()?(w[1]=UZ(w[1],f[1],f[3]),w[3]=UZ(w[3],f[1],f[3])):w=SK(w,f)),yK(w)){let n=0,r=0;t.canWrapX()&&(n=TK(m),r=Math.floor((w[0]-m[0])/n)),OK(w.slice(),t,!0).forEach(t=>{const i=e.getTileRangeForExtentAndZ(t,this.sourceZ_);for(let e=i.minX;e<=i.maxX;e++)for(let t=i.minY;t<=i.maxY;t++){const i=r*n;this.sourceTiles_.push({getTile:()=>l(this.sourceZ_,e,t,o),offset:i})}++r}),0===this.sourceTiles_.length&&(this.state=4)}else this.state=4}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach(e=>{const n=e.tile;if(n&&2==n.getState()){const r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=e.offset,r[2]+=e.offset;const i=this.clipExtent_?.slice();i&&(i[0]+=e.offset,i[2]+=e.offset),t.push({extent:r,clipExtent:i,image:n.getImage()})}}),this.sourceTiles_.length=0,0===t.length)this.state=3;else{const e=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(e),r="number"==typeof n?n:n[0],i="number"==typeof n?n:n[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=j9(r,i,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=2}this.changed()}load(){for(const t of this.sourceTiles_)t.tile=t.getTile();if(0==this.state){this.state=1,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:e})=>{const n=e.getState();if(0==n||1==n){t++;const n=zG(e,jG,()=>{const r=e.getState();2!=r&&3!=r&&4!=r||(DG(n),t--,0===t&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(n)}}),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){0==t.getState()&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(DG),this.sourcesListenerKeys_=null}release(){this.canvas_&&(RJ(this.canvas_.getContext("2d")),N9.push(this.canvas_),this.canvas_=null),this.sourceTiles_.length=0,super.release()}},$9=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){const t=this.pop();t instanceof HG&&t.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const n=this.entries_[t];return NZ(void 0!==n,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(t){const e=this.entries_[t];return NZ(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,n=0;for(e=this.newest_;e;e=e.older)t[n++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,n=0;for(e=this.newest_;e;e=e.older)t[n++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){return this.entries_[t]?.value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){NZ(!(t in this.entries_),"Tried to set a value for a key that is used already");const n={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[t]=n,++this.count_}setSize(t){this.highWaterMark=t}};function q9(t,e,n,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=n,r):[t,e,n]}function V9(t,e,n,r,i){return`${cZ(t)},${e},${function(t,e,n){return t+"/"+e+"/"+n}(n,r,i)}`}function W9(t,e,n){if(!(n in t))return t[n]=new Set([e]),!0;const r=t[n],i=r.has(e);return i||r.add(e),!i}function H9(t,e,n){const r=t[n];return!!r&&r.delete(e)}function G9(t,e){const n=t.layerStatesArray[t.layerIndex];n.extent&&(e=SK(e,nX(n.extent,t.viewState.projection)));const r=n.layer.getRenderSource();if(!r.getWrapX()){const n=r.getTileGridForProjection(t.viewState.projection).getExtent();n&&(e=SK(e,n))}return e}var Z9=class extends R5{constructor(t,e){super(t),e=e||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedTiles=[],this.renderedSourceRevision_,this.tempExtent=[1/0,1/0,-1/0,-1/0],this.tempTileRange_=new A9(0,0,0,0),this.tempTileCoord_=q9(0,0,0);const n=void 0!==e.cacheSize?e.cacheSize:512;this.tileCache_=new $9(n),this.sourceTileCache_=null,this.layerExtent=null,this.maxStaleKeys=.5*n}getTileCache(){return this.tileCache_}getSourceTileCache(){return this.sourceTileCache_||(this.sourceTileCache_=new $9(512)),this.sourceTileCache_}getOrCreateTile(t,e,n,r){const i=this.tileCache_,s=this.getLayer().getSource(),o=V9(s,s.getKey(),t,e,n);let a;if(i.containsKey(o))a=i.get(o);else{const l=r.viewState.projection,c=s.getProjection();if(a=s.getTile(t,e,n,r.pixelRatio,l,!c||ZY(c,l)?void 0:this.getSourceTileCache()),!a)return null;i.set(o,a)}return a}getTile(t,e,n,r){return this.getOrCreateTile(t,e,n,r)||null}getData(t){const e=this.frameState;if(!e)return null;const n=this.getLayer(),r=cX(e.pixelToCoordinateTransform,t.slice()),i=n.getExtent();if(i&&!rK(i,r))return null;const s=e.viewState,o=n.getRenderSource(),a=o.getTileGridForProjection(s.projection),l=o.getTilePixelRatio(e.pixelRatio);for(let c=a.getZForResolution(s.resolution);c>=a.getMinZoom();--c){const t=a.getTileCoordForCoordAndZ(r,c),n=this.getTile(c,t[1],t[2],e);if(!n||2!==n.getState())continue;const i=a.getOrigin(c),u=k0(a.getTileSize(c)),h=a.getResolution(c);let d;if(n instanceof M9||n instanceof B9)d=n.getImage();else{if(!(n instanceof I9))continue;if(d=R9(n.getData()),!d)continue}const p=Math.floor(l*((r[0]-i[0])/h-t[1]*u[0])),f=Math.floor(l*((i[1]-r[1])/h-t[2]*u[1])),g=Math.round(l*o.getGutterForProjection(s.projection));return this.getImageData(d,p+g,f+g)}return null}prepareFrame(t){this.renderedProjection?t.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=t.viewState.projection):this.renderedProjection=t.viewState.projection;const e=this.getLayer().getSource();if(!e)return!1;const n=e.getRevision();return this.renderedSourceRevision_?this.renderedSourceRevision_!==n&&(this.renderedSourceRevision_=n,this.renderedSourceKey_===e.getKey()&&(this.tileCache_.clear(),this.sourceTileCache_?.clear())):this.renderedSourceRevision_=n,!0}enqueueTilesForNextExtent(){return!0}enqueueTiles(t,e,n,r,i){const s=t.viewState,o=this.getLayer(),a=o.getRenderSource(),l=a.getTileGridForProjection(s.projection),c=cZ(a);c in t.wantedTiles||(t.wantedTiles[c]={});const u=t.wantedTiles[c],h=o.getMapInternal(),d=Math.max(n-i,l.getMinZoom(),l.getZForResolution(Math.min(o.getMaxResolution(),h?h.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):l.getResolution(0)),a.zDirection)),p=s.rotation,f=p?CK(s.center,s.resolution,p,t.size):void 0;for(let g=n;g>=d;--g){const n=l.getTileRangeForExtentAndZ(e,g,this.tempTileRange_),i=l.getResolution(g);for(let e=n.minX;e<=n.maxX;++e)for(let s=n.minY;s<=n.maxY;++s){if(p&&!l.tileCoordIntersectsViewport([g,e,s],f))continue;const n=this.getTile(g,e,s,t);if(!n)continue;if(!W9(r,n,g))continue;const o=n.getKey();if(u[o]=!0,0===n.getState()&&!t.tileQueue.isKeyQueued(o)){const r=q9(g,e,s,this.tempTileCoord_);t.tileQueue.enqueue([n,c,l.getTileCoordCenter(r),i])}}}}findStaleTile_(t,e){const n=this.tileCache_,r=t[0],i=t[1],s=t[2],o=this.getStaleKeys();for(let a=0;a0&&setTimeout(()=>{this.enqueueTiles(t,x,h-1,w,_-1)},0),!(h in w))return this.container;const C=cZ(this),k=t.time;for(const I of w[h]){const e=I.getState();if(4===e)continue;const n=I.tileCoord;if(2===e&&1===I.getAlpha(C,k)){I.endTransition(C);continue}if(3!==e&&(this.renderComplete=!1),this.findStaleTile_(n,w)){H9(w,I,h),t.animate=!0;continue}if(this.findAltTiles_(u,n,h+1,w))continue;const r=u.getMinZoom();for(let t=h-1;t>=r&&!this.findAltTiles_(u,n,t,w);--t);}const S=d/s*a/f,E=this.getRenderContext(t);hX(this.tempTransform,g/2,m/2,S,S,0,-g/2,-m/2),this.layerExtent&&this.clipUnrotated(E,t,this.layerExtent),c.getInterpolate()||(E.imageSmoothingEnabled=!1),this.preRender(E,t);const R=Object.keys(w).map(Number);R.sort(GG);const L=[],T=[],P=[];for(let I=R.length-1;I>=0;--I){const e=R[I],n=c.getTilePixelSize(e,a,i),r=u.getResolution(e)/d,s=n[0]*r*S,o=n[1]*r*S,l=u.getTileCoordForCoordAndZ(RK(b),e),p=u.getTileCoordExtent(l),g=cX(this.tempTransform,[f*(p[0]-b[0])/d,f*(b[3]-p[3])/d]),m=f*c.getGutterForProjection(i);for(const i of w[e]){if(2!==i.getState())continue;const n=i.tileCoord,r=l[1]-n[1],a=Math.round(g[0]-(r-1)*s),u=l[2]-n[2],d=Math.round(g[1]-(u-1)*o),p=Math.round(g[0]-r*s),f=Math.round(g[1]-u*o),y=a-p,v=d-f,b=e===h;if(b&&i.inTransition(C)){P.push({tile:i,x:p,y:f,w:y,h:v,gutter:m}),this.renderedTiles.unshift(i),this.updateUsedTiles(t.usedTiles,c,i);continue}const w=[p,f,p+y,f+v],_=[];for(let t=0,i=L.length;t0&&(x=NK(w,_)),L.push(w),T.push(e),this.drawTile(i,t,p,f,y,v,m,b,x),this.renderedTiles.unshift(i),this.updateUsedTiles(t.usedTiles,c,i)}}for(let I=0,M=P.length;I{const n=cZ(c),r=e.wantedTiles[n],i=r?Object.keys(r).length:0;this.updateCacheSize(i),this.tileCache_.expireCache(),this.sourceTileCache_?.expireCache()};t.postRenderFunctions.push(e)}return this.container}updateCacheSize(t){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,2*t)}drawTile(t,e,n,r,i,s,o,a,l){let c;if(t instanceof I9){if(c=R9(t.getData()),!c)throw new Error("Rendering array data is not yet supported")}else c=this.getTileImage(t);if(!c)return;const u=this.getRenderContext(e),h=cZ(this),d=e.layerStatesArray[e.layerIndex],p=d.opacity*(a?t.getAlpha(h,e.time):1),f=p!==u.globalAlpha;f&&(u.save(),u.globalAlpha=p);const g=c.width-2*o,m=c.height-2*o;if(l){const t=g/i,e=m/s;for(let i=0,s=l.length;it.value):null;let y;t:for(let v=p.length-1;v>=0;--v){const e=p[v];if(!PK(l.getTileCoordExtent(e.wrappedTileCoord),u))continue;const r=e.executorGroups[f];for(let i=0,a=r.length;i{const n=this.getLayer(),r=n.getSource(),i=this.renderedProjection,s=i.getExtent(),o=this.renderedResolution,a=r.getTileGridForProjection(i),l=cX(this.renderedPixelToCoordinateTransform_,t.slice()),c=a.getTileCoordForCoordAndResolution(l,o).toString(),u=this.renderedTiles.find(t=>t.tileCoord.toString()===c&&2===t.getState());if(!u||u.loadingSourceTiles>0)return void e([]);r.getWrapX()&&i.canWrapX()&&!iK(s,a.getTileCoordExtent(u.tileCoord))&&DK(l,i);const h=cZ(n),d=RK(a.getTileCoordExtent(u.wrappedTileCoord)),p=[(l[0]-d[0])/o,(d[1]-l[1])/o],f=u.getSourceTiles().reduce((t,e)=>t.concat(e.getFeatures()),[]);let g=u.hitDetectionImageData[h];if(!g){const t=k0(a.getTileSize(a.getZForResolution(o,r.zDirection))),e=this.renderedRotation_;g=m5(t,[this.getRenderTransform(a.getTileCoordCenter(u.wrappedTileCoord),o,0,g5,t[0]*g5,t[1]*g5,0)],f,n.getStyleFunction(),a.getTileCoordExtent(u.wrappedTileCoord),u.getReplayState(n).renderedResolution,e),u.hitDetectionImageData[h]=g}e(y5(p,f,g))})}getFeaturesInExtent(t){const e=[],n=this.getTileCache();if(0===n.getCount())return e;const r=this.getLayer().getSource().getTileGridForProjection(this.frameState.viewState.projection),i=r.getZForResolution(this.renderedResolution),s={};return n.forEach(n=>{if(n.tileCoord[0]!==i||2!==n.getState())return;const o=n.getSourceTiles();for(let i=0,a=o.length;i=0;--r)n[r].execute(this.context,o,this.getTileRenderTransform(e,t),t.viewState.rotation,s,l5,l)}n.globalAlpha=r}renderDeferredInternal(t){const e=this.renderedTiles,n=cZ(this.getLayer()),r=e.reduce((t,e,r)=>(e.executorGroups[n].forEach(e=>t.push({executorGroup:e,index:r})),t),[]),i=r.map(({executorGroup:t})=>t.getDeferredZIndexContexts()),s={};for(let a=0,l=r.length;a{i.forEach((e,n)=>{e[t]&&(e[t].forEach(t=>{const{executorGroup:e,index:i}=r[n],s=e.getRenderedContext(),o=s.globalAlpha;s.globalAlpha=this.renderedOpacity_;const a=this.tileClipContexts_[i];a&&a.draw(s),t.draw(s),a&&s.restore(),s.globalAlpha=o,t.clear()}),e[t].length=0)})}),this.layerExtent&&this.context.restore()}getTileRenderTransform(t,e){const n=e.pixelRatio,r=e.viewState,i=r.center,s=r.resolution,o=r.rotation,a=e.size,l=Math.round(a[0]*n),c=Math.round(a[1]*n),u=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),h=t.tileCoord,d=u.getTileCoordExtent(t.wrappedTileCoord),p=u.getTileCoordExtent(h,this.tempExtent)[0]-d[0];return aX(uX(this.inversePixelTransform.slice(),1/n,1/n),this.getRenderTransform(i,s,o,n,l,c,p))}clipTileContext_(t,e,n,r,i,s){const o=[];for(let l=0,c=n.length;l!l5.includes(t)):ttt[s],c=e.viewState,u=c.rotation;this.layerExtent&&this.clipUnrotated(t,e,this.layerExtent);const h=i.getSource(),d=h.getTileGridForProjection(c.projection).getZForResolution(c.resolution,h.zDirection),p=this.renderedTiles,f=[],g=[],m=[],y=cZ(i);let v=!0;for(let b=p.length-1;b>=0;--b){const n=p[b];v=v&&!n.getReplayState(i).dirty;const s=n.executorGroups[y].filter(t=>t.hasExecutors(l));if(0===s.length)continue;const o=this.getTileRenderTransform(n,e),c=n.tileCoord[0];let h=!1;const w=s[0].getClipCoords(rX);let _,x=t;if(w){const t=[w[0],w[1],w[4],w[5]];_=new K3,x=_.getContext(),d!==c&&(h=this.clipTileContext_(x,t,f,g,c,o)),f.push(t),g.push(c)}for(let i=0,d=s.length;ivoid 0!==t)),this.minZoom=void 0!==e?e:0,this.resolutions_=n,NZ(function(t){const e=((t,e)=>e-t)||GG;return t.every(function(n,r){if(0===r)return!0;const i=e(t[r-1],n);return!(i>0||0===i)})}(this.resolutions_),"`resolutions` must be sorted in descending order"),!t.origins)for(let s=0,o=this.resolutions_.length-1;s{const n=new A9(Math.min(0,t[0]),Math.max(t[0]-1,-1),Math.min(0,t[1]),Math.max(t[1]-1,-1));if(i){const t=this.getTileRangeForExtentAndZ(i,e);n.minX=Math.max(t.minX,n.minX),n.maxX=Math.min(t.maxX,n.maxX),n.minY=Math.max(t.minY,n.minY),n.maxY=Math.min(t.maxY,n.maxY)}return n}):i&&this.calculateTileRanges_(i)}forEachTileCoord(t,e,n){const r=this.getTileRangeForExtentAndZ(t,e);for(let i=r.minX,s=r.maxX;i<=s;++i)for(let t=r.minY,o=r.maxY;t<=o;++t)n([e,i,t])}forEachTileCoordParentTileRange(t,e,n,r){let i,s,o,a=null,l=t[0]-1;for(2===this.zoomFactor_?(s=t[1],o=t[2]):a=this.getTileCoordExtent(t,r);l>=this.minZoom;){if(void 0!==s&&void 0!==o?(s=Math.floor(s/2),o=Math.floor(o/2),i=O9(s,s,o,o,n)):i=this.getTileRangeForExtentAndZ(a,l,n),e(l,i))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getOrigins(){return this.origins_}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,n){if(t[0]this.maxZoom||e0?r:Math.max(s/n[0],i/n[1]);const o=e+1,a=new Array(o);for(let l=0;ln||n>e.getMaxZoom())return!1;const s=e.getFullTileRange(n);return!s||s.containsXY(r,i)}(t,r)?t:null}clear(){}refresh(){this.clear(),super.refresh()}},mtt=class extends iZ{constructor(t,e){super(t),this.tile=e}},ytt=class t extends gtt{constructor(e){super({attributions:e.attributions,cacheSize:e.cacheSize,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===t.prototype.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,e.tileUrlFunction&&(this.tileUrlFunction=e.tileUrlFunction),this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(t){const e=t.target,n=cZ(e),r=e.getState();let i;1==r?(this.tileLoadingKeys_[n]=!0,i="tileloadstart"):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],i=3==r?"tileloaderror":2==r?"tileloadend":void 0),null!=i&&this.dispatchEvent(new mtt(i,e))}setTileLoadFunction(t){this.tileLoadFunction=t,this.changed()}setTileUrlFunction(t,e){this.tileUrlFunction=t,void 0!==e?this.setKey(e):this.changed()}setUrl(t){const e=function(t){const e=[];let n=/\{([a-z])-([a-z])\}/.exec(t);if(n){const r=n[1].charCodeAt(0),i=n[2].charCodeAt(0);let s;for(s=r;s<=i;++s)e.push(t.replace(n[0],String.fromCharCode(s)));return e}if(n=/\{(\d+)-(\d+)\}/.exec(t),n){const r=parseInt(n[2],10);for(let i=parseInt(n[1],10);i<=r;i++)e.push(t.replace(n[0],i.toString()));return e}return e.push(t),e}(t);this.urls=e,this.setUrls(e)}setUrls(t){this.urls=t;const e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(ftt(t,this.tileGrid),e):this.setKey(e)}tileUrlFunction(t,e,n){}},vtt=class extends ytt{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:btt,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:t.wrapX,transition:t.transition,interpolate:void 0===t.interpolate||t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.crossOrigin=void 0!==t.crossOrigin?t.crossOrigin:null,this.referrerPolicy=t.referrerPolicy,this.tileClass=void 0!==t.tileClass?t.tileClass:M9,this.tileGridForProjection={},this.reprojectionErrorThreshold_=t.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}getGutterForProjection(t){return this.getProjection()&&t&&!ZY(this.getProjection(),t)?0:this.getGutter()}getGutter(){return 0}getKey(){let t=super.getKey();return this.getInterpolate()||(t+=":disable-interpolation"),t}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||ZY(e,t)))return this.tileGrid;const n=cZ(t);return n in this.tileGridForProjection||(this.tileGridForProjection[n]=stt(t)),this.tileGridForProjection[n]}createTile_(t,e,n,r,i,s){const o=[t,e,n],a=this.getTileCoordForTileUrlFunction(o,i),l=a?this.tileUrlFunction(a,r,i):void 0,c=new this.tileClass(o,void 0!==l?0:4,void 0!==l?l:"",{crossOrigin:this.crossOrigin,referrerPolicy:this.referrerPolicy},this.tileLoadFunction,this.tileOptions);return c.key=s,c.addEventListener(jG,this.handleTileChange.bind(this)),c}getTile(t,e,n,r,i,s){const o=this.getProjection();if(!o||!i||ZY(o,i))return this.getTileInternal(t,e,n,r,o||i);const a=[t,e,n],l=this.getKey(),c=this.getTileGridForProjection(o),u=this.getTileGridForProjection(i),h=this.getTileCoordForTileUrlFunction(a,i),d=new B9(o,c,i,u,a,h,this.getTilePixelRatio(r),this.getGutter(),(t,e,n,r)=>this.getTileInternal(t,e,n,r,o,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return d.key=l,d}getTileInternal(t,e,n,r,i,s){const o=this.getKey(),a=V9(this,o,t,e,n);if(s&&s.containsKey(a))return s.get(a);const l=this.createTile_(t,e,n,r,i,o);return s?.set(a,l),l}setRenderReprojectionEdges(t){this.renderReprojectionEdges_!=t&&(this.renderReprojectionEdges_=t,this.changed())}setTileGridForProjection(t,e){const n=$Y(t);if(n){const t=cZ(n);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}};function btt(t,e){if(xZ){const n=t.getCrossOrigin();let r="same-origin",i="same-origin";"anonymous"===n||""===n?(r="cors",i="omit"):"use-credentials"===n&&(r="cors",i="include");const s={mode:r,credentials:i,referrerPolicy:t.getReferrerPolicy()};return void fetch(e,s).then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.blob()}).then(t=>createImageBitmap(t)).then(e=>{const n=t.getImage();n.width=e.width,n.height=e.height,n.getContext("2d").drawImage(e,0,0),e.close?.(),n.dispatchEvent(new Event("load"))}).catch(()=>{t.getImage().dispatchEvent(new Event("error"))})}t.getImage().src=e}var wtt=class extends vtt{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:$Y("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)!function(t,e,n){const r=document.createElement("script"),i="olc_"+cZ(e);function s(){delete window[i],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+"callback="+i;const o=setTimeout(function(){s(),n&&n()},1e4);window[i]=function(t){clearTimeout(o),s(),e(t)},document.head.appendChild(r)}(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch{return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=$Y("EPSG:4326"),n=this.getProjection();let r;if(void 0!==t.bounds){const i=KY(e,n);r=MK(t.bounds,i)}const i=ltt(n),s=t.minzoom||0,o=ott({extent:i,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=ftt(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==r?r:i;this.setAttributions(function(n){return PK(e,n.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}},_tt=[],xtt=class extends E9{constructor(t,e,n,r,i){super(t,e,{transition:0}),this.context_=null,this.executorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.removeSourceTiles_=i,this.wrappedTileCoord=n}getContext(){return this.context_||(this.context_=SJ(1,1,_tt)),this.context_}hasContext(){return!!this.context_}getImage(){return this.hasContext()?this.getContext().canvas:null}getReplayState(t){const e=cZ(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedPixelRatio:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){this.context_&&(RJ(this.context_),_tt.push(this.context_.canvas),this.context_=null),this.removeSourceTiles_(this),this.sourceTiles.length=0,super.release()}},Ctt=class extends E9{constructor(t,e,n,r,i,s){super(t,e,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=i,this.url_=n,this.key=n}getTileUrl(){return this.url_}getFormat(){return this.format_}getFeatures(){return this.features_}load(){0==this.state&&(this.setState(1),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(3)}setFeatures(t){this.features_=t,this.setState(2)}setLoader(t){this.loader_=t}},ktt=class extends ytt{constructor(t){const e=t.projection||"EPSG:3857",n=t.extent||ltt(e),r=t.tileGrid||ott({extent:n,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,projection:e,state:t.state,tileGrid:r,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:Stt,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.tileKeysBySourceTileUrl_={},this.sourceTiles_={},this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:Ctt,this.tileGrids_={}}getOverlaps(){return this.overlaps_}getSourceZ_(t,e,n){const r=this.projection,i=e&&r&&!ZY(e,r)?t/r.getMetersPerUnit()*e.getMetersPerUnit():t;return this.tileGrid.getZForResolution(i,n)}getSourceTiles(t,e,n,r){if(0===n.getState()){n.setState(1);const i=n.wrappedTileCoord,s=this.getTileGridForProjection(e);let o=s.getTileCoordExtent(i);const a=i[0],l=s.getResolution(a);tK(o,-l,o);const c=this.projection;e&&this.projection&&!ZY(e,c)&&(o=QY(o,e,c));const u=this.tileGrid,h=u.getExtent();h&&SK(o,h,o);const d=this.getSourceZ_(l,e,this.zDirection),p=r||this.tileUrlFunction;u.forEachTileCoord(o,d,r=>{const i=p(r,t,e);this.sourceTiles_[i]||(this.sourceTiles_[i]=new this.tileClass(r,i?0:4,i,this.format_,this.tileLoadFunction));const s=this.sourceTiles_[i];n.sourceTiles.push(s),this.tileKeysBySourceTileUrl_[i]||(this.tileKeysBySourceTileUrl_[i]=[]),this.tileKeysBySourceTileUrl_[i].push(n.getKey());const o=s.getState();if(o<2){const t=e=>{this.handleTileChange(e);const r=s.getState();if(2===r||3===r){const e=s.getKey();e in n.errorTileKeys?2===s.getState()&&delete n.errorTileKeys[e]:n.loadingSourceTiles--,3===r?n.errorTileKeys[e]=!0:s.removeEventListener(jG,t),0===n.loadingSourceTiles&&n.setState(NG(n.errorTileKeys)?2:3)}};s.addEventListener(jG,t),n.loadingSourceTiles++}0===o&&(s.extent=u.getTileCoordExtent(r),s.projection=this.projection,s.resolution=u.getResolution(r[0]),s.load())}),n.loadingSourceTiles||n.setState(n.sourceTiles.some(t=>3===t.getState())?3:2)}return n.sourceTiles}removeSourceTiles(t){const e=t.getKey(),n=t.sourceTiles;for(let r=0,i=n.length;r{u=u&&!this.tileUrlFunction(t,r,l)})}const h=this.tileUrlFunction,d=new xtt(s,u?4:0,o,t=>this.getSourceTiles(r,i,t,h),this.removeSourceTiles.bind(this));return d.key=this.getKey(),d}getTileGridForProjection(t){const e=t.getCode();let n=this.tileGrids_[e];if(!n){const r=this.projection;if(null!==r&&!ZY(r,t))return stt(t);const i=this.tileGrid,s=i.getResolutions().slice(),o=s.map(function(t,e){return i.getOrigin(e)}),a=s.map(function(t,e){return i.getTileSize(e)}),l=43;for(let t=s.length;tTtt.pitch||0],"distance-from-center":[{kind:"number"},[],()=>Ttt.distanceFromCenter||0],"to-hsla":[{kind:"array",itemType:{kind:"number"},N:4},[{kind:"string"}],(t,[e])=>function(t){const e=t[0]/255,n=t[1]/255,r=t[2]/255,i=t[3],s=Math.max(e,n,r),o=Math.min(e,n,r),a=(s+o)/2;let l,c;if(s===o)l=0,c=0;else{const t=s-o;switch(c=a>.5?t/(2-s-o):t/(s+o),s){case e:l=(n-r)/t+(ne.evaluate(t)],"measure-light":[{kind:"number"},[{kind:"value"}],()=>1],config:[{kind:"value"},[{kind:"string"}],(t,[e])=>{const n=Ltt[e.evaluate(t)];return void 0===n?{}:n}]});var Ptt="https://api.mapbox.com";function Itt(t){return 0!==t.indexOf("mapbox://")?"":t.slice(9)}function Mtt(t,e,n){const r=Itt(t);if(!e||!r)return decodeURI(new URL(t,n).href);if(0!==r.indexOf("sprites/"))throw new Error(`unexpected sprites url: ${t}`);const i=r.slice(8);return`${Ptt}/styles/v1/${i}/sprite?access_token=${e}`}function Att(t,e){const n=Itt(t);if(!n||!e)return decodeURI(new URL(t,location.href).href);if(0!==n.indexOf("styles/"))throw new Error(`unexpected style url: ${t}`);const r=n.slice(7);return`${Ptt}/styles/v1/${r}?&access_token=${e}`}var Ott=["a","b","c","d"];function Ntt(t,e,n,r){const i=new URL(t,r||location.href),s=Itt(t);return s?"mapbox.satellite"===s?[`https://api.mapbox.com/v4/${s}/{z}/{x}/{y}${window.devicePixelRatio>=1.5?"@2x":""}.webp?access_token=${e}`]:Ott.map(t=>`https://${t}.tiles.mapbox.com/v4/${s}/{z}/{x}/{y}.vector.pbf?access_token=${e}`):e?(i.searchParams.has(n)||i.searchParams.set(n,e),[decodeURI(i.href)]):[decodeURI(i.href)]}var ztt=class extends R5{constructor(t){super(t),this.image=null,this.renderedSourceRevision_=0}getImage(){return this.image?this.image.getImage():null}prepareFrame(t){const e=t.layerStatesArray[t.layerIndex],n=t.pixelRatio,r=t.viewState,i=r.resolution,s=this.getLayer().getSource(),o=t.viewHints;let a=t.extent;if(void 0!==e.extent&&(a=SK(a,nX(e.extent,r.projection))),!o[0]&&!o[1]&&!IK(a))if(s){this.getLayer().rendered||this.renderedSourceRevision_===s.getRevision()||(this.image=null),this.renderedSourceRevision_=s.getRevision();const t=r.projection,e=s.getImage(a,i,n,t);e&&(this.loadImage(e)?this.image=e:4===e.getState()&&(this.image=null))}else this.image=null;return!!this.image}getData(t){const e=this.frameState;if(!e)return null;const n=this.getLayer(),r=cX(e.pixelToCoordinateTransform,t.slice()),i=n.getExtent();if(i&&!rK(i,r))return null;const s=this.image.getExtent(),o=this.image.getImage(),a=TK(s),l=Math.floor(o.width*((r[0]-s[0])/a));if(l<0||l>=o.width)return null;const c=kK(s),u=Math.floor(o.height*((s[3]-r[1])/c));return u<0||u>=o.height?null:this.getImageData(o,l,u)}renderFrame(t,e){const n=this.image,r=n.getExtent(),i=n.getResolution(),[s,o]=Array.isArray(i)?i:[i,i],a=n.getPixelRatio(),l=t.layerStatesArray[t.layerIndex],c=t.pixelRatio,u=t.viewState,h=u.center,d=u.resolution,p=c*s/(d*a),f=c*o/(d*a);this.prepareContainer(t,e);const g=this.context.canvas.width,m=this.context.canvas.height,y=this.getRenderContext(t);let v=!1,b=!0;if(l.extent){const e=nX(l.extent,u.projection);b=PK(e,t.extent),v=b&&!iK(e,t.extent),v&&this.clipUnrotated(y,t,e)}const w=n.getImage(),_=hX(this.tempTransform,g/2,m/2,p,f,0,a*(r[0]-h[0])/s,a*(h[1]-r[3])/o);this.renderedResolution=o*c/a;const x=w.width*_[0],C=w.height*_[3];if(this.getLayer().getSource().getInterpolate()||(y.imageSmoothingEnabled=!1),this.preRender(y,t),b&&x>=.5&&C>=.5){const t=_[4],e=_[5],n=l.opacity;1!==n&&(y.save(),y.globalAlpha=n),y.drawImage(w,0,0,+w.width,+w.height,t,e,x,C),1!==n&&y.restore()}return this.postRender(this.context,t),v&&y.restore(),y.imageSmoothingEnabled=!0,this.container}},Ftt=class extends FQ{constructor(t){super(t=t||{})}},Dtt=class extends Ftt{constructor(t){super(t)}createRenderer(){return new ztt(this)}getData(t){return super.getData(t)}},jtt=class extends X1{constructor(t,e,n,r,i){super(t,e,n,void 0!==i?0:2),this.loader_=void 0!==i?i:null,this.canvas_=r,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=3):this.state=2,this.changed()}load(){0==this.state&&(this.state=1,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};function Utt(t){return Array.isArray(t)?Math.min(...t):t}var Btt=class extends X1{constructor(t,e,n,r,i,s,o){let a=t.getExtent();a&&t.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=e.getExtent();l&&e.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const c=l?SK(n,l):n,u=D9(t,e,wK(c),r),h=new U9(t,e,c,a,.5*u,r),d=h.calculateSourceExtent(),p=IK(d)?null:s(d,u,i),f=p?0:4,g=p?p.getPixelRatio():1;super(n,r,g,f),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=h,this.targetResolution_=r,this.targetExtent_=n,this.sourceImage_=p,this.sourcePixelRatio_=g,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){1==this.state&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(2==t){const t=TK(this.targetExtent_)/this.targetResolution_,e=kK(this.targetExtent_)/this.targetResolution_;this.canvas_=j9(t,e,this.sourcePixelRatio_,Utt(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_,!0)}this.state=t,this.changed()}load(){if(0==this.state){this.state=1,this.changed();const t=this.sourceImage_.getState();2==t||3==t?this.reproject_():(this.sourceListenerKey_=zG(this.sourceImage_,jG,()=>{const t=this.sourceImage_.getState();2!=t&&3!=t||(this.unlistenSource_(),this.reproject_())}),this.sourceImage_.load())}}unlistenSource_(){DG(this.sourceListenerKey_),this.sourceListenerKey_=null}},$tt=class extends iZ{constructor(t,e){super(t),this.image=e}},qtt=class extends F5{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.loader=t.loader||null,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!t.loader&&0===t.loader.length,this.wantedProjection_=null}getResolutions(){return this.resolutions_}setResolutions(t){this.resolutions_=t}findNearestResolution(t){const e=this.getResolutions();return e&&(t=e[KG(e,t,0)]),t}getImage(t,e,n,r){const i=this.getProjection();if(!i||!r||ZY(i,r))return i&&(r=i),this.getImageInternal(t,e,n,r);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&ZY(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&hK(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new Btt(i,r,t,e,n,(t,e,n)=>this.getImageInternal(t,e,n,i),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,n,r){if(this.loader){const i=function(t,e,n){const r=e/n,i=wK(t),s=KZ(TK(t)/r,4),o=KZ(kK(t)/r,4);return xK(i,r,0,[s+2*KZ(0*s/2,4),o+2*KZ(0*o/2,4)])}(t,e,n),s=this.findNearestResolution(e);if(this.image&&(this.static_||this.wantedProjection_===r&&(this.wantedExtent_&&iK(this.wantedExtent_,i)||iK(this.image.getExtent(),i))&&(this.wantedResolution_&&Utt(this.wantedResolution_)===s||Utt(this.image.getResolution())===s)))return this.image;this.wantedProjection_=r,this.wantedExtent_=i,this.wantedResolution_=s,this.image=new X1(i,s,n,this.loader),this.image.addEventListener(jG,this.handleImageChange.bind(this))}return this.image}handleImageChange(t){const e=t.target;let n;switch(e.getState()){case 1:this.loading=!0,n="imageloadstart";break;case 2:this.loading=!1,n="imageloadend";break;case 3:this.loading=!1,n="imageloaderror";break;default:return}this.hasListener(n)&&this.dispatchEvent(new $tt(n,e))}};function Vtt(t){return function(e){const n=e.buffers,r=e.meta,i=e.imageOps,s=e.width,o=e.height,a=n.length,l=n[0].byteLength;if(i){const e=new Array(a);for(let t=0;tthis.maxQueueLength_;)this.queue_.shift().callback(null,null)}dispatch_(){if(this.running_||0===this.queue_.length)return;const t=this.queue_.shift();this.job_=t;const e=t.inputs[0].width,n=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),i=this.workers_.length;if(this.running_=i,1===i)return void this.workers_[0].postMessage({buffers:r,meta:t.meta,imageOps:this.imageOps_,width:e,height:n},r);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/i);for(let a=0;at*h/180),w=(e.altitudes||[45]).map(t=>t*h/180),_=Math.min(b.length,w.length,y.length,v.length,4),x=f<2?.4:f<4.5?.35:.3,C=f<15?Math.pow(2,(15-f)*x):1;function k(t,e="mapbox"){return"mapbox"===e?.1*(256*t[0]*256+256*t[1]+t[2])-1e4:"terrarium"===e?256*t[0]+t[1]+t[2]/256-32768:0}function S(t,e){return 0!==t?Math.atan2(e,-t):h/2*(e>0?1:-1)}const E="igor"===g?function(t,e){const n=S(t*=2*p,e*=2*p),r=b[0]+h,i=Math.atan(Math.sqrt(t*t+e*e))*(2/h);let s=(n+r)/h+.5;s%=2,s<0&&(s+=2);const o=1-Math.abs(s-1),a=i*o,l=i*(1-o),c=y[0],u=v[0];return[c.r*a+u.r*l,c.g*a+u.g*l,c.b*a+u.b*l,c.a*a+u.a*l]}:"basic"===g?function(t,e){t*=2*p,e*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=(Math.sin(w[0])-(e*r*s-t*i*s))/Math.sqrt(1+t*t+e*e),a=Math.max(0,Math.min(1,o));if(a>.5){const t=2*a-1,e=v[0];return[e.r*t,e.g*t,e.b*t,e.a*t]}const l=1-2*a,c=y[0];return[c.r*l,c.g*l,c.b*l,c.a*l]}:"combined"===g?function(t,e){t*=2*p,e*=2*p;const n=b[0]+h,r=Math.cos(n),i=Math.sin(n),s=Math.cos(w[0]),o=Math.sin(w[0]);let a=Math.acos((o-(e*r*s-t*i*s))/Math.sqrt(1+t*t+e*e));a=Math.max(0,Math.min(h/2,a));const l=Math.atan(Math.sqrt(t*t+e*e))*(4/h/h),c=a*l,u=(h/2-a)*l,d=y[0],f=v[0];return[d.r*c+f.r*u,d.g*c+f.g*u,d.b*c+f.b*u,d.a*c+f.a*u]}:"multidirectional"===g?function(t,e){const n=(t*=2*p)*t+(e*=2*p)*e,r=Math.sqrt(1+n);let i=0,s=0,o=0,a=0;for(let l=0;l<_;l++){const n=Math.cos(w[l]),c=(Math.sin(w[l])-(e*-Math.cos(b[l])*n-t*-Math.sin(b[l])*n))/r,u=Math.max(0,Math.min(1,c)),h=y[Math.min(l,y.length-1)],d=v[Math.min(l,v.length-1)];if(u>.5){const t=(2*u-1)/_;i+=d.r*t,s+=d.g*t,o+=d.b*t,a+=d.a*t}else{const t=(1-2*u)/_;i+=h.r*t,s+=h.g*t,o+=h.b*t,a+=h.a*t}}return[i,s,o,a]}:function(t,e){const n=b[0]+h,r=Math.atan(.625*Math.sqrt(t*t+e*e)),i=S(t,e),s=1.875-1.75*p,o=.5*h,a=.5!==p?(Math.pow(s,r)-1)/(Math.pow(s,o)-1)*o:r,l=Math.cos(a),c=Math.min(Math.max(2*p,0),1),u=(1-l)*c,d=m,f=d.r*u,g=d.g*u,w=d.b*u,_=d.a*u;let x=(i+n)/h+.5;x%=2,x<0&&(x+=2);const C=Math.abs(x-1),k=Math.sin(a)*c,E=y[0],R=v[0],L=(E.r*(1-C)+R.r*C)*k,T=(E.g*(1-C)+R.g*C)*k,P=(E.b*(1-C)+R.b*C)*k,I=(E.a*(1-C)+R.a*C)*k;return[f*(1-I)+L,g*(1-I)+T,w*(1-I)+P,_*(1-I)+I]};let R,L,T,P,I,M,A,O,N,z,F;for(L=0;L<=c;++L)for(I=0===L?0:L-1,M=L===c?c:L+1,R=0;R<=l;++R){T=0===R?0:R-1,P=R===l?l:R+1,A=4*(L*r+T),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=k(u,d),A=4*(L*r+P),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=k(u,d),z=(N-O)/a*C,A=4*(I*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],O=k(u,d),A=4*(M*r+R),u[0]=s[A],u[1]=s[A+1],u[2]=s[A+2],u[3]=s[A+3],N=k(u,d),F=(N-O)/a*C;const t=E(z,F),e=t[3];A=4*(L*r+R),e>0&&(o[A]=t[0]/e*255,o[A+1]=t[1]/e*255,o[A+2]=t[2]/e*255),o[A+3]=255*e}return new ImageData(o,r,i)}function Qtt(t,e){const n=t[0],r=n.width,i=n.height,s=n.data,o=new Uint8ClampedArray(s.length),a=r-1,l=i-1,c=[0,0,0,0];let u,h,d;const p=(f=e.saturation)>0?1-1/(1.001-f):-f;var f;const g=(m=e.contrast)>0?1/(1-m):1+m;var m;const y=function(t){t*=Math.PI/180;const e=Math.sin(t),n=Math.cos(t);return[(2*n+1)/3,(-Math.sqrt(3)*e-n+1)/3,(Math.sqrt(3)*e-n+1)/3]}(e.hueRotate),v=y,b=[y[2],y[0],y[1]],w=[y[1],y[2],y[0]],_=e.brightnessLow,x=e.brightnessHigh;for(h=0;h<=l;++h)for(u=0;u<=a;++u){d=4*(h*r+u),c[0]=s[d],c[1]=s[d+1],c[2]=s[d+2],c[3]=s[d+3];const t=c[0],e=c[1],n=c[2],i=(t,e)=>{let n=0;for(let r=0;r1?h[h.length-2].toLowerCase():"";if(d==p||d==p.replace("-","")||f+"-"+d==p){o=i?o:tet[p],h.pop(),f&&p.startsWith(f)&&h.pop();break}}i||"number"!=typeof d||(o=d,i=!0);var g=h.join(eet).replace("Klokantech Noto Sans","Noto Sans").replace("DIN Pro","Barlow").replace("Arial Unicode MS","Arial");-1!==g.indexOf(eet)&&(g='"'+g+'"'),l.push(g)}r=ret[t]=[a,o,l]}return r[0]+eet+r[1]+eet+e+"px"+(n?"/"+n:"")+eet+r[2]}var set=Object.freeze({}),oet={},aet={},cet=0;function uet(t){return t.id||(t.id=cet++),t.id}function het(t){let e=oet[t.id];return e||(e={},oet[uet(t)]=e),e}function det(t){return t*Math.PI/180}var pet=function(){const t=[];for(let e=78271.51696402048;t.length<=24;e/=2)t.push(e);return t}();function fet(t,e){if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(t,e);const n=document.createElement("canvas");return n.width=t,n.height=e,n}function get(t,e){let n=0;const r=e.length;for(;ni).then(t=>t instanceof Response?(r&&(r.url=t.url),o(t)):(t instanceof Request||(t=new Request(t)),t.headers.get("Accept")||t.headers.set("Accept","application/json"),r&&(r.url=t.url),fetch(t).then(o).catch(s))).catch(s);return yet[e]=[i,a],a}function bet(t,e){if("string"!=typeof t)return Promise.resolve(t);if(!t.trim().startsWith("{"))return vet("Style",t=Att(t,e.accessToken),e);try{const e=JSON.parse(t);return Promise.resolve(e)}catch(s7){return Promise.reject(s7)}}var wet={};function _et(t,e,n={}){const r=[e,JSON.stringify(t)].toString();let i=wet[r];if(!i||n.transformRequest){let s;n.transformRequest&&(s=(t,e)=>{const r=n.transformRequest&&n.transformRequest(e,"Tiles")||e;if(t instanceof Ctt)t.setLoader((e,n,i)=>{const s=function(n){n.arrayBuffer().then(n=>{const r=t.getFormat().readFeatures(n,{extent:e,featureProjection:i});t.setFeatures(r)})};rZ(()=>r).then(e=>{if(e instanceof Response)return s(e);fetch(e).then(s).catch(()=>t.setState(3))}).catch(()=>t.setState(3))});else{const e=t.getImage();rZ(()=>r).then(n=>{if("string"==typeof n)return void(e.src=n);const r=t=>t.blob().then(t=>{const n=URL.createObjectURL(t);e.addEventListener("load",()=>URL.revokeObjectURL(n)),e.addEventListener("error",()=>URL.revokeObjectURL(n)),e.src=n});if(n instanceof Response)return r(n);fetch(n).then(r).catch(()=>t.setState(3))}).catch(()=>t.setState(3))}});const o=t.url;if(o&&!t.tiles){const r=Ntt(o,n.accessToken,n.accessTokenParam||"access_token",e||location.href);if(o.startsWith("mapbox://"))i=Promise.resolve({tileJson:Object.assign({},t,{url:void 0,tiles:r}),tileLoadFunction:s});else{const t={};i=vet("Source",r[0],n,t).then(function(e){return e.tiles=e.tiles.map(function(r){return"tms"===e.scheme&&(r=r.replace("{y}","{-y}")),Ntt(r,n.accessToken,n.accessTokenParam||"access_token",t.url)[0]}),Promise.resolve({tileJson:e,tileLoadFunction:s})})}}else t.tiles?(t=Object.assign({},t,{tiles:t.tiles.map(function(r){return"tms"===t.scheme&&(r=r.replace("{y}","{-y}")),Ntt(r,n.accessToken,n.accessTokenParam||"access_token",e||location.href)[0]})}),i=Promise.resolve({tileJson:Object.assign({},t),tileLoadFunction:s})):i=Promise.reject(new Error("source has no `tiles` nor `url`"));wet[r]=i}return i}function xet(t,e,n,r){const i=[2*n*e.pixelRatio+e.width,2*n*e.pixelRatio+e.height],s=fet(i[0],i[1]),o=s.getContext("2d");o.drawImage(t,e.x,e.y,e.width,e.height,n*e.pixelRatio,n*e.pixelRatio,e.width,e.height);const a=o.getImageData(0,0,i[0],i[1]);o.globalCompositeOperation="destination-over",o.fillStyle=`rgba(${255*r.r},${255*r.g},${255*r.b},${r.a})`;const l=a.data;for(let c=0,u=a.width;c0&&o.arc(c,t,n*e.pixelRatio,0,2*Math.PI);return o.fill(),s}function Cet(t,e,n){const r=Math.max(0,Math.min(1,(n-t)/(e-t)));return r*r*(3-2*r)}function ket(t,e,n){const r=fet(e.width,e.height),i=r.getContext("2d");i.drawImage(t,e.x,e.y,e.width,e.height,0,0,e.width,e.height);const s=i.getImageData(0,0,e.width,e.height),o=s.data;for(let a=0,l=s.width;a0?(o[e+0]=Math.round(255*n.r*r),o[e+1]=Math.round(255*n.g*r),o[e+2]=Math.round(255*n.b*r),o[e+3]=Math.round(255*r)):o[e+3]=0}return i.putImageData(s,0,0),r}var Eet,Ret=Array(256).join(" ");function Let(t,e){if(e>=.05){let n="";const r=t.split("\n"),i=Ret.slice(0,Math.round(e/.1));for(let t=0,e=r.length;t0&&(n+="\n"),n+=r[t].split("").join(i);return n}return t}function Tet(){return Eet||(Eet=fet(1,1).getContext("2d")),Eet}function Pet(t,e){if(/\d+ \d+/.test(t)){const[n,r]=t.split(" ").map(Number);return n<=e&&e<=r}return t==e}function Iet(t,e){return Tet().measureText(t).width+(t.length-1)*e}var Met={};function Aet(t,e,n,r){if(-1!==t.indexOf("\n")){const i=t.split("\n"),s=[];for(let t=0,o=i.length;t1){const t=Tet();t.font=e;const i=t.measureText("M").width*n;let a="";const l=[];for(let e=0,n=o.length;e1;++e){const t=l[e];if(Iet(t,r)<.35*i){const i=e>0?Iet(l[e-1],r):1/0,s=e.7*i&&Iet(s,r)<.6*i){const o=t.split(" "),a=o.pop();Iet(a,r)<.2*i&&(l[e]=o.join(" "),l[e+1]=a+" "+s),n-=1}}s=l.join("\n")}else s=t;s=Let(s,r),Met[i]=s}return s}d2.on("propertychange",()=>{for(const t in Met)delete Met[t]});var Oet,Net,zet=["Arial","Courier New","Times New Roman","Verdana","sans-serif","serif","monospace","cursive","fantasy"],Fet={},Det={Point:1,MultiPoint:1,LineString:2,MultiLineString:2,Polygon:3,MultiPolygon:3},jet={center:[.5,.5],left:[0,.5],right:[1,.5],top:[.5,0],bottom:[.5,1],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},Uet=function(t,e){let n=m7(t,e);if("error"===n.result){const r=Rtt(t);r!==t&&(n=m7(r,e))}if("error"===n.result){const r=n.value[0];return console.error("Error parsing expression:",t,r.key,r.message),{evaluate:()=>e.default}}return n.value};function Bet(t,e,n,r,i,s){const o=t.id;i||(i={},console.warn("No functionCache provided to getValue()")),i[o]||(i[o]={});const a=i[o];if(!a[n]){let r=(t[e]||set)[n];const i=m9[`${e}_${t.type}`]&&m9[`${e}_${t.type}`][n];void 0===r&&i&&(r=i.default);let s=d7(r);if(!s&&u7(r)&&(r=P7(r,i),s=!0),s){const t=Uet(r,i);a[n]=t.evaluate.bind(t)}else{const t=i?i.type:typeof r;"color"!==t&&"colorArray"!==t||(r=p6.parse(r));let e=!1;if("array"===t)for(let n=0;n!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};w7(t)||(t=k7(t));const e=p7(t,_7,void 0);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return{filter:(t,n,r)=>e.value.evaluate(t,n,{},r),needGeometry:C7(t),getGlobalStateRefs:()=>v7(e.value.expression)}}(e).filter}catch(i){console.warn("Filter will evaluate to false: "+i.message),r[t]=function(){return!1}}return r[t](Ttt,n)}function Vet(t,e){if(t){if(0===t.a||0===e)return;const n=t.a;return e=void 0===e?1:e,0===n?"transparent":"rgba("+Math.round(255*t.r/n)+","+Math.round(255*t.g/n)+","+Math.round(255*t.b/n)+","+n*e+")"}return t}var Wet=/\{[^{}}]*\}/g;function Het(t,e){return t.replace(Wet,function(t){return e[t.slice(1,-1)]||""})}function Get(t,e){let n=t.split(":")[0];return n===t&&(n="default"),e[n]}var Zet={},Ket=p6.parse("#000000"),Yet=p6.parse("#FFFFFF"),Xet=p6.parse("#000000"),Jet=["raster-saturation","raster-contrast","raster-brightness-max","raster-brightness-min","raster-hue-rotate"],Qet=["background","circle","fill","fill-extrusion","line","symbol","raster","hillshade"];function tnt(t,e=512){return t.getExtent()?ott({extent:t.getExtent(),tileSize:e,maxZoom:22}).getResolutions():pet}function ent(t,e){return e.accessToken||(e=Object.assign({},e),new URL(t).searchParams.forEach((t,n)=>{e.accessToken=t,e.accessTokenParam=n})),e}var nnt=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function rnt(t,e){if(!e.ref)return e;const n=t.find(t=>t.id===e.ref);if(!n)return e;const r=Object.assign({},e);for(const i of nnt)!(i in r)&&i in n&&(r[i]=n[i]);return r}function int(t,e,n){const r=new wtt({tileJSON:e,tileSize:t.tileSize||e.tileSize||512}),i=r.getTileJSON(),s=r.getTileGrid(),o=$Y(n.projection||"EPSG:3857"),a=function(t,e){const n=t.bounds;if(n){const t=HY([n[0],n[1]],e),r=HY([n[2],n[3]],e);return[t[0],t[1],r[0],r[1]]}return $Y(e).getExtent()}(i,o),l=o.getExtent(),c=i.minzoom||0,u=i.maxzoom||22,h={attributions:r.getAttributions(),projection:o,tileGrid:new itt({origin:l?RK(l):s.getOrigin(0),extent:a||s.getExtent(),minZoom:c,resolutions:tnt(o,e.tileSize).slice(0,u+1),tileSize:s.getTileSize(0)})};return Array.isArray(i.tiles)?h.urls=i.tiles:h.url=i.tiles,h}function snt(t,e,n){return new Promise(function(r,i){_et(t,e,n).then(function({tileJson:e,tileLoadFunction:i}){const s=int(t,e,n);s.tileLoadFunction=i,s.format=new _9({layerName:"mvt:layer"});const o=new ktt(s);o.set("mapbox-source",t),r(o)}).catch(i)})}function ont(t){return`{bbox-${(t?t.getCode():"EPSG:3857").toLowerCase().replace(/[^a-z0-9]/g,"-")}}`}function ant(t,e,n){const r=new J9;return function(t,e,n){return new Promise(function(r,i){_et(t,e,n).then(function({tileJson:e,tileLoadFunction:i}){const s=new wtt({interpolate:void 0===n.interpolate||n.interpolate,transition:0,crossOrigin:"anonymous",tileJSON:e});s.tileGrid=int(t,e,n).tileGrid,n.projection&&(s.projection=$Y(n.projection));const o=s.getTileUrlFunction();i&&s.setTileLoadFunction(i),s.setTileUrlFunction(function(t,e,n){const r=ont(n);let i=o(t,e,n);if(-1!=i.indexOf(r)){const e=s.getTileGrid().getTileCoordExtent(t);i=i.replace(r,e.toString())}return i}),s.set("mapbox-source",t),r(s)}).catch(function(t){i(t)})})}(t,e,n).then(function(t){r.setSource(t)}).catch(function(){r.setSource(void 0)}),r}function lnt(t,e,n){const r=n.projection?new J5({dataProjection:n.projection}):new J5,i=t.data,s={};if("string"==typeof i){const[s]=Ntt(i,n.accessToken,n.accessTokenParam||"access_token",e||location.href);if(/\{bbox-[0-9a-z-]+\}/.test(s)){const e=(t,e,n)=>{const r=ont(n);return s.replace(r,`${t.join(",")}`)},i=new $5({attributions:t.attribution,format:r,loader:(t,r,s,o,a)=>{vet("GeoJSON","function"==typeof e?e(t,r,s):e,n).then(t=>{const e=i.getFormat().readFeatures(t,{featureProjection:s});i.addFeatures(e),o(e)}).catch(()=>{i.removeLoadedExtent(t),a()})},strategy:A5});return i.set("mapbox-source",t),i}const o=new $5({attributions:t.attribution,format:r,url:s,loader:(t,e,r,i,a)=>{vet("GeoJSON",s,n).then(t=>{const e=o.getFormat().readFeatures(t,{featureProjection:r});o.addFeatures(e),i(e)}).catch(()=>{o.removeLoadedExtent(t),a()})}});return o}s.features=r.readFeatures(i,{featureProjection:"EPSG:3857"});const o=new $5(Object.assign({attributions:t.attribution,format:r},s));return o.set("mapbox-source",t),o}function cnt(t,e,n,r){n=rnt(t.layers,n);const i=het(t),s=n.type;let o=n.source;const a=t.sources[o];let l;var c;return"background"==s?(l=function(t,e,n){const r=xZ?{style:{}}:document.createElement("div");return r.className="ol-mapbox-style-background",r.style.position="absolute",r.style.width="100%",r.style.height="100%",new FQ({source:new F5({}),render(i){const s=function(t,e,n,r){const i={id:t.id,type:t.type},s=t.paint||{};let o;i.paint=s,Ttt.zoom=get(e,n.resolutions||pet),Ttt.distanceFromCenter=0;const a=Bet(i,"paint","background-color",set,r);return void 0!==s["background-opacity"]&&(o=Bet(i,"paint","background-opacity",set,r)),"none"===Bet(i,"layout","visibility",set,r)?void 0:Vet(a,o)}(t,i.viewState.resolution,e,n);return r.style.backgroundColor=s,r}})}(n,r,i),o=void 0):"vector"==a.type?l=function(t,e,n){const r=new ntt({declutter:!0,visible:!1});return snt(t,e,n).then(function(t){r.setSource(t)}).catch(function(){r.setSource(void 0)}),r}(a,e,r):"raster"==a.type?(Object.keys(n.paint||{}).find(t=>Jet.includes(t))?(c=ant(a,e,r),l=new Dtt({source:new Ztt({operationType:"image",operation:Qtt,sources:[c]})}),function(t,e,n,r){t.getSource().on("beforeoperations",function(t){Ttt.zoom=get(t.resolution,n.resolutions||pet),Ttt.distanceFromCenter=0;const i=t.data;i.saturation=Bet(e,"paint","raster-saturation",set,r),i.contrast=Bet(e,"paint","raster-contrast",set,r),i.brightnessHigh=Bet(e,"paint","raster-brightness-max",set,r),i.brightnessLow=Bet(e,"paint","raster-brightness-min",set,r),i.hueRotate=Bet(e,"paint","raster-hue-rotate",set,r)})}(l,n,r,i)):l=ant(a,e,r),l.setVisible(!n.layout||"none"!==Bet(n,"layout","visibility",set,i)),l.on("prerender",function(t,e,n){let r=null;return function(i){t.paint&&"raster-opacity"in t.paint&&i.frameState.viewState.zoom!==r&&(r=i.frameState.viewState.zoom,delete n[t.id],function(t,e,n,r){Ttt.zoom=n,Ttt.distanceFromCenter=0;const i=Bet(t,"paint","raster-opacity",set,r);e.setOpacity(i)}(t,e,r,n))}}(n,l,i))):"geojson"==a.type?l=function(t,e,n){return new T5({declutter:!0,source:lnt(t,e,n),visible:!1})}(a,e,r):"raster-dem"==a.type&&"hillshade"==n.type&&(l=function(t){return new Dtt({source:new Ztt({operationType:"image",operation:Jtt,sources:[t]})})}(ant(a,e,r)),function(t,e,n,r,i){t.getSource().on("beforeoperations",function(t){const s=t.data;s.resolution=qY(r.projection||"EPSG:3857",t.resolution,wK(t.extent),"m");const o=get(t.resolution,r.resolutions||pet);Ttt.zoom=o,Ttt.distanceFromCenter=0,s.zoom=o,s.encoding=e.encoding,s.method=Bet(n,"paint","hillshade-method",set,i)||"standard",s.exaggeration=Bet(n,"paint","hillshade-exaggeration",set,i);let a=Bet(n,"paint","hillshade-illumination-direction",set,i);null==a&&(a=335),s.azimuths=Array.isArray(a)?a:[a],s.sunAz=s.azimuths[0];let l=Bet(n,"paint","hillshade-illumination-altitude",set,i);function c(t){return t&&t.values?t.values[0]:t}function u(t){const e=n.paint?.[t];if(Array.isArray(e)&&e.length>0&&"string"==typeof e[0]&&void 0!==p6.parse(e[0]))return e.map(t=>p6.parse(t));let r=Bet(n,"paint",t,set,i);return r=c(r),r?[r]:void 0}null==l&&(l=45),s.altitudes=Array.isArray(l)?l:[l],s.highlightColors=u("hillshade-highlight-color"),s.highlightColor=s.highlightColors?.[0]||Yet,s.highlightColors||(s.highlightColors=[s.highlightColor]),s.shadowColors=u("hillshade-shadow-color"),s.shadowColor=s.shadowColors?.[0]||Ket,s.shadowColors||(s.shadowColors=[s.shadowColor]),s.accentColor=c(Bet(n,"paint","hillshade-accent-color",set,i))||Xet})}(l,a,n,r,i),l.setVisible(!n.layout||"none"!==Bet(n,"layout","visibility",set,i))),l&&l.set("mapbox-source",o),l}function unt(t,e,n,r){t.schema&&Object.assign(Ltt,Object.keys(t.schema).reduce((e,n)=>(e[n]=t.schema[n]?.default,e),{}));const i=[];let s=null;if(e instanceof d3){if(s=e.getView(),!s.isDef()&&!s.getRotation()&&!s.getResolutions()){const t=r.projection?$Y(r.projection):s.getProjection();s=new dJ(Object.assign(s.getProperties(),{maxResolution:pet[0]/HK[t.getUnits()],projection:r.projection||s.getProjection()})),e.setView(s)}"center"in t&&!s.getCenter()&&s.setCenter(HY(t.center,s.getProjection())),"zoom"in t&&void 0===s.getZoom()&&s.setResolution(pet[0]/HK[s.getProjection().getUnits()]/Math.pow(2,t.zoom)),s.getCenter()&&void 0!==s.getZoom()||s.fit(s.getProjection().getExtent(),{nearest:!0,size:e.getSize()})}e.set("mapbox-style",t),e.set("mapbox-metadata",{styleUrl:n,options:r});const o=t.layers;let a,l,c,u=[];for(let h=0,d=o.length;h0||n>0)&&t.setMaxResolution(Math.min(met(Math.max(0,o-1e-12),pet),met(Math.max(0,n-1e-12),e.getResolutions()))),a<24&&t.setMinResolution(met(a,pet))}}else o>0&&t.setMaxResolution(met(Math.max(0,o-1e-12),pet));u instanceof $5||u instanceof ktt?function(t,e,n="",r={},i){let s,o,a,l,c=!0;return"string"==typeof n||Array.isArray(n)?l=n:(a=n,l=a.source||a.layers,r=a),"string"==typeof r?(s=r,a={}):(s=r.styleUrl,a=r),!1===a.updateSource&&(c=!1),i||(i=a.resolutions),s||"string"!=typeof e||e.trim().startsWith("{")||(s=e),s&&(s=s.startsWith("data:")?location.href:Att(s,a.accessToken),a=ent(s,a)),new Promise(function(n,r){bet(e,a).then(function(e){if(8!=e.version)return r(new Error("glStyle version 8 required."));if(!(t instanceof T5||t instanceof ntt))return r(new Error("Can only apply to VectorLayer or VectorTileLayer"));const u=t instanceof ntt?"vector":"geojson";if(l?o=Array.isArray(l)?e.layers.find(function(t){return t.id===l[0]}).source:l:(o=e.layers.find(function(t){return t.source&&e.sources[t.source].type===u}).source,l=o),!o)return r(new Error(`No ${u} source found in the glStyle.`));function h(){if(!c)return Promise.resolve();if(t instanceof ntt)return snt(e.sources[o],s,a).then(function(e){const n=t.getSource();n?e!==n&&(n.setTileUrlFunction(e.getTileUrlFunction()),"function"==typeof n.setUrls&&"function"==typeof e.getUrls&&n.setUrls(e.getUrls()),n.format_||(n.format_=e.format_),n.getAttributions()||n.setAttributions(e.getAttributions()),n.getTileLoadFunction()===Stt&&n.setTileLoadFunction(e.getTileLoadFunction()),ZY(n.getProjection(),e.getProjection())&&(n.tileGrid=e.getTileGrid())):t.setSource(e);const r=t.getSource().getTileGrid();!isFinite(t.getMaxResolution())&&!isFinite(t.getMinZoom())&&r.getMinZoom()>0&&t.setMaxResolution(met(Math.max(0,r.getMinZoom()-1e-12),r.getResolutions()))});const n=e.sources[o];let r=t.getSource();r&&r.get("mapbox-source")===n||(r=lnt(n,s,a));const i=t.getSource();return i?r!==i&&(i.getAttributions()||i.setAttributions(r.getAttributions()),i.format_||(i.format_=r.getFormat()),i.url_=r.getUrl()):t.setSource(r),Promise.resolve()}let d,p;const f={},g={};function m(){if(p||e.sprite&&!f)p?(t.setStyle(p),h().then(n).catch(r)):r(new Error("Something went wrong trying to apply style."));else{if(a.projection&&!i){const t=$Y(a.projection).getUnits();"m"!==t&&(i=pet.map(e=>e/HK[t]))}let s;const c=t.getSource();c instanceof ktt&&c.format_ instanceof _9&&(s=c.format_.layerName_),p=function(t,e,n,r=pet,i,s,o,a){if("string"==typeof e&&(e=JSON.parse(e)),e.schema)for(const b in e.schema){const t=e.schema[b];"default"in t&&(Ltt[b]=t.default)}if(8!=e.version)throw new Error("glStyle version 8 required.");Zet[function(t,e){return uet(t)+"."+cZ(e)}(e,t)]=Array.from(arguments);const l={};("string"==typeof s||s instanceof Request||s instanceof Response||s instanceof Promise)&&(s={default:s});for(const b in s){const e=s[b];rZ(()=>e).then(async e=>{let n;if("undefined"!=typeof Image){const r=new Image;if("string"==typeof e)r.crossOrigin="anonymous",r.src=e;else{let t;e instanceof Request?t=await fetch(e):e instanceof Response&&(t=e);const i=await t.blob();n=URL.createObjectURL(i),r.src=n}r.addEventListener("load",function e(){r.removeEventListener("load",e),l[b]={image:r,size:[r.width,r.height]},t.changed(),n&&URL.revokeObjectURL(n)}),r.addEventListener("error",function t(){URL.revokeObjectURL(n),r.removeEventListener("error",t)})}else if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope){const t=self;t.postMessage({action:"loadImage",src:e}),t.addEventListener("message",function(t){"imageLoaded"===t.data.action&&t.data.src===e&&(l[b]={image:t.data.image,size:[t.data.image.width,t.data.image.height]})})}})}const c=m4(e.layers),u={},h=[],d={},p={},f=het(e),g=function(t){let e=aet[t.id];return e||(e={},aet[uet(t)]=e),e}(e);let m;for(let b=0,w=c.length;b=h.maxzoom)continue;const k=h.filter;if(!k||qet(w,k,S,g)){let r,c,g,v,b,w;R=h;const k=u.index;if(3==_&&("fill"==h.type||"fill-extrusion"==h.type))if(c=Bet(h,"paint",h.type+"-opacity",S,f,E),h.type+"-pattern"in C){const t=Bet(h,"paint",h.type+"-pattern",S,f,E);if(t){const e="string"==typeof t?Het(t,m):t.toString(),n=Get(e,l);if(i&&i[e]&&n){++L,w=y[L],w&&w.getFill()&&!w.getStroke()&&!w.getText()||(w=new T2({fill:new S2}),y[L]=w),g=w.getFill(),w.setZIndex(k);const t=e+"."+c;let r=p[t];if(!r){const s=i[e],o=fet(s.width,s.height),a=o.getContext("2d");a.globalAlpha=c,a.drawImage(n.image,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r=a.createPattern(o,"repeat"),p[t]=r}g.setColor(r)}}}else if(r=Vet(Bet(h,"paint",h.type+"-color",S,f,E),c),h.type+"-outline-color"in C&&(b=Vet(Bet(h,"paint",h.type+"-outline-color",S,f,E),c)),b||(b=r),r||b){if(++L,w=y[L],(!w||r&&!w.getFill()||!r&&w.getFill()||b&&!w.getStroke()||!b&&w.getStroke()||w.getText())&&(w=new T2({fill:r?new S2:void 0,stroke:b?new L2:void 0}),y[L]=w),r&&(g=w.getFill(),g.setColor(r)),"fill-extrusion"===h.type){const t=Bet(h,"paint","fill-extrusion-height",S,f,E);if(t>0){const e=Math.max(.1,.9-Math.min(t,225)/280);if(b&&"transparent"!==b){const t=p6.parse(b);b=`rgba(${Math.round(255*t.r*e)},${Math.round(255*t.g*e)},${Math.round(255*t.b*e)},${t.a})`}}}b&&(v=w.getStroke(),v.setColor(b),v.setWidth(.5)),w.setZIndex(k)}if(1!=_&&"line"==h.type){r="line-pattern"in C?void 0:Vet(Bet(h,"paint","line-color",S,f,E),Bet(h,"paint","line-opacity",S,f,E));const t=Bet(h,"paint","line-width",S,f,E);r&&t>0&&(++L,w=y[L],w&&w.getStroke()&&!w.getFill()&&!w.getText()||(w=new T2({stroke:new L2}),y[L]=w),v=w.getStroke(),v.setLineCap(Bet(h,"layout","line-cap",S,f,E)),v.setLineJoin(Bet(h,"layout","line-join",S,f,E)),v.setMiterLimit(Bet(h,"layout","line-miter-limit",S,f,E)),v.setColor(r),v.setWidth(t),v.setLineDash(C["line-dasharray"]?Bet(h,"paint","line-dasharray",S,f,E).map(function(e){return e*t}):null),"function"==typeof v.setOffset&&v.setOffset(Bet(h,"paint","line-offset",S,f,E)),w.setZIndex(k))}let T,P,I,M,A,O,N,z,F,D=!1,j=null,U=0;if((1==_||2==_)&&"icon-image"in x){const e=Bet(h,"layout","icon-image",S,f,E);if(e){let r;T="string"==typeof e?Het(e,m):e.toString();const o=a?a(t,T):void 0,c=Get(T,l);if(i&&i[T]&&c||o){const t=Bet(h,"layout","icon-rotation-alignment",S,f,E);if(2==_){const e=n.getGeometry();if(e.getFlatMidpoint||e.getFlatMidpoints){const n=e.getExtent();if(Math.sqrt(Math.max(Math.pow((n[2]-n[0])/s,2),Math.pow((n[3]-n[1])/s,2)))>150){const n="MultiLineString"===e.getType()?e.getFlatMidpoints():e.getFlatMidpoint();if(Net||(Net=new N5("Point",Oet=[NaN,NaN],[],2,{},void 0)),r=Net,Oet[0]=n[0],Oet[1]=n[1],"line"===Bet(h,"layout","symbol-placement",S,f,E)&&"map"===t){const t=e.getStride(),r=e.getFlatCoordinates();for(let e=0,i=r.length-t;e=l){U=Math.atan2(s-a,o-i);break}}}}}}if(2!==_||r){const e=Bet(h,"layout","icon-size",S,f,E),n=void 0!==C["icon-color"]?Bet(h,"paint","icon-color",S,f,E):null;if(!n||0!==n.a){const r=Bet(h,"paint","icon-halo-color",S,f,E),s=Bet(h,"paint","icon-halo-width",S,f,E);let a=`${T}.${e}.${s}.${r}`;if(null!==n&&(a+=`.${n}`),P=d[a],!P){const l=$et(h,S,"icon",f);let u;"icon-offset"in x&&(u=Bet(h,"layout","icon-offset",S,f,E).slice(0),u[0]*=e,u[1]*=-e);let p=n?[255*n.r,255*n.g,255*n.b,n.a]:void 0;if(o){const n={color:p,rotateWithView:"map"===t,displacement:u,declutterMode:l,scale:e};"string"==typeof o?n.src=o:(n.img=o,n.imgSize=[o.width,o.height]),P=new R2(n)}else{const o=i[T];let a,h,d;s?o.sdf?(a=xet(ket(c.image,o,n||[0,0,0,1]),{x:0,y:0,width:o.width,height:o.height,pixelRatio:o.pixelRatio},s,r),p=void 0):a=xet(c.image,o,s,r):(o.sdf&&(c.unSDFed||(c.image=ket(c.image,{x:0,y:0,width:c.size[0],height:c.size[1]},{r:1,g:1,b:1,a:1}),c.unSDFed=!0)),a=c.image,h=[o.width,o.height],d=[o.x,o.y]),P=new R2({color:p,img:a,imgSize:c.size,size:h,offset:d,rotateWithView:"map"===t,scale:e/o.pixelRatio,displacement:u,declutterMode:l})}d[a]=P}}P&&(++L,w=y[L],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new T2,y[L]=w),w.setGeometry(r),P.setRotation(U+det(Bet(h,"layout","icon-rotate",S,f,E))),P.setOpacity(Bet(h,"paint","icon-opacity",S,f,E)),P.setAnchor(jet[Bet(h,"layout","icon-anchor",S,f,E)]),w.setImage(P),j=w.getText(),w.setText(void 0),w.setZIndex(k),D=!0,I=!1)}else I=!0}}}if(1==_&&"circle"===h.type){++L,w=y[L],w&&w.getImage()&&!w.getFill()&&!w.getStroke()||(w=new T2,y[L]=w);const t="circle-radius"in C?Bet(h,"paint","circle-radius",S,f,E):5,e=Vet(Bet(h,"paint","circle-stroke-color",S,f,E),Bet(h,"paint","circle-stroke-opacity",S,f,E)),n=Bet(h,"paint","circle-translate",S,f,E),r=Vet(Bet(h,"paint","circle-color",S,f,E),Bet(h,"paint","circle-opacity",S,f,E)),i=Bet(h,"paint","circle-stroke-width",S,f,E),s=t+"."+e+"."+r+"."+i+"."+n[0]+"."+n[1];P=d[s],P||(P=new k2({radius:t,displacement:[n[0],-n[1]],stroke:e&&i>0?new L2({width:i,color:e}):void 0,fill:r?new S2({color:r}):void 0,declutterMode:"none"}),d[s]=P),w.setImage(P),j=w.getText(),w.setText(void 0),w.setGeometry(void 0),w.setZIndex(k),D=!0}if("text-field"in x){N=Math.round(Bet(h,"layout","text-size",S,f,E));const t=Bet(h,"layout","text-font",S,f,E);O=Bet(h,"layout","text-line-height",S,f,E),A=iet(o?o(t,e.metadata?e.metadata["ol:webfonts"]:void 0):t,N,O),A.includes("sans-serif")||(A+=",sans-serif"),z=Bet(h,"layout","text-letter-spacing",S,f,E),F=Bet(h,"layout","text-max-width",S,f,E);const n=Bet(h,"layout","text-field",S,f,E);M="object"==typeof n&&n.sections?1===n.sections.length?n.toString():n.sections.reduce((e,n)=>{const r=n.fontStack?n.fontStack.split(","):t,i=iet(o?o(r):r,N*(n.scale||1),O);let s=n.text;if("\n"===s)return e.push("\n",""),e;if(2==_)return e.push(Let(s,z),i),e;s=Aet(s,i,F,z).split("\n");for(let t=0,o=s.length;t0&&e.push("\n",""),e.push(s[t],i);return e},[]):Het(n,m).trim(),c=Bet(h,"paint","text-opacity",S,f,E)}if(M&&c&&!I){D||(++L,w=y[L],w&&w.getText()&&!w.getFill()&&!w.getStroke()||(w=new T2,y[L]=w),w.setImage(void 0),w.setGeometry(void 0));const t=$et(h,S,"text",f);w.getText()||w.setText(j),j=w.getText(),(!j||"getDeclutterMode"in j&&j.getDeclutterMode()!==t)&&(j=new A2({padding:[2,2,2,2],declutterMode:t}),w.setText(j));const e=Bet(h,"layout","text-transform",S,f,E);"uppercase"==e?M=Array.isArray(M)?M.map((t,e)=>e%2?t:t.toUpperCase()):M.toUpperCase():"lowercase"==e&&(M=Array.isArray(M)?M.map((t,e)=>e%2?t:t.toLowerCase()):M.toLowerCase());const n=Array.isArray(M)?M:2==_?Let(M,z):Aet(M,A,F,z);if(j.setText(n),j.setFont(A),j.setRotation(det(Bet(h,"layout","text-rotate",S,f,E))),"function"==typeof j.setKeepUpright){const t=Bet(h,"layout","text-keep-upright",S,f,E);j.setKeepUpright(t)}const r=Bet(h,"layout","text-anchor",S,f,E),i=D||1==_?"point":Bet(h,"layout","symbol-placement",S,f,E);let s;if("line-center"===i?(j.setPlacement("line"),s="center"):j.setPlacement(i),"line"===i&&"function"==typeof j.setRepeat){const t=Bet(h,"layout","symbol-spacing",S,f,E);j.setRepeat(2*t)}j.setOverflow("point"===i);let o=Bet(h,"paint","text-halo-width",S,f,E);const a=Bet(h,"layout","text-offset",S,f,E),l=Bet(h,"paint","text-translate",S,f,E);let u=0,d=0;if("point"==i){s="center",-1!==r.indexOf("left")?(s="left",d=o):-1!==r.indexOf("right")&&(s="right",d=-o);const t=Bet(h,"layout","text-rotation-alignment",S,f,E);j.setRotateWithView("map"==t)}else j.setMaxAngle(det(Bet(h,"layout","text-max-angle",S,f,E))*M.length/n.length),j.setRotateWithView(!1);j.setTextAlign(s);let p="middle";0==r.indexOf("bottom")?(p="bottom",u=-o-.5*(O-1)*N):0==r.indexOf("top")&&(p="top",u=o+.5*(O-1)*N),j.setTextBaseline(p);const g=Bet(h,"layout","text-justify",S,f,E);j.setJustify("auto"===g?void 0:g),j.setOffsetX(a[0]*N+d+l[0]),j.setOffsetY(a[1]*N+u+l[1]);const m=j.getFill()||new S2;m.setColor(Vet(Bet(h,"paint","text-color",S,f,E),c)),j.setFill(m);const v=Vet(Bet(h,"paint","text-halo-color",S,f,E),c);if(v&&o>0){const t=j.getStroke()||new L2;t.setColor(v),o*=2;const e=.5*N;t.setWidth(o<=e?o:e),j.setStroke(t)}else j.setStroke(void 0);const b=Bet(h,"layout","text-padding",S,f,E),x=j.getPadding();b!==x[0]&&(x[0]=b,x[1]=b,x[2]=b,x[3]=b),w.setZIndex(k)}}}return L>-1?(y.length=L+1,y):void 0};return t.setStyle(v),t.set("mapbox-layers",h),t.set("mapbox-source",m),t.set("mapbox-featurestate",t.get("mapbox-featurestate")||{}),v}(t,e,l,i,f,g,(t,e=a.webfonts)=>function(t,e="https://cdn.jsdelivr.net/npm/@fontsource/{font-family}/{fontweight}{-fontstyle}.css"){if(xZ)return t;let n;for(let r=0,i=t.length;r{await document.fonts.ready;for(let t=0,r=n.length;tt.family.replace(/^['"]|['"]$/g,"").toLowerCase()===i.toLowerCase()&&Pet(t.weight,s)&&t.style===o)){const t=e.replace("{font-family}",i.replace(/ /g,"-").toLowerCase()).replace("{Font+Family}",i.replace(/ /g,"+")).replace("{fontweight}",s).replace("{-fontstyle}",o.replace("normal","").replace(/(.+)/,"-$1")).replace("{fontstyle}",o);if(!document.querySelector('link[href="'+t+'"]')){const e=document.createElement("link");e.href=t,e.rel="stylesheet",document.head.appendChild(e)}}}})(),t):t}(t,e),a.getImage,s),t.getStyle()?h().then(n).catch(r):r(new Error(`Nothing to show for source [${o}]`))}}if(e.sprite){const t=function(t,e,n){if("string"==typeof t)return[{id:"default",url:Mtt(t,e,n)}];for(const r of t)r.url=Mtt(r.url,e,n);return t}(e.sprite,a.accessToken,s||location.href);d=xZ?1:window.devicePixelRatio>=1.5?.5:1;const n=.5==d?"@2x":"";Promise.all(t.map(function(t){const e=new URL(t.url);let i=e.origin+e.pathname+n+".json"+e.search;return new Promise(function(t,n){vet("Sprite",i,a).then(t).catch(function(){i=e.origin+e.pathname+".json"+e.search,vet("Sprite",i,a).then(t).catch(n)})}).then(function(i){let s;if(void 0===i&&r(new Error("No sprites found.")),s=e.origin+e.pathname+n+".png"+e.search,a.transformRequest){const t=a.transformRequest(s,"SpriteImage")||s;(t instanceof Request||t instanceof Promise)&&(s=t)}g[t.id]=s;for(const e in i){const n="default"==t.id?e:`${t.id}:${e}`;f[n]=i[e]}}).catch(function(t){r(new Error(`Sprites cannot be loaded: ${i}: ${t.message}`))})})).then(m).catch(r)}else m()}).catch(r)})}(t,n,e,Object.assign({styleUrl:r},s)).then(function(){!function(t,e,n){function r(){const r=e.get("mapbox-style");if(!r)return;const i=m4(r.layers),s=t.get("mapbox-layers"),o=i.filter(function(t){return s.includes(t.id)}).some(function(t){return!t.layout||"visible"===Bet(t,"layout","visibility",set,n)});t.get("visible")!==o&&t.setVisible(o)}t.on("change",r),r()}(t,i,het(n)),l()}).catch(c):l()}else c(new Error("Error accessing data for source "+t.get("mapbox-source")))};t.set("mapbox-layers",e);const h=i.getLayers();-1===h.getArray().indexOf(t)&&h.push(t),t.getSource()?u():t.once("change:source",u)})}var dnt=class extends Yq{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");mapInstance;bookmarkSource;searchResultsSource;selectedShapeSource;searchOverlay;searchOverlayElement;selectedPinOverlay;selectedPinElement;crosshairElement;crosshairOverlay;ignoreNextMapClick=!1;setupMap=MV(t=>{if(this.mapInstance)return;const e=new MQ;this.selectedShapeSource=new $5;const n=new T5({source:this.selectedShapeSource,style:new T2({stroke:new L2({color:"#3388ff",width:4}),fill:new S2({color:"rgba(51, 136, 255, 0.1)"})}),zIndex:5});this.bookmarkSource=new $5;const r=new T5({source:this.bookmarkSource,style:t=>{const e=t.get("originalPlace");let n=getComputedStyle(document.documentElement).getPropertyValue("--default-list-color").trim()||"#000000";if(e&&e._listIds&&e._listIds.length>0){const t=e._listIds[0],r=this.storage.lists.find(e=>e.id===t);r&&r.color&&(n=r.color)}return[new T2({image:new k2({radius:10,fill:new S2({color:"rgba(0, 0, 0, 0.2)"}),displacement:[0,-2]})}),new T2({image:new k2({radius:9,fill:new S2({color:n}),stroke:new L2({color:"#fff",width:2})})})]},zIndex:10});this.searchResultsSource=new $5;const i=new Map,s=new T5({source:this.searchResultsSource,style:t=>{const e=t.get("originalPlace"),n=this.mapUi.selectedPlace;if(n){const t=e.osmId&&n.osmId&&e.osmId===n.osmId,r=e.id&&n.id&&e.id===n.id,i=e.lat===n.lat&&e.lon===n.lon;if(t||r||i)return new T2({})}const r=U$(e.osmTags||e),s=r||"default";if(!i.has(s)){const t=getComputedStyle(document.documentElement).getPropertyValue("--marker-color-primary").trim()||"#ea4335";let e=``;if(r){const n=z$(r);if(n){let r=n.trim();const i=r.indexOf("",i)+1,o=r.lastIndexOf("");-1!==i&&-1!==o&&(r=r.substring(s,o)),e=`\n \n \n ${r}\n \n `}}const n=`\n \n \n \n \n \n \n \n ${e}\n \n `;i.set(s,"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(n.trim()))}return new T2({image:new R2({src:i.get(s),anchor:[.5,.65],scale:1})})},zIndex:11});let o=[14.21683569,27.060114248],a=2.661,l=!1;try{const t=localStorage.getItem("marco:map-view");if(t){const e=JSON.parse(t);e.center&&Array.isArray(e.center)&&2===e.center.length&&"number"==typeof e.zoom&&(o=e.center,a=e.zoom,l=!0)}}catch(S){console.warn("Failed to restore map view:",S)}const c=new dJ({center:HY(o),zoom:a,projection:"EPSG:3857"});this.mapInstance=new d3({target:t,layers:[e,n,s,r],view:c,controls:DJ({zoom:!0,rotate:!0,attribution:!0}),interactions:yQ({dragPan:!1})});const u=GY(c.getCenter());this.mapUi.updateCenter(u[1],u[0]),this.mapUi.updateZoom(c.getZoom()),function(t,e,n={}){let r,i;if(xZ){if(!(t instanceof d3||t instanceof MQ))throw new Error("ol-mapbox-style in a web worker requires a Map or a LayerGroup as first argument");i=t}else i="string"==typeof t||t instanceof HTMLElement?new d3({target:t}):t;if("string"==typeof e){const t=e.startsWith("data:")?location.href:Att(e,n.accessToken);n=ent(t,n),r=new Promise(function(r,s){bet(e,n).then(function(e){unt(e,i,t,n).then(function(){r(i)}).catch(s)}).catch(function(t){s(new Error(`Could not load ${e}: ${t.message}`))})})}else r=new Promise(function(t,r){unt(e,i,!n.styleUrl||n.styleUrl.startsWith("data:")?location.href:Att(n.styleUrl,n.accessToken),n).then(function(){t(i)}).catch(r)})}(this.mapInstance,"https://tiles.openfreemap.org/styles/liberty",{webfonts:"data:text/css,"}),this.searchOverlayElement=document.createElement("div"),this.searchOverlayElement.className="search-pulse",this.searchOverlay=new v3({element:this.searchOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.searchOverlay),this.selectedPinElement=document.createElement("div"),this.selectedPinElement.className="selected-pin-container";const h=document.createElement("div");h.className="selected-pin",h.innerHTML='';const d=document.createElement("div");d.className="selected-pin-shadow",this.selectedPinElement.appendChild(h),this.selectedPinElement.appendChild(d),this.selectedPinOverlay=new v3({element:this.selectedPinElement,positioning:"bottom-center",stopEvent:!1}),this.mapInstance.addOverlay(this.selectedPinOverlay),this.crosshairElement=document.createElement("div"),this.crosshairElement.className="map-crosshair",this.crosshairElement.innerHTML='\n \n \n \n \n ',t.appendChild(this.crosshairElement),this.locationOverlayElement=document.createElement("div"),this.locationOverlayElement.className="search-pulse blue",this.locationOverlay=new v3({element:this.locationOverlayElement,positioning:"center-center",stopEvent:!1}),this.mapInstance.addOverlay(this.locationOverlay),t.addEventListener("pointerdown",()=>{this.mapUi.searchBoxHasFocus&&(this.ignoreNextMapClick=!0)},!0);const p=new d4({trackingOptions:{enableHighAccuracy:!0},projection:c.getProjection()}),f=new b3;f.setStyle(new T2({image:new k2({radius:6,fill:new S2({color:"#3399CC"}),stroke:new L2({color:"#fff",width:2})})}));const g=new $5({features:[f]}),m=new T5({source:g,zIndex:15});p.on("change:position",function(){const t=p.getPosition();f.setGeometry(t?new KX(t):null)});const y=document.createElement("div");y.className="ol-control ol-locate";const v=document.createElement("button");let b,w;v.style.display="flex",v.style.alignItems="center",v.style.justifyContent="center",v.innerHTML=`${z$("navigation")}`,v.title="Locate Me",y.appendChild(v);const _=()=>{b&&(clearTimeout(b),b=null);try{w&&(p.un("change:position",x),w=null)}catch{}this.locationOverlayElement&&this.locationOverlayElement.classList.remove("active")},x=()=>{const t=p.getPosition(),e=p.getAccuracyGeometry(),n=p.getAccuracy();if(console.debug("Geolocation change:",{coordinates:t,accuracy:n}),!t)return;const r=this.mapInstance.getSize(),i=this.mapInstance.getView();let s=null;if(this.locationOverlayElement){const e=i.getResolution(),r=2*(n||50)/qY(i.getProjection(),e,t);this.locationOverlayElement.style.width=`${r}px`,this.locationOverlayElement.style.height=`${r}px`,this.locationOverlay.setPosition(t)}if(n&&n<=20&&_(),e){const t=e.getExtent();s=3.162*i.getResolutionForExtent(t,r)}else n&&(s=6.325*n/Math.min(r[0],r[1])/qY(i.getProjection(),1,t));let o={center:t,duration:1e3};if(s){const t=i.getResolutionForZoom(17);o.resolution=Math.max(s,t)}else o.zoom=16;this.mapInstance.getView().animate(o)},C=()=>{console.debug("Getting current geolocation..."),_(),p.setTracking(!0);const t=p.getPosition();this.locationOverlayElement&&this.locationOverlayElement.classList.add("active"),t&&x(),w=p.on("change:position",x),b=setTimeout(()=>{_()},1e4)};v.addEventListener("click",C);const k=new OJ({element:y});this.mapInstance.addLayer(m),this.mapInstance.addControl(k),l||"index"!==this.router.currentRouteName||C(),this.mapInstance.on("singleclick",this.handleMapClick),this.mapInstance.on("moveend",this.handleMapMove),this.mapInstance.on("pointermove",t=>{const e=this.mapInstance.getEventPixel(t.originalEvent),n=this.mapInstance.hasFeatureAtPixel(e,{hitTolerance:10});this.mapInstance.getTarget().style.cursor=n?"pointer":""}),this.storage.rs.on("ready",()=>{this.handleMapMove()})});updateInteractions=MV(()=>{if(!this.mapInstance)return;this.mapInstance.getInteractions().getArray().slice().forEach(t=>{t instanceof nQ&&this.mapInstance.removeInteraction(t)});const t=!!this.settings.mapKinetic&&new jJ(-.005,.05,100);this.settings.mapKinetic&&window.innerWidth<=768&&(t.minVelocity_=.25),this.mapInstance.addInteraction(new nQ({kinetic:t}))});updateSearchResults=MV(()=>{if(!this.searchResultsSource)return;this.searchResultsSource.clear();const t=this.mapUi.searchResults;if(!t||0===t.length)return;const e=[];t.forEach(t=>{if(t.lat&&t.lon){const n=new b3({geometry:new KX(HY([t.lon,t.lat])),name:t.title,id:t.id,isSearchResult:!0,originalPlace:t});e.push(n)}}),e.length>0&&this.searchResultsSource.addFeatures(e)});updateSelectedPin=MV(()=>{const t=this.mapUi.selectedPlace,e=this.mapUi.selectionOptions||{};if(this.searchResultsSource&&this.searchResultsSource.changed(),this.selectedPinOverlay&&this.selectedPinElement)if(this.selectedShapeSource&&this.selectedShapeSource.clear(),t&&t.lat&&t.lon){const r=HY([t.lon,t.lat]);if(this.selectedPinOverlay.setPosition(r),this.selectedPinElement.classList.remove("active"),this.selectedPinElement.offsetWidth,this.selectedPinElement.classList.add("active"),t.geojson&&this.selectedShapeSource)try{const e=(new J5).readFeature(t.geojson,{featureProjection:"EPSG:3857"});this.selectedShapeSource.addFeature(e)}catch(n){console.warn("Failed to render selected place shape:",n)}e.preventZoom?t.bbox&&!this.bboxFitsInView(t.bbox)?this.zoomToBbox(t.bbox):this.handlePinVisibility(r,{maintainZoom:!0}):t.bbox?this.zoomToBbox(t.bbox):this.handlePinVisibility(r)}else this.selectedPinElement.classList.remove("active"),this.selectedPinOverlay.setPosition(void 0)});bboxFitsInView(t){if(!this.mapInstance||!t)return!0;const e=this.mapInstance.getView(),n=this.mapInstance.getSize();return iK(e.calculateExtent(n),[...HY([t.minLon,t.minLat]),...HY([t.maxLon,t.maxLat])])}zoomToBbox(t){if(!this.mapInstance||!t)return;const e=this.mapInstance.getView(),n=this.mapInstance.getSize(),r=[...HY([t.minLon,t.minLat]),...HY([t.maxLon,t.maxLat])];let i=[.15*n[1],.15*n[0],.15*n[1],.15*n[0]];if(n[0]<=768){const t=.5*n[1],e=.15*t,r=.5*n[1]+.15*t;i[0]=e,i[2]=r}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),e=parseInt(t,10)||360,r=n[0]-e;i[3]=e+.15*r,i[1]=.15*r}const s=e.getZoom();e.fit(r,{padding:i,duration:1e3,easing:t=>t*(2-t),maxZoom:Math.max(s,18)})}handlePinVisibility(t,e={}){if(!this.mapInstance)return;const n=this.mapInstance.getView().getZoom();if(!e.maintainZoom&&n<16)return void this.animateToSmartCenter(t,16);const r=this.mapInstance.getPixelFromCoordinate(t),i=this.mapInstance.getSize();if(!r||r[0]<0||r[0]>i[0]||r[1]<0||r[1]>i[1]){const n=e.maintainZoom?null:16;this.animateToSmartCenter(t,n)}else this.panIfObscured(t)}animateToSmartCenter(t,e=null){if(!this.mapInstance)return;const n=this.mapInstance.getSize(),r=this.mapInstance.getView();let i=r.getResolution();null!==e&&(i=r.getResolutionForZoom(e));let s=t;if(n[0]<=768){const e=n[1],r=document.querySelector(".app-header"),o=r?r.offsetHeight:60,a=(e/2-(o+(e/2-o)/2))*i;s=[t[0],t[1]-a]}else if(this.args.isSidebarOpen){const e=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),n=(parseInt(e,10)||360)/2*i;s=[t[0]-n,t[1]]}const o={center:s,duration:1e3,easing:t=>t*(2-t)};null!==e&&(o.zoom=e),r.animate(o)}panIfObscured(t){if(!this.mapInstance)return;const e=this.mapInstance.getSize(),n=this.mapInstance.getPixelFromCoordinate(t);if(!n)return;const r=this.mapInstance.getView(),i=r.getCenter(),s=r.getResolution();let o=n[0],a=n[1],l=!1;const c=document.querySelector(".app-header"),u=c?c.offsetHeight:60;if(e[0]<=768){const t=e[1],r=t/2;n[1]>r&&(a=u+(t/2-u)/2,l=!0)}else if(this.args.isSidebarOpen){const t=getComputedStyle(document.documentElement).getPropertyValue("--sidebar-width").trim(),r=parseInt(t,10)||360;n[0]t*(2-t)})}}updateBookmarks=MV(()=>{const t=this.storage.placesInView;this.loadBookmarks(t)});async loadBookmarks(t=[]){try{if(!this.bookmarkSource)return;t&&0!==t.length||(t=this.storage.placesInView),this.bookmarkSource.clear(),t&&Array.isArray(t)&&t.forEach(t=>{if(t.lat&&t.lon){const e=new b3({geometry:new KX(HY([t.lon,t.lat])),name:t.title,id:t.id,isBookmark:!0,originalPlace:t});this.bookmarkSource.addFeature(e)}})}catch(e){console.error("Failed to load bookmarks:",e)}}syncPulse=MV(()=>{this.searchOverlayElement&&(this.mapUi.isSearching?this.searchOverlayElement.classList.add("active"):this.searchOverlayElement.classList.remove("active"))});syncCreationMode=MV(()=>{if(this.crosshairElement&&this.mapInstance)if(this.mapUi.isCreating){this.crosshairElement.classList.add("visible");const t=this.mapUi.creationCoordinates;if(t&&t.lat&&t.lon){const e=HY([t.lon,t.lat]);this.animateToCrosshair(e)}}else this.crosshairElement.classList.remove("visible")});decodeVectorTileOsmFeature(t){if(!t?.getId||!t?.get)return{decoded:null,reason:"feature does not expose get()/getId()"};const e=t.get("mvt:layer")||t.get("layer");if("poi"!==e)return{decoded:null,reason:`unsupported source layer: ${e||"unknown"}`};const n=t.getId(),r=Number(n);if(!Number.isSafeInteger(r)||r<=0)return{decoded:null,reason:`feature id is not a positive safe integer: ${n}`};const i={1:"node",2:"way",3:"relation"}[r%10];if(!i)return{decoded:null,reason:`feature id suffix ${r%10} is not an OSM type`};const s=Math.floor(r/10);return s<=0?{decoded:null,reason:`decoded OSM id is invalid: ${s}`}:{decoded:{osmId:String(s),osmType:i},reason:null}}animateToCrosshair(t){if(!this.mapInstance||!this.crosshairElement)return;const e=this.mapInstance.getTargetElement().getBoundingClientRect(),n=this.crosshairElement.getBoundingClientRect(),r=n.left+n.width/2-e.left,i=n.top+n.height/2-e.top,s=this.mapInstance.getSize(),o=r-s[0]/2,a=i-s[1]/2,l=this.mapInstance.getView(),c=l.getResolution(),u=o*c,h=-a*c,d=t[0]-u,p=t[1]-h,f=l.getCenter();Math.sqrt(Math.pow(f[0]-d,2)+Math.pow(f[1]-p,2))>5*c&&l.animate({center:[d,p],duration:800,easing:t=>t*(2-t)})}handleMapMove=async()=>{if(!this.mapInstance||this.isDestroying||this.isDestroyed)return;const t=this.mapInstance.getView(),e=GY(t.getCenter());if(this.mapUi.updateCenter(e[1],e[0]),this.mapUi.updateZoom(t.getZoom()),this.mapUi.isCreating){const t=this.mapInstance.getTargetElement().getBoundingClientRect(),e=this.crosshairElement.getBoundingClientRect(),n=e.left+e.width/2-t.left,r=e.top+e.height/2-t.top,i=GY(this.mapInstance.getCoordinateFromPixel([n,r])),s=parseFloat(i[1].toFixed(6)),o=parseFloat(i[0].toFixed(6));this.mapUi.updateCreationCoordinates(s,o),this.router.replaceWith("place.new",{queryParams:{lat:s,lon:o}})}const n=this.mapInstance.getSize(),r=this.mapInstance.getView().calculateExtent(n),[i,s]=GY([r[0],r[1]]),[o,a]=GY([r[2],r[3]]),l={minLat:s,minLon:i,maxLat:a,maxLon:o};if(this.mapUi.updateBounds(l),await this.storage.loadPlacesInBounds(l),!this.isDestroying&&!this.isDestroyed){this.nostrData.loadPlacesInBounds(l),this.loadBookmarks(this.storage.placesInView);try{const t=this.mapInstance.getView(),e={center:GY(t.getCenter()),zoom:t.getZoom()};localStorage.setItem("marco:map-view",JSON.stringify(e))}catch(c){console.warn("Failed to save map view:",c)}}};handleMapClick=async t=>{if(this.ignoreNextMapClick)return void(this.ignoreNextMapClick=!1);const e=this.mapInstance.getFeaturesAtPixel(t.pixel,{hitTolerance:10});let n=null,r=null,i=null,s=null;if(e&&e.length>0){console.debug(`Found ${e.length} features in map layer:`);for(const n of e)console.debug(n);const t=e.find(t=>t.get("isBookmark")),o=e.find(t=>t.get("isSearchResult"));if(t)n=t.get("originalPlace");else if(o)r=o.get("originalPlace");else for(const n of e){const t=n.get?.("mvt:layer")||n.get?.("layer"),e=n.get?.("name"),r=n.getId?.(),{decoded:s,reason:o}=this.decodeVectorTileOsmFeature(n);if(s){console.debug("Decoded vector tile feature to explicit OSM place:",{sourceLayer:t,featureName:e,featureId:r,decoded:s}),i=s;break}console.debug("Vector tile feature could not be decoded directly:",{sourceLayer:t,featureName:e,featureId:r,reason:o})}const a=e[0].getProperties();a.name&&(s=a.name)}const o=t=>{("search"===this.router.currentRouteName||this.mapUi.currentSearch&&this.mapUi.searchResults.length>0)&&(this.mapUi.returnToSearch=!0),this.mapUi.preventNextZoom=!0,this.mapUi.selectPlace(t,{preventZoom:!0}),this.mapUi.showSidebar(),this.router.transitionTo("place",t)},a=({osmId:t,osmType:e})=>{("search"===this.router.currentRouteName||this.mapUi.currentSearch&&this.mapUi.searchResults.length>0)&&(this.mapUi.returnToSearch=!0),this.mapUi.preventNextZoom=!0,this.mapUi.showSidebar(),this.router.transitionTo("place",`osm:${e}:${t}`)};if(this.args.isSidebarOpen){const t=n||r;return t?(console.debug("Clicked feature while sidebar open (switching):",t),void o(t)):i?(console.debug("Clicked vector tile POI while sidebar open (switching):",i),void a(i)):void(this.args.onOutsideClick&&this.args.onOutsideClick())}if(n)return console.debug("Clicked bookmark:",n),void o(n);if(r)return console.debug("Clicked search result:",r),void o(r);if(i)return console.debug("Clicked vector tile POI:",i),void a(i);if(this.mapUi.searchResults&&this.mapUi.searchResults.length>0)return console.debug("Clearing active search and markers on map click"),void this.router.transitionTo("index");if(this.mapInstance.getView().getZoom()<16)return;const[l,c]=GY(t.coordinate),u=s?30:50;if(this.searchOverlayElement){const e=this.mapInstance.getView(),n=2*u/qY(e.getProjection(),e.getResolution(),t.coordinate);this.searchOverlayElement.style.width=`${n}px`,this.searchOverlayElement.style.height=`${n}px`,this.searchOverlay.setPosition(t.coordinate)}this.mapUi.startSearch();const h={lat:c.toFixed(6),lon:l.toFixed(6),q:null,category:null,selected:s||null};this.router.transitionTo("search",{queryParams:h})};static{Op(ig({id:null,block:'[[[11,0],[16,0,[29,["map-container ",[52,[30,1],"sidebar-open"]]]],[4,[30,0,["setupMap"]],null,null],[4,[30,0,["updateInteractions"]],null,null],[4,[30,0,["updateBookmarks"]],null,null],[4,[30,0,["updateSearchResults"]],null,null],[4,[30,0,["updateSelectedPin"]],null,null],[4,[30,0,["syncPulse"]],null,null],[4,[30,0,["syncCreationMode"]],null,null],[12],[13]],["@isSidebarOpen"],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},pnt=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"osmAuth",[pp])}#Ke=void pF(this,"osmAuth");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"isNostrConnectModalOpen",[Wr],function(){return!1})}#ie=void pF(this,"isNostrConnectModalOpen");connectRS(){this.args.onClose(),this.args.storage.showConnectWidget()}static{dF(this.prototype,"connectRS",[Vl])}disconnectRS(){this.args.storage.disconnect()}static{dF(this.prototype,"disconnectRS",[Vl])}connectOsm(){this.args.onClose(),this.osmAuth.login()}static{dF(this.prototype,"connectOsm",[Vl])}disconnectOsm(){this.osmAuth.logout()}static{dF(this.prototype,"disconnectOsm",[Vl])}openNostrConnectModal(){this.isNostrConnectModalOpen=!0}static{dF(this.prototype,"openNostrConnectModal",[Vl])}closeNostrConnectModal(){this.isNostrConnectModalOpen=!1}static{dF(this.prototype,"closeNostrConnectModal",[Vl])}disconnectNostr(){this.nostrAuth.disconnect()}static{dF(this.prototype,"disconnectNostr",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"user-menu-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"account-list"],[12],[1,"\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["remotestorage",18]],null],[1,"\\n "],[10,1],[12],[1,"RemoteStorage"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectRS"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectRS"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,1,["connected"]],[[[1," "],[10,"strong"],[12],[1,[30,1,["userAddress"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",18]],null],[1,"\\n "],[10,1],[12],[1,"OpenStreetMap"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectOsm"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["connectOsm"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["osmAuth","isConnected"]],[[[1," "],[10,"strong"],[12],[1,[30,0,["osmAuth","userDisplayName"]]],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,"li"],[14,0,"account-item"],[12],[1,"\\n "],[10,0],[14,0,"account-header"],[12],[1,"\\n "],[10,0],[14,0,"account-info"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",18]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[11,"button"],[24,0,"btn-text text-danger"],[24,4,"button"],[4,[32,1],["click",[30,0,["disconnectNostr"]]],null],[12],[1,"Disconnect"],[13],[1,"\\n"]],[]],[[[1," "],[11,"button"],[24,0,"btn-text text-primary"],[24,4,"button"],[4,[32,1],["click",[30,0,["openNostrConnectModal"]]],null],[12],[1,"Connect"],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n "],[10,0],[14,0,"account-status"],[12],[1,"\\n"],[41,[30,0,["nostrAuth","isConnected"]],[[[1," "],[10,"strong"],[15,"title",[30,0,["nostrAuth","pubkey"]]],[12],[1,"\\n "],[1,[30,0,["nostrData","userDisplayName"]]],[1,"\\n "],[13],[1,"\\n"]],[]],[[[1," Not connected\\n"]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[41,[30,0,["isNostrConnectModalOpen"]],[[[1," "],[8,[32,2],null,[["@onClose"],[[30,0,["closeNostrConnectModal"]]]],[["default"],[[[[1,"\\n "],[8,[32,3],null,[["@onConnect"],[[30,0,["closeNostrConnectModal"]]]],null],[1,"\\n "]],[]]]]],[1,"\\n"]],[]],null]],["@storage"],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Qq,on:Hw,Modal:SV,NostrConnect:cW}),isStrictMode:!0}),this)}};function fnt(t){return t}function gnt(t){return Object.keys(t).map(e=>t[e])}function mnt(t){if(t)if(t instanceof wH)t.executor.asyncErrorsHandled=!0;else if(t instanceof tH)return t._toPromise();return t}function ynt(t,e,n){return function(r){let i=function(t,e){if(Array.isArray(t))return t.map(e);if("object"==typeof t&&null!==t){let n={};return Object.keys(t).forEach(r=>{n[r]=e(t[r])}),n}return t}(r,mnt),s=n(i);Array.isArray(s);let o=Ba.defer();t[e](i).then(o.resolve,o.reject);let a=!1,l=()=>{a||(a=!0,s.forEach(t=>{t&&(t instanceof wH?t.cancel():"function"==typeof t.__ec_cancel__&&t[GW]())}))},c=o.promise.finally(l);return c[GW]=l,c}}ynt(Ba.Promise,"all",fnt),ynt(Ba,"allSettled",fnt),ynt(ia,"race",fnt),ynt(Ba,"hash",gnt),ynt(Ba,"hashSettled",gnt);var vnt=class extends tH{_deferable(){return mH.defer()}},bnt=class extends vnt{constructor(t){super(),this.ms=t}onYield(t){let e=Ts(()=>t.next(),this.ms);return()=>As(e)}},wnt=class extends Yq{static{hF(this.prototype,"photon",[pp])}#Ze=void pF(this,"photon");static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"map",[pp])}#Ye=void pF(this,"map");static{hF(this.prototype,"_internalQuery",[Wr],function(){return""})}#Xe=void pF(this,"_internalQuery");static{hF(this.prototype,"results",[Wr],function(){return[]})}#Je=void pF(this,"results");static{hF(this.prototype,"isFocused",[Wr],function(){return!1})}#Qe=void pF(this,"isFocused");static{hF(this.prototype,"isLoading",[Wr],function(){return!1})}#W=void pF(this,"isLoading");get query(){return this.args.query??this._internalQuery}set query(t){this._internalQuery=t}get showPopover(){return this.isFocused&&this.results.length>0}handleInput(t){const e=t.target.value;this.query=e,this.args.onQueryChange&&this.args.onQueryChange(e),e.length<2?this.results=[]:this.searchTask.perform(e)}static{dF(this.prototype,"handleInput",[Vl])}formatSavedPlace(t){const e=(t._listIds||[]).map(t=>this.storage.lists?.find(e=>e.id===t)?.title).filter(Boolean).join(", "),n=e?`Saved place (${e})`:"Saved place";return{source:"saved",id:t.id,title:t.title,icon:"bookmark",description:n,osmId:t.osmId,osmType:t.osmType,lat:t.lat,lon:t.lon}}searchTask=kH(()=>({context:this,generator:function*(t){yield new bnt(300);const e="string"==typeof t?t:this.query;if(!(e.length<2)){this.isLoading=!0;try{let t,n;this.mapUi.currentCenter&&({lat:t,lon:n}=this.mapUi.currentCenter);const r=e.toLowerCase(),i=n$.filter(t=>t.label.toLowerCase().includes(r)).map(t=>({source:"category",title:t.label,id:t.id,icon:"search"}));let s=[];r.length>=3&&(s=this.storage.savedPlaces.filter(t=>t.title&&t.title.toLowerCase().includes(r)).map(t=>this.formatSavedPlace(t)));const o=yield this.photon.search(e,t,n),a=new Set(s.map(t=>t.osmId).filter(Boolean)),l=o.filter(t=>!a.has(t.osmId));this.results=[...i,...s,...l]}catch(n){console.error("Search failed",n),this.results=[]}finally{this.isLoading=!1}}}}),{restartable:!0},"searchTask",null);handleFocus(){this.isFocused=!0,this.mapUi.setSearchBoxFocus(!0),this.query.length>=2&&0===this.results.length&&this.searchTask.perform()}static{dF(this.prototype,"handleFocus",[Vl])}handleBlur(){setTimeout(()=>{this.isFocused=!1,this.mapUi.setSearchBoxFocus(!1)},300)}static{dF(this.prototype,"handleBlur",[Vl])}handleSubmit(t){if(t.preventDefault(),!this.query)return;let e={q:this.query,selected:null,category:null};if(this.mapUi.currentCenter){const{lat:t,lon:n}=this.mapUi.currentCenter;e.lat=parseFloat(t).toFixed(4),e.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:e}),this.isFocused=!1}static{dF(this.prototype,"handleSubmit",[Vl])}selectResult(t){if("category"===t.source){this.query=t.title,this.args.onQueryChange&&this.args.onQueryChange(t.title),this.results=[];let e=null,n=null;return this.mapUi.currentCenter&&(({lat:e,lon:n}=this.mapUi.currentCenter),e=e?.toString(),n=n?.toString()),void this.router.transitionTo("search",{queryParams:{q:t.title,category:t.id,selected:null,lat:e,lon:n}})}if(this.query=t.title,this.args.onQueryChange&&this.args.onQueryChange(t.title),this.results=[],"saved"===t.source&&t.id&&!t.osmId)this.router.transitionTo("place",t.id);else if(t.osmId){const e=`osm:${t.osmType}:${t.osmId}`;this.router.transitionTo("place",e)}else this.router.transitionTo("search",{queryParams:{q:t.title,lat:t.lat,lon:t.lon,selected:null,category:null}})}static{dF(this.prototype,"selectResult",[Vl])}clear(){this.searchTask.cancelAll(),this.mapUi.stopLoading(),this.osm.cancelAll(),this.photon.cancelAll(),this.query="",this.results=[],this.args.onQueryChange&&this.args.onQueryChange(""),this.router.transitionTo("index")}static{dF(this.prototype,"clear",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"search-box"],[12],[1,"\\n "],[11,"form"],[24,0,"search-form"],[4,[32,0],["submit",[30,0,["handleSubmit"]]],null],[12],[1,"\\n "],[11,"button"],[24,0,"menu-btn-integrated"],[24,"aria-label","Menu"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["menu",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n\\n "],[11,"input"],[24,0,"search-input"],[24,"placeholder","Search places..."],[24,"aria-label","Search places"],[16,2,[30,0,["query"]]],[24,"autocomplete","off"],[24,4,"search"],[4,[32,0],["input",[30,0,["handleInput"]]],null],[4,[32,0],["focus",[30,0,["handleFocus"]]],null],[4,[32,0],["blur",[30,0,["handleBlur"]]],null],[12],[13],[1,"\\n\\n "],[10,"button"],[14,0,"search-submit-btn"],[14,"aria-label","Search"],[14,4,"submit"],[12],[1,"\\n"],[41,[28,[32,2],[[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"text"],null],[28,[32,3],[[30,0,["mapUi","loadingState","type"]],"category"],null]],null],[[[1," "],[8,[32,1],null,[["@name","@size"],["loading-ring",20]],null],[1,"\\n"]],[]],[[[1," "],[8,[32,1],null,[["@name","@size","@color"],["search",20,"#5f6368"]],null],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["query"]],[[[1," "],[11,"button"],[24,0,"search-clear-btn"],[24,"aria-label","Clear"],[24,4,"button"],[4,[32,0],["click",[30,0,["clear"]]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#5f6368"]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["showPopover"]],[[[1," "],[10,0],[14,0,"search-results-popover"],[12],[1,"\\n "],[10,"ul"],[14,0,"search-results-list"],[12],[1,"\\n"],[42,[28,[31,2],[[28,[31,2],[[30,0,["results"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,0,"search-result-item"],[24,4,"button"],[4,[32,0],["click",[28,[32,4],[[30,0,["selectResult"]],[30,2]],null]],null],[12],[1,"\\n "],[10,0],[14,0,"result-icon"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],[[52,[30,2,["icon"]],[30,2,["icon"]],"map-pin"],16,"#666"]],null],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"result-info"],[12],[1,"\\n "],[10,1],[14,0,"result-title"],[12],[1,[30,2,["title"]]],[13],[1,"\\n"],[41,[28,[32,3],[[30,2,["source"]],"osm"],null],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[28,[32,5],[[30,2,["type"]]],null]],[13],[1,"\\n"]],[]],[[[41,[30,2,["description"]],[[[1," "],[10,1],[14,0,"result-desc"],[12],[1,[30,2,["description"]]],[13],[1,"\\n"]],[]],null]],[]]],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[13]],["@onToggleMenu","result"],["if","each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq,or:TV,eq:vV,fn:mV,humanizeOsmTag:oG}),isStrictMode:!0}),this)}},_nt=class extends Yq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");get categories(){return n$}searchCategory(t){this.args.onSelect&&this.args.onSelect(t);let e={category:t.id,q:null};if(this.mapUi.currentCenter){const{lat:t,lon:n}=this.mapUi.currentCenter;e.lat=parseFloat(t).toFixed(4),e.lon=parseFloat(n).toFixed(4)}this.router.transitionTo("search",{queryParams:e})}static{dF(this.prototype,"searchCategory",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"category-chips-scroll"],[12],[1,"\\n "],[10,0],[14,0,"category-chips-container"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["categories"]]],null]],null],null,[[[1," "],[11,"button"],[24,0,"category-chip"],[16,"aria-label",[30,1,["label"]]],[16,"disabled",[28,[32,0],[[28,[32,1],[[30,0,["mapUi","loadingState","type"]],"category"],null],[28,[32,1],[[30,0,["mapUi","loadingState","value"]],[30,1,["id"]]],null]],null]],[24,4,"button"],[4,[32,2],["click",[28,[32,3],[[30,0,["searchCategory"]],[30,1]],null]],null],[12],[1,"\\n "],[8,[32,4],null,[["@name","@size"],[[30,1,["icon"]],16]],null],[1,"\\n "],[10,1],[12],[1,[30,1,["label"]]],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n"],[13]],["category"],["each","-track-array"]]',moduleName:"(unknown template module)",scope:()=>({and:RV,eq:vV,on:Hw,fn:mV,Icon:Qq}),isStrictMode:!0}),this)}},xnt=MV((t,[e])=>{let n=null;return async function(){if(e)try{const r=await caches.open("nostr-image-cache-v1"),i=await r.match(e);if(i){const e=await i.blob();return n=URL.createObjectURL(e),void(t.src=n)}const s=await fetch(e,{mode:"cors",credentials:"omit"});if(s.ok){const i=s.clone();await r.put(e,i);const o=await s.blob();n=URL.createObjectURL(o),t.src=n}else t.src=e}catch(s7){console.warn(`Failed to cache image ${e}, falling back to standard src`,s7),t.src=e}else t.src=""}(),()=>{n&&(URL.revokeObjectURL(n),n=null)}}),Cnt=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"nostrAuth",[pp])}#B=void pF(this,"nostrAuth");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"isUserMenuOpen",[Wr],function(){return!1})}#tn=void pF(this,"isUserMenuOpen");static{hF(this.prototype,"searchQuery",[Wr],function(){return""})}#en=void pF(this,"searchQuery");constructor(){super(...arguments),this.router&&"function"==typeof this.router.on&&this.router.on("routeDidChange",this.syncSearchQuery),this.syncSearchQuery()}willDestroy(){this.router&&"function"==typeof this.router.off&&this.router.off("routeDidChange",this.syncSearchQuery),super.willDestroy(...arguments)}syncSearchQuery(){const t=this.mapUi.currentSearch||this.router?.currentRoute?.queryParams;if(t?.q)this.searchQuery=t.q;else if(t?.category){const e=n$.find(e=>e.id===t.category);this.searchQuery=e?e.label:t.category}else this.searchQuery=""}static{dF(this.prototype,"syncSearchQuery",[Vl])}get isSearching(){return!(!this.mapUi.searchBoxHasFocus||!this.searchQuery)||("search"===this.router?.currentRouteName?!this.mapUi.loadingState&&this.mapUi.searchResults&&this.mapUi.searchResults.length>0:!("search"===this.router?.currentRouteName||!this.searchQuery))}get showQuickSearch(){const t=this.mapUi.currentZoom??13;return this.settings.showQuickSearchButtons&&t>=12}toggleUserMenu(){this.isUserMenuOpen=!this.isUserMenuOpen}static{dF(this.prototype,"toggleUserMenu",[Vl])}closeUserMenu(){this.isUserMenuOpen=!1}static{dF(this.prototype,"closeUserMenu",[Vl])}handleQueryChange(t){this.searchQuery=t}static{dF(this.prototype,"handleQueryChange",[Vl])}handleChipSelect(t){this.searchQuery=t.label}static{dF(this.prototype,"handleChipSelect",[Vl])}static{Op(ig({id:null,block:'[[[10,"header"],[14,0,"app-header"],[12],[1,"\\n "],[10,0],[14,0,"header-left"],[12],[1,"\\n "],[8,[32,0],null,[["@query","@onToggleMenu","@onQueryChange"],[[30,0,["searchQuery"]],[30,1],[30,0,["handleQueryChange"]]]],null],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["showQuickSearch"]],[[[1," "],[10,0],[15,0,[29,["header-center ",[52,[30,0,["isSearching"]],"searching"]]]],[12],[1,"\\n "],[8,[32,1],null,[["@onSelect"],[[30,0,["handleChipSelect"]]]],null],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"header-right"],[12],[1,"\\n "],[10,0],[14,0,"user-menu-container"],[12],[1,"\\n "],[11,"button"],[24,0,"user-btn btn-press"],[24,"aria-label","User Menu"],[24,4,"button"],[4,[32,2],["click",[30,0,["toggleUserMenu"]]],null],[12],[1,"\\n"],[41,[28,[32,3],[[30,0,["nostrAuth","isConnected"]],[30,0,["nostrData","profile","picture"]]],null],[[[1," "],[11,"img"],[24,0,"user-avatar"],[24,"alt","User Avatar"],[4,[32,4],[[30,0,["nostrData","profile","picture"]]],null],[12],[13],[1,"\\n"]],[]],[[[1," "],[10,0],[14,0,"user-avatar-placeholder"],[12],[1,"\\n "],[8,[32,5],null,[["@name","@size","@color"],["user",20,"white"]],null],[1,"\\n "],[13],[1,"\\n"]],[]]],[1," "],[13],[1,"\\n\\n"],[41,[30,0,["isUserMenuOpen"]],[[[1," "],[8,[32,6],null,[["@storage","@onClose"],[[30,0,["storage"]],[30,0,["closeUserMenu"]]]],null],[1,"\\n "],[11,0],[24,0,"menu-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["closeUserMenu"]]],null],[12],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onToggleMenu"],["if"]]',moduleName:"(unknown template module)",scope:()=>({SearchBox:wnt,CategoryChips:_nt,on:Hw,and:RV,cachedImage:xnt,Icon:Qq,UserMenu:pnt}),isStrictMode:!0}),this)}},knt=class extends Yq{static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{Op(ig({id:null,block:'[[[41,[30,0,["toast","isVisible"]],[[[1," "],[10,0],[14,0,"toast-notification"],[12],[1,"\\n "],[1,[30,0,["toast","message"]]],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",isStrictMode:!0}),this)}},Snt=a({default:()=>Ent}),Ent=class extends Yq{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");get isSidebarOpen(){const t=this.router.currentRouteName;return this.mapUi.isSidebarVisible&&("place"===t||"place.new"===t||"search"===t||"menu"===t||"contributions"===t||"activity"===t||t.startsWith("lists"))}constructor(){super(...arguments),console.debug("Application component constructed"),this.storage}toggleAppMenu(){"menu"===this.router.currentRouteName?this.router.transitionTo("index"):this.router.transitionTo("menu")}static{dF(this.prototype,"toggleAppMenu",[Vl])}handleOutsideClick(){const t=this.router.currentRouteName;("search"===t||"place"===t||"menu"===t||"contributions"===t||"activity"===t||t.startsWith("lists"))&&(this.mapUi.clearSelection(),this.mapUi.hideSidebar(),"menu"===t||"contributions"===t||"activity"===t||t.startsWith("lists")?this.router.transitionTo("index"):"place"===t&&(this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")))}static{dF(this.prototype,"handleOutsideClick",[Vl])}refreshBookmarks(){this.storage.notifyChange()}static{dF(this.prototype,"refreshBookmarks",[Vl])}static{Op(ig({id:null,block:'[[[1,[28,[32,0],["Marco"],null]],[1,"\\n\\n"],[10,0],[15,0,[52,[30,0,["mapUi","isSidebarOpening"]],"sidebar-opening"]],[12],[1,"\\n "],[8,[32,1],null,[["@onToggleMenu"],[[30,0,["toggleAppMenu"]]]],null],[1,"\\n\\n "],[10,0],[14,1,"rs-widget-container"],[15,0,[52,[30,0,["storage","isWidgetOpen"]],"visible"]],[12],[13],[1,"\\n\\n"],[41,[30,0,["storage","isWidgetOpen"]],[[[1," "],[11,0],[24,0,"rs-backdrop"],[24,"role","button"],[4,[32,2],["click",[30,0,["storage","closeWidget"]]],null],[12],[13],[1,"\\n"]],[]],null],[1,"\\n "],[8,[32,3],null,[["@isSidebarOpen","@onOutsideClick"],[[30,0,["isSidebarOpen"]],[30,0,["handleOutsideClick"]]]],null],[1,"\\n\\n "],[8,[32,4],null,null,null],[1,"\\n\\n "],[46,[28,[31,2],null,null],null,null,null],[1,"\\n"],[13]],[],["if","component","-outlet"]]',moduleName:"(unknown template module)",scope:()=>({pageTitle:PG,AppHeader:Cnt,on:Hw,Map:dnt,Toast:knt}),isStrictMode:!0}),this)}},Rnt=a({default:()=>Lnt}),Lnt=class extends Qh{static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage")},Tnt=a({default:()=>Pnt}),Pnt=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");activate(){this.mapUi.clearSearchResults(),this.mapUi.hideSidebar()}},Int=Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[1,"\\n "],[10,1],[14,0,"app-logo-icon"],[12],[1,"\\n "],[1,[28,[32,0],[[32,1]],null]],[1,"\\n "],[13],[1,"\\n Marco\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,2],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"ul"],[14,0,"app-menu"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["bookmark",20]],null],[1,"\\n "],[10,1],[12],[1,"Saved Places"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,3]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["activity",20]],null],[1,"\\n "],[10,1],[12],[1,"Activity"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[30,4]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["user-check",20]],null],[1,"\\n "],[10,1],[12],[1,"My Contributions"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,5],"settings"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["settings",20]],null],[1,"\\n "],[10,1],[12],[1,"Settings"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n "],[11,"button"],[24,4,"button"],[4,[32,2],["click",[28,[32,4],[[30,5],"about"],null]],null],[12],[1,"\\n "],[8,[32,3],null,[["@name","@size"],["info",20]],null],[1,"\\n "],[10,1],[12],[1,"About"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onClose","@onSavedPlaces","@onActivity","@onContributions","@onNavigate"],[]]',moduleName:"(unknown template module)",scope:()=>({htmlSafe:qv,iconRounded:'\n \x3c!-- Background --\x3e\n \n\n \x3c!-- Subtle map grid (kept well outside safe zone) --\x3e\n \n \n \n \n\n \n \n \n \n\n \x3c!-- Location pin (exact app shape, larger, centered, safe-zone compliant) --\x3e\n \x3c!-- Safe zone target: ~680px diameter --\x3e\n \n \n \n \n\n',on:Hw,Icon:Qq,fn:mV}),isStrictMode:!0}),bV()),Mnt=class extends Yq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["map",20]],null],[1,"\\n "],[10,1],[12],[1,"Map & UI"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","show-quick-search"],[12],[1,"Quick search buttons visible"],[13],[1,"\\n "],[11,"select"],[24,1,"show-quick-search"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"showQuickSearchButtons"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","showQuickSearchButtons"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","showQuickSearchButtons"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","map-kinetic"],[12],[1,"Map Inertia (Kinetic Panning)"],[13],[1,"\\n "],[11,"select"],[24,1,"map-kinetic"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"mapKinetic"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","mapKinetic"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","mapKinetic"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Qq,on:Hw,fn:mV}),isStrictMode:!0}),this)}},Ant=class extends Yq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["server",20]],null],[1,"\\n "],[10,1],[12],[1,"API Providers"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","overpass-api"],[12],[1,"Overpass API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"overpass-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"overpassApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","overpassApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,2,["url"]]],[15,"selected",[52,[28,[32,3],[[30,2,["url"]],[30,0,["settings","overpassApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,2,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","photon-api"],[12],[1,"Photon API Provider"],[13],[1,"\\n "],[11,"select"],[24,1,"photon-api"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"photonApi"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["settings","photonApis"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,3,["url"]]],[15,"selected",[52,[28,[32,3],[[30,3,["url"]],[30,0,["settings","photonApi"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,3,["name"]]],[1,"\\n "],[13],[1,"\\n"]],[3]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange","api","api"],["each","-track-array","if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Qq,on:Hw,fn:mV,eq:vV}),isStrictMode:!0}),this)}},Ont=t=>t?t.replace(/^wss?:\/\//,""):"",Nnt=class extends Yq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{hF(this.prototype,"nostrData",[pp])}#U=void pF(this,"nostrData");static{hF(this.prototype,"toast",[pp])}#Vt=void pF(this,"toast");static{hF(this.prototype,"newReadRelay",[Wr],function(){return""})}#nn=void pF(this,"newReadRelay");static{hF(this.prototype,"newWriteRelay",[Wr],function(){return""})}#rn=void pF(this,"newWriteRelay");get customReadRelays(){return rB(this.settings.nostrReadRelays||[],this.nostrData.requiredReadRelays)}get customWriteRelays(){return rB(this.settings.nostrWriteRelays||[],this.nostrData.requiredWriteRelays)}get readRelayExclusions(){return this.settings.nostrReadRelayExclusions||[]}get writeRelayExclusions(){return this.settings.nostrWriteRelayExclusions||[]}get requiredReadRelaySet(){return new Set(this.nostrData.requiredReadRelays.filter(Boolean))}get trustedRelaySet(){return new Set(this.nostrData.trustedRelays.filter(Boolean))}get requiredWriteRelaySet(){return new Set(this.nostrData.requiredWriteRelays.filter(Boolean))}get mailboxReadRelaySet(){return new Set(this.nostrData.mailboxReadRelays)}get mailboxWriteRelaySet(){return new Set(this.nostrData.mailboxWriteRelays)}get hasReadOverrides(){return this.customReadRelays.length>0||this.readRelayExclusions.length>0}get hasWriteOverrides(){return this.customWriteRelays.length>0||this.writeRelayExclusions.length>0}get readRelaysForDisplay(){return this.nostrData.activeReadRelays.map(t=>({url:t,isRequired:this.requiredReadRelaySet.has(t),isTrusted:this.trustedRelaySet.has(t)}))}get writeRelaysForDisplay(){return this.nostrData.activeWriteRelays.map(t=>({url:t,isRequired:this.requiredWriteRelaySet.has(t)}))}get mediaServerOptions(){const t=this.nostrData.blossomServers;return t.length?t:[JF]}get hasMultipleMediaServers(){return this.mediaServerOptions.length>1}updateNewReadRelay(t){this.newReadRelay=t.target.value}static{dF(this.prototype,"updateNewReadRelay",[Vl])}updateNewWriteRelay(t){this.newWriteRelay=t.target.value}static{dF(this.prototype,"updateNewWriteRelay",[Vl])}addReadRelay(){const t=tB(this.newReadRelay);if(!t)return;const e=rB(nB(this.nostrData.requiredReadRelays,[...this.customReadRelays,t]),this.nostrData.requiredReadRelays),n=this.readRelayExclusions.filter(e=>tB(e)!==t);this.settings.update("nostrReadRelays",e.length>0?e:null),this.settings.update("nostrReadRelayExclusions",n.length>0?n:null),this.newReadRelay=""}static{dF(this.prototype,"addReadRelay",[Vl])}removeReadRelay(t){if(this.requiredReadRelaySet.has(t))return;const e=tB(t),n=this.customReadRelays.filter(t=>tB(t)!==e),r=this.mailboxReadRelaySet.has(e)?Array.from(new Set([...this.readRelayExclusions,e])):this.readRelayExclusions;this.settings.update("nostrReadRelays",n.length>0?n:null),this.settings.update("nostrReadRelayExclusions",r.length>0?r:null)}static{dF(this.prototype,"removeReadRelay",[Vl])}handleReadRelayKeydown(t){"Enter"===t.key&&this.addReadRelay()}static{dF(this.prototype,"handleReadRelayKeydown",[Vl])}handleWriteRelayKeydown(t){"Enter"===t.key&&this.addWriteRelay()}static{dF(this.prototype,"handleWriteRelayKeydown",[Vl])}resetReadRelays(){this.settings.update("nostrReadRelays",null),this.settings.update("nostrReadRelayExclusions",null)}static{dF(this.prototype,"resetReadRelays",[Vl])}toggleRelayTrust(t){const e=tB(t);if(!e)return;if(this.requiredReadRelaySet.has(e))return;const n=eB(this.settings.nostrTrustedRelays||[]);let r;r=n.indexOf(e)>=0?n.filter(t=>t!==e):[...n,e],this.settings.update("nostrTrustedRelays",r.length>0?r:null)}static{dF(this.prototype,"toggleRelayTrust",[Vl])}addWriteRelay(){const t=tB(this.newWriteRelay);if(!t)return;const e=rB(nB(this.nostrData.requiredWriteRelays,[...this.customWriteRelays,t]),this.nostrData.requiredWriteRelays),n=this.writeRelayExclusions.filter(e=>tB(e)!==t);this.settings.update("nostrWriteRelays",e.length>0?e:null),this.settings.update("nostrWriteRelayExclusions",n.length>0?n:null),this.newWriteRelay=""}static{dF(this.prototype,"addWriteRelay",[Vl])}removeWriteRelay(t){if(this.requiredWriteRelaySet.has(t))return;const e=tB(t),n=this.customWriteRelays.filter(t=>tB(t)!==e),r=this.mailboxWriteRelaySet.has(e)?Array.from(new Set([...this.writeRelayExclusions,e])):this.writeRelayExclusions;this.settings.update("nostrWriteRelays",n.length>0?n:null),this.settings.update("nostrWriteRelayExclusions",r.length>0?r:null)}static{dF(this.prototype,"removeWriteRelay",[Vl])}resetWriteRelays(){this.settings.update("nostrWriteRelays",null),this.settings.update("nostrWriteRelayExclusions",null)}static{dF(this.prototype,"resetWriteRelays",[Vl])}async clearCache(){try{await this.nostrData.clearCache(),this.toast.show("Nostr cache cleared")}catch(t){this.toast.show(`Failed to clear Nostr cache: ${t.message}`)}}static{dF(this.prototype,"clearCache",[Vl])}static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["zap",20]],null],[1,"\\n "],[10,1],[12],[1,"Nostr"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-read-relay"],[12],[1,"Read Relays"],[13],[1,"\\n "],[10,2],[14,0,"relay-list-hint"],[12],[1,"\\n Mark relays as trusted to show\\n "],[10,"strong"],[12],[1,"all"],[13],[1,"\\n photos and reviews from them by default (risk of spam).\\n "],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["readRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,1,["url"]]],null]],[13],[1,"\\n "],[10,0],[14,0,"relay-actions"],[12],[1,"\\n "],[11,"button"],[16,0,[29,["btn-trust-relay ",[52,[30,1,["isTrusted"]],"is-trusted"]]]],[24,"aria-label","Toggle trust"],[16,"aria-description",[52,[30,1,["isRequired"]],"Required relay — always trusted",[52,[30,1,["isTrusted"]],"Trusted: show all content from this relay","Untrusted: hide content from outside of my circles"]]],[16,"disabled",[30,1,["isRequired"]]],[24,4,"button"],[4,[32,2],null,null],[4,[32,3],["click",[28,[32,4],[[30,0,["toggleRelayTrust"]],[30,1,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color","@filled"],["shield",14,"currentColor",[30,1,["isTrusted"]]]],null],[1,"\\n "],[13],[1,"\\n "],[11,"button"],[24,0,"btn-remove-relay"],[24,"aria-label","Remove"],[16,"aria-description",[52,[30,1,["isRequired"]],"Required relays cannot be removed","Remove relay"]],[16,"disabled",[30,1,["isRequired"]]],[24,4,"button"],[4,[32,2],null,null],[4,[32,3],["click",[28,[32,4],[[30,0,["removeReadRelay"]],[30,1,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[1]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-read-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newReadRelay"]]],[24,4,"text"],[4,[32,3],["input",[30,0,["updateNewReadRelay"]]],null],[4,[32,3],["keydown",[30,0,["handleReadRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,3],["click",[30,0,["addReadRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasReadOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,3],["click",[30,0,["resetReadRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","new-write-relay"],[12],[1,"Write Relays"],[13],[1,"\\n "],[10,"ul"],[14,0,"relay-list"],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["writeRelaysForDisplay"]]],null]],null],null,[[[1," "],[10,"li"],[12],[1,"\\n "],[10,1],[12],[1,[28,[32,1],[[30,2,["url"]]],null]],[13],[1,"\\n "],[10,0],[14,0,"relay-actions"],[12],[1,"\\n "],[11,"button"],[24,0,"btn-remove-relay"],[24,"aria-label","Remove"],[16,"aria-description",[52,[30,2,["isRequired"]],"Required relays cannot be removed","Remove relay"]],[16,"disabled",[30,2,["isRequired"]]],[24,4,"button"],[4,[32,2],null,null],[4,[32,3],["click",[28,[32,4],[[30,0,["removeWriteRelay"]],[30,2,["url"]]],null]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["x",14,"currentColor"]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[2]],null],[1," "],[13],[1,"\\n "],[10,0],[14,0,"add-relay-input"],[12],[1,"\\n "],[11,"input"],[24,1,"new-write-relay"],[24,0,"form-control"],[24,"placeholder","relay.example.com"],[16,2,[30,0,["newWriteRelay"]]],[24,4,"text"],[4,[32,3],["input",[30,0,["updateNewWriteRelay"]]],null],[4,[32,3],["keydown",[30,0,["handleWriteRelayKeydown"]]],null],[12],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-secondary"],[24,4,"button"],[4,[32,3],["click",[30,0,["addWriteRelay"]]],null],[12],[1,"Add"],[13],[1,"\\n "],[13],[1,"\\n"],[41,[30,0,["hasWriteOverrides"]],[[[1," "],[11,"button"],[24,0,"btn-link reset-relays"],[24,4,"button"],[4,[32,3],["click",[30,0,["resetWriteRelays"]]],null],[12],[1,"\\n Reset to Defaults\\n "],[13],[1,"\\n"]],[]],null],[1," "],[13],[1,"\\n\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","nostr-media-server"],[12],[1,"Media server"],[13],[1,"\\n "],[11,"select"],[24,1,"nostr-media-server"],[24,0,"form-control"],[4,[32,3],["change",[28,[32,4],[[30,3],"nostrMediaServer"],null]],null],[12],[1,"\\n"],[42,[28,[31,1],[[28,[31,1],[[30,0,["mediaServerOptions"]]],null]],null],null,[[[1," "],[10,"option"],[15,2,[30,4]],[15,"selected",[52,[28,[32,5],[[30,4],[30,0,["settings","nostrMediaServer"]]],null],"selected"]],[12],[1,"\\n "],[1,[30,4]],[1,"\\n "],[13],[1,"\\n"]],[4]],null],[1," "],[13],[1,"\\n "],[13],[1,"\\n\\n"],[41,[30,0,["hasMultipleMediaServers"]],[[[1," "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","nostr-photo-fallback-uploads"],[12],[1,"Upload photos to fallback\\n servers"],[13],[1,"\\n "],[11,"select"],[24,1,"nostr-photo-fallback-uploads"],[24,0,"form-control"],[4,[32,3],["change",[28,[32,4],[[30,3],"nostrPhotoFallbackUploads"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","nostrPhotoFallbackUploads"]],"selected"]],[12],[1,"\\n Yes\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","nostrPhotoFallbackUploads"]]],"selected"]],[12],[1,"\\n No\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[12],[1,"Cached data"],[13],[1,"\\n "],[11,"button"],[24,0,"btn btn-outline btn-full"],[24,4,"button"],[4,[32,3],["click",[30,0,["clearCache"]]],null],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size","@color"],["database",18,"var(--danger-color)"]],null],[1,"\\n Clear profiles, photos, and reviews\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["relay","relay","@onChange","server"],["each","-track-array","if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Qq,stripProtocol:Ont,tooltip:rG,on:Hw,fn:mV,eq:vV}),isStrictMode:!0}),this)}},znt=class extends Yq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");static{Op(ig({id:null,block:'[[[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,0],null,[["@name","@size"],["alert-triangle",20]],null],[1,"\\n "],[10,1],[12],[1,"Experimental"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content form-layout"],[12],[1,"\\n "],[10,0],[14,0,"form-group"],[12],[1,"\\n "],[10,"label"],[14,"for","experimental-enable-photo-deletion"],[12],[1,"Enable photo deletion\\n (own photos)"],[13],[1,"\\n "],[11,"select"],[24,1,"experimental-enable-photo-deletion"],[24,0,"form-control"],[4,[32,1],["change",[28,[32,2],[[30,1],"experimentalEnablePhotoDeletion"],null]],null],[12],[1,"\\n "],[10,"option"],[14,2,"true"],[15,"selected",[52,[30,0,["settings","experimentalEnablePhotoDeletion"]],"selected"]],[12],[1,"\\n On\\n "],[13],[1,"\\n "],[10,"option"],[14,2,"false"],[15,"selected",[52,[51,[30,0,["settings","experimentalEnablePhotoDeletion"]]],"selected"]],[12],[1,"\\n Off\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onChange"],["if","unless"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Qq,on:Hw,fn:mV}),isStrictMode:!0}),this)}},Fnt=class extends Yq{static{hF(this.prototype,"settings",[pp])}#G=void pF(this,"settings");updateSetting(t,e){let n=e.target.value;"true"===n&&(n=!0),"false"===n&&(n=!1),this.settings.update(t,n)}static{dF(this.prototype,"updateSetting",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"Settings"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"settings-section"],[12],[1,"\\n "],[8,[32,2],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,3],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,4],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[8,[32,5],null,[["@onChange"],[[30,0,["updateSetting"]]]],null],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq,AppMenuSettingsMapUi:Mnt,AppMenuSettingsApis:Ant,AppMenuSettingsNostr:Nnt,AppMenuSettingsExperimental:znt}),isStrictMode:!0}),this)}},Dnt=Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar-header has-back-btn"],[12],[1,"\\n "],[11,"button"],[24,0,"back-btn"],[24,4,"button"],[4,[32,0],["click",[30,1]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["arrow-left",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n "],[10,"h2"],[14,0,"sidebar-header-text-centered"],[12],[1,"About"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,0],["click",[30,2]],null],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["x",20,"#333"]],null],[1,"\\n "],[13],[1,"\\n"],[13],[1,"\\n\\n"],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,"section"],[14,0,"about-section"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Marco"],[13],[1,"\\n (as in\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/Marco_Polo"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Marco Polo"],[13],[1,") is an unhosted maps application that respects your\\n privacy and choices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your own\\n "],[10,3],[14,6,"https://remotestorage.io/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"remote storage"],[13],[1,"\\n to sync place bookmarks across apps and devices.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n Connect your\\n "],[10,3],[14,6,"https://start.nostr.net"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"Nostr"],[13],[1,"\\n identity to publish photos of places.\\n "],[13],[1,"\\n\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size"],["gift",20]],null],[1,"\\n "],[10,1],[12],[1,"Open Source"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,"table"],[12],[1,"\\n "],[10,"thead"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"th"],[12],[1,"Source"],[13],[1,"\\n "],[10,"th"],[12],[1,"License"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tbody"],[12],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://gitea.kosmos.org/raucao/marco"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Marco App\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","GNU Affero General Public License"],[12],[1,"AGPL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openstreetmap.org/copyright"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map Data\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://opendatacommons.org/licenses/odbl/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","Open Data Commons Open Database License"],[12],[1,"ODbL"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://openfreemap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Map tiles\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/hyperknot/openfreemap/blob/main/LICENSE.md"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/feathericons/feather"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Feather Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://en.wikipedia.org/wiki/MIT_License"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n "],[10,"abbr"],[14,"title","MIT License"],[12],[1,"MIT"],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"tr"],[12],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://pinhead.ink/"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Pinhead Icons\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"td"],[12],[1,"\\n "],[10,3],[14,6,"https://github.com/waysidemapping/pinhead?tab=readme-ov-file#where-the-icons-are-from"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"\\n Various\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,"details"],[12],[1,"\\n "],[10,"summary"],[12],[1,"\\n "],[8,[32,1],null,[["@name","@size","@color"],["heart",20,"#e5533d"]],null],[1,"\\n "],[10,1],[12],[1,"Contribute"],[13],[1,"\\n "],[13],[1,"\\n "],[10,0],[14,0,"details-content"],[12],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most impactful:"],[13],[1,"\\n "],[13],[1,"\\n "],[10,"ul"],[12],[1,"\\n "],[10,"li"],[12],[1,"\\n Add and improve data for points of interest in\\n "],[10,3],[14,6,"https://www.openstreetmap.org"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"OpenStreetMap"],[13],[1,".\\n "],[13],[1,"\\n "],[10,"li"],[12],[1,"\\n Add place photos with your Nostr account.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most appreciated:"],[13],[1,"\\n Use this app as much as you can and\\n "],[10,3],[14,6,"https://community.remotestorage.io/t/marco-an-unhosted-maps-app/941"],[14,"target","_blank"],[14,"rel","noopener"],[12],[1,"submit feedback"],[13],[1,"\\n about your experience, problems, feature wishes, etc.\\n "],[13],[1,"\\n "],[10,2],[12],[1,"\\n "],[10,"strong"],[12],[1,"Most supportive:"],[13],[1,"\\n Tell others about this app, on social media, in blog posts,\\n educational videos, etc.\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"],[13]],["@onBack","@onClose"],[]]',moduleName:"(unknown template module)",scope:()=>({on:Hw,Icon:Qq}),isStrictMode:!0}),bV()),jnt=class extends Yq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"currentView",[Wr],function(){return"menu"})}#in=void pF(this,"currentView");setView(t){this.currentView=t}static{dF(this.prototype,"setView",[Vl])}goToSavedPlaces(){this.router.transitionTo("lists.index")}static{dF(this.prototype,"goToSavedPlaces",[Vl])}goToContributions(){this.router.transitionTo("contributions")}static{dF(this.prototype,"goToContributions",[Vl])}goToActivity(){this.router.transitionTo("activity")}static{dF(this.prototype,"goToActivity",[Vl])}static{Op(ig({id:null,block:'[[[10,0],[14,0,"sidebar app-menu-pane"],[12],[1,"\\n"],[41,[28,[32,0],[[30,0,["currentView"]],"menu"],null],[[[1," "],[8,[32,1],null,[["@onNavigate","@onClose","@onSavedPlaces","@onContributions","@onActivity"],[[30,0,["setView"]],[30,1],[30,0,["goToSavedPlaces"]],[30,0,["goToContributions"]],[30,0,["goToActivity"]]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"settings"],null],[[[1," "],[8,[32,2],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n\\n"]],[]],[[[41,[28,[32,0],[[30,0,["currentView"]],"about"],null],[[[1," "],[8,[32,4],null,[["@onBack","@onClose"],[[28,[32,3],[[30,0,["setView"]],"menu"],null],[30,1]]],null],[1,"\\n "]],[]],null]],[]]]],[]]],[13]],["@onClose"],["if"]]',moduleName:"(unknown template module)",scope:()=>({eq:vV,AppMenuHome:Int,AppMenuSettings:Fnt,fn:mV,AppMenuAbout:Dnt}),isStrictMode:!0}),this)}},Unt=a({default:()=>Bnt}),Bnt=class extends Yq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[8,[32,0],null,[["@onClose"],[[30,0,["close"]]]],null]],[],[]]',moduleName:"(unknown template module)",scope:()=>({AppMenu:jnt}),isStrictMode:!0}),this)}},$nt=a({default:()=>qnt}),qnt=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");activate(){this.mapUi.showSidebar()}},Vnt=a({default:()=>Wnt}),Wnt=class extends Qh{static{hF(this.prototype,"osmAuth",[pp])}#Ke=void pF(this,"osmAuth");static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");async model(){try{await this.osmAuth.handleCallback()}catch(t){console.error("Failed to handle OSM OAuth callback",t)}finally{this.router.transitionTo("index")}}},Hnt=a({default:()=>Gnt}),Gnt=class extends Yq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");static{hF(this.prototype,"localPlace",[Wr],function(){return null})}#sn=void pF(this,"localPlace");constructor(){super(...arguments),this.localPlace=this.args.model}get place(){const t=this.args.model,e=t.osmId||t.id;return this.storage.findPlaceById(e)||(!this.localPlace||this.localPlace.osmId!==e&&this.localPlace.id!==e?t.createdAt?{...t,id:void 0,createdAt:void 0,geohash:void 0}:t:this.localPlace)}handleUpdate(t){console.debug("Updating local place state:",t),this.localPlace=t,this.storage.notifyChange()}static{dF(this.prototype,"handleUpdate",[Vl])}refreshMap(){this.storage.notifyChange()}static{dF(this.prototype,"refreshMap",[Vl])}navigateBack(t){if(null===t)if(this.mapUi.returnToRoute){this.mapUi.showSidebar();const{name:t,model:e}=this.mapUi.returnToRoute;void 0!==e?this.router.transitionTo(t,e):this.router.transitionTo(t)}else this.mapUi.returnToSearch&&this.mapUi.currentSearch?(this.mapUi.showSidebar(),this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch})):this.router.transitionTo("index");else this.mapUi.showSidebar(),this.router.transitionTo("place",t)}static{dF(this.prototype,"navigateBack",[Vl])}close(){this.mapUi.clearSelection(),this.mapUi.hideSidebar(),this.mapUi.returnToSearch&&this.mapUi.currentSearch?this.router.transitionTo("search",{queryParams:this.mapUi.currentSearch}):this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[8,[32,0],null,[["@selectedPlace","@onClose","@onSelect","@onBookmarkChange","@onUpdate"],[[30,0,["place"]],[30,0,["close"]],[30,0,["navigateBack"]],[30,0,["refreshMap"]],[30,0,["handleUpdate"]]]],null],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({PlacesSidebar:aG}),isStrictMode:!0}),this)}},Znt=a({default:()=>Knt}),Knt=class extends Qh{static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"osm",[pp])}#It=void pF(this,"osm");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");async model(t){const e=t.place_id;let n,r,i=!1;(e.startsWith("osm:node:")||e.startsWith("osm:way:")||e.startsWith("osm:relation:"))&&(i=!0,[,n,r]=e.split(":"),console.debug(`Fetching explicit OSM ${n}:`,r));let s=null;i&&(s=this.loadOsmPlace(r,n)),await this.waitForSync();let o=i?r:e,a=this.storage.findPlaceById(o);return a&&i&&a.osmType!==n&&(a=null),a?(console.debug("Found in bookmarks:",a.title),a):i?(console.debug(`Not in bookmarks, using explicitly fetched OSM ${n}:`,r),await s):(console.warn("Not in bookmarks:",e),null)}async waitForSync(){if(this.storage.initialSyncDone)return;console.debug("Waiting for initial storage sync...");const t=Date.now();for(;!this.storage.initialSyncDone;){if(Date.now()-t>5e3){console.warn("Timed out waiting for initial sync");break}await new Promise(t=>setTimeout(t,100))}}async afterModel(t){if(t&&t.osmId&&t.osmType&&"node"!==t.osmType&&!t.geojson){console.debug("Model missing geometry, fetching full OSM details...");const e=await this.loadOsmPlace(t.osmId,t.osmType);e&&(Object.assign(t,e),console.debug("Enriched model with full OSM details",t))}if(t){const e={preventZoom:this.mapUi.preventNextZoom};this.mapUi.selectPlace(t,e),this.mapUi.showSidebar(),this.mapUi.preventNextZoom=!1}this.mapUi.stopSearch()}deactivate(){this.mapUi.clearSelection(),this.mapUi.returnToSearch=!1,this.mapUi.returnToRoute=null}async loadOsmPlace(t,e=null){try{const n=await this.osm.fetchOsmObject(t,e);if(n)return console.debug("Found OSM POI:",n),n}catch(n){console.error("Failed to fetch POI",n)}return null}setupController(t,e){super.setupController(t,e),this.checkUpdates(e)}async checkUpdates(t){if(t&&t.osmId&&t.osmType){if(t.id){const e=await this.storage.refreshPlace(t);return void(e&&this.mapUi.selectPlace(e,{preventZoom:!0}))}try{const e=await this.osm.fetchOsmObject(t.osmId,t.osmType,{forceFresh:!0});e&&function(t,e){const n=Math.abs((t.lat??0)-(e.lat??0)),r=Math.abs((t.lon??0)-(e.lon??0));if(n>1e-5||r>1e-5)return!0;const i=t.osmTags||{},s=e.osmTags||{},o=new Set([...Object.keys(i),...Object.keys(s)]);for(const a of o)if(i[a]!==s[a])return!0;return!1}(t,e)&&(Object.assign(t,e),this.mapUi.selectPlace(t,{preventZoom:!0}))}catch(e){console.debug("[place] Fresh fetch failed for",t.osmId,e)}}}serialize(t){return t.osmId&&t.osmType?{place_id:`osm:${t.osmType}:${t.osmId}`}:t.id?{place_id:t.id}:{place_id:t.osmId}}},Ynt=a({default:()=>Xnt}),Xnt=class extends Yq{static{hF(this.prototype,"router",[pp])}#se=void pF(this,"router");static{hF(this.prototype,"storage",[pp])}#Pt=void pF(this,"storage");static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");get initialPlace(){return{title:"",description:""}}close(){this.router.transitionTo("index")}static{dF(this.prototype,"close",[Vl])}async savePlace(t){try{const e=this.mapUi.creationCoordinates||{lat:this.args.model.lat,lon:this.args.model.lon},n=parseFloat(e.lat.toFixed(6)),r=parseFloat(e.lon.toFixed(6)),i={title:t.title||"Untitled Place",description:t.description,lat:n,lon:r,tags:[],osmTags:{}},s=await this.storage.storePlace(i);console.debug("Created private place:",s.title),this.router.replaceWith("place",s)}catch(e){console.error("Failed to create place:",e),alert("Failed to create place: "+e.message)}}static{dF(this.prototype,"savePlace",[Vl])}static{Op(ig({id:null,block:'[[[41,[30,0,["mapUi","isSidebarVisible"]],[[[1," "],[10,0],[14,0,"sidebar"],[12],[1,"\\n "],[10,0],[14,0,"sidebar-header"],[12],[1,"\\n "],[10,"h2"],[12],[8,[32,0],null,[["@name","@size","@color"],["plus-circle",20,"#ea4335"]],null],[1,"\\n New Place"],[13],[1,"\\n "],[11,"button"],[24,0,"close-btn"],[24,4,"button"],[4,[32,1],["click",[30,0,["close"]]],null],[12],[8,[32,0],null,[["@name","@size","@color"],["x",20,"#333"]],null],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"sidebar-content"],[12],[1,"\\n "],[10,2],[14,0,"helper-text"],[12],[1,"\\n Drag the map to position the crosshair.\\n "],[13],[1,"\\n\\n "],[8,[32,2],null,[["@place","@onSave","@onCancel"],[[30,0,["initialPlace"]],[30,0,["savePlace"]],[30,0,["close"]]]],null],[1,"\\n "],[13],[1,"\\n "],[13],[1,"\\n"]],[]],null]],[],["if"]]',moduleName:"(unknown template module)",scope:()=>({Icon:Qq,on:Hw,PlaceEditForm:BH}),isStrictMode:!0}),this)}},Jnt=a({default:()=>Qnt}),Qnt=class extends Qh{static{hF(this.prototype,"mapUi",[pp])}#oe=void pF(this,"mapUi");queryParams={lat:{refreshModel:!0},lon:{refreshModel:!0}};model(t){return{lat:parseFloat(t.lat),lon:parseFloat(t.lon)}}setupController(t,e){super.setupController(t,e),e.lat&&e.lon&&this.mapUi.updateCreationCoordinates(e.lat,e.lon),this.mapUi.startCreating(),this.mapUi.showSidebar()}deactivate(){this.mapUi.stopCreating()}},trt=Object.assign({},Q_,{"marco/config/environment":rx,"marco/deprecation-workflow":xx,"marco/router":Px,"marco/services/activity":LF,"marco/services/blossom":XF,"marco/services/contributions":eD,"marco/services/image-processor":iD,"marco/services/local-forage":aD,"marco/services/map-ui":uD,"marco/services/nostr-auth":hj,"marco/services/nostr-data":uB,"marco/services/nostr-relay":vB,"marco/services/nostr-zap":_B,"marco/services/osm-auth":VB,"marco/services/osm":s$,"marco/services/photon":a$,"marco/services/place-name-resolver":c$,"marco/services/settings":d$,"marco/services/storage":R$,"marco/services/toast":T$,"marco/utils/activity":_F,"marco/utils/contributions":fF,"marco/utils/device":lj,"marco/utils/format-text":GB,"marco/utils/geo":I$,"marco/utils/geohash-coverage":lB,"marco/utils/icons":A$,"marco/utils/nostr":QU,"marco/utils/osm-icons":D$,"marco/utils/osm":XB,"marco/utils/payment":$$,"marco/utils/photo-tag-suggestions":Y$,"marco/utils/place-mapping":Q$,"marco/utils/poi-categories":e$,"marco/utils/poi-category-matcher":G$,"marco/utils/social-links":eq,"marco/workers/image-processor":bq,"marco/services/page-title":Rq,"marco/templates/activity":pW,"marco/controllers/activity":SH,"marco/routes/activity":RH,"marco/templates/contributions":IH,"marco/controllers/contributions":AH,"marco/routes/contributions":NH,"marco/templates/lists":FH,"marco/routes/lists":jH,"marco/templates/lists/list":lG,"marco/controllers/lists/list":uG,"marco/routes/lists/list":yG,"marco/templates/lists/index":bG,"marco/routes/lists/index":_G,"marco/templates/search":CG,"marco/controllers/search":SG,"marco/routes/search":RG,"marco/templates/application":Snt,"marco/routes/application":Rnt,"marco/routes/index":Tnt,"marco/templates/menu":Unt,"marco/routes/menu":$nt,"marco/routes/oauth/osm-callback":Vnt,"marco/templates/place":Hnt,"marco/routes/place":Znt,"marco/templates/place/new":Ynt,"marco/routes/place/new":Jnt},{}),ert=class{constructor(t,e,n){this.limit=t,this.func=e,this.store=n,this.size=0,this.misses=0,this.hits=0,this.store=n||new Map}get(t){let e=this.store.get(t);return this.store.has(t)?(this.hits++,this.store.get(t)):(this.misses++,e=this.set(t,this.func(t)),e)}set(t,e){return this.limit>this.size&&(this.size++,this.store.set(t,e)),e}purge(){this.store.clear(),this.size=0,this.hits=0,this.misses=0}},nrt=/[ _]/g,rrt=new ert(1e3,t=>function(t){return drt.get(t)}(t).replace(nrt,"-")),irt=/^(\-|_)+(.)?/,srt=/(.)(\-|\_|\.|\s)+(.)?/g,ort=/(^|\/|\.)([a-z])/g,art=new ert(1e3,t=>{const e=(t,e,n)=>n?`_${n.toUpperCase()}`:"",n=(t,e,n,r)=>e+(r?r.toUpperCase():""),r=t.split("/");for(let i=0;it.toUpperCase())}),lrt=/([a-z\d])([A-Z]+)/g,crt=/\-|\s+/g,urt=new ert(1e3,t=>t.replace(lrt,"$1_$2").replace(crt,"_").toLowerCase()),hrt=/([a-z\d])([A-Z])/g,drt=new ert(1e3,t=>t.replace(hrt,"$1_$2").toLowerCase());function prt(t){return art.get(t)}var frt=class{constructor(t){this._entries=t||globalThis.requirejs.entries}moduleNames(){return Object.keys(this._entries)}has(t){return t in this._entries}get(...t){return globalThis.require(...t)}},grt=class{static moduleBasedResolver=!0;moduleBasedResolver=!0;_deprecatedPodModulePrefix=!1;_normalizeCache=Object.create(null);static create(t){return new this(t)}moduleNameLookupPatterns=[this.podBasedModuleName,this.podBasedComponentsInSubdir,this.mainModuleName,this.defaultModuleName,this.nestedColocationComponentModuleName];static withModules(t){return class extends(this){static explicitModules=t}}constructor(t){if(Object.assign(this,t),!this._moduleRegistry){let t=this.constructor.explicitModules;t?this._moduleRegistry={moduleNames:()=>Object.keys(t),has:e=>Boolean(t[e]),get:e=>t[e],addModules(e){t=Object.assign({},t,e)}}:(void 0===globalThis.requirejs.entries&&(globalThis.requirejs.entries=globalThis.requirejs._eak_seen),this._moduleRegistry=new frt)}this.pluralizedTypes=this.pluralizedTypes||Object.create(null),this.pluralizedTypes.config||(this.pluralizedTypes.config="config")}makeToString(t,e){return this.namespace.modulePrefix+"@"+e+":"}shouldWrapInClassFactory(){return!1}parseName(t){if(!0===t.parsedName)return t;let e,n,r,i=t.split("@");if(3===i.length){if(0===i[0].length){e=`@${i[1]}`;let t=i[2].split(":");n=t[0],r=t[1]}else e=`@${i[1]}`,n=i[0].slice(0,-1),r=i[2];"template:components"===n&&(r=`components/${r}`,n="template")}else if(2===i.length){let t=i[0].split(":");if(2===t.length)0===t[1].length?(n=t[0],r=`@${i[1]}`):(e=t[1],n=t[0],r=i[1]);else{let t=i[1].split(":");e=i[0],n=t[0],r=t[1]}"template"===n&&0===e.lastIndexOf("components/",0)&&(r=`components/${r}`,e=e.slice(11))}else i=t.split(":"),n=i[0],r=i[1];let s=r,o=this.namespace;return{parsedName:!0,fullName:t,prefix:e||this.prefix({type:n}),type:n,fullNameWithoutType:s,name:r,root:o,resolveMethodName:"resolve"+prt(n)}}resolveOther(t){mrt("`modulePrefix` must be defined",this.namespace.modulePrefix);let e=this.findModuleName(t);if(e){let r=this._extractDefaultExport(e,t);if(void 0===r)throw new Error(` Expected to find: '${t.fullName}' within '${e}' but got 'undefined'. Did you forget to 'export default' within '${e}'?`);return this.shouldWrapInClassFactory(r,t)&&(n=r,r={create:t=>"function"==typeof n.extend?n.extend(t):n}),r}var n}normalize(t){return this._normalizeCache[t]||(this._normalizeCache[t]=this._normalize(t))}resolve(t){if("resolver:current"===t)return{create:()=>this};let e,n=this.parseName(t),r=n.resolveMethodName;return"function"==typeof this[r]&&(e=this[r](n)),null==e&&(e=this.resolveOther(n)),e}addModules(t){if(!this._moduleRegistry.addModules)throw new Error("addModules is only supported when your Resolver has been configured to use static modules via Resolver.withModules()");this._moduleRegistry.addModules(t)}_normalize(t){let e=t.split(":");if(e.length>1){let t=e[0];return"component"===t||"helper"===t||"modifier"===t||"template"===t&&0===e[1].indexOf("components/")?t+":"+e[1].replace(/_/g,"-"):t+":"+function(t){return rrt.get(t)}(e[1].replace(/\./g,"/"))}return t}pluralize(t){return this.pluralizedTypes[t]||(this.pluralizedTypes[t]=t+"s")}podBasedLookupWithPrefix(t,e){let n=e.fullNameWithoutType;return"template"===e.type&&(n=n.replace(/^components\//,"")),t+"/"+n+"/"+e.type}podBasedModuleName(t){let e=this.namespace.podModulePrefix||this.namespace.modulePrefix;return this.podBasedLookupWithPrefix(e,t)}podBasedComponentsInSubdir(t){let e=this.namespace.podModulePrefix||this.namespace.modulePrefix;if(e+="/components","component"===t.type||/^components/.test(t.fullNameWithoutType))return this.podBasedLookupWithPrefix(e,t)}resolveEngine(t){let e=t.fullNameWithoutType+"/engine";if(this._moduleRegistry.has(e))return this._extractDefaultExport(e)}resolveRouteMap(t){let e=t.fullNameWithoutType,n=e+"/routes";if(this._moduleRegistry.has(n)){let t=this._extractDefaultExport(n);return mrt(`The route map for ${e} should be wrapped by 'buildRoutes' before exporting.`,t.isRouteMap),t}}resolveTemplate(t){return this.resolveOther(t)}mainModuleName(t){if("main"===t.fullNameWithoutType)return t.prefix+"/"+t.type}defaultModuleName(t){return t.prefix+"/"+this.pluralize(t.type)+"/"+t.fullNameWithoutType}nestedColocationComponentModuleName(t){if("component"===t.type)return t.prefix+"/"+this.pluralize(t.type)+"/"+t.fullNameWithoutType+"/index"}prefix(t){let e=this.namespace.modulePrefix;return this.namespace[t.type+"Prefix"]&&(e=this.namespace[t.type+"Prefix"]),e}findModuleName(t){let e,n=this.moduleNameLookupPatterns;for(let r=0,i=n.length;rr.length+i.length)return t+":"+e.slice(s+r.length,o);let a=n+"/"+this.pluralize(t)+"/";return 0===e.indexOf(a)&&e.length>a.length?t+":"+e.slice(a.length):void 0}_extractDefaultExport(t){let e=this._moduleRegistry.get(t,null,null,!0);return e&&e.default&&(e=e.default),e}};function mrt(t,e){if(!e)throw new Error(t)}(class extends J_{modulePrefix=ix.modulePrefix;podModulePrefix=ix.podModulePrefix;Resolver=grt.withModules(trt);inspector=function(t){!function(t){globalThis.emberInspectorApps||(globalThis.emberInspectorApps=[]),globalThis.emberInspectorApps.push({app:t,name:`app-${globalThis.emberInspectorApps.length}`,loadCompatInspector:()=>Uj(()=>import("./modules-4-12-gX-Scs6b.js"),[])}),globalThis.dispatchEvent&&globalThis.dispatchEvent(new Event("Ember"))}(t)}(this)}).create(ix.APP);export{Hv as $,al as $n,it as $r,jp as $t,cx as A,dc as An,Xe as Ar,cm as At,fb as B,cc as Bn,ee as Br,gg as Bt,Tk as C,Xc as Cn,or as Cr,oy as Ct,wC as D,xc as Dn,Xn as Dr,ty as Dt,xC as E,Ec as En,Bn as Er,xm as Et,O_ as F,sc as Fn,Oe as Fr,Wg as Ft,sb as G,ec as Gn,Yt as Gr,Bp as Gt,vb as H,Kl as Hn,re as Hr,Up as Ht,Uw as I,Jl as In,Ee as Ir,sm as It,ab as J,Dl as Jn,zt as Jr,Wp as Jt,ob as K,Bl as Kn,Kt as Kr,Hp as Kt,db as L,Zl as Ln,Re as Lr,$g as Lt,S_ as M,nc as Mn,Je as Mr,tm as Mt,x_ as N,rc as Nn,en as Nr,nm as Nt,hC as O,_c as On,He as Or,Jm as Ot,C_ as P,Gl as Pn,Me as Pr,rm as Pt,Wv as Q,ol as Qn,st as Qr,Dp as Qt,gb as R,uc as Rn,se as Rr,kg as Rt,pN as S,Jc as Sn,hr as Sr,ly as St,KC as T,Mc as Tn,rr as Tr,Xm as Tt,yb as U,Hl as Un,ie as Ur,qp as Ut,mb as V,Ql as Vn,te as Vr,vg as Vt,eb as W,tc as Wn,Qt as Wr,$p as Wt,Kv as X,Sl as Xn,ct as Xr,Gp as Xt,nb as Y,Ll as Yn,ut as Yr,Zp as Yt,Yv as Z,_l as Zn,nt as Zr,zp as Zt,Tq as _,mu as _n,kr as _r,By as _t,sV as a,w as ai,Fu as an,Mo as ar,Ey as at,KN as b,cu as bn,br,cy as bt,lV as c,xu as cn,gs as cr,Ty as ct,uV as d,Uu as dn,ni as dr,Vy as dt,et as ei,Fp as en,ll as er,Gv as et,nV as f,_u as fn,Kr as fr,Iy as ft,Nq as g,Iu as gn,Sr as gr,nv as gt,zq as h,Au as hn,Ir as hr,rv as ht,rV as i,_ as ii,Cu as in,$a as ir,sv as it,K_ as j,oc as jn,Qe as jr,Vg as jt,Ex as k,vc as kn,Ve as kr,Qm as kt,iV as l,Du as ln,Ci as lr,qy as lt,Fq as m,zu as mn,Ar as mr,iv as mt,gH as n,p as ni,Op as nn,tl as nr,Dv as nt,oV as o,b as oi,Nu as on,Po as or,Sy as ot,$q as p,wu as pn,Dr as pr,ky as pt,ib as q,Ul as qn,Ct as qr,Vp as qt,cV as r,h as ri,hp as rn,qa as rr,mv as rt,aV as s,a as si,Mu as sn,Gs as sr,_y as st,TG as t,m as ti,Np as tn,nl as tr,Uv as tt,hV as u,ju as un,ri as ur,xy as ut,Lq as v,bu as vn,Mr as vr,Py as vt,rk as w,Gc as wn,nr as wr,ay as wt,_N as x,lu as xn,gr as xr,wm as xt,YF as y,vu as yn,Rr as yr,Uy as yt,cb as z,ac as zn,ne as zr,mg as zt}; \ No newline at end of file diff --git a/release/assets/main-Bv3zmRKA.css b/release/assets/main-Bv3zmRKA.css new file mode 100644 index 0000000..7384d99 --- /dev/null +++ b/release/assets/main-Bv3zmRKA.css @@ -0,0 +1 @@ +:root{--body-text-color:#333;--primary-background-color:#fff;--hover-bg:#f8f9fa;--divider-color:#eee;--sidebar-width:350px;--link-color:#2a7fff;--link-color-visited:#6a4fbf;--marker-color-primary:#ea4335;--marker-color-dark:#b31412;--danger-color:var(--marker-color-primary);--danger-color-dark:var(--marker-color-dark);--default-list-color:#fc3;--secondary-text-color:#898989;--border-color:#d8d8d8;--success-color:#2e7d32;--secondary-background-color:#f0f0f0}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;height:100%}button{-webkit-tap-highlight-color:transparent}body{color:var(--body-text-color);margin:0;font-family:Noto Sans,sans-serif;font-size:16px;font-weight:400}#root,#ember-testing{height:100%}.map-container{-webkit-tap-highlight-color:transparent;background:#f8f9fa;outline:none;position:absolute;inset:0}#rs-widget-container{z-index:4000;display:none;position:absolute;top:60px;right:10px}#rs-widget-container.visible{display:block}.rs-backdrop{z-index:3999;position:fixed;inset:0}.app-header{z-index:3000;pointer-events:none;grid-template-columns:1fr auto 1fr;grid-template-areas:"search chips user";align-items:center;gap:1rem;height:60px;padding:.5rem 1rem;display:grid;position:absolute;top:0;left:0;right:0}@media (width<=768px){.app-header{grid-template-columns:1fr auto;grid-template-areas:"search user""chips chips";row-gap:8px;height:auto;padding:.5rem .5rem 0}}.header-left,.header-right,.header-center{pointer-events:auto}.header-left{grid-area:search;justify-self:start;align-items:center;width:100%;display:flex}@media (width>768px){.header-left{min-width:300px;max-width:350px}}.header-right{grid-area:user;justify-self:end}.header-center{grid-area:chips;justify-content:center;min-width:0;display:flex}@media (width>768px){.header-center .category-chips-scroll{width:auto;max-width:100%}}@media (width<=768px){.header-center{justify-content:start;width:100%;overflow:hidden}.header-center.searching{display:none}}.btn-press{transition:transform .1s}.btn-press:active{transform:scale(.95)}.user-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.user-avatar-placeholder{background:#2a3743;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.user-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px;display:block}.photo-preview-img{max-width:100%;height:auto}.dropzone{text-align:center;cursor:pointer;aspect-ratio:4/3;background-color:#ffffff05;border:2px dashed #ccc;border-radius:8px;margin:1.5rem 0 1rem;transition:all .2s}.dropzone.is-dragging{background-color:#61afef0d;border-color:#61afef}.dropzone-label{cursor:pointer;color:#898989;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;display:flex}.dropzone-label p{margin:0}.file-input-hidden{display:none}.photo-upload-item{aspect-ratio:4/3;background:#1e262e;border-radius:6px;width:100%;margin-bottom:1.25rem;position:relative;overflow:hidden}.photo-upload-item img{object-fit:contain;z-index:1;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.photo-upload-item .overlay,.photo-upload-item .btn-remove-photo{z-index:2}.photo-upload-item .overlay{background:#0009;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.upload-status-text{color:#fff;text-shadow:0 1px 3px #000c;text-align:center;margin-top:1rem;padding:0 1rem;font-size:.9rem}.photo-upload-item .error-overlay{cursor:pointer;background:#e06c75cc;border:none;width:100%;margin:0;padding:0}.photo-upload-item .btn-remove-photo{cursor:pointer;color:#fff;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:absolute;top:4px;right:4px}.photo-upload-item .btn-remove-photo:hover{background:var(--danger-color)}.spin-animation{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-publish{width:100%}.user-menu-container{position:relative}.user-menu-popover{z-index:3001;background:#fff;border-radius:8px;width:280px;margin-top:10px;padding:1rem;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #00000026}.menu-backdrop{z-index:3000;position:fixed;inset:0}.account-list{margin:0;padding:0;list-style:none}.account-item{border-bottom:1px solid var(--divider-color);flex-direction:column;padding:1rem 0;display:flex}.account-item:last-child{border-bottom:none;padding-bottom:0}.account-item:first-child{padding-top:0}.account-header{justify-content:space-between;align-items:center;display:flex}.account-status{color:#898989;white-space:nowrap;text-overflow:ellipsis;margin-top:.35rem;margin-left:calc(18px + .75rem);font-size:.85rem;overflow:hidden}.account-status strong{font-weight:600}.account-item.disabled{opacity:.5;pointer-events:none}.account-info{align-items:center;gap:.75rem;display:flex}.btn-text{cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.text-primary{color:var(--link-color)}.text-danger{color:#dc3545}.btn-text:hover{text-decoration:underline}.sidebar{width:var(--sidebar-width);z-index:3100;will-change:transform;background:#fff;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden;box-shadow:2px 0 5px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-in-left}.sidebar.app-menu-pane{z-index:3200}@media (width<=768px){.sidebar.app-menu-pane{border-radius:16px 16px 0 0;width:100%;height:66vh;top:auto;bottom:0;right:0}}.sidebar-header{border-bottom:1px solid var(--divider-color);box-sizing:border-box;justify-content:space-between;align-items:center;height:56px;padding:0 1rem;display:flex}.sidebar-header.no-border{border-bottom-color:#0000}.sidebar-header h2{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.sidebar-content{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem;overflow-y:auto}.app-menu-pane .sidebar-content{padding-top:.5rem}.app-menu{margin:0 -1rem;padding:0;list-style:none}.app-menu button{width:100%;color:var(--body-text-color);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-family:inherit;font-size:.95rem;transition:background-color .2s;display:flex}.app-menu button:hover{background-color:var(--hover-bg)}.app-menu .icon{color:#666;width:20px;height:20px}.sidebar-content details{margin:0 -1rem}.sidebar-content details summary{cursor:pointer;color:var(--body-text-color);align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-size:.95rem;list-style:none;transition:background-color .2s;display:flex}.sidebar-content details summary::-webkit-details-marker{display:none}.sidebar-content details summary:hover{background-color:var(--hover-bg)}.sidebar-content details summary .icon{width:20px;height:20px}.sidebar-content details summary:after{content:"";background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px 20px;width:20px;height:20px;margin-left:auto;transition:transform .2s}.sidebar-content details[open] summary:after{transform:rotate(90deg)}.sidebar-content details .details-content{padding:0 1.4rem 1rem;font-size:.9rem;animation:.2s ease-out details-slide-down}.sidebar-content details .details-content.form-layout{flex-direction:column;gap:16px;display:flex}.relay-list{flex-direction:column;gap:4px;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.relay-list li{word-break:break-all;border-radius:4px;align-items:center;gap:8px;padding:.25rem 0;font-size:.9rem;display:flex}.relay-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.relay-list-hint{color:var(--secondary-text-color);margin:0 0 .5rem;font-size:.8rem}.btn-remove-relay{background-color:var(--primary-background-color);border:1px solid var(--danger-color);width:24px;height:24px;color:var(--danger-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.btn-remove-relay svg{stroke:currentColor}.btn-remove-relay:hover:not(:disabled),.btn-remove-relay:active:not(:disabled){background-color:var(--danger-color);color:var(--primary-background-color)}.btn-remove-relay:disabled{border-color:var(--border-color);color:var(--secondary-text-color);cursor:default;opacity:.6}.add-relay-input{gap:.5rem;display:flex}.btn-link.reset-relays{margin-top:.75rem;font-size:.85rem}.btn-trust-relay{background-color:var(--primary-background-color);border:1px solid var(--border-color);width:24px;height:24px;color:var(--secondary-text-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.btn-trust-relay svg{stroke:currentColor}.btn-trust-relay.is-trusted{border-color:var(--success-color);color:var(--success-color)}.btn-trust-relay:hover,.btn-trust-relay:active{background-color:var(--secondary-background-color)}.btn-trust-relay:disabled{cursor:default;opacity:.6}.tooltip{background:var(--body-text-color);color:var(--primary-background-color);white-space:nowrap;pointer-events:none;z-index:9999;border-radius:4px;padding:4px 8px;font-size:.85rem;animation:.15s tooltip-fade-in;position:fixed}@keyframes tooltip-fade-in{0%{opacity:0}to{opacity:1}}@keyframes details-slide-down{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.edit-form{background:var(--hover-bg);border-bottom:1px solid var(--divider-color);margin:-1rem -1rem 1rem;padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{color:#666;margin-bottom:.5rem;font-size:.85rem;display:block}.form-control{box-sizing:border-box;width:100%;color:var(--body-text-color);background-color:var(--primary-background-color);border:1px solid #ddd;border-radius:4px;padding:.5rem;font-family:inherit;font-size:1rem}.form-control:focus{border-color:var(--link-color);outline:none;box-shadow:0 0 0 2px #2a7fff1a}select.form-control{appearance:none;background-color:var(--primary-background-color);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2.5rem}.edit-actions{justify-content:flex-end;gap:.5rem;display:flex}.settings-section{margin-bottom:2rem;font-size:.95rem}.settings-section .form-group{margin-top:.5rem;margin-bottom:0}.settings-section .form-group:first-of-type{margin-top:1rem}.about-section{margin-bottom:2rem}.about-section a{color:var(--link-color);text-decoration:none}.about-section a:visited{color:var(--link-color-visited)}.about-section a:hover{text-decoration:underline}.about-section p+ul{margin-top:.25rem}.about-section ul{margin:.5rem 0 0;padding-inline-start:1.2em}.about-section li{margin-block:.15rem;padding-inline-start:.5rem}.about-section li::marker{content:"♥";color:#898989}.btn-full{width:100%}.btn-primary{background:var(--link-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.75rem;font-weight:500}.btn-primary:hover{background:#0069d9}.meta-info{font-size:.9rem}.meta-info p{margin-top:1rem;margin-bottom:1rem}.meta-info p:first-child{border-top:1px solid var(--divider-color);margin-top:1.2rem;padding-top:1.2rem}.meta-info a,.meta-info .btn-link{color:var(--link-color);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.meta-info a:hover,.meta-info .btn-link:hover{text-decoration:underline}.sidebar-content table{border-collapse:collapse;width:100%}.sidebar-content table th,.sidebar-content table td{text-align:left;padding:.5rem 0}.sidebar-content table th{text-transform:uppercase;color:#898989;font-size:.75rem;font-weight:700}.sidebar-content table td{border-bottom:1px solid #f9f9f9}.sidebar-content table tr:last-child td{border-bottom:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.places-list{margin:-1rem -1rem 0;padding:0;list-style:none}.place-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;padding:1rem;font-family:inherit;transition:background .2s}.place-item:hover{background:var(--hover-bg)}.place-name{margin-bottom:.25rem;font-size:1rem;font-weight:700}.place-type{color:#666;font-size:.85rem}.back-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:-.5rem;padding:0 .5rem;display:flex}.close-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-right:-.5rem;padding:0 .5rem;display:flex}.place-details{padding-bottom:2rem}.photo-carousel{position:relative}.photo-carousel.inline{margin:-1rem -1rem 1rem}.photo-carousel-track{scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;background-color:var(--hover-bg);display:flex;overflow-x:auto}.photo-carousel-track::-webkit-scrollbar{display:none}.carousel-slide{cursor:pointer;scroll-snap-align:start;aspect-ratio:16/9;flex:0 0 100%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.carousel-placeholder{display:none}.place-header-photo-blur{object-fit:cover;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.place-header-photo{opacity:0;z-index:1;width:100%;height:100%;transition:opacity .3s ease-in-out;display:block;position:absolute;top:0;left:0}.place-header-photo.landscape{object-fit:cover}.place-header-photo.portrait{object-fit:contain}.place-header-photo.loaded{opacity:1}.place-header-photo.loaded-instant{opacity:1;transition:none}.carousel-nav-btn{color:#fff;cursor:pointer;z-index:2;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .2s,background-color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-carousel:hover .carousel-nav-btn:not(.disabled){opacity:1}.carousel-nav-btn:not(.disabled):hover{background:#000c}.carousel-nav-btn.disabled{opacity:0;pointer-events:none}.carousel-nav-btn.prev{left:.5rem}.carousel-nav-btn.next{right:.5rem}@media (width<=768px){.photo-carousel.inline .photo-carousel-track{scroll-snap-type:none;background-color:var(--primary-background-color);gap:2px}.photo-carousel.inline .carousel-slide{scroll-snap-align:none;flex:none;width:auto;height:100px}.photo-carousel.inline .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.inline .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.inline .carousel-placeholder{background-color:var(--hover-bg);flex:1;min-width:0;display:block}.photo-carousel.inline .place-header-photo.landscape,.photo-carousel.inline .place-header-photo.portrait{object-fit:cover}.photo-carousel.inline .carousel-nav-btn{display:none}}.place-details h3{margin-top:0;margin-bottom:.5rem;font-size:1.2rem}.place-details .place-type{color:#666;margin:0 0 1rem;font-size:.9rem}.place-details p.place-description{line-height:1.4}.place-details .actions{flex-direction:row;gap:1rem;margin-top:1.5rem;padding-bottom:.3rem;display:flex}.place-payment-methods{border-top:1px solid var(--divider-color);color:var(--secondary-text-color);align-items:center;gap:1rem;margin-top:1.2rem;padding-top:1.2rem;display:flex}.payment-method{outline-offset:2px;height:24px;color:var(--secondary-text-color);border-radius:4px;justify-content:center;align-items:center;display:inline-flex;position:relative}.payment-method.is-denied{opacity:.5}.payment-method.is-denied:after{content:"";background-color:var(--danger-color);pointer-events:none;border-radius:1px;width:28px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.payment-method-badge{background:var(--default-list-color);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:13px;height:13px;font-size:0;line-height:0;display:flex;position:absolute;bottom:-2px;right:-6px;overflow:hidden}.payment-method-badge .icon{justify-content:center;align-items:center;display:flex}.payment-method-badge .icon svg{display:block}.btn{box-sizing:border-box;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;text-decoration:none;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-outline{color:var(--body-text-color);background:0 0;border:1px solid #ccc}.btn-outline:hover{border:1px solid #898989}.btn-secondary{color:var(--body-text-color);background:#ffcc334d;border:1px solid #fc33}.btn-secondary:hover{background:#fc36}.btn-blue{background:var(--link-color);color:#fff;border:none}.btn-blue:hover{background:#0056b3}.btn-green{color:#fff;background:#198754;border:none}.btn-green:hover{background:#157347}.search-pulse{pointer-events:none;box-sizing:border-box;will-change:transform, opacity;backface-visibility:hidden;background:#fc33;border:2px solid #fc3c;border-radius:50%;animation:1.5s ease-out infinite pulse;display:none;position:absolute;transform:translate(-50%,-50%)}.search-pulse.active{display:block}.search-pulse.blue{background:#39c3;border-color:#39cc}@keyframes pulse{0%{opacity:.8;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-50%)scale(1.4)}}.ol-control.ol-attribution{bottom:1rem}.ol-touch .ol-control.ol-attribution{bottom:.5rem}.ol-control.ol-zoom{bottom:3rem}.ol-touch .ol-control.ol-zoom{bottom:3.5rem}.ol-control.ol-locate{bottom:6.5rem}.ol-touch .ol-control.ol-locate{bottom:8.5rem}.ol-control.ol-rotate{bottom:9rem}.ol-touch .ol-control.ol-rotate{bottom:11.5rem}.ol-control.ol-attribution,.ol-control.ol-zoom,.ol-control.ol-locate,.ol-control.ol-rotate{top:auto;left:auto;right:1rem}.ol-touch .ol-control.ol-attribution,.ol-touch .ol-control.ol-zoom,.ol-touch .ol-control.ol-locate,.ol-touch .ol-control.ol-rotate{right:.5rem}.app-logo-icon{width:32px;height:32px;margin:-6px 0;display:inline-flex}.app-logo-icon svg{width:100%;height:100%}span.icon{display:inline-block}.icon{flex-shrink:0}.icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.icon-filled svg{stroke:none;fill:currentColor}.content-with-icon{flex-direction:row;align-items:flex-start;gap:.5rem;display:flex}.content-with-icon>span:not(.icon){flex:1;min-width:0}.content-with-icon>span:not(.icon) a{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.content-with-icon .icon{margin-top:.15rem}.selected-pin-container{pointer-events:none;display:none;position:absolute;transform:translate(-50%,-100%)}.selected-pin-container.active{animation:.5s cubic-bezier(.175,.885,.32,1.275) forwards drop-in;display:block}.selected-pin{width:40px;height:40px;color:var(--marker-color-primary);filter:drop-shadow(0 4px 6px #0000004d)}.selected-pin svg{width:100%;height:100%;fill:var(--marker-color-primary);stroke:var(--marker-color-dark);stroke-width:1px}.selected-pin-shadow{z-index:-1;opacity:0;background:#0000004d;border-radius:50%;width:10px;height:4px;animation:.5s .2s forwards shadow-fade;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes drop-in{0%{opacity:0;transform:translate(-50%,-200%)scale(0)}60%{opacity:1}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes shadow-fade{to{opacity:1}}.map-crosshair{width:24px;height:24px;color:var(--body-text-color);pointer-events:none;z-index:2000;transition:top .3s,left .3s;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-crosshair.visible{display:block}.map-container.sidebar-open .map-crosshair{left:calc(50% + var(--sidebar-width) / 2)}@media (width<=768px){.map-container.sidebar-open .map-crosshair{top:calc(25% + 30px);left:50%}}.helper-text{color:#1a5c9b;background:#eef4fc;border-radius:4px;align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem;padding:.75rem;font-size:.9rem;display:flex}button.create-place{width:100%;margin:1.5rem auto}@media (width<=768px){.sidebar{border-top-left-radius:16px;border-top-right-radius:16px;width:100%;height:50vh;inset:auto 0 0;box-shadow:0 -2px 10px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-up-bottom}.sidebar-content{padding-bottom:env(safe-area-inset-bottom,20px);overflow-y:auto}}.search-box{z-index:3002;width:100%;max-width:400px;margin-left:0;position:relative}@media (width<=768px){.search-box{max-width:calc(100vw - 65px)}}.search-form{background:#fff;border-radius:24px;align-items:center;height:48px;padding:0 .5rem;transition:box-shadow .2s;display:flex;box-shadow:0 2px 5px #00000026}.search-form:focus-within{box-shadow:0 4px 12px #00000026}.menu-btn-integrated{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-right:4px;padding:8px;display:flex}.menu-btn-integrated:hover{background:#0000000d}.search-icon{color:#5f6368;justify-content:center;align-items:center;margin-right:.5rem;padding:8px;display:flex}.search-input{min-width:0;height:100%;color:var(--body-text-color);-webkit-appearance:none;background:0 0;border:none;outline:none;flex:1;width:100%;padding:0 4px;font-size:1rem}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-submit-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;padding:8px;display:flex}.search-submit-btn:hover{color:var(--body-text-color);background:#0000000d}.search-clear-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:8px;display:flex}.search-clear-btn:hover{color:var(--body-text-color);background:#0000000d}.search-results-popover{z-index:3002;background:#fff;border-radius:8px;max-height:400px;margin-top:8px;position:absolute;top:100%;left:0;right:0;overflow:hidden auto;box-shadow:0 4px 12px #00000026}.search-results-list{margin:0;padding:0;list-style:none}.search-result-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f0f0f0;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;transition:background .1s;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus{background:var(--hover-bg);outline:none}.result-icon{color:#666;background:#f0f0f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.result-info{flex-direction:column;display:flex;overflow:hidden}.result-title{color:var(--body-text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.result-desc{color:#777;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.8rem;overflow:hidden}.save-button-wrapper{position:relative}.place-lists-manager{z-index:10;background:#fff;border-radius:8px;width:220px;margin-top:.5rem;padding:.5rem 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.place-lists-manager .list-item{align-items:center;padding:.5rem 1rem;display:flex}.place-lists-manager .list-item:hover{background:var(--hover-bg)}.place-lists-manager label{cursor:pointer;width:100%;color:var(--body-text-color);align-items:center;gap:.75rem;margin:0;font-size:.95rem;display:flex}.place-lists-manager input[type=checkbox]{accent-color:var(--link-color);cursor:pointer;width:16px;height:16px}.list-color-dot{background-color:var(--default-list-color);border:1px solid #0000001a;border-radius:50%;flex-shrink:0;width:12px;height:12px}.place-lists-manager .divider{background:var(--divider-color);height:1px;margin:.5rem 0}.category-chips-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100%;margin-top:0;padding:4px 0;overflow-x:auto}.category-chips-scroll::-webkit-scrollbar{display:none}.category-chips-container{gap:8px;width:max-content;padding:0 4px;display:flex}.category-chip{color:var(--body-text-color);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ddd;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;transition:background-color .2s;display:flex;box-shadow:0 1px 3px #0000001a}.category-chip:hover{background:var(--hover-bg)}.category-chip:active{background:var(--divider-color)}.category-chip:disabled{opacity:.75;cursor:not-allowed;pointer-events:none}.toast-notification{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;z-index:9999;text-align:center;pointer-events:none;background-color:#333333d9;border-radius:999px;max-width:90%;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;animation:.3s ease-out forwards fade-in-up;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes fade-in-up{0%{opacity:0;transform:translate(-50%,1rem)}to{opacity:1;transform:translate(-50%)}}.nostr-connect-modal h2{margin-top:0}.nostr-connect-options{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.mobile-connect-actions{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.nostr-connect-status{text-align:center;margin-top:1.5rem}.qr-code-container{justify-content:center;margin-top:1rem;display:flex}.qr-code-container canvas{background:#fff;border-radius:8px}.modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:450px;max-width:90vw;padding:1.5rem;position:relative;box-shadow:0 4px 12px #00000026}.close-modal-btn{cursor:pointer;color:#898989;position:absolute;top:1rem;right:1rem}.close-modal-btn.disabled{color:#ccc;cursor:not-allowed}.place-photo-upload h2{margin-top:0;font-size:1.2rem}.place-photo-upload .form-group{margin-bottom:1.5rem}.photo-tag-suggestions{margin-bottom:1.25rem}.photo-tag-suggestions-title{color:#898989;margin:0 0 .75rem;font-size:.9rem;font-weight:400}.photo-tag-suggestions-list{flex-wrap:wrap;gap:.5rem;display:flex}.photo-tag-chip{color:var(--body-text-color);cursor:pointer;background:#f8f9fa;border:none;border-radius:16px;padding:6px 12px;font-size:.9rem;transition:background-color .1s}.photo-tag-chip:hover{background:var(--divider-color)}.photo-tag-chip.is-selected{background:#ffcc334d}.alert{border-radius:.25rem;margin-bottom:1rem;padding:.5rem}.alert-error{color:#c00;background:#fee}.preview-group{margin-bottom:1rem}.preview-group p{margin-bottom:.25rem;font-weight:700}.preview-group img{border-radius:.25rem;max-width:100%}.btn-link{color:var(--link-color);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.btn-link:hover{text-decoration:underline}.photo-gallery-overlay{z-index:9999;background:#000000e6;flex-direction:column;display:flex;position:fixed;inset:0}.photo-gallery-overlay .photo-gallery-content{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.photo-gallery-overlay .close-btn{z-index:10;color:#fff;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background-color .2s;display:flex;position:absolute;top:.5rem;right:1rem}@media (width<=768px){.photo-gallery-overlay .close-btn{right:.5rem}}.photo-gallery-overlay .main-photo-container{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex;overflow:hidden}@media (width<=768px){.photo-gallery-overlay .main-photo-container{padding:2rem 0}}.photo-gallery-overlay .main-photo-container img{object-fit:contain;max-width:100%;max-height:100%}.photo-carousel.gallery-main{flex-direction:column;width:100%;height:100%;display:flex}.photo-carousel.gallery-main .photo-carousel-track{background:0 0;height:100%}.photo-carousel.gallery-main .carousel-slide{aspect-ratio:auto;cursor:default;flex:0 0 100%;height:100%}.photo-carousel.gallery-main .carousel-nav-btn{width:48px;height:48px}.photo-carousel.gallery-main .place-header-photo-blur,.photo-carousel.gallery-main .place-header-photo.landscape,.photo-carousel.gallery-main .place-header-photo.portrait{object-fit:contain}@media (width<=768px){.photo-carousel.gallery-main .carousel-nav-btn{display:none}}.photo-carousel.gallery-thumbnails{width:100%;height:100px;padding-bottom:env(safe-area-inset-bottom,0);background:#00000080}.photo-carousel.gallery-thumbnails .photo-carousel-track{scroll-snap-type:none;background:0 0;gap:4px;height:100%;padding:0}.photo-carousel.gallery-thumbnails .carousel-slide{scroll-snap-align:none;opacity:.6;flex:none;width:auto;height:100%;transition:opacity .2s}.photo-carousel.gallery-thumbnails .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.gallery-thumbnails .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.gallery-thumbnails .carousel-slide:hover,.photo-carousel.gallery-thumbnails .carousel-slide.active{opacity:1}.photo-carousel.gallery-thumbnails .place-header-photo.landscape,.photo-carousel.gallery-thumbnails .place-header-photo.portrait{object-fit:cover;height:100%}.photo-carousel.gallery-thumbnails .carousel-nav-btn{display:none}.dropdown-menu-container{display:inline-block;position:relative}.dropdown-trigger-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-popover{z-index:3001;background:#fff;border-radius:8px;flex-direction:column;gap:.25rem;min-width:150px;margin-top:5px;padding:.5rem 0;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.dropdown-item{text-align:left;cursor:pointer;color:var(--body-text-color);white-space:nowrap;background:0 0;border:none;padding:.5rem 1rem;font-size:.95rem}.dropdown-item:hover{background:#f0f0f0}.photo-gallery-overlay .photo-gallery-header{z-index:10;flex-direction:column;align-items:flex-start;gap:.25rem;display:flex;position:absolute;top:.5rem;left:1rem}.photo-gallery-overlay .photo-gallery-header .actions-btn-container{z-index:2;flex-shrink:0;justify-content:flex-start;align-items:center;height:48px;display:flex;position:relative}.photo-gallery-overlay .photo-gallery-uploader-info{color:#ffffffe6;pointer-events:none;text-shadow:0 1px 2px #0009;flex-direction:column;gap:.1rem;max-width:calc(100vw - 4rem);display:flex;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-date{color:#ffffffb3;white-space:nowrap;font-size:.8rem}@media (width<=768px){.photo-gallery-overlay .photo-gallery-header{flex-direction:row;align-items:flex-start;gap:.5rem;left:.5rem}.photo-gallery-overlay .photo-gallery-uploader-info{flex-direction:row;align-self:center;align-items:center;gap:.35rem}}@keyframes sidebar-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sidebar-slide-up-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.lists-index-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;justify-content:space-between;align-items:center;padding:1rem;font-family:inherit;transition:background .2s;display:flex}.lists-index-item:hover{background:var(--hover-bg)}.lists-index-item-left{align-items:center;gap:12px;min-width:0;display:flex}.lists-index-name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:400;overflow:hidden}.lists-index-count{color:#666;white-space:nowrap;flex-shrink:0;margin:0;font-size:.85rem}.sidebar-header.has-back-btn{justify-content:center;position:relative}.sidebar-header.has-back-btn .back-btn{z-index:10;position:absolute;left:1rem}.sidebar-header.has-back-btn .close-btn{z-index:10;position:absolute;right:1rem}.sidebar-header-text-centered{text-align:center;justify-content:center;align-items:center;max-width:60%;margin:0;font-size:1.2rem;font-weight:700;display:inline-flex;position:relative}.sidebar-header-icon-wrapper{align-items:center;margin-right:.5rem;display:flex;position:absolute;right:100%}.sidebar-loading{justify-content:center;align-items:center;padding:4rem 1rem;display:flex}.tab-nav{border-bottom:1px solid var(--divider-color);flex-shrink:0;height:48px;display:flex}.tab-nav-button{cursor:pointer;color:var(--secondary-text-color);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;font-family:inherit;font-size:.9rem;transition:border-color .15s,color .15s}.tab-nav-button:hover{color:var(--body-text-color)}.tab-nav-button.is-active{border-bottom-color:var(--link-color);color:var(--body-text-color);font-weight:600}.contributions-list{margin:-1rem -1rem 0;padding:0;list-style:none}.contribution-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;align-items:flex-start;gap:12px;padding:.75rem 1rem;font-family:inherit;transition:background .2s;display:flex}.contribution-item:hover{background:var(--hover-bg)}.contribution-thumb{background:#f0f0f0;border-radius:6px;flex-shrink:0;width:56px;height:56px;position:relative;overflow:hidden}.contribution-thumb img{object-fit:cover;width:100%;height:100%;display:block}.contribution-thumb-badge{color:#fff;background:#000000a6;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:2px}.contribution-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.contribution-place{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.contribution-name-loading{color:#999;font-style:italic;font-weight:400}.contribution-meta{color:#666;font-size:.85rem}.contribution-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.contribution-tag{color:#555;background:#f0f0f0;border-radius:10px;padding:2px 6px;font-size:.72rem}.modal-content h2,.modal-content h3{margin-top:0}.zap-photo-modal{text-align:left}.zap-photo-modal h2{border-bottom:1px solid var(--divider-color);margin-bottom:1rem;padding-bottom:.75rem}.zap-photo-modal section.status{border-bottom:1px solid var(--divider-color);margin-bottom:1.5rem;padding-bottom:.75rem}.zap-photo-modal section.slider{text-align:center;margin-bottom:1.5rem}.zap-photo-modal .amount-display{justify-content:center;align-items:baseline;gap:.4rem;margin-bottom:.75rem;display:flex}.zap-photo-modal .amount-value{color:var(--default-list-color);font-size:2rem;font-weight:700}.zap-photo-modal .amount-unit{color:var(--body-text-color);opacity:.7;font-size:.9rem}.zap-photo-modal .zap-slider{width:100%;accent-color:var(--default-list-color);cursor:pointer}.zap-photo-modal .slider-ticks{color:var(--body-text-color);opacity:.5;justify-content:space-between;padding:0 .25rem;font-size:.85rem;display:flex}.zap-photo-modal .form-group{margin-bottom:1.5rem}.zap-photo-modal .lightning-address{align-items:center;gap:.5rem;display:flex}.zap-photo-modal .lightning-badge{background:var(--default-list-color);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.zap-photo-modal .lightning-address-text{color:var(--body-text-color);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:.9rem;overflow:hidden}.zap-photo-modal .zap-pay-prompt{text-align:center}.zap-photo-modal .qr-code-container{margin-bottom:1.5rem}.zap-photo-modal .btn-full+.btn-full{margin-top:.75rem}.zap-photo-modal .alert-error,.zap-photo-modal .meta-info{font-size:.95rem}.zap-photo-modal .centered{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.zap-photo-modal .success{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.zap-photo-modal .success-icon{font-size:3rem}.zap-photo-modal .success h4{margin:0;font-size:1.2rem}.zap-photo-modal .success p{color:var(--body-text-color);margin:0 0 1.5rem;font-size:.9rem}.activity-list{margin:-1rem -1rem 0;padding:0;list-style:none}.activity-load-more{text-align:center;min-height:48px;padding:2rem 1rem 1rem;list-style:none}.activity-load-more-spinner{justify-content:center;align-items:center;display:flex}.activity-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;flex-direction:column;gap:4px;padding:.75rem 1rem;font-family:inherit;transition:background .2s;display:flex}.activity-item:hover{background:var(--hover-bg)}.activity-item .sender-avatar{object-fit:cover;background:#f0f0f0;border-radius:50%;flex-shrink:0;width:32px;height:32px}.activity-item .sender-avatar-placeholder{color:#999;background:#e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.activity-item .header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.activity-item .sender-line{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.95rem;overflow:hidden}.activity-item .sender-line .sender-name{font-weight:700}.activity-item .sender-line .action{color:#666;font-weight:400}.activity-item .amount{color:var(--body-text-color);white-space:nowrap;flex-shrink:0;align-self:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.activity-item .message{color:var(--body-text-color);background:var(--secondary-background-color);border-radius:8px;margin-top:4px;padding:.5rem .75rem;font-size:.85rem;font-style:italic;position:relative}.activity-item .message:before{content:"";background:var(--secondary-background-color);width:10px;height:10px;position:absolute;top:-5px;left:11px;transform:rotate(45deg)}.activity-item .context{color:#999;align-items:center;gap:6px;margin-top:8px;font-size:.8rem;display:flex}.activity-item .context .context-images{align-items:center;gap:.5rem;display:flex}.activity-item .context .context-thumb{background:#f0f0f0;border-radius:4px;flex-shrink:0;width:32px;height:32px;position:relative;overflow:hidden}.activity-item .context .context-thumb img{object-fit:cover;width:100%;height:100%;display:block}.activity-item .context .context-thumb .context-thumb-badge{color:#fff;background:#000000a6;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:2px}.activity-item .context .context-text{flex:auto;align-items:baseline;gap:6px;min-width:0;display:flex}.activity-item .context .context-text .activity-place-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.activity-item .context .context-text .activity-place-name .place-name-text{animation:.15s ease-out place-name-fade-in}.activity-item .context .context-text .activity-date{white-space:nowrap;flex-shrink:0}@keyframes place-name-fade-in{0%{opacity:0}to{opacity:1}}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer} diff --git a/release/assets/main-CZWBbnnc.css b/release/assets/main-CZWBbnnc.css deleted file mode 100644 index 6aa7aea..0000000 --- a/release/assets/main-CZWBbnnc.css +++ /dev/null @@ -1 +0,0 @@ -:root{--body-text-color:#333;--primary-background-color:#fff;--hover-bg:#f8f9fa;--divider-color:#eee;--sidebar-width:350px;--link-color:#2a7fff;--link-color-visited:#6a4fbf;--marker-color-primary:#ea4335;--marker-color-dark:#b31412;--danger-color:var(--marker-color-primary);--danger-color-dark:var(--marker-color-dark);--default-list-color:#fc3;--secondary-text-color:#898989;--border-color:#d8d8d8;--success-color:#2e7d32;--secondary-background-color:#f0f0f0}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;height:100%}button{-webkit-tap-highlight-color:transparent}body{color:var(--body-text-color);margin:0;font-family:Noto Sans,sans-serif;font-size:16px;font-weight:400}#root,#ember-testing{height:100%}.map-container{-webkit-tap-highlight-color:transparent;background:#f8f9fa;outline:none;position:absolute;inset:0}#rs-widget-container{z-index:4000;display:none;position:absolute;top:60px;right:10px}#rs-widget-container.visible{display:block}.rs-backdrop{z-index:3999;position:fixed;inset:0}.app-header{z-index:3000;pointer-events:none;grid-template-columns:1fr auto 1fr;grid-template-areas:"search chips user";align-items:center;gap:1rem;height:60px;padding:.5rem 1rem;display:grid;position:absolute;top:0;left:0;right:0}@media (width<=768px){.app-header{grid-template-columns:1fr auto;grid-template-areas:"search user""chips chips";row-gap:8px;height:auto;padding:.5rem .5rem 0}}.header-left,.header-right,.header-center{pointer-events:auto}.header-left{grid-area:search;justify-self:start;align-items:center;width:100%;display:flex}@media (width>768px){.header-left{min-width:300px;max-width:350px}}.header-right{grid-area:user;justify-self:end}.header-center{grid-area:chips;justify-content:center;min-width:0;display:flex}@media (width>768px){.header-center .category-chips-scroll{width:auto;max-width:100%}}@media (width<=768px){.header-center{justify-content:start;width:100%;overflow:hidden}.header-center.searching{display:none}}.btn-press{transition:transform .1s}.btn-press:active{transform:scale(.95)}.user-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.user-avatar-placeholder{background:#2a3743;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.user-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px;display:block}.photo-preview-img{max-width:100%;height:auto}.dropzone{text-align:center;cursor:pointer;aspect-ratio:4/3;background-color:#ffffff05;border:2px dashed #ccc;border-radius:8px;margin:1.5rem 0 1rem;transition:all .2s}.dropzone.is-dragging{background-color:#61afef0d;border-color:#61afef}.dropzone-label{cursor:pointer;color:#898989;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;display:flex}.dropzone-label p{margin:0}.file-input-hidden{display:none}.photo-upload-item{aspect-ratio:4/3;background:#1e262e;border-radius:6px;width:100%;margin-bottom:1.25rem;position:relative;overflow:hidden}.photo-upload-item img{object-fit:contain;z-index:1;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.photo-upload-item .overlay,.photo-upload-item .btn-remove-photo{z-index:2}.photo-upload-item .overlay{background:#0009;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.upload-status-text{color:#fff;text-shadow:0 1px 3px #000c;text-align:center;margin-top:1rem;padding:0 1rem;font-size:.9rem}.photo-upload-item .error-overlay{cursor:pointer;background:#e06c75cc;border:none;width:100%;margin:0;padding:0}.photo-upload-item .btn-remove-photo{cursor:pointer;color:#fff;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:absolute;top:4px;right:4px}.photo-upload-item .btn-remove-photo:hover{background:var(--danger-color)}.spin-animation{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-publish{width:100%}.user-menu-container{position:relative}.user-menu-popover{z-index:3001;background:#fff;border-radius:8px;width:280px;margin-top:10px;padding:1rem;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #00000026}.menu-backdrop{z-index:3000;position:fixed;inset:0}.account-list{margin:0;padding:0;list-style:none}.account-item{border-bottom:1px solid var(--divider-color);flex-direction:column;padding:1rem 0;display:flex}.account-item:last-child{border-bottom:none;padding-bottom:0}.account-item:first-child{padding-top:0}.account-header{justify-content:space-between;align-items:center;display:flex}.account-status{color:#898989;white-space:nowrap;text-overflow:ellipsis;margin-top:.35rem;margin-left:calc(18px + .75rem);font-size:.85rem;overflow:hidden}.account-status strong{font-weight:600}.account-item.disabled{opacity:.5;pointer-events:none}.account-info{align-items:center;gap:.75rem;display:flex}.btn-text{cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.text-primary{color:var(--link-color)}.text-danger{color:#dc3545}.btn-text:hover{text-decoration:underline}.sidebar{width:var(--sidebar-width);z-index:3100;will-change:transform;background:#fff;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden;box-shadow:2px 0 5px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-in-left}.sidebar.app-menu-pane{z-index:3200}@media (width<=768px){.sidebar.app-menu-pane{border-radius:16px 16px 0 0;width:100%;height:66vh;top:auto;bottom:0;right:0}}.sidebar-header{border-bottom:1px solid var(--divider-color);box-sizing:border-box;justify-content:space-between;align-items:center;height:56px;padding:0 1rem;display:flex}.sidebar-header.no-border{border-bottom-color:#0000}.sidebar-header h2{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.sidebar-content{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem;overflow-y:auto}.app-menu-pane .sidebar-content{padding-top:.5rem}.app-menu{margin:0 -1rem;padding:0;list-style:none}.app-menu button{width:100%;color:var(--body-text-color);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-family:inherit;font-size:.95rem;transition:background-color .2s;display:flex}.app-menu button:hover{background-color:var(--hover-bg)}.app-menu .icon{color:#666;width:20px;height:20px}.sidebar-content details{margin:0 -1rem}.sidebar-content details summary{cursor:pointer;color:var(--body-text-color);align-items:center;gap:.8rem;padding:1rem 1rem 1rem 1.4rem;font-size:.95rem;list-style:none;transition:background-color .2s;display:flex}.sidebar-content details summary::-webkit-details-marker{display:none}.sidebar-content details summary:hover{background-color:var(--hover-bg)}.sidebar-content details summary .icon{width:20px;height:20px}.sidebar-content details summary:after{content:"";background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px 20px;width:20px;height:20px;margin-left:auto;transition:transform .2s}.sidebar-content details[open] summary:after{transform:rotate(90deg)}.sidebar-content details .details-content{padding:0 1.4rem 1rem;font-size:.9rem;animation:.2s ease-out details-slide-down}.sidebar-content details .details-content.form-layout{flex-direction:column;gap:16px;display:flex}.relay-list{flex-direction:column;gap:4px;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.relay-list li{word-break:break-all;border-radius:4px;align-items:center;gap:8px;padding:.25rem 0;font-size:.9rem;display:flex}.relay-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.relay-list-hint{color:var(--secondary-text-color);margin:0 0 .5rem;font-size:.8rem}.btn-remove-relay{background-color:var(--primary-background-color);border:1px solid var(--danger-color);width:24px;height:24px;color:var(--danger-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.btn-remove-relay svg{stroke:currentColor}.btn-remove-relay:hover:not(:disabled),.btn-remove-relay:active:not(:disabled){background-color:var(--danger-color);color:var(--primary-background-color)}.btn-remove-relay:disabled{border-color:var(--border-color);color:var(--secondary-text-color);cursor:default;opacity:.6}.add-relay-input{gap:.5rem;display:flex}.btn-link.reset-relays{margin-top:.75rem;font-size:.85rem}.btn-trust-relay{background-color:var(--primary-background-color);border:1px solid var(--border-color);width:24px;height:24px;color:var(--secondary-text-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .1s;display:flex}.btn-trust-relay svg{stroke:currentColor}.btn-trust-relay.is-trusted{border-color:var(--success-color);color:var(--success-color)}.btn-trust-relay:hover,.btn-trust-relay:active{background-color:var(--secondary-background-color)}.btn-trust-relay:disabled{cursor:default;opacity:.6}.tooltip{background:var(--body-text-color);color:var(--primary-background-color);white-space:nowrap;pointer-events:none;z-index:9999;border-radius:4px;padding:4px 8px;font-size:.85rem;animation:.15s tooltip-fade-in;position:fixed}@keyframes tooltip-fade-in{0%{opacity:0}to{opacity:1}}@keyframes details-slide-down{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.edit-form{background:var(--hover-bg);border-bottom:1px solid var(--divider-color);margin:-1rem -1rem 1rem;padding:1rem}.form-group{margin-bottom:.75rem}.form-group label{color:#666;margin-bottom:.5rem;font-size:.85rem;display:block}.form-control{box-sizing:border-box;width:100%;color:var(--body-text-color);background-color:var(--primary-background-color);border:1px solid #ddd;border-radius:4px;padding:.5rem;font-family:inherit;font-size:1rem}.form-control:focus{border-color:var(--link-color);outline:none;box-shadow:0 0 0 2px #2a7fff1a}select.form-control{appearance:none;background-color:var(--primary-background-color);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2.5rem}.edit-actions{justify-content:flex-end;gap:.5rem;display:flex}.settings-section{margin-bottom:2rem;font-size:.95rem}.settings-section .form-group{margin-top:.5rem;margin-bottom:0}.settings-section .form-group:first-of-type{margin-top:1rem}.about-section{margin-bottom:2rem}.about-section a{color:var(--link-color);text-decoration:none}.about-section a:visited{color:var(--link-color-visited)}.about-section a:hover{text-decoration:underline}.about-section p+ul{margin-top:.25rem}.about-section ul{margin:.5rem 0 0;padding-inline-start:1.2em}.about-section li{margin-block:.15rem;padding-inline-start:.5rem}.about-section li::marker{content:"♥";color:#898989}.btn-full{width:100%}.btn-primary{background:var(--link-color);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.75rem;font-weight:500}.btn-primary:hover{background:#0069d9}.meta-info{font-size:.9rem}.meta-info p{margin-top:1rem;margin-bottom:1rem}.meta-info p:first-child{border-top:1px solid var(--divider-color);margin-top:1.2rem;padding-top:1.2rem}.meta-info a,.meta-info .btn-link{color:var(--link-color);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.meta-info a:hover,.meta-info .btn-link:hover{text-decoration:underline}.sidebar-content table{border-collapse:collapse;width:100%}.sidebar-content table th,.sidebar-content table td{text-align:left;padding:.5rem 0}.sidebar-content table th{text-transform:uppercase;color:#898989;font-size:.75rem;font-weight:700}.sidebar-content table td{border-bottom:1px solid #f9f9f9}.sidebar-content table tr:last-child td{border-bottom:none}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.places-list{margin:-1rem -1rem 0;padding:0;list-style:none}.place-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;padding:1rem;font-family:inherit;transition:background .2s}.place-item:hover{background:var(--hover-bg)}.place-name{margin-bottom:.25rem;font-size:1rem;font-weight:700}.place-type{color:#666;font-size:.85rem}.back-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:-.5rem;padding:0 .5rem;display:flex}.close-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-right:-.5rem;padding:0 .5rem;display:flex}.place-details{padding-bottom:2rem}.photo-carousel{position:relative}.photo-carousel.inline{margin:-1rem -1rem 1rem}.photo-carousel-track{scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;background-color:var(--hover-bg);display:flex;overflow-x:auto}.photo-carousel-track::-webkit-scrollbar{display:none}.carousel-slide{cursor:pointer;scroll-snap-align:start;aspect-ratio:16/9;flex:0 0 100%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.carousel-placeholder{display:none}.place-header-photo-blur{object-fit:cover;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.place-header-photo{opacity:0;z-index:1;width:100%;height:100%;transition:opacity .3s ease-in-out;display:block;position:absolute;top:0;left:0}.place-header-photo.landscape{object-fit:cover}.place-header-photo.portrait{object-fit:contain}.place-header-photo.loaded{opacity:1}.place-header-photo.loaded-instant{opacity:1;transition:none}.carousel-nav-btn{color:#fff;cursor:pointer;z-index:2;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:opacity .2s,background-color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-carousel:hover .carousel-nav-btn:not(.disabled){opacity:1}.carousel-nav-btn:not(.disabled):hover{background:#000c}.carousel-nav-btn.disabled{opacity:0;pointer-events:none}.carousel-nav-btn.prev{left:.5rem}.carousel-nav-btn.next{right:.5rem}@media (width<=768px){.photo-carousel.inline .photo-carousel-track{scroll-snap-type:none;background-color:var(--primary-background-color);gap:2px}.photo-carousel.inline .carousel-slide{scroll-snap-align:none;flex:none;width:auto;height:100px}.photo-carousel.inline .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.inline .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.inline .carousel-placeholder{background-color:var(--hover-bg);flex:1;min-width:0;display:block}.photo-carousel.inline .place-header-photo.landscape,.photo-carousel.inline .place-header-photo.portrait{object-fit:cover}.photo-carousel.inline .carousel-nav-btn{display:none}}.place-details h3{margin-top:0;margin-bottom:.5rem;font-size:1.2rem}.place-details .place-type{color:#666;margin:0 0 1rem;font-size:.9rem}.place-details p.place-description{line-height:1.4}.place-details .actions{flex-direction:row;gap:1rem;margin-top:1.5rem;padding-bottom:.3rem;display:flex}.btn{box-sizing:border-box;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;text-decoration:none;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-outline{color:var(--body-text-color);background:0 0;border:1px solid #ccc}.btn-outline:hover{border:1px solid #898989}.btn-secondary{color:var(--body-text-color);background:#ffcc334d;border:1px solid #fc33}.btn-secondary:hover{background:#fc36}.btn-blue{background:var(--link-color);color:#fff;border:none}.btn-blue:hover{background:#0056b3}.btn-green{color:#fff;background:#198754;border:none}.btn-green:hover{background:#157347}.search-pulse{pointer-events:none;box-sizing:border-box;will-change:transform, opacity;backface-visibility:hidden;background:#fc33;border:2px solid #fc3c;border-radius:50%;animation:1.5s ease-out infinite pulse;display:none;position:absolute;transform:translate(-50%,-50%)}.search-pulse.active{display:block}.search-pulse.blue{background:#39c3;border-color:#39cc}@keyframes pulse{0%{opacity:.8;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-50%)scale(1.4)}}.ol-control.ol-attribution{bottom:1rem}.ol-touch .ol-control.ol-attribution{bottom:.5rem}.ol-control.ol-zoom{bottom:3rem}.ol-touch .ol-control.ol-zoom{bottom:3.5rem}.ol-control.ol-locate{bottom:6.5rem}.ol-touch .ol-control.ol-locate{bottom:8.5rem}.ol-control.ol-rotate{bottom:9rem}.ol-touch .ol-control.ol-rotate{bottom:11.5rem}.ol-control.ol-attribution,.ol-control.ol-zoom,.ol-control.ol-locate,.ol-control.ol-rotate{top:auto;left:auto;right:1rem}.ol-touch .ol-control.ol-attribution,.ol-touch .ol-control.ol-zoom,.ol-touch .ol-control.ol-locate,.ol-touch .ol-control.ol-rotate{right:.5rem}.app-logo-icon{width:32px;height:32px;margin:-6px 0;display:inline-flex}.app-logo-icon svg{width:100%;height:100%}span.icon{display:inline-block}.icon{flex-shrink:0}.icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.icon-filled svg{stroke:none;fill:currentColor}.content-with-icon{flex-direction:row;align-items:flex-start;gap:.5rem;display:flex}.content-with-icon>span:not(.icon){flex:1;min-width:0}.content-with-icon>span:not(.icon) a{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.content-with-icon .icon{margin-top:.15rem}.selected-pin-container{pointer-events:none;display:none;position:absolute;transform:translate(-50%,-100%)}.selected-pin-container.active{animation:.5s cubic-bezier(.175,.885,.32,1.275) forwards drop-in;display:block}.selected-pin{width:40px;height:40px;color:var(--marker-color-primary);filter:drop-shadow(0 4px 6px #0000004d)}.selected-pin svg{width:100%;height:100%;fill:var(--marker-color-primary);stroke:var(--marker-color-dark);stroke-width:1px}.selected-pin-shadow{z-index:-1;opacity:0;background:#0000004d;border-radius:50%;width:10px;height:4px;animation:.5s .2s forwards shadow-fade;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes drop-in{0%{opacity:0;transform:translate(-50%,-200%)scale(0)}60%{opacity:1}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes shadow-fade{to{opacity:1}}.map-crosshair{width:24px;height:24px;color:var(--body-text-color);pointer-events:none;z-index:2000;transition:top .3s,left .3s;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-crosshair.visible{display:block}.map-container.sidebar-open .map-crosshair{left:calc(50% + var(--sidebar-width) / 2)}@media (width<=768px){.map-container.sidebar-open .map-crosshair{top:calc(25% + 30px);left:50%}}.helper-text{color:#1a5c9b;background:#eef4fc;border-radius:4px;align-items:center;gap:.5rem;margin-top:0;margin-bottom:1rem;padding:.75rem;font-size:.9rem;display:flex}button.create-place{width:100%;margin:1.5rem auto}@media (width<=768px){.sidebar{border-top-left-radius:16px;border-top-right-radius:16px;width:100%;height:50vh;inset:auto 0 0;box-shadow:0 -2px 10px #0000001a}.sidebar-opening .sidebar{animation:.18s cubic-bezier(.16,1,.3,1) forwards sidebar-slide-up-bottom}.sidebar-content{padding-bottom:env(safe-area-inset-bottom,20px);overflow-y:auto}}.search-box{z-index:3002;width:100%;max-width:400px;margin-left:0;position:relative}@media (width<=768px){.search-box{max-width:calc(100vw - 65px)}}.search-form{background:#fff;border-radius:24px;align-items:center;height:48px;padding:0 .5rem;transition:box-shadow .2s;display:flex;box-shadow:0 2px 5px #00000026}.search-form:focus-within{box-shadow:0 4px 12px #00000026}.menu-btn-integrated{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-right:4px;padding:8px;display:flex}.menu-btn-integrated:hover{background:#0000000d}.search-icon{color:#5f6368;justify-content:center;align-items:center;margin-right:.5rem;padding:8px;display:flex}.search-input{min-width:0;height:100%;color:var(--body-text-color);-webkit-appearance:none;background:0 0;border:none;outline:none;flex:1;width:100%;padding:0 4px;font-size:1rem}.search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-submit-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:4px;padding:8px;display:flex}.search-submit-btn:hover{color:var(--body-text-color);background:#0000000d}.search-clear-btn{cursor:pointer;color:#5f6368;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:8px;display:flex}.search-clear-btn:hover{color:var(--body-text-color);background:#0000000d}.search-results-popover{z-index:3002;background:#fff;border-radius:8px;max-height:400px;margin-top:8px;position:absolute;top:100%;left:0;right:0;overflow:hidden auto;box-shadow:0 4px 12px #00000026}.search-results-list{margin:0;padding:0;list-style:none}.search-result-item{text-align:left;cursor:pointer;background:#fff;border:none;border-bottom:1px solid #f0f0f0;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;transition:background .1s;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus{background:var(--hover-bg);outline:none}.result-icon{color:#666;background:#f0f0f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.result-info{flex-direction:column;display:flex;overflow:hidden}.result-title{color:var(--body-text-color);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.result-desc{color:#777;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.8rem;overflow:hidden}.save-button-wrapper{position:relative}.place-lists-manager{z-index:10;background:#fff;border-radius:8px;width:220px;margin-top:.5rem;padding:.5rem 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.place-lists-manager .list-item{align-items:center;padding:.5rem 1rem;display:flex}.place-lists-manager .list-item:hover{background:var(--hover-bg)}.place-lists-manager label{cursor:pointer;width:100%;color:var(--body-text-color);align-items:center;gap:.75rem;margin:0;font-size:.95rem;display:flex}.place-lists-manager input[type=checkbox]{accent-color:var(--link-color);cursor:pointer;width:16px;height:16px}.list-color-dot{background-color:var(--default-list-color);border:1px solid #0000001a;border-radius:50%;flex-shrink:0;width:12px;height:12px}.place-lists-manager .divider{background:var(--divider-color);height:1px;margin:.5rem 0}.category-chips-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;width:100%;margin-top:0;padding:4px 0;overflow-x:auto}.category-chips-scroll::-webkit-scrollbar{display:none}.category-chips-container{gap:8px;width:max-content;padding:0 4px;display:flex}.category-chip{color:var(--body-text-color);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ddd;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;transition:background-color .2s;display:flex;box-shadow:0 1px 3px #0000001a}.category-chip:hover{background:var(--hover-bg)}.category-chip:active{background:var(--divider-color)}.category-chip:disabled{opacity:.75;cursor:not-allowed;pointer-events:none}.toast-notification{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;z-index:9999;text-align:center;pointer-events:none;background-color:#333333d9;border-radius:999px;max-width:90%;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;animation:.3s ease-out forwards fade-in-up;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes fade-in-up{0%{opacity:0;transform:translate(-50%,1rem)}to{opacity:1;transform:translate(-50%)}}.nostr-connect-modal h2{margin-top:0}.nostr-connect-options{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.mobile-connect-actions{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.nostr-connect-status{text-align:center;margin-top:1.5rem}.qr-code-container{justify-content:center;margin-top:1rem;display:flex}.qr-code-container canvas{background:#fff;border-radius:8px}.modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:450px;max-width:90vw;padding:1.5rem;position:relative;box-shadow:0 4px 12px #00000026}.close-modal-btn{cursor:pointer;color:#898989;position:absolute;top:1rem;right:1rem}.close-modal-btn.disabled{color:#ccc;cursor:not-allowed}.place-photo-upload h2{margin-top:0;font-size:1.2rem}.place-photo-upload .form-group{margin-bottom:1.5rem}.photo-tag-suggestions{margin-bottom:1.25rem}.photo-tag-suggestions-title{color:#898989;margin:0 0 .75rem;font-size:.9rem;font-weight:400}.photo-tag-suggestions-list{flex-wrap:wrap;gap:.5rem;display:flex}.photo-tag-chip{color:var(--body-text-color);cursor:pointer;background:#f8f9fa;border:none;border-radius:16px;padding:6px 12px;font-size:.9rem;transition:background-color .1s}.photo-tag-chip:hover{background:var(--divider-color)}.photo-tag-chip.is-selected{background:#ffcc334d}.alert{border-radius:.25rem;margin-bottom:1rem;padding:.5rem}.alert-error{color:#c00;background:#fee}.preview-group{margin-bottom:1rem}.preview-group p{margin-bottom:.25rem;font-weight:700}.preview-group img{border-radius:.25rem;max-width:100%}.btn-link{color:var(--link-color);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.btn-link:hover{text-decoration:underline}.photo-gallery-overlay{z-index:9999;background:#000000e6;flex-direction:column;display:flex;position:fixed;inset:0}.photo-gallery-overlay .photo-gallery-content{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.photo-gallery-overlay .close-btn{z-index:10;color:#fff;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:background-color .2s;display:flex;position:absolute;top:.5rem;right:1rem}@media (width<=768px){.photo-gallery-overlay .close-btn{right:.5rem}}.photo-gallery-overlay .main-photo-container{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex;overflow:hidden}@media (width<=768px){.photo-gallery-overlay .main-photo-container{padding:2rem 0}}.photo-gallery-overlay .main-photo-container img{object-fit:contain;max-width:100%;max-height:100%}.photo-carousel.gallery-main{flex-direction:column;width:100%;height:100%;display:flex}.photo-carousel.gallery-main .photo-carousel-track{background:0 0;height:100%}.photo-carousel.gallery-main .carousel-slide{aspect-ratio:auto;cursor:default;flex:0 0 100%;height:100%}.photo-carousel.gallery-main .carousel-nav-btn{width:48px;height:48px}.photo-carousel.gallery-main .place-header-photo-blur,.photo-carousel.gallery-main .place-header-photo.landscape,.photo-carousel.gallery-main .place-header-photo.portrait{object-fit:contain}@media (width<=768px){.photo-carousel.gallery-main .carousel-nav-btn{display:none}}.photo-carousel.gallery-thumbnails{width:100%;height:100px;padding-bottom:env(safe-area-inset-bottom,0);background:#00000080}.photo-carousel.gallery-thumbnails .photo-carousel-track{scroll-snap-type:none;background:0 0;gap:4px;height:100%;padding:0}.photo-carousel.gallery-thumbnails .carousel-slide{scroll-snap-align:none;opacity:.6;flex:none;width:auto;height:100%;transition:opacity .2s}.photo-carousel.gallery-thumbnails .carousel-slide.landscape{aspect-ratio:var(--slide-ratio,16 / 9)}.photo-carousel.gallery-thumbnails .carousel-slide.portrait{aspect-ratio:1}.photo-carousel.gallery-thumbnails .carousel-slide:hover,.photo-carousel.gallery-thumbnails .carousel-slide.active{opacity:1}.photo-carousel.gallery-thumbnails .place-header-photo.landscape,.photo-carousel.gallery-thumbnails .place-header-photo.portrait{object-fit:cover;height:100%}.photo-carousel.gallery-thumbnails .carousel-nav-btn{display:none}.dropdown-menu-container{display:inline-block;position:relative}.dropdown-trigger-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-popover{z-index:3001;background:#fff;border-radius:8px;flex-direction:column;gap:.25rem;min-width:150px;margin-top:5px;padding:.5rem 0;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.dropdown-item{text-align:left;cursor:pointer;color:var(--body-text-color);white-space:nowrap;background:0 0;border:none;padding:.5rem 1rem;font-size:.95rem}.dropdown-item:hover{background:#f0f0f0}.photo-gallery-overlay .photo-gallery-header{z-index:10;flex-direction:column;align-items:flex-start;gap:.25rem;display:flex;position:absolute;top:.5rem;left:1rem}.photo-gallery-overlay .photo-gallery-header .actions-btn-container{z-index:2;flex-shrink:0;justify-content:flex-start;align-items:center;height:48px;display:flex;position:relative}.photo-gallery-overlay .photo-gallery-uploader-info{color:#ffffffe6;pointer-events:none;text-shadow:0 1px 2px #0009;flex-direction:column;gap:.1rem;max-width:calc(100vw - 4rem);display:flex;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.photo-gallery-overlay .photo-gallery-uploader-date{color:#ffffffb3;white-space:nowrap;font-size:.8rem}@media (width<=768px){.photo-gallery-overlay .photo-gallery-header{flex-direction:row;align-items:flex-start;gap:.5rem;left:.5rem}.photo-gallery-overlay .photo-gallery-uploader-info{flex-direction:row;align-self:center;align-items:center;gap:.35rem}}@keyframes sidebar-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sidebar-slide-up-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.lists-index-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;justify-content:space-between;align-items:center;padding:1rem;font-family:inherit;transition:background .2s;display:flex}.lists-index-item:hover{background:var(--hover-bg)}.lists-index-item-left{align-items:center;gap:12px;min-width:0;display:flex}.lists-index-name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:400;overflow:hidden}.lists-index-count{color:#666;white-space:nowrap;flex-shrink:0;margin:0;font-size:.85rem}.sidebar-header.has-back-btn{justify-content:center;position:relative}.sidebar-header.has-back-btn .back-btn{z-index:10;position:absolute;left:1rem}.sidebar-header.has-back-btn .close-btn{z-index:10;position:absolute;right:1rem}.sidebar-header-text-centered{text-align:center;justify-content:center;align-items:center;max-width:60%;margin:0;font-size:1.2rem;font-weight:700;display:inline-flex;position:relative}.sidebar-header-icon-wrapper{align-items:center;margin-right:.5rem;display:flex;position:absolute;right:100%}.sidebar-loading{justify-content:center;align-items:center;padding:4rem 1rem;display:flex}.tab-nav{border-bottom:1px solid var(--divider-color);flex-shrink:0;height:48px;display:flex}.tab-nav-button{cursor:pointer;color:var(--secondary-text-color);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;font-family:inherit;font-size:.9rem;transition:border-color .15s,color .15s}.tab-nav-button:hover{color:var(--body-text-color)}.tab-nav-button.is-active{border-bottom-color:var(--link-color);color:var(--body-text-color);font-weight:600}.contributions-list{margin:-1rem -1rem 0;padding:0;list-style:none}.contribution-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;align-items:flex-start;gap:12px;padding:.75rem 1rem;font-family:inherit;transition:background .2s;display:flex}.contribution-item:hover{background:var(--hover-bg)}.contribution-thumb{background:#f0f0f0;border-radius:6px;flex-shrink:0;width:56px;height:56px;position:relative;overflow:hidden}.contribution-thumb img{object-fit:cover;width:100%;height:100%;display:block}.contribution-thumb-badge{color:#fff;background:#000000a6;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:2px}.contribution-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.contribution-place{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.contribution-name-loading{color:#999;font-style:italic;font-weight:400}.contribution-meta{color:#666;font-size:.85rem}.contribution-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.contribution-tag{color:#555;background:#f0f0f0;border-radius:10px;padding:2px 6px;font-size:.72rem}.modal-content h2,.modal-content h3{margin-top:0}.zap-photo-modal{text-align:left}.zap-photo-modal h2{border-bottom:1px solid var(--divider-color);margin-bottom:1rem;padding-bottom:.75rem}.zap-photo-modal section.status{border-bottom:1px solid var(--divider-color);margin-bottom:1.5rem;padding-bottom:.75rem}.zap-photo-modal section.slider{text-align:center;margin-bottom:1.5rem}.zap-photo-modal .amount-display{justify-content:center;align-items:baseline;gap:.4rem;margin-bottom:.75rem;display:flex}.zap-photo-modal .amount-value{color:var(--default-list-color);font-size:2rem;font-weight:700}.zap-photo-modal .amount-unit{color:var(--body-text-color);opacity:.7;font-size:.9rem}.zap-photo-modal .zap-slider{width:100%;accent-color:var(--default-list-color);cursor:pointer}.zap-photo-modal .slider-ticks{color:var(--body-text-color);opacity:.5;justify-content:space-between;padding:0 .25rem;font-size:.85rem;display:flex}.zap-photo-modal .form-group{margin-bottom:1.5rem}.zap-photo-modal .lightning-address{align-items:center;gap:.5rem;display:flex}.zap-photo-modal .lightning-badge{background:var(--default-list-color);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.zap-photo-modal .lightning-address-text{color:var(--body-text-color);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:.9rem;overflow:hidden}.zap-photo-modal .zap-pay-prompt{text-align:center}.zap-photo-modal .qr-code-container{margin-bottom:1.5rem}.zap-photo-modal .btn-full+.btn-full{margin-top:.75rem}.zap-photo-modal .alert-error,.zap-photo-modal .meta-info{font-size:.95rem}.zap-photo-modal .centered{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding-top:1.5rem;display:flex}.zap-photo-modal .success{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.zap-photo-modal .success-icon{font-size:3rem}.zap-photo-modal .success h4{margin:0;font-size:1.2rem}.zap-photo-modal .success p{color:var(--body-text-color);margin:0 0 1.5rem;font-size:.9rem}.activity-list{margin:-1rem -1rem 0;padding:0;list-style:none}.activity-load-more{text-align:center;min-height:48px;padding:2rem 1rem 1rem;list-style:none}.activity-load-more-spinner{justify-content:center;align-items:center;display:flex}.activity-item{text-align:left;border:none;border-bottom:1px solid var(--divider-color);background:var(--primary-background-color);width:100%;color:var(--body-text-color);cursor:pointer;flex-direction:column;gap:4px;padding:.75rem 1rem;font-family:inherit;transition:background .2s;display:flex}.activity-item:hover{background:var(--hover-bg)}.activity-item .sender-avatar{object-fit:cover;background:#f0f0f0;border-radius:50%;flex-shrink:0;width:32px;height:32px}.activity-item .sender-avatar-placeholder{color:#999;background:#e0e0e0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.activity-item .header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.activity-item .sender-line{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.95rem;overflow:hidden}.activity-item .sender-line .sender-name{font-weight:700}.activity-item .sender-line .action{color:#666;font-weight:400}.activity-item .amount{color:var(--body-text-color);white-space:nowrap;flex-shrink:0;align-self:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.activity-item .message{color:var(--body-text-color);background:var(--secondary-background-color);border-radius:8px;margin-top:4px;padding:.5rem .75rem;font-size:.85rem;font-style:italic;position:relative}.activity-item .message:before{content:"";background:var(--secondary-background-color);width:10px;height:10px;position:absolute;top:-5px;left:11px;transform:rotate(45deg)}.activity-item .context{color:#999;align-items:center;gap:6px;margin-top:8px;font-size:.8rem;display:flex}.activity-item .context .context-images{align-items:center;gap:.5rem;display:flex}.activity-item .context .context-thumb{background:#f0f0f0;border-radius:4px;flex-shrink:0;width:32px;height:32px;position:relative;overflow:hidden}.activity-item .context .context-thumb img{object-fit:cover;width:100%;height:100%;display:block}.activity-item .context .context-thumb .context-thumb-badge{color:#fff;background:#000000a6;border-radius:4px;padding:1px 4px;font-size:.7rem;font-weight:700;position:absolute;bottom:2px;right:2px}.activity-item .context .context-text{flex:auto;align-items:baseline;gap:6px;min-width:0;display:flex}.activity-item .context .context-text .activity-place-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.activity-item .context .context-text .activity-place-name .place-name-text{animation:.15s ease-out place-name-fade-in}.activity-item .context .context-text .activity-date{white-space:nowrap;flex-shrink:0}@keyframes place-name-fade-in{0%{opacity:0}to{opacity:1}}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer} diff --git a/release/assets/modules-4-12-BlEegdLz.js b/release/assets/modules-4-12-gX-Scs6b.js similarity index 99% rename from release/assets/modules-4-12-BlEegdLz.js rename to release/assets/modules-4-12-gX-Scs6b.js index 81c21ec..c157dcd 100644 --- a/release/assets/modules-4-12-BlEegdLz.js +++ b/release/assets/modules-4-12-gX-Scs6b.js @@ -1 +1 @@ -import{$ as e,$n as t,$r as a,$t as n,A as s,An as r,Ar as i,At as o,B as l,Bn as g,Br as d,Bt as h,Cn as c,Cr as u,Ct as p,Dn as _,Dr as m,Dt as y,En as C,Er as b,Et as f,F as A,Fn as M,Fr as I,Ft as D,G as T,Gn as v,Gr as O,Gt as E,H as S,Hn as R,Hr as j,Ht as x,I as w,In as P,Ir as N,It as V,J as F,Jn as G,Jr as L,Jt as k,K as U,Kn as Y,Kr as B,Kt as H,L as $,Ln as z,Lr as W,Lt as q,M as Z,Mn as J,Mr as K,Mt as Q,N as X,Nn as ee,Nr as te,Nt as ae,On as ne,Or as se,Ot as re,P as ie,Pn as oe,Pr as le,Pt as ge,Q as de,Qn as he,Qr as ce,Qt as ue,R as pe,Rn as _e,Rr as me,Rt as ye,Sn as Ce,Sr as be,St as fe,Tn as Ae,Tr as Me,Tt as Ie,U as De,Un as Te,Ur as ve,Ut as Oe,V as Ee,Vn as Se,Vr as Re,Vt as je,W as xe,Wn as we,Wr as Pe,Wt as Ne,X as Ve,Xn as Fe,Xr as Ge,Xt as Le,Y as ke,Yn as Ue,Yr as Ye,Yt as Be,Z as He,Zn as $e,Zr as ze,Zt as We,_ as qe,_n as Ze,_r as Je,_t as Ke,a as Qe,ai as Xe,an as et,ar as tt,at,bn as nt,br as st,bt as rt,c as it,cn as ot,cr as lt,ct as gt,d as dt,dn as ht,dr as ct,dt as ut,ei as pt,en as _t,er as mt,et as yt,f as Ct,fn as bt,fr as ft,ft as At,g as Mt,gn as It,gr as Dt,gt as Tt,h as vt,hn as Ot,hr as Et,ht as St,i as Rt,ii as jt,in as xt,ir as wt,it as Pt,j as Nt,jn as Vt,jr as Ft,jt as Gt,k as Lt,kn as kt,kr as Ut,kt as Yt,l as Bt,ln as Ht,lr as $t,lt as zt,m as Wt,mn as qt,mr as Zt,mt as Jt,n as Kt,ni as Qt,nn as Xt,nr as ea,nt as ta,o as aa,oi as na,on as sa,or as ra,ot as ia,p as oa,pn as la,pr as ga,pt as da,q as ha,qn as ca,qr as ua,qt as pa,r as _a,ri as ma,rn as ya,rr as Ca,rt as ba,s as fa,si as Aa,sn as Ma,sr as Ia,st as Da,t as Ta,ti as va,tn as Oa,tr as Ea,tt as Sa,u as Ra,un as ja,ur as xa,ut as wa,v as Pa,vn as Na,vr as Va,vt as Fa,wn as Ga,wr as La,wt as ka,xn as Ua,xr as Ya,xt as Ba,yn as Ha,yr as $a,yt as za,z as Wa,zn as qa,zr as Za,zt as Ja}from"./main-CdHYOqFD.js";var Ka=Aa({default:()=>Ga}),Qa=Aa({default:()=>tn}),Xa={willChange:"_arrangedContentArrayWillChange",didChange:"_arrangedContentArrayDidChange"};function en(e,t){return"[]"===t?(e._revalidate(),e._arrTag):"length"===t?(e._revalidate(),e._lengthTag):B(e,t)}var tn=class extends Y{_objectsDirtyIndex=0;_objects=null;_lengthDirty=!0;_length=0;_arrangedContent=null;_arrangedContentIsUpdating=!1;_arrangedContentTag=null;_arrangedContentRevision=null;_lengthTag=null;_arrTag=null;init(e){super.init(e),W(this,en)}[b](){this._revalidate()}willDestroy(){this._removeArrangedContentArrayObserver()}objectAtContent(e){let t=be(this,"arrangedContent");return le(t,e)}replace(e,t,a){this.replaceContent(e,t,a)}replaceContent(e,t,a){let n=be(this,"content");$a(n,e,t,a)}objectAt(e){if(this._revalidate(),null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){let e=be(this,"arrangedContent");if(e){let t=this._objects.length=be(e,"length");for(let e=this._objectsDirtyIndex;es)&&(this._objectsDirtyIndex=s),this._lengthDirty=!0,Dt(this,t,a,n,!1)}_invalidate(){this._objectsDirtyIndex=0,this._lengthDirty=!0}_revalidate(){if(!0!==this._arrangedContentIsUpdating&&(null===this._arrangedContentTag||!Ye(this._arrangedContentTag,this._arrangedContentRevision))){let e=this.get("arrangedContent");null===this._arrangedContentTag?this._addArrangedContentArrayObserver(e):(this._arrangedContentIsUpdating=!0,this._updateArrangedContentArray(e),this._arrangedContentIsUpdating=!1);let t=this._arrangedContentTag=B(this,"arrangedContent");this._arrangedContentRevision=Ge(this._arrangedContentTag),O(e)?(this._lengthTag=ua([t,I(e,"length")]),this._arrTag=ua([t,I(e,"[]")])):this._lengthTag=this._arrTag=t}}};tn.reopen(Ga,{arrangedContent:st("content")});var an=Aa({Meta:()=>va,UNDEFINED:()=>Qt,counters:()=>ma,meta:()=>jt,peekMeta:()=>Xe,setMeta:()=>na}),nn=Aa({ActionHandler:()=>Fe,Comparable:()=>C,ContainerProxyMixin:()=>Ua,MutableEnumerable:()=>_,RSVP:()=>wt,RegistryProxyMixin:()=>nt,TargetActionSupport:()=>Pa,_ProxyMixin:()=>Sa,_contentFor:()=>ta,onerrorDefault:()=>Ca}),sn=Aa({Cache:()=>u,GUID_KEY:()=>he,ROOT:()=>se,canInvoke:()=>gn,checkHasSuper:()=>Ut,dictionary:()=>tt,generateGuid:()=>t,getDebugName:()=>xe,getName:()=>xa,guidFor:()=>mt,intern:()=>ea,isObject:()=>O,isProxy:()=>La,lookupDescriptor:()=>Ya,observerListenerMetaFor:()=>i,setListeners:()=>Ft,setName:()=>ct,setObservers:()=>K,setProxy:()=>Me,setWithMandatorySetter:()=>{},setupMandatorySetter:()=>{},teardownMandatorySetter:()=>{},toString:()=>ln,uuid:()=>Ea,wrap:()=>te}),rn=Object.prototype.toString;function on(e){return null==e}function ln(e){if("string"==typeof e)return e;if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e)){let t="";for(let a=0;a0&&(t+=","),on(e[a])||(t+=ln(e[a]));return t}return"function"==typeof e.toString?e.toString():rn.call(e)}function gn(e,t){return null!=e&&"function"==typeof e[t]}var dn=Aa({ActionSupport:()=>qe,CoreView:()=>vt,EventDispatcher:()=>r,MUTABLE_CELL:()=>ba,ViewStates:()=>Mt,addChildView:()=>Vt,clearElementView:()=>J,clearViewElement:()=>ee,constructStyleDeprecationMessage:()=>oe,getChildViews:()=>M,getElementView:()=>P,getRootViews:()=>z,getViewBoundingClientRect:()=>_e,getViewBounds:()=>qa,getViewClientRects:()=>g,getViewElement:()=>Se,getViewId:()=>R,isSimpleClick:()=>Te,setElementView:()=>we,setViewElement:()=>v}),hn=Aa({default:()=>cn}),cn=$e.create({reason:null,isPending:m("isSettled",function(){return!be(this,"isSettled")}).readOnly(),isSettled:m("isRejected","isFulfilled",function(){return be(this,"isRejected")||be(this,"isFulfilled")}).readOnly(),isRejected:!1,isFulfilled:!1,promise:m({get(){throw new Error("PromiseProxy's promise must be set")},set(e,t){return function(e,t){return ga(e,{isFulfilled:!1,isRejected:!1}),t.then(t=>(e.isDestroyed||e.isDestroying||ga(e,{content:t,isFulfilled:!0}),t),t=>{throw e.isDestroyed||e.isDestroying||ga(e,{reason:t,isRejected:!0}),t},"Ember: PromiseProxy")}(this,t)}}),then:un("then"),catch:un("catch"),finally:un("finally")});function un(e){return function(...t){return be(this,"promise")[e](...t)}}var pn=Aa({default:()=>_n}),_n=class extends c{};_n.PrototypeMixin.reopen(Sa);var mn=Aa({CustomComponentManager:()=>$,CustomHelperManager:()=>xt,CustomModifierManager:()=>pe,capabilityFlagsFrom:()=>Ze,componentCapabilities:()=>Wa,getComponentTemplate:()=>Oa,getCustomTagFor:()=>N,getInternalComponentManager:()=>et,getInternalHelperManager:()=>sa,getInternalModifierManager:()=>Ma,hasCapability:()=>Na,hasDestroyable:()=>ot,hasInternalComponentManager:()=>Ht,hasInternalHelperManager:()=>ja,hasInternalModifierManager:()=>ht,hasValue:()=>bt,helperCapabilities:()=>la,managerHasCapability:()=>Ha,modifierCapabilities:()=>l,setComponentManager:()=>Ee,setComponentTemplate:()=>Xt,setCustomTagFor:()=>W,setHelperManager:()=>S,setInternalComponentManager:()=>qt,setInternalHelperManager:()=>Ot,setInternalModifierManager:()=>It,setModifierManager:()=>De}),yn=Aa({ConcreteBounds:()=>Ja,CurriedValue:()=>Ba,CursorImpl:()=>h,DOMChanges:()=>at,DOMTreeConstruction:()=>o,DynamicAttribute:()=>Gt,DynamicScopeImpl:()=>Da,EMPTY_ARGS:()=>fe,EMPTY_NAMED:()=>p,EMPTY_POSITIONAL:()=>ka,EnvironmentImpl:()=>gt,IDOMChanges:()=>ia,LowLevelVM:()=>zt,NewTreeBuilder:()=>Q,RehydrateTree:()=>Z,RemoteBlock:()=>ae,ResettableBlockImpl:()=>ge,SERIALIZATION_FIRST_NODE_STRING:()=>X,ScopeImpl:()=>wa,SimpleDynamicAttribute:()=>D,TEMPLATE_ONLY_COMPONENT_MANAGER:()=>T,TemplateOnlyComponent:()=>U,TemplateOnlyComponentManager:()=>ha,UpdatingVM:()=>ut,and:()=>_a,array:()=>de,clear:()=>je,clientBuilder:()=>V,concat:()=>Ve,createCapturedArgs:()=>Ie,curry:()=>f,destroy:()=>ze,dynamicAttribute:()=>q,eq:()=>Rt,fn:()=>e,get:()=>He,gt:()=>Qe,gte:()=>aa,hash:()=>yt,inTransaction:()=>At,invokeHelper:()=>Ct,isDestroyed:()=>ce,isDestroying:()=>a,isSerializationFirstNode:()=>ie,isWhitespace:()=>da,lt:()=>fa,lte:()=>it,neq:()=>Bt,normalizeProperty:()=>ye,not:()=>Ra,on:()=>ke,or:()=>dt,registerDestructor:()=>pt,rehydrationBuilder:()=>A,reifyArgs:()=>y,reifyNamed:()=>re,reifyPositional:()=>Yt,renderComponent:()=>Jt,renderMain:()=>St,renderSync:()=>Tt,resetDebuggerCallback:()=>Ke,runtimeOptions:()=>Fa,setDebuggerCallback:()=>za,templateOnlyComponent:()=>F}),Cn=Aa({EMPTY_ARRAY:()=>x,EMPTY_NUMBER_ARRAY:()=>Oe,EMPTY_STRING_ARRAY:()=>Ne,LOCAL_LOGGER:()=>bn,LOGGER:()=>fn,SERIALIZATION_FIRST_NODE_STRING:()=>In,Stack:()=>me,assertNever:()=>vn,assign:()=>We,beginTestSteps:()=>{},clearElement:()=>An,dict:()=>Za,emptyArray:()=>E,endTestSteps:()=>{},entries:()=>ue,enumerate:()=>H,intern:()=>Mn,isDict:()=>j,isEmptyArray:()=>pa,isIndexable:()=>ve,isSerializationFirstNode:()=>Dn,keys:()=>n,logStep:()=>{},reverse:()=>k,strip:()=>Tn,values:()=>_t,verifySteps:()=>{},zipArrays:()=>Be,zipTuples:()=>Le}),bn=console,fn=console;function An(e){let t=e.firstChild;for(;t;){let a=t.nextSibling;e.removeChild(t),t=a}}function Mn(e){let t={};t[e]=1;for(let a in t)if(a===e)return a;return e}var In="%+b:0%";function Dn(e){return e.nodeValue===In}function Tn(e,...t){let a="";for(const[i,o]of H(e))a+=`${o}${void 0!==t[i]?String(t[i]):""}`;let n=a.split("\n");for(;Pe(n)&&/^\s*$/u.test(d(n));)n.shift();for(;Pe(n)&&/^\s*$/u.test(Re(n));)n.pop();let s=1/0;for(let i of n){let e=/^\s*/u.exec(i)[0].length;s=Math.min(s,e)}let r=[];for(let i of n)r.push(i.slice(s));return r.join("\n")}function vn(e,t="unexpected unreachable branch"){throw fn.log("unreachable",e),fn.log(`${t} :: ${JSON.stringify(e)} (${e})`),new Error("code reached unreachable")}export{Nt as Application,w as ApplicationNamespace,Ae as Array,Ka as ArrayMutable,Qa as ArrayProxy,Wt as Component,Ce as Controller,s as Debug,Lt as EmberDestroyable,ca as EmberObject,ca as Object,ne as EnumerableMutable,oa as GlimmerComponent,mn as GlimmerManager,rt as GlimmerReference,yn as GlimmerRuntime,Cn as GlimmerUtil,Ia as GlimmerValidator,Pt as Instrumentation,ft as InternalsEnvironment,an as InternalsMeta,$t as InternalsMetal,nn as InternalsRuntime,sn as InternalsUtils,dn as InternalsViews,Ue as ObjectCore,kt as ObjectEvented,Ta as ObjectInternals,G as ObjectObservable,hn as ObjectPromiseProxyMixin,pn as ObjectProxy,ra as Owner,Kt as RSVP,lt as Runloop,ya as Service,Zt as VERSION}; \ No newline at end of file +import{$ as e,$n as t,$r as a,$t as n,A as s,An as r,Ar as i,At as o,B as l,Bn as g,Br as d,Bt as h,Cn as c,Cr as u,Ct as p,Dn as _,Dr as m,Dt as y,En as C,Er as b,Et as f,F as A,Fn as M,Fr as I,Ft as D,G as T,Gn as v,Gr as O,Gt as E,H as S,Hn as R,Hr as j,Ht as x,I as w,In as P,Ir as N,It as V,J as F,Jn as G,Jr as L,Jt as k,K as U,Kn as Y,Kr as B,Kt as H,L as $,Ln as z,Lr as W,Lt as q,M as Z,Mn as J,Mr as K,Mt as Q,N as X,Nn as ee,Nr as te,Nt as ae,On as ne,Or as se,Ot as re,P as ie,Pn as oe,Pr as le,Pt as ge,Q as de,Qn as he,Qr as ce,Qt as ue,R as pe,Rn as _e,Rr as me,Rt as ye,Sn as Ce,Sr as be,St as fe,Tn as Ae,Tr as Me,Tt as Ie,U as De,Un as Te,Ur as ve,Ut as Oe,V as Ee,Vn as Se,Vr as Re,Vt as je,W as xe,Wn as we,Wr as Pe,Wt as Ne,X as Ve,Xn as Fe,Xr as Ge,Xt as Le,Y as ke,Yn as Ue,Yr as Ye,Yt as Be,Z as He,Zn as $e,Zr as ze,Zt as We,_ as qe,_n as Ze,_r as Je,_t as Ke,a as Qe,ai as Xe,an as et,ar as tt,at,bn as nt,br as st,bt as rt,c as it,cn as ot,cr as lt,ct as gt,d as dt,dn as ht,dr as ct,dt as ut,ei as pt,en as _t,er as mt,et as yt,f as Ct,fn as bt,fr as ft,ft as At,g as Mt,gn as It,gr as Dt,gt as Tt,h as vt,hn as Ot,hr as Et,ht as St,i as Rt,ii as jt,in as xt,ir as wt,it as Pt,j as Nt,jn as Vt,jr as Ft,jt as Gt,k as Lt,kn as kt,kr as Ut,kt as Yt,l as Bt,ln as Ht,lr as $t,lt as zt,m as Wt,mn as qt,mr as Zt,mt as Jt,n as Kt,ni as Qt,nn as Xt,nr as ea,nt as ta,o as aa,oi as na,on as sa,or as ra,ot as ia,p as oa,pn as la,pr as ga,pt as da,q as ha,qn as ca,qr as ua,qt as pa,r as _a,ri as ma,rn as ya,rr as Ca,rt as ba,s as fa,si as Aa,sn as Ma,sr as Ia,st as Da,t as Ta,ti as va,tn as Oa,tr as Ea,tt as Sa,u as Ra,un as ja,ur as xa,ut as wa,v as Pa,vn as Na,vr as Va,vt as Fa,wn as Ga,wr as La,wt as ka,xn as Ua,xr as Ya,xt as Ba,yn as Ha,yr as $a,yt as za,z as Wa,zn as qa,zr as Za,zt as Ja}from"./main-B66TikLz.js";var Ka=Aa({default:()=>Ga}),Qa=Aa({default:()=>tn}),Xa={willChange:"_arrangedContentArrayWillChange",didChange:"_arrangedContentArrayDidChange"};function en(e,t){return"[]"===t?(e._revalidate(),e._arrTag):"length"===t?(e._revalidate(),e._lengthTag):B(e,t)}var tn=class extends Y{_objectsDirtyIndex=0;_objects=null;_lengthDirty=!0;_length=0;_arrangedContent=null;_arrangedContentIsUpdating=!1;_arrangedContentTag=null;_arrangedContentRevision=null;_lengthTag=null;_arrTag=null;init(e){super.init(e),W(this,en)}[b](){this._revalidate()}willDestroy(){this._removeArrangedContentArrayObserver()}objectAtContent(e){let t=be(this,"arrangedContent");return le(t,e)}replace(e,t,a){this.replaceContent(e,t,a)}replaceContent(e,t,a){let n=be(this,"content");$a(n,e,t,a)}objectAt(e){if(this._revalidate(),null===this._objects&&(this._objects=[]),-1!==this._objectsDirtyIndex&&e>=this._objectsDirtyIndex){let e=be(this,"arrangedContent");if(e){let t=this._objects.length=be(e,"length");for(let e=this._objectsDirtyIndex;es)&&(this._objectsDirtyIndex=s),this._lengthDirty=!0,Dt(this,t,a,n,!1)}_invalidate(){this._objectsDirtyIndex=0,this._lengthDirty=!0}_revalidate(){if(!0!==this._arrangedContentIsUpdating&&(null===this._arrangedContentTag||!Ye(this._arrangedContentTag,this._arrangedContentRevision))){let e=this.get("arrangedContent");null===this._arrangedContentTag?this._addArrangedContentArrayObserver(e):(this._arrangedContentIsUpdating=!0,this._updateArrangedContentArray(e),this._arrangedContentIsUpdating=!1);let t=this._arrangedContentTag=B(this,"arrangedContent");this._arrangedContentRevision=Ge(this._arrangedContentTag),O(e)?(this._lengthTag=ua([t,I(e,"length")]),this._arrTag=ua([t,I(e,"[]")])):this._lengthTag=this._arrTag=t}}};tn.reopen(Ga,{arrangedContent:st("content")});var an=Aa({Meta:()=>va,UNDEFINED:()=>Qt,counters:()=>ma,meta:()=>jt,peekMeta:()=>Xe,setMeta:()=>na}),nn=Aa({ActionHandler:()=>Fe,Comparable:()=>C,ContainerProxyMixin:()=>Ua,MutableEnumerable:()=>_,RSVP:()=>wt,RegistryProxyMixin:()=>nt,TargetActionSupport:()=>Pa,_ProxyMixin:()=>Sa,_contentFor:()=>ta,onerrorDefault:()=>Ca}),sn=Aa({Cache:()=>u,GUID_KEY:()=>he,ROOT:()=>se,canInvoke:()=>gn,checkHasSuper:()=>Ut,dictionary:()=>tt,generateGuid:()=>t,getDebugName:()=>xe,getName:()=>xa,guidFor:()=>mt,intern:()=>ea,isObject:()=>O,isProxy:()=>La,lookupDescriptor:()=>Ya,observerListenerMetaFor:()=>i,setListeners:()=>Ft,setName:()=>ct,setObservers:()=>K,setProxy:()=>Me,setWithMandatorySetter:()=>{},setupMandatorySetter:()=>{},teardownMandatorySetter:()=>{},toString:()=>ln,uuid:()=>Ea,wrap:()=>te}),rn=Object.prototype.toString;function on(e){return null==e}function ln(e){if("string"==typeof e)return e;if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e)){let t="";for(let a=0;a0&&(t+=","),on(e[a])||(t+=ln(e[a]));return t}return"function"==typeof e.toString?e.toString():rn.call(e)}function gn(e,t){return null!=e&&"function"==typeof e[t]}var dn=Aa({ActionSupport:()=>qe,CoreView:()=>vt,EventDispatcher:()=>r,MUTABLE_CELL:()=>ba,ViewStates:()=>Mt,addChildView:()=>Vt,clearElementView:()=>J,clearViewElement:()=>ee,constructStyleDeprecationMessage:()=>oe,getChildViews:()=>M,getElementView:()=>P,getRootViews:()=>z,getViewBoundingClientRect:()=>_e,getViewBounds:()=>qa,getViewClientRects:()=>g,getViewElement:()=>Se,getViewId:()=>R,isSimpleClick:()=>Te,setElementView:()=>we,setViewElement:()=>v}),hn=Aa({default:()=>cn}),cn=$e.create({reason:null,isPending:m("isSettled",function(){return!be(this,"isSettled")}).readOnly(),isSettled:m("isRejected","isFulfilled",function(){return be(this,"isRejected")||be(this,"isFulfilled")}).readOnly(),isRejected:!1,isFulfilled:!1,promise:m({get(){throw new Error("PromiseProxy's promise must be set")},set(e,t){return function(e,t){return ga(e,{isFulfilled:!1,isRejected:!1}),t.then(t=>(e.isDestroyed||e.isDestroying||ga(e,{content:t,isFulfilled:!0}),t),t=>{throw e.isDestroyed||e.isDestroying||ga(e,{reason:t,isRejected:!0}),t},"Ember: PromiseProxy")}(this,t)}}),then:un("then"),catch:un("catch"),finally:un("finally")});function un(e){return function(...t){return be(this,"promise")[e](...t)}}var pn=Aa({default:()=>_n}),_n=class extends c{};_n.PrototypeMixin.reopen(Sa);var mn=Aa({CustomComponentManager:()=>$,CustomHelperManager:()=>xt,CustomModifierManager:()=>pe,capabilityFlagsFrom:()=>Ze,componentCapabilities:()=>Wa,getComponentTemplate:()=>Oa,getCustomTagFor:()=>N,getInternalComponentManager:()=>et,getInternalHelperManager:()=>sa,getInternalModifierManager:()=>Ma,hasCapability:()=>Na,hasDestroyable:()=>ot,hasInternalComponentManager:()=>Ht,hasInternalHelperManager:()=>ja,hasInternalModifierManager:()=>ht,hasValue:()=>bt,helperCapabilities:()=>la,managerHasCapability:()=>Ha,modifierCapabilities:()=>l,setComponentManager:()=>Ee,setComponentTemplate:()=>Xt,setCustomTagFor:()=>W,setHelperManager:()=>S,setInternalComponentManager:()=>qt,setInternalHelperManager:()=>Ot,setInternalModifierManager:()=>It,setModifierManager:()=>De}),yn=Aa({ConcreteBounds:()=>Ja,CurriedValue:()=>Ba,CursorImpl:()=>h,DOMChanges:()=>at,DOMTreeConstruction:()=>o,DynamicAttribute:()=>Gt,DynamicScopeImpl:()=>Da,EMPTY_ARGS:()=>fe,EMPTY_NAMED:()=>p,EMPTY_POSITIONAL:()=>ka,EnvironmentImpl:()=>gt,IDOMChanges:()=>ia,LowLevelVM:()=>zt,NewTreeBuilder:()=>Q,RehydrateTree:()=>Z,RemoteBlock:()=>ae,ResettableBlockImpl:()=>ge,SERIALIZATION_FIRST_NODE_STRING:()=>X,ScopeImpl:()=>wa,SimpleDynamicAttribute:()=>D,TEMPLATE_ONLY_COMPONENT_MANAGER:()=>T,TemplateOnlyComponent:()=>U,TemplateOnlyComponentManager:()=>ha,UpdatingVM:()=>ut,and:()=>_a,array:()=>de,clear:()=>je,clientBuilder:()=>V,concat:()=>Ve,createCapturedArgs:()=>Ie,curry:()=>f,destroy:()=>ze,dynamicAttribute:()=>q,eq:()=>Rt,fn:()=>e,get:()=>He,gt:()=>Qe,gte:()=>aa,hash:()=>yt,inTransaction:()=>At,invokeHelper:()=>Ct,isDestroyed:()=>ce,isDestroying:()=>a,isSerializationFirstNode:()=>ie,isWhitespace:()=>da,lt:()=>fa,lte:()=>it,neq:()=>Bt,normalizeProperty:()=>ye,not:()=>Ra,on:()=>ke,or:()=>dt,registerDestructor:()=>pt,rehydrationBuilder:()=>A,reifyArgs:()=>y,reifyNamed:()=>re,reifyPositional:()=>Yt,renderComponent:()=>Jt,renderMain:()=>St,renderSync:()=>Tt,resetDebuggerCallback:()=>Ke,runtimeOptions:()=>Fa,setDebuggerCallback:()=>za,templateOnlyComponent:()=>F}),Cn=Aa({EMPTY_ARRAY:()=>x,EMPTY_NUMBER_ARRAY:()=>Oe,EMPTY_STRING_ARRAY:()=>Ne,LOCAL_LOGGER:()=>bn,LOGGER:()=>fn,SERIALIZATION_FIRST_NODE_STRING:()=>In,Stack:()=>me,assertNever:()=>vn,assign:()=>We,beginTestSteps:()=>{},clearElement:()=>An,dict:()=>Za,emptyArray:()=>E,endTestSteps:()=>{},entries:()=>ue,enumerate:()=>H,intern:()=>Mn,isDict:()=>j,isEmptyArray:()=>pa,isIndexable:()=>ve,isSerializationFirstNode:()=>Dn,keys:()=>n,logStep:()=>{},reverse:()=>k,strip:()=>Tn,values:()=>_t,verifySteps:()=>{},zipArrays:()=>Be,zipTuples:()=>Le}),bn=console,fn=console;function An(e){let t=e.firstChild;for(;t;){let a=t.nextSibling;e.removeChild(t),t=a}}function Mn(e){let t={};t[e]=1;for(let a in t)if(a===e)return a;return e}var In="%+b:0%";function Dn(e){return e.nodeValue===In}function Tn(e,...t){let a="";for(const[i,o]of H(e))a+=`${o}${void 0!==t[i]?String(t[i]):""}`;let n=a.split("\n");for(;Pe(n)&&/^\s*$/u.test(d(n));)n.shift();for(;Pe(n)&&/^\s*$/u.test(Re(n));)n.pop();let s=1/0;for(let i of n){let e=/^\s*/u.exec(i)[0].length;s=Math.min(s,e)}let r=[];for(let i of n)r.push(i.slice(s));return r.join("\n")}function vn(e,t="unexpected unreachable branch"){throw fn.log("unreachable",e),fn.log(`${t} :: ${JSON.stringify(e)} (${e})`),new Error("code reached unreachable")}export{Nt as Application,w as ApplicationNamespace,Ae as Array,Ka as ArrayMutable,Qa as ArrayProxy,Wt as Component,Ce as Controller,s as Debug,Lt as EmberDestroyable,ca as EmberObject,ca as Object,ne as EnumerableMutable,oa as GlimmerComponent,mn as GlimmerManager,rt as GlimmerReference,yn as GlimmerRuntime,Cn as GlimmerUtil,Ia as GlimmerValidator,Pt as Instrumentation,ft as InternalsEnvironment,an as InternalsMeta,$t as InternalsMetal,nn as InternalsRuntime,sn as InternalsUtils,dn as InternalsViews,Ue as ObjectCore,kt as ObjectEvented,Ta as ObjectInternals,G as ObjectObservable,hn as ObjectPromiseProxyMixin,pn as ObjectProxy,ra as Owner,Kt as RSVP,lt as Runloop,ya as Service,Zt as VERSION}; \ No newline at end of file diff --git a/release/assets/negentropy-Bkdf3Z9m.js b/release/assets/negentropy-CLXSLWsX.js similarity index 99% rename from release/assets/negentropy-Bkdf3Z9m.js rename to release/assets/negentropy-CLXSLWsX.js index cfddf40..54cd0a3 100644 --- a/release/assets/negentropy-Bkdf3Z9m.js +++ b/release/assets/negentropy-CLXSLWsX.js @@ -1 +1 @@ -import{C as t,D as e,E as i,O as r,S as n,T as s,b as a,w as o,x as h,y as u}from"./main-CdHYOqFD.js";function l(){for(var t=[],n=0;n>>=7;e.reverse();for(let i=0;iu.create().update(t).digest()}setToZero(){this.buf=new Uint8Array(d)}add(t){let e=0,i=0,r=new DataView(this.buf.buffer),n=new DataView(t.buffer);for(let s=0;s<8;s++){let t=4*s,a=r.getUint32(t,!0);a+=e,a+=n.getUint32(t,!0),a>4294967295&&(i=1),r.setUint32(t,4294967295&a,!0),e=i,i=0}}negate(){let t=new DataView(this.buf.buffer);for(let i=0;i<8;i++){let e=4*i;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(d);e[0]=1,this.add(e)}async getFingerprint(t){let e=new c;return e.extend(this.buf),e.extend(m(t)),(await this.sha256(e.unwrap())).subarray(0,16)}},w=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");if((e=y(e)).byteLength!==d)throw Error("bad id size for added item");this.items.push({timestamp:t,id:e})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(A);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,i){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rA(t,i)<0)}async fingerprint(t,e){let i=new p;return i.setToZero(),this.iterate(t,e,t=>(i.add(t.id),!0)),await i.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,i,r){let n=i-e;for(;n>0;){let i=e,s=Math.floor(n/2);i+=s,r(t[i])?(e=++i,n-=s+1):n=s}return e}},b=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;isInitiator;wantUint8ArrayOutput;constructor(t,e=0){if(0!==e&&e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}async initiate(){if(this.isInitiator)throw Error("already initiated");this.isInitiator=!0;let t=new c;return t.extend([97]),await this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),this._renderOutput(t)}setInitiator(){this.isInitiator=!0}async reconcile(t){let e=[],i=[],r=new c(y(t));this.lastTimestampIn=this.lastTimestampOut=0;let n=new c;n.extend([97]);let s=g(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s){if(this.isInitiator)throw Error("unsupported negentropy protocol version requested: "+(s-96));return[this._renderOutput(n),e,i]}let a=this.storage.size(),o=this._bound(0),h=0,u=!1;for(;0!==r.length;){let t=new c,s=()=>{u&&(u=!1,t.extend(this.encodeBound(o)),t.extend(m(0)))},l=this.decodeBound(r),p=f(r),w=h,b=this.storage.findLowerBound(h,a,l);if(0===p)u=!0;else if(1===p)0!==E(g(r,16),await this.storage.fingerprint(w,b))?(s(),await this.splitRange(w,b,l,t)):u=!0;else{if(2!==p)throw Error("unexpected mode");{let a=f(r),o={};for(let t=0;t{let i=t.id;return o[i]?delete o[i]:this.isInitiator&&e.push(this.wantUint8ArrayOutput?i:x(i)),!0});for(let t of Object.values(o))i.push(this.wantUint8ArrayOutput?t:x(t))}else{s();let e=new c,i=0,r=l;this.storage.iterate(w,b,(t,s)=>this.exceededFrameSizeLimit(n.length+e.length)?(r=t,b=s,!1):(e.extend(t.id),i++,!0)),t.extend(this.encodeBound(r)),t.extend(m(2)),t.extend(m(i)),t.extend(e),n.extend(t),t=new c}}}if(this.exceededFrameSizeLimit(n.length+t.length)){let t=await this.storage.fingerprint(b,a);n.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),n.extend(m(1)),n.extend(t);break}n.extend(t),h=b,o=l}return[1===n.length&&this.isInitiator?null:this._renderOutput(n),e,i]}async splitRange(t,e,i,r){let n=e-t;if(n<32)r.extend(this.encodeBound(i)),r.extend(m(2)),r.extend(m(n)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(n/16),a=n%16,o=t;for(let t=0;t<16;t++){let n,h=s+(t(r===o-1?t=i:e=i,!0)),n=this.getMinimalBound(t,e)}r.extend(this.encodeBound(n)),r.extend(m(1)),r.extend(u)}}}_renderOutput(t){let e=t.unwrap();return this.wantUint8ArrayOutput?e:x(e)}exceededFrameSizeLimit(t){return this.frameSizeLimit&&t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=f(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),i=f(t);if(i>d)throw Error("bound key too long");return{timestamp:e,id:g(t,i)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,m(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,m(t+1)}encodeBound(t){let e=new c;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(m(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let i=0,r=e.id,n=t.id;for(let t=0;t>>4&15]+t[15&e]}function x(t){let e="";for(let i=0,r=t.length;ie[i])return 1}return t.byteLength>e.byteLength?1:t.byteLength(L("Sending initial message",d,o,f),["NEG-OPEN",d,o,f]),()=>(L("Closing sync",d),["NEG-CLOSE",d]),t=>("NEG-MSG"===t[0]||"NEG-ERR"===t[0])&&t[1]===d).pipe(s(t=>{if("NEG-ERR"===t[0])throw new Error(t[2]);return t[2]}),t());if(u?.signal?.aborted)return!1;const p=new r(t=>{if(u?.signal?.aborted)return t.next("abort"),void t.complete();const e=()=>{t.next("abort"),t.complete()};return u?.signal?.addEventListener("abort",e),()=>u?.signal?.removeEventListener("abort",e)}),w=g.subscribe({next:t=>L(t),error:()=>{}});try{for(;m&&!0!==u?.signal?.aborted;)try{const t=await n(l(g.pipe(s(t=>({type:"message",data:t}))),p.pipe(s(()=>({type:"abort"})))));if("abort"===t.type||u?.signal?.aborted)return w.unsubscribe(),!1;const[e,i,r]=await c.reconcile(t.data);await h(i,r),m=e}catch(y){if(u?.signal?.aborted)return w.unsubscribe(),!1;throw y}}catch(y){throw w.unsubscribe(),y}finally{w.unsubscribe()}return!0}export{U as buildStorageFromFilter,I as buildStorageVector,O as negentropySync}; \ No newline at end of file +import{C as t,D as e,E as i,O as r,S as n,T as s,b as a,w as o,x as h,y as u}from"./main-B66TikLz.js";function l(){for(var t=[],n=0;n>>=7;e.reverse();for(let i=0;iu.create().update(t).digest()}setToZero(){this.buf=new Uint8Array(d)}add(t){let e=0,i=0,r=new DataView(this.buf.buffer),n=new DataView(t.buffer);for(let s=0;s<8;s++){let t=4*s,a=r.getUint32(t,!0);a+=e,a+=n.getUint32(t,!0),a>4294967295&&(i=1),r.setUint32(t,4294967295&a,!0),e=i,i=0}}negate(){let t=new DataView(this.buf.buffer);for(let i=0;i<8;i++){let e=4*i;t.setUint32(e,~t.getUint32(e,!0))}let e=new Uint8Array(d);e[0]=1,this.add(e)}async getFingerprint(t){let e=new c;return e.extend(this.buf),e.extend(m(t)),(await this.sha256(e.unwrap())).subarray(0,16)}},w=class{items;sealed;constructor(){this.items=[],this.sealed=!1}insert(t,e){if(this.sealed)throw Error("already sealed");if((e=y(e)).byteLength!==d)throw Error("bad id size for added item");this.items.push({timestamp:t,id:e})}seal(){if(this.sealed)throw Error("already sealed");this.sealed=!0,this.items.sort(A);for(let t=1;t=this.items.length)throw Error("out of range");return this.items[t]}iterate(t,e,i){this._checkSealed(),this._checkBounds(t,e);for(let r=t;rA(t,i)<0)}async fingerprint(t,e){let i=new p;return i.setToZero(),this.iterate(t,e,t=>(i.add(t.id),!0)),await i.getFingerprint(e-t)}_checkSealed(){if(!this.sealed)throw Error("not sealed")}_checkBounds(t,e){if(t>e||e>this.items.length)throw Error("bad range")}_binarySearch(t,e,i,r){let n=i-e;for(;n>0;){let i=e,s=Math.floor(n/2);i+=s,r(t[i])?(e=++i,n-=s+1):n=s}return e}},b=class{storage;frameSizeLimit;lastTimestampIn;lastTimestampOut;isInitiator;wantUint8ArrayOutput;constructor(t,e=0){if(0!==e&&e<4096)throw Error("frameSizeLimit too small");this.storage=t,this.frameSizeLimit=e,this.lastTimestampIn=0,this.lastTimestampOut=0}_bound(t,e){return{timestamp:t,id:e||new Uint8Array(0)}}async initiate(){if(this.isInitiator)throw Error("already initiated");this.isInitiator=!0;let t=new c;return t.extend([97]),await this.splitRange(0,this.storage.size(),this._bound(Number.MAX_VALUE),t),this._renderOutput(t)}setInitiator(){this.isInitiator=!0}async reconcile(t){let e=[],i=[],r=new c(y(t));this.lastTimestampIn=this.lastTimestampOut=0;let n=new c;n.extend([97]);let s=g(r,1)[0];if(s<96||s>111)throw Error("invalid negentropy protocol version byte");if(97!==s){if(this.isInitiator)throw Error("unsupported negentropy protocol version requested: "+(s-96));return[this._renderOutput(n),e,i]}let a=this.storage.size(),o=this._bound(0),h=0,u=!1;for(;0!==r.length;){let t=new c,s=()=>{u&&(u=!1,t.extend(this.encodeBound(o)),t.extend(m(0)))},l=this.decodeBound(r),p=f(r),w=h,b=this.storage.findLowerBound(h,a,l);if(0===p)u=!0;else if(1===p)0!==E(g(r,16),await this.storage.fingerprint(w,b))?(s(),await this.splitRange(w,b,l,t)):u=!0;else{if(2!==p)throw Error("unexpected mode");{let a=f(r),o={};for(let t=0;t{let i=t.id;return o[i]?delete o[i]:this.isInitiator&&e.push(this.wantUint8ArrayOutput?i:x(i)),!0});for(let t of Object.values(o))i.push(this.wantUint8ArrayOutput?t:x(t))}else{s();let e=new c,i=0,r=l;this.storage.iterate(w,b,(t,s)=>this.exceededFrameSizeLimit(n.length+e.length)?(r=t,b=s,!1):(e.extend(t.id),i++,!0)),t.extend(this.encodeBound(r)),t.extend(m(2)),t.extend(m(i)),t.extend(e),n.extend(t),t=new c}}}if(this.exceededFrameSizeLimit(n.length+t.length)){let t=await this.storage.fingerprint(b,a);n.extend(this.encodeBound(this._bound(Number.MAX_VALUE))),n.extend(m(1)),n.extend(t);break}n.extend(t),h=b,o=l}return[1===n.length&&this.isInitiator?null:this._renderOutput(n),e,i]}async splitRange(t,e,i,r){let n=e-t;if(n<32)r.extend(this.encodeBound(i)),r.extend(m(2)),r.extend(m(n)),this.storage.iterate(t,e,t=>(r.extend(t.id),!0));else{let s=Math.floor(n/16),a=n%16,o=t;for(let t=0;t<16;t++){let n,h=s+(t(r===o-1?t=i:e=i,!0)),n=this.getMinimalBound(t,e)}r.extend(this.encodeBound(n)),r.extend(m(1)),r.extend(u)}}}_renderOutput(t){let e=t.unwrap();return this.wantUint8ArrayOutput?e:x(e)}exceededFrameSizeLimit(t){return this.frameSizeLimit&&t>this.frameSizeLimit-200}decodeTimestampIn(t){let e=f(t);return e=0===e?Number.MAX_VALUE:e-1,this.lastTimestampIn===Number.MAX_VALUE||e===Number.MAX_VALUE?(this.lastTimestampIn=Number.MAX_VALUE,Number.MAX_VALUE):(e+=this.lastTimestampIn,this.lastTimestampIn=e,e)}decodeBound(t){let e=this.decodeTimestampIn(t),i=f(t);if(i>d)throw Error("bound key too long");return{timestamp:e,id:g(t,i)}}encodeTimestampOut(t){if(t===Number.MAX_VALUE)return this.lastTimestampOut=Number.MAX_VALUE,m(0);let e=t;return t-=this.lastTimestampOut,this.lastTimestampOut=e,m(t+1)}encodeBound(t){let e=new c;return e.extend(this.encodeTimestampOut(t.timestamp)),e.extend(m(t.id.length)),e.extend(t.id),e}getMinimalBound(t,e){if(e.timestamp!==t.timestamp)return this._bound(e.timestamp);{let i=0,r=e.id,n=t.id;for(let t=0;t>>4&15]+t[15&e]}function x(t){let e="";for(let i=0,r=t.length;ie[i])return 1}return t.byteLength>e.byteLength?1:t.byteLength(L("Sending initial message",d,o,f),["NEG-OPEN",d,o,f]),()=>(L("Closing sync",d),["NEG-CLOSE",d]),t=>("NEG-MSG"===t[0]||"NEG-ERR"===t[0])&&t[1]===d).pipe(s(t=>{if("NEG-ERR"===t[0])throw new Error(t[2]);return t[2]}),t());if(u?.signal?.aborted)return!1;const p=new r(t=>{if(u?.signal?.aborted)return t.next("abort"),void t.complete();const e=()=>{t.next("abort"),t.complete()};return u?.signal?.addEventListener("abort",e),()=>u?.signal?.removeEventListener("abort",e)}),w=g.subscribe({next:t=>L(t),error:()=>{}});try{for(;m&&!0!==u?.signal?.aborted;)try{const t=await n(l(g.pipe(s(t=>({type:"message",data:t}))),p.pipe(s(()=>({type:"abort"})))));if("abort"===t.type||u?.signal?.aborted)return w.unsubscribe(),!1;const[e,i,r]=await c.reconcile(t.data);await h(i,r),m=e}catch(y){if(u?.signal?.aborted)return w.unsubscribe(),!1;throw y}}catch(y){throw w.unsubscribe(),y}finally{w.unsubscribe()}return!0}export{U as buildStorageFromFilter,I as buildStorageVector,O as negentropySync}; \ No newline at end of file diff --git a/release/index.html b/release/index.html index 433a12f..45e5ce8 100644 --- a/release/index.html +++ b/release/index.html @@ -42,8 +42,8 @@ - - + +