From a350f390cd01f7c6c71298afb08769eaa2887f73 Mon Sep 17 00:00:00 2001 From: pulsejet Date: Fri, 10 May 2024 02:09:51 +0000 Subject: [PATCH] deploy: adc09ba397f9b147ef057fd0700c5a3476741d5b --- .nojekyll | 0 assets/index-CBfggc1U.js | 19 +++++++++++++++++++ assets/index-DtEJakyE.css | 1 + index.html | 13 +++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 .nojekyll create mode 100644 assets/index-CBfggc1U.js create mode 100644 assets/index-DtEJakyE.css create mode 100644 index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/assets/index-CBfggc1U.js b/assets/index-CBfggc1U.js new file mode 100644 index 0000000..daacdd5 --- /dev/null +++ b/assets/index-CBfggc1U.js @@ -0,0 +1,19 @@ +var hc=Object.defineProperty;var dc=(t,e,n)=>e in t?hc(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var u=(t,e,n)=>(dc(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();/** +* @vue/shared v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Vr(t,e){const n=new Set(t.split(","));return r=>n.has(r)}const Q={},Ft=[],Se=()=>{},pc=()=>!1,zn=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Hr=t=>t.startsWith("onUpdate:"),ie=Object.assign,Wr=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},mc=Object.prototype.hasOwnProperty,M=(t,e)=>mc.call(t,e),L=Array.isArray,Ct=t=>jn(t)==="[object Map]",Ri=t=>jn(t)==="[object Set]",O=t=>typeof t=="function",ee=t=>typeof t=="string",Pt=t=>typeof t=="symbol",J=t=>t!==null&&typeof t=="object",Fi=t=>(J(t)||O(t))&&O(t.then)&&O(t.catch),Ci=Object.prototype.toString,jn=t=>Ci.call(t),gc=t=>jn(t).slice(8,-1),Li=t=>jn(t)==="[object Object]",zr=t=>ee(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Jt=Vr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),qn=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},yc=/-(\w)/g,Mt=qn(t=>t.replace(yc,(e,n)=>n?n.toUpperCase():"")),wc=/\B([A-Z])/g,Ht=qn(t=>t.replace(wc,"-$1").toLowerCase()),Oi=qn(t=>t.charAt(0).toUpperCase()+t.slice(1)),ar=qn(t=>t?`on${Oi(t)}`:""),Et=(t,e)=>!Object.is(t,e),ur=(t,e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:r,value:n})},xc=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let vs;const Mi=()=>vs||(vs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function jr(t){if(L(t)){const e={};for(let n=0;n{if(n){const r=n.split(vc);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e}function Lt(t){let e="";if(ee(t))e=t;else if(L(t))for(let n=0;nee(t)?t:t==null?"":L(t)||J(t)&&(t.toString===Ci||!O(t.toString))?JSON.stringify(t,$i,2):String(t),$i=(t,e)=>e&&e.__v_isRef?$i(t,e.value):Ct(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[r,s],i)=>(n[lr(r,i)+" =>"]=s,n),{})}:Ri(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>lr(n))}:Pt(e)?lr(e):J(e)&&!L(e)&&!Li(e)?String(e):e,lr=(t,e="")=>{var n;return Pt(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};/** +* @vue/reactivity v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ae;class Ic{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Ae,!e&&Ae&&(this.index=(Ae.scopes||(Ae.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const n=Ae;try{return Ae=this,e()}finally{Ae=n}}}on(){Ae=this}off(){Ae=this.parent}stop(e){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),lt()}return this._dirtyLevel>=4}set dirty(e){this._dirtyLevel=e?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let e=rt,n=wt;try{return rt=!0,wt=this,this._runnings++,Es(this),this.fn()}finally{_s(this),this._runnings--,wt=n,rt=e}}stop(){this.active&&(Es(this),_s(this),this.onStop&&this.onStop(),this.active=!1)}}function Nc(t){return t.value}function Es(t){t._trackId++,t._depsLength=0}function _s(t){if(t.deps.length>t._depsLength){for(let e=t._depsLength;e{const n=new Map;return n.cleanup=t,n.computed=e,n},_r=new WeakMap,xt=Symbol(""),Tr=Symbol("");function we(t,e,n){if(rt&&wt){let r=_r.get(t);r||_r.set(t,r=new Map);let s=r.get(n);s||r.set(n,s=Wi(()=>r.delete(n))),Vi(wt,s)}}function je(t,e,n,r,s,i){const o=_r.get(t);if(!o)return;let c=[];if(e==="clear")c=[...o.values()];else if(n==="length"&&L(t)){const a=Number(r);o.forEach((f,h)=>{(h==="length"||!Pt(h)&&h>=a)&&c.push(f)})}else switch(n!==void 0&&c.push(o.get(n)),e){case"add":L(t)?zr(n)&&c.push(o.get("length")):(c.push(o.get(xt)),Ct(t)&&c.push(o.get(Tr)));break;case"delete":L(t)||(c.push(o.get(xt)),Ct(t)&&c.push(o.get(Tr)));break;case"set":Ct(t)&&c.push(o.get(xt));break}Kr();for(const a of c)a&&Hi(a,4);Qr()}const Rc=Vr("__proto__,__v_isRef,__isVue"),zi=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Pt)),Ts=Fc();function Fc(){const t={};return["includes","indexOf","lastIndexOf"].forEach(e=>{t[e]=function(...n){const r=V(this);for(let i=0,o=this.length;i{t[e]=function(...n){ut(),Kr();const r=V(this)[e].apply(this,n);return Qr(),lt(),r}}),t}function Cc(t){Pt(t)||(t=String(t));const e=V(this);return we(e,"has",t),e.hasOwnProperty(t)}class ji{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?jc:Gi:i?Qi:Ki).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(r)?e:void 0;const o=L(e);if(!s){if(o&&M(Ts,n))return Reflect.get(Ts,n,r);if(n==="hasOwnProperty")return Cc}const c=Reflect.get(e,n,r);return(Pt(n)?zi.has(n):Rc(n))||(s||we(e,"get",n),i)?c:_e(c)?o&&zr(n)?c:c.value:J(c)?s?Yi(c):Xr(c):c}}class qi extends ji{constructor(e=!1){super(!1,e)}set(e,n,r,s){let i=e[n];if(!this._isShallow){const a=Cn(i);if(!Sr(r)&&!Cn(r)&&(i=V(i),r=V(r)),!L(e)&&_e(i)&&!_e(r))return a?!1:(i.value=r,!0)}const o=L(e)&&zr(n)?Number(n)t,Kn=t=>Reflect.getPrototypeOf(t);function xn(t,e,n=!1,r=!1){t=t.__v_raw;const s=V(t),i=V(e);n||(Et(e,i)&&we(s,"get",e),we(s,"get",i));const{has:o}=Kn(s),c=r?Gr:n?es:Zr;if(o.call(s,e))return c(t.get(e));if(o.call(s,i))return c(t.get(i));t!==s&&t.get(e)}function bn(t,e=!1){const n=this.__v_raw,r=V(n),s=V(t);return e||(Et(t,s)&&we(r,"has",t),we(r,"has",s)),t===s?n.has(t):n.has(t)||n.has(s)}function vn(t,e=!1){return t=t.__v_raw,!e&&we(V(t),"iterate",xt),Reflect.get(t,"size",t)}function Ss(t){t=V(t);const e=V(this);return Kn(e).has.call(e,t)||(e.add(t),je(e,"add",t,t)),this}function Is(t,e){e=V(e);const n=V(this),{has:r,get:s}=Kn(n);let i=r.call(n,t);i||(t=V(t),i=r.call(n,t));const o=s.call(n,t);return n.set(t,e),i?Et(e,o)&&je(n,"set",t,e):je(n,"add",t,e),this}function Ps(t){const e=V(this),{has:n,get:r}=Kn(e);let s=n.call(e,t);s||(t=V(t),s=n.call(e,t)),r&&r.call(e,t);const i=e.delete(t);return s&&je(e,"delete",t,void 0),i}function As(){const t=V(this),e=t.size!==0,n=t.clear();return e&&je(t,"clear",void 0,void 0),n}function En(t,e){return function(r,s){const i=this,o=i.__v_raw,c=V(o),a=e?Gr:t?es:Zr;return!t&&we(c,"iterate",xt),o.forEach((f,h)=>r.call(s,a(f),a(h),i))}}function _n(t,e,n){return function(...r){const s=this.__v_raw,i=V(s),o=Ct(i),c=t==="entries"||t===Symbol.iterator&&o,a=t==="keys"&&o,f=s[t](...r),h=n?Gr:e?es:Zr;return!e&&we(i,"iterate",a?Tr:xt),{next(){const{value:p,done:g}=f.next();return g?{value:p,done:g}:{value:c?[h(p[0]),h(p[1])]:h(p),done:g}},[Symbol.iterator](){return this}}}}function Je(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Dc(){const t={get(i){return xn(this,i)},get size(){return vn(this)},has:bn,add:Ss,set:Is,delete:Ps,clear:As,forEach:En(!1,!1)},e={get(i){return xn(this,i,!1,!0)},get size(){return vn(this)},has:bn,add:Ss,set:Is,delete:Ps,clear:As,forEach:En(!1,!0)},n={get(i){return xn(this,i,!0)},get size(){return vn(this,!0)},has(i){return bn.call(this,i,!0)},add:Je("add"),set:Je("set"),delete:Je("delete"),clear:Je("clear"),forEach:En(!0,!1)},r={get(i){return xn(this,i,!0,!0)},get size(){return vn(this,!0)},has(i){return bn.call(this,i,!0)},add:Je("add"),set:Je("set"),delete:Je("delete"),clear:Je("clear"),forEach:En(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{t[i]=_n(i,!1,!1),n[i]=_n(i,!0,!1),e[i]=_n(i,!1,!0),r[i]=_n(i,!0,!0)}),[t,n,e,r]}const[$c,Uc,Bc,Vc]=Dc();function Yr(t,e){const n=e?t?Vc:Bc:t?Uc:$c;return(r,s,i)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?r:Reflect.get(M(n,s)&&s in r?n:r,s,i)}const Hc={get:Yr(!1,!1)},Wc={get:Yr(!1,!0)},zc={get:Yr(!0,!1)};const Ki=new WeakMap,Qi=new WeakMap,Gi=new WeakMap,jc=new WeakMap;function qc(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Kc(t){return t.__v_skip||!Object.isExtensible(t)?0:qc(gc(t))}function Xr(t){return Cn(t)?t:Jr(t,!1,Oc,Hc,Ki)}function Qc(t){return Jr(t,!1,Mc,Wc,Qi)}function Yi(t){return Jr(t,!0,kc,zc,Gi)}function Jr(t,e,n,r,s){if(!J(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const i=s.get(t);if(i)return i;const o=Kc(t);if(o===0)return t;const c=new Proxy(t,o===2?r:n);return s.set(t,c),c}function Zt(t){return Cn(t)?Zt(t.__v_raw):!!(t&&t.__v_isReactive)}function Cn(t){return!!(t&&t.__v_isReadonly)}function Sr(t){return!!(t&&t.__v_isShallow)}function Xi(t){return t?!!t.__v_raw:!1}function V(t){const e=t&&t.__v_raw;return e?V(e):t}function Gc(t){return Object.isExtensible(t)&&ki(t,"__v_skip",!0),t}const Zr=t=>J(t)?Xr(t):t,es=t=>J(t)?Yi(t):t;class Ji{constructor(e,n,r,s){this.getter=e,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new qr(()=>e(this._value),()=>fr(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const e=V(this);return(!e._cacheable||e.effect.dirty)&&Et(e._value,e._value=e.effect.run())&&fr(e,4),Xc(e),e.effect._dirtyLevel>=2&&fr(e,2),e._value}set value(e){this._setter(e)}get _dirty(){return this.effect.dirty}set _dirty(e){this.effect.dirty=e}}function Yc(t,e,n=!1){let r,s;const i=O(t);return i?(r=t,s=Se):(r=t.get,s=t.set),new Ji(r,s,i||!s,n)}function Xc(t){var e;rt&&wt&&(t=V(t),Vi(wt,(e=t.dep)!=null?e:t.dep=Wi(()=>t.dep=void 0,t instanceof Ji?t:void 0)))}function fr(t,e=4,n){t=V(t);const r=t.dep;r&&Hi(r,e)}function _e(t){return!!(t&&t.__v_isRef===!0)}function Jc(t){return _e(t)?t.value:t}const Zc={get:(t,e,n)=>Jc(Reflect.get(t,e,n)),set:(t,e,n,r)=>{const s=t[e];return _e(s)&&!_e(n)?(s.value=n,!0):Reflect.set(t,e,n,r)}};function Zi(t){return Zt(t)?t:new Proxy(t,Zc)}/** +* @vue/runtime-core v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function st(t,e,n,r){try{return r?t(...r):t()}catch(s){Qn(s,e,n)}}function Re(t,e,n,r){if(O(t)){const s=st(t,e,n,r);return s&&Fi(s)&&s.catch(i=>{Qn(i,e,n)}),s}if(L(t)){const s=[];for(let i=0;i>>1,s=le[r],i=cn(s);i$e&&le.splice(e,1)}function sa(t){L(t)?Ot.push(...t):(!et||!et.includes(t,t.allowRecurse?gt+1:gt))&&Ot.push(t),to()}function Ns(t,e,n=on?$e+1:0){for(;ncn(n)-cn(r));if(Ot.length=0,et){et.push(...e);return}for(et=e,gt=0;gtt.id==null?1/0:t.id,ia=(t,e)=>{const n=cn(t)-cn(e);if(n===0){if(t.pre&&!e.pre)return-1;if(e.pre&&!t.pre)return 1}return n};function ro(t){Ir=!1,on=!0,le.sort(ia);try{for($e=0;$eee(T)?T.trim():T)),p&&(s=n.map(xc))}let c,a=r[c=ar(e)]||r[c=ar(Mt(e))];!a&&i&&(a=r[c=ar(Ht(e))]),a&&Re(a,t,6,s);const f=r[c+"Once"];if(f){if(!t.emitted)t.emitted={};else if(t.emitted[c])return;t.emitted[c]=!0,Re(f,t,6,s)}}function so(t,e,n=!1){const r=e.emitsCache,s=r.get(t);if(s!==void 0)return s;const i=t.emits;let o={},c=!1;if(!O(t)){const a=f=>{const h=so(f,e,!0);h&&(c=!0,ie(o,h))};!n&&e.mixins.length&&e.mixins.forEach(a),t.extends&&a(t.extends),t.mixins&&t.mixins.forEach(a)}return!i&&!c?(J(t)&&r.set(t,null),null):(L(i)?i.forEach(a=>o[a]=null):ie(o,i),J(t)&&r.set(t,o),o)}function Gn(t,e){return!t||!zn(e)?!1:(e=e.slice(2).replace(/Once$/,""),M(t,e[0].toLowerCase()+e.slice(1))||M(t,Ht(e))||M(t,e))}let Ue=null,Yn=null;function Ln(t){const e=Ue;return Ue=t,Yn=t&&t.type.__scopeId||null,e}function ca(t){Yn=t}function aa(){Yn=null}function ua(t,e=Ue,n){if(!e||t._n)return t;const r=(...s)=>{r._d&&Us(-1);const i=Ln(e);let o;try{o=t(...s)}finally{Ln(i),r._d&&Us(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function hr(t){const{type:e,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:c,emit:a,render:f,renderCache:h,props:p,data:g,setupState:T,ctx:I,inheritAttrs:N}=t,Y=Ln(t);let $,j;try{if(n.shapeFlag&4){const te=s||r,Te=te;$=De(f.call(Te,te,h,p,T,g,I)),j=c}else{const te=e;$=De(te.length>1?te(p,{attrs:c,slots:o,emit:a}):te(p,null)),j=e.props?c:la(c)}}catch(te){nn.length=0,Qn(te,t,1),$=qe(_t)}let U=$;if(j&&N!==!1){const te=Object.keys(j),{shapeFlag:Te}=U;te.length&&Te&7&&(i&&te.some(Hr)&&(j=fa(j,i)),U=Dt(U,j,!1,!0))}return n.dirs&&(U=Dt(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition&&(U.transition=n.transition),$=U,Ln(Y),$}const la=t=>{let e;for(const n in t)(n==="class"||n==="style"||zn(n))&&((e||(e={}))[n]=t[n]);return e},fa=(t,e)=>{const n={};for(const r in t)(!Hr(r)||!(r.slice(9)in e))&&(n[r]=t[r]);return n};function ha(t,e,n){const{props:r,children:s,component:i}=t,{props:o,children:c,patchFlag:a}=e,f=i.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Rs(r,o,f):!!o;if(a&8){const h=e.dynamicProps;for(let p=0;pt.__isSuspense;function ga(t,e){e&&e.pendingBranch?L(t)?e.effects.push(...t):e.effects.push(t):sa(t)}const ya=Symbol.for("v-scx"),wa=()=>Nn(ya),Tn={};function dr(t,e,n){return io(t,e,n)}function io(t,e,{immediate:n,deep:r,flush:s,once:i,onTrack:o,onTrigger:c}=Q){if(e&&i){const D=e;e=(...He)=>{D(...He),Te()}}const a=pe,f=D=>r===!0?D:Rt(D,r===!1?1:void 0);let h,p=!1,g=!1;if(_e(t)?(h=()=>t.value,p=Sr(t)):Zt(t)?(h=()=>f(t),p=!0):L(t)?(g=!0,p=t.some(D=>Zt(D)||Sr(D)),h=()=>t.map(D=>{if(_e(D))return D.value;if(Zt(D))return f(D);if(O(D))return st(D,a,2)})):O(t)?e?h=()=>st(t,a,2):h=()=>(T&&T(),Re(t,a,3,[I])):h=Se,e&&r){const D=h;h=()=>Rt(D())}let T,I=D=>{T=U.onStop=()=>{st(D,a,4),T=U.onStop=void 0}},N;if(Zn)if(I=Se,e?n&&Re(e,a,3,[h(),g?[]:void 0,I]):h(),s==="sync"){const D=wa();N=D.__watcherHandles||(D.__watcherHandles=[])}else return Se;let Y=g?new Array(t.length).fill(Tn):Tn;const $=()=>{if(!(!U.active||!U.dirty))if(e){const D=U.run();(r||p||(g?D.some((He,Ce)=>Et(He,Y[Ce])):Et(D,Y)))&&(T&&T(),Re(e,a,3,[D,Y===Tn?void 0:g&&Y[0]===Tn?[]:Y,I]),Y=D)}else U.run()};$.allowRecurse=!!e;let j;s==="sync"?j=$:s==="post"?j=()=>ge($,a&&a.suspense):($.pre=!0,a&&($.id=a.uid),j=()=>ns($));const U=new qr(h,Se,j),te=Ac(),Te=()=>{U.stop(),te&&Wr(te.effects,U)};return e?n?$():Y=U.run():s==="post"?ge(U.run.bind(U),a&&a.suspense):U.run(),N&&N.push(Te),Te}function xa(t,e,n){const r=this.proxy,s=ee(t)?t.includes(".")?oo(r,t):()=>r[t]:t.bind(r,r);let i;O(e)?i=e:(i=e.handler,n=e);const o=pn(this),c=io(s,i.bind(r),n);return o(),c}function oo(t,e){const n=e.split(".");return()=>{let r=t;for(let s=0;s{Rt(r,e,n)});else if(Li(t))for(const r in t)Rt(t[r],e,n);return t}function pt(t,e,n,r){const s=t.dirs,i=e&&e.dirs;for(let o=0;o!!t.type.__asyncLoader,co=t=>t.type.__isKeepAlive;function va(t,e){ao(t,"a",e)}function Ea(t,e){ao(t,"da",e)}function ao(t,e,n=pe){const r=t.__wdc||(t.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return t()});if(Xn(e,r,n),n){let s=n.parent;for(;s&&s.parent;)co(s.parent.vnode)&&_a(r,e,n,s),s=s.parent}}function _a(t,e,n,r){const s=Xn(e,t,r,!0);uo(()=>{Wr(r[e],s)},n)}function Xn(t,e,n=pe,r=!1){if(n){const s=n[t]||(n[t]=[]),i=e.__weh||(e.__weh=(...o)=>{if(n.isUnmounted)return;ut();const c=pn(n),a=Re(e,n,t,o);return c(),lt(),a});return r?s.unshift(i):s.push(i),i}}const Ye=t=>(e,n=pe)=>(!Zn||t==="sp")&&Xn(t,(...r)=>e(...r),n),Ta=Ye("bm"),Sa=Ye("m"),Ia=Ye("bu"),Pa=Ye("u"),Aa=Ye("bum"),uo=Ye("um"),Na=Ye("sp"),Ra=Ye("rtg"),Fa=Ye("rtc");function Ca(t,e=pe){Xn("ec",t,e)}function Kt(t,e,n,r){let s;const i=n;if(L(t)||ee(t)){s=new Array(t.length);for(let o=0,c=t.length;oe(o,c,void 0,i));else{const o=Object.keys(t);s=new Array(o.length);for(let c=0,a=o.length;ct?So(t)?os(t)||t.proxy:Pr(t.parent):null,en=ie(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Pr(t.parent),$root:t=>Pr(t.root),$emit:t=>t.emit,$options:t=>rs(t),$forceUpdate:t=>t.f||(t.f=()=>{t.effect.dirty=!0,ns(t.update)}),$nextTick:t=>t.n||(t.n=ta.bind(t.proxy)),$watch:t=>xa.bind(t)}),pr=(t,e)=>t!==Q&&!t.__isScriptSetup&&M(t,e),La={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:c,appContext:a}=t;let f;if(e[0]!=="$"){const T=o[e];if(T!==void 0)switch(T){case 1:return r[e];case 2:return s[e];case 4:return n[e];case 3:return i[e]}else{if(pr(r,e))return o[e]=1,r[e];if(s!==Q&&M(s,e))return o[e]=2,s[e];if((f=t.propsOptions[0])&&M(f,e))return o[e]=3,i[e];if(n!==Q&&M(n,e))return o[e]=4,n[e];Ar&&(o[e]=0)}}const h=en[e];let p,g;if(h)return e==="$attrs"&&we(t.attrs,"get",""),h(t);if((p=c.__cssModules)&&(p=p[e]))return p;if(n!==Q&&M(n,e))return o[e]=4,n[e];if(g=a.config.globalProperties,M(g,e))return g[e]},set({_:t},e,n){const{data:r,setupState:s,ctx:i}=t;return pr(s,e)?(s[e]=n,!0):r!==Q&&M(r,e)?(r[e]=n,!0):M(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(i[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let c;return!!n[o]||t!==Q&&M(t,o)||pr(e,o)||(c=i[0])&&M(c,o)||M(r,o)||M(en,o)||M(s.config.globalProperties,o)},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:M(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function Fs(t){return L(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}let Ar=!0;function Oa(t){const e=rs(t),n=t.proxy,r=t.ctx;Ar=!1,e.beforeCreate&&Cs(e.beforeCreate,t,"bc");const{data:s,computed:i,methods:o,watch:c,provide:a,inject:f,created:h,beforeMount:p,mounted:g,beforeUpdate:T,updated:I,activated:N,deactivated:Y,beforeDestroy:$,beforeUnmount:j,destroyed:U,unmounted:te,render:Te,renderTracked:D,renderTriggered:He,errorCaptured:Ce,serverPrefetch:ir,expose:ft,inheritAttrs:zt,components:mn,directives:gn,filters:or}=e;if(f&&ka(f,r,null),o)for(const X in o){const z=o[X];O(z)&&(r[X]=z.bind(n))}if(s){const X=s.call(n,n);J(X)&&(t.data=Xr(X))}if(Ar=!0,i)for(const X in i){const z=i[X],ht=O(z)?z.bind(n,n):O(z.get)?z.get.bind(n,n):Se,yn=!O(z)&&O(z.set)?z.set.bind(n):Se,dt=du({get:ht,set:yn});Object.defineProperty(r,X,{enumerable:!0,configurable:!0,get:()=>dt.value,set:Le=>dt.value=Le})}if(c)for(const X in c)lo(c[X],r,n,X);if(a){const X=O(a)?a.call(n):a;Reflect.ownKeys(X).forEach(z=>{Va(z,X[z])})}h&&Cs(h,t,"c");function he(X,z){L(z)?z.forEach(ht=>X(ht.bind(n))):z&&X(z.bind(n))}if(he(Ta,p),he(Sa,g),he(Ia,T),he(Pa,I),he(va,N),he(Ea,Y),he(Ca,Ce),he(Fa,D),he(Ra,He),he(Aa,j),he(uo,te),he(Na,ir),L(ft))if(ft.length){const X=t.exposed||(t.exposed={});ft.forEach(z=>{Object.defineProperty(X,z,{get:()=>n[z],set:ht=>n[z]=ht})})}else t.exposed||(t.exposed={});Te&&t.render===Se&&(t.render=Te),zt!=null&&(t.inheritAttrs=zt),mn&&(t.components=mn),gn&&(t.directives=gn)}function ka(t,e,n=Se){L(t)&&(t=Nr(t));for(const r in t){const s=t[r];let i;J(s)?"default"in s?i=Nn(s.from||r,s.default,!0):i=Nn(s.from||r):i=Nn(s),_e(i)?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):e[r]=i}}function Cs(t,e,n){Re(L(t)?t.map(r=>r.bind(e.proxy)):t.bind(e.proxy),e,n)}function lo(t,e,n,r){const s=r.includes(".")?oo(n,r):()=>n[r];if(ee(t)){const i=e[t];O(i)&&dr(s,i)}else if(O(t))dr(s,t.bind(n));else if(J(t))if(L(t))t.forEach(i=>lo(i,e,n,r));else{const i=O(t.handler)?t.handler.bind(n):e[t.handler];O(i)&&dr(s,i,t)}}function rs(t){const e=t.type,{mixins:n,extends:r}=e,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=t.appContext,c=i.get(e);let a;return c?a=c:!s.length&&!n&&!r?a=e:(a={},s.length&&s.forEach(f=>On(a,f,o,!0)),On(a,e,o)),J(e)&&i.set(e,a),a}function On(t,e,n,r=!1){const{mixins:s,extends:i}=e;i&&On(t,i,n,!0),s&&s.forEach(o=>On(t,o,n,!0));for(const o in e)if(!(r&&o==="expose")){const c=Ma[o]||n&&n[o];t[o]=c?c(t[o],e[o]):e[o]}return t}const Ma={data:Ls,props:Os,emits:Os,methods:Yt,computed:Yt,beforeCreate:de,created:de,beforeMount:de,mounted:de,beforeUpdate:de,updated:de,beforeDestroy:de,beforeUnmount:de,destroyed:de,unmounted:de,activated:de,deactivated:de,errorCaptured:de,serverPrefetch:de,components:Yt,directives:Yt,watch:$a,provide:Ls,inject:Da};function Ls(t,e){return e?t?function(){return ie(O(t)?t.call(this,this):t,O(e)?e.call(this,this):e)}:e:t}function Da(t,e){return Yt(Nr(t),Nr(e))}function Nr(t){if(L(t)){const e={};for(let n=0;n1)return n&&O(e)?e.call(r&&r.proxy):e}}const ho={},po=()=>Object.create(ho),mo=t=>Object.getPrototypeOf(t)===ho;function Ha(t,e,n,r=!1){const s={},i=po();t.propsDefaults=Object.create(null),go(t,e,s,i);for(const o in t.propsOptions[0])o in s||(s[o]=void 0);n?t.props=r?s:Qc(s):t.type.props?t.props=s:t.props=i,t.attrs=i}function Wa(t,e,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=t,c=V(s),[a]=t.propsOptions;let f=!1;if((r||o>0)&&!(o&16)){if(o&8){const h=t.vnode.dynamicProps;for(let p=0;p{a=!0;const[g,T]=yo(p,e,!0);ie(o,g),T&&c.push(...T)};!n&&e.mixins.length&&e.mixins.forEach(h),t.extends&&h(t.extends),t.mixins&&t.mixins.forEach(h)}if(!i&&!a)return J(t)&&r.set(t,Ft),Ft;if(L(i))for(let h=0;h-1,T[1]=N<0||I-1||M(T,"default"))&&c.push(p)}}}const f=[o,c];return J(t)&&r.set(t,f),f}function ks(t){return t[0]!=="$"&&!Jt(t)}function Ms(t){return t===null?"null":typeof t=="function"?t.name||"":typeof t=="object"&&t.constructor&&t.constructor.name||""}function Ds(t,e){return Ms(t)===Ms(e)}function $s(t,e){return L(e)?e.findIndex(n=>Ds(n,t)):O(e)&&Ds(e,t)?0:-1}const wo=t=>t[0]==="_"||t==="$stable",ss=t=>L(t)?t.map(De):[De(t)],za=(t,e,n)=>{if(e._n)return e;const r=ua((...s)=>ss(e(...s)),n);return r._c=!1,r},xo=(t,e,n)=>{const r=t._ctx;for(const s in t){if(wo(s))continue;const i=t[s];if(O(i))e[s]=za(s,i,r);else if(i!=null){const o=ss(i);e[s]=()=>o}}},bo=(t,e)=>{const n=ss(e);t.slots.default=()=>n},ja=(t,e)=>{const n=t.slots=po();if(t.vnode.shapeFlag&32){const r=e._;r?(ie(n,e),ki(n,"_",r,!0)):xo(e,n)}else e&&bo(t,e)},qa=(t,e,n)=>{const{vnode:r,slots:s}=t;let i=!0,o=Q;if(r.shapeFlag&32){const c=e._;c?n&&c===1?i=!1:(ie(s,e),!n&&c===1&&delete s._):(i=!e.$stable,xo(e,s)),o=e}else e&&(bo(t,e),o={default:1});if(i)for(const c in s)!wo(c)&&o[c]==null&&delete s[c]};function Fr(t,e,n,r,s=!1){if(L(t)){t.forEach((g,T)=>Fr(g,e&&(L(e)?e[T]:e),n,r,s));return}if(An(r)&&!s)return;const i=r.shapeFlag&4?os(r.component)||r.component.proxy:r.el,o=s?null:i,{i:c,r:a}=t,f=e&&e.r,h=c.refs===Q?c.refs={}:c.refs,p=c.setupState;if(f!=null&&f!==a&&(ee(f)?(h[f]=null,M(p,f)&&(p[f]=null)):_e(f)&&(f.value=null)),O(a))st(a,c,12,[o,h]);else{const g=ee(a),T=_e(a);if(g||T){const I=()=>{if(t.f){const N=g?M(p,a)?p[a]:h[a]:a.value;s?L(N)&&Wr(N,i):L(N)?N.includes(i)||N.push(i):g?(h[a]=[i],M(p,a)&&(p[a]=h[a])):(a.value=[i],t.k&&(h[t.k]=a.value))}else g?(h[a]=o,M(p,a)&&(p[a]=o)):T&&(a.value=o,t.k&&(h[t.k]=o))};o?(I.id=-1,ge(I,n)):I()}}}const ge=ga;function Ka(t){return Qa(t)}function Qa(t,e){const n=Mi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:c,createComment:a,setText:f,setElementText:h,parentNode:p,nextSibling:g,setScopeId:T=Se,insertStaticContent:I}=t,N=(l,d,m,y=null,w=null,v=null,S=void 0,b=null,_=!!d.dynamicChildren)=>{if(l===d)return;l&&!Qt(l,d)&&(y=wn(l),Le(l,w,v,!0),l=null),d.patchFlag===-2&&(_=!1,d.dynamicChildren=null);const{type:x,ref:P,shapeFlag:R}=d;switch(x){case Jn:Y(l,d,m,y);break;case _t:$(l,d,m,y);break;case gr:l==null&&j(d,m,y,S);break;case ye:mn(l,d,m,y,w,v,S,b,_);break;default:R&1?Te(l,d,m,y,w,v,S,b,_):R&6?gn(l,d,m,y,w,v,S,b,_):(R&64||R&128)&&x.process(l,d,m,y,w,v,S,b,_,jt)}P!=null&&w&&Fr(P,l&&l.ref,v,d||l,!d)},Y=(l,d,m,y)=>{if(l==null)r(d.el=c(d.children),m,y);else{const w=d.el=l.el;d.children!==l.children&&f(w,d.children)}},$=(l,d,m,y)=>{l==null?r(d.el=a(d.children||""),m,y):d.el=l.el},j=(l,d,m,y)=>{[l.el,l.anchor]=I(l.children,d,m,y,l.el,l.anchor)},U=({el:l,anchor:d},m,y)=>{let w;for(;l&&l!==d;)w=g(l),r(l,m,y),l=w;r(d,m,y)},te=({el:l,anchor:d})=>{let m;for(;l&&l!==d;)m=g(l),s(l),l=m;s(d)},Te=(l,d,m,y,w,v,S,b,_)=>{d.type==="svg"?S="svg":d.type==="math"&&(S="mathml"),l==null?D(d,m,y,w,v,S,b,_):ir(l,d,w,v,S,b,_)},D=(l,d,m,y,w,v,S,b)=>{let _,x;const{props:P,shapeFlag:R,transition:A,dirs:C}=l;if(_=l.el=o(l.type,v,P&&P.is,P),R&8?h(_,l.children):R&16&&Ce(l.children,_,null,y,w,mr(l,v),S,b),C&&pt(l,null,y,"created"),He(_,l,l.scopeId,S,y),P){for(const B in P)B!=="value"&&!Jt(B)&&i(_,B,null,P[B],v,l.children,y,w,We);"value"in P&&i(_,"value",null,P.value,v),(x=P.onVnodeBeforeMount)&&Me(x,y,l)}C&&pt(l,null,y,"beforeMount");const k=Ga(w,A);k&&A.beforeEnter(_),r(_,d,m),((x=P&&P.onVnodeMounted)||k||C)&&ge(()=>{x&&Me(x,y,l),k&&A.enter(_),C&&pt(l,null,y,"mounted")},w)},He=(l,d,m,y,w)=>{if(m&&T(l,m),y)for(let v=0;v{for(let x=_;x{const b=d.el=l.el;let{patchFlag:_,dynamicChildren:x,dirs:P}=d;_|=l.patchFlag&16;const R=l.props||Q,A=d.props||Q;let C;if(m&&mt(m,!1),(C=A.onVnodeBeforeUpdate)&&Me(C,m,d,l),P&&pt(d,l,m,"beforeUpdate"),m&&mt(m,!0),x?ft(l.dynamicChildren,x,b,m,y,mr(d,w),v):S||z(l,d,b,null,m,y,mr(d,w),v,!1),_>0){if(_&16)zt(b,d,R,A,m,y,w);else if(_&2&&R.class!==A.class&&i(b,"class",null,A.class,w),_&4&&i(b,"style",R.style,A.style,w),_&8){const k=d.dynamicProps;for(let B=0;B{C&&Me(C,m,d,l),P&&pt(d,l,m,"updated")},y)},ft=(l,d,m,y,w,v,S)=>{for(let b=0;b{if(m!==y){if(m!==Q)for(const b in m)!Jt(b)&&!(b in y)&&i(l,b,m[b],null,S,d.children,w,v,We);for(const b in y){if(Jt(b))continue;const _=y[b],x=m[b];_!==x&&b!=="value"&&i(l,b,x,_,S,d.children,w,v,We)}"value"in y&&i(l,"value",m.value,y.value,S)}},mn=(l,d,m,y,w,v,S,b,_)=>{const x=d.el=l?l.el:c(""),P=d.anchor=l?l.anchor:c("");let{patchFlag:R,dynamicChildren:A,slotScopeIds:C}=d;C&&(b=b?b.concat(C):C),l==null?(r(x,m,y),r(P,m,y),Ce(d.children||[],m,P,w,v,S,b,_)):R>0&&R&64&&A&&l.dynamicChildren?(ft(l.dynamicChildren,A,m,w,v,S,b),(d.key!=null||w&&d===w.subTree)&&vo(l,d,!0)):z(l,d,m,P,w,v,S,b,_)},gn=(l,d,m,y,w,v,S,b,_)=>{d.slotScopeIds=b,l==null?d.shapeFlag&512?w.ctx.activate(d,m,y,S,_):or(d,m,y,w,v,S,_):ds(l,d,_)},or=(l,d,m,y,w,v,S)=>{const b=l.component=cu(l,y,w);if(co(l)&&(b.ctx.renderer=jt),au(b),b.asyncDep){if(w&&w.registerDep(b,he),!l.el){const _=b.subTree=qe(_t);$(null,_,d,m)}}else he(b,l,d,m,w,v,S)},ds=(l,d,m)=>{const y=d.component=l.component;if(ha(l,d,m))if(y.asyncDep&&!y.asyncResolved){X(y,d,m);return}else y.next=d,ra(y.update),y.effect.dirty=!0,y.update();else d.el=l.el,y.vnode=d},he=(l,d,m,y,w,v,S)=>{const b=()=>{if(l.isMounted){let{next:P,bu:R,u:A,parent:C,vnode:k}=l;{const Nt=Eo(l);if(Nt){P&&(P.el=k.el,X(l,P,S)),Nt.asyncDep.then(()=>{l.isUnmounted||b()});return}}let B=P,q;mt(l,!1),P?(P.el=k.el,X(l,P,S)):P=k,R&&ur(R),(q=P.props&&P.props.onVnodeBeforeUpdate)&&Me(q,C,P,k),mt(l,!0);const ne=hr(l),Pe=l.subTree;l.subTree=ne,N(Pe,ne,p(Pe.el),wn(Pe),l,w,v),P.el=ne.el,B===null&&da(l,ne.el),A&&ge(A,w),(q=P.props&&P.props.onVnodeUpdated)&&ge(()=>Me(q,C,P,k),w)}else{let P;const{el:R,props:A}=d,{bm:C,m:k,parent:B}=l,q=An(d);if(mt(l,!1),C&&ur(C),!q&&(P=A&&A.onVnodeBeforeMount)&&Me(P,B,d),mt(l,!0),R&&ys){const ne=()=>{l.subTree=hr(l),ys(R,l.subTree,l,w,null)};q?d.type.__asyncLoader().then(()=>!l.isUnmounted&&ne()):ne()}else{const ne=l.subTree=hr(l);N(null,ne,m,y,l,w,v),d.el=ne.el}if(k&&ge(k,w),!q&&(P=A&&A.onVnodeMounted)){const ne=d;ge(()=>Me(P,B,ne),w)}(d.shapeFlag&256||B&&An(B.vnode)&&B.vnode.shapeFlag&256)&&l.a&&ge(l.a,w),l.isMounted=!0,d=m=y=null}},_=l.effect=new qr(b,Se,()=>ns(x),l.scope),x=l.update=()=>{_.dirty&&_.run()};x.id=l.uid,mt(l,!0),x()},X=(l,d,m)=>{d.component=l;const y=l.vnode.props;l.vnode=d,l.next=null,Wa(l,d.props,y,m),qa(l,d.children,m),ut(),Ns(l),lt()},z=(l,d,m,y,w,v,S,b,_=!1)=>{const x=l&&l.children,P=l?l.shapeFlag:0,R=d.children,{patchFlag:A,shapeFlag:C}=d;if(A>0){if(A&128){yn(x,R,m,y,w,v,S,b,_);return}else if(A&256){ht(x,R,m,y,w,v,S,b,_);return}}C&8?(P&16&&We(x,w,v),R!==x&&h(m,R)):P&16?C&16?yn(x,R,m,y,w,v,S,b,_):We(x,w,v,!0):(P&8&&h(m,""),C&16&&Ce(R,m,y,w,v,S,b,_))},ht=(l,d,m,y,w,v,S,b,_)=>{l=l||Ft,d=d||Ft;const x=l.length,P=d.length,R=Math.min(x,P);let A;for(A=0;AP?We(l,w,v,!0,!1,R):Ce(d,m,y,w,v,S,b,_,R)},yn=(l,d,m,y,w,v,S,b,_)=>{let x=0;const P=d.length;let R=l.length-1,A=P-1;for(;x<=R&&x<=A;){const C=l[x],k=d[x]=_?tt(d[x]):De(d[x]);if(Qt(C,k))N(C,k,m,null,w,v,S,b,_);else break;x++}for(;x<=R&&x<=A;){const C=l[R],k=d[A]=_?tt(d[A]):De(d[A]);if(Qt(C,k))N(C,k,m,null,w,v,S,b,_);else break;R--,A--}if(x>R){if(x<=A){const C=A+1,k=CA)for(;x<=R;)Le(l[x],w,v,!0),x++;else{const C=x,k=x,B=new Map;for(x=k;x<=A;x++){const xe=d[x]=_?tt(d[x]):De(d[x]);xe.key!=null&&B.set(xe.key,x)}let q,ne=0;const Pe=A-k+1;let Nt=!1,ws=0;const qt=new Array(Pe);for(x=0;x=Pe){Le(xe,w,v,!0);continue}let Oe;if(xe.key!=null)Oe=B.get(xe.key);else for(q=k;q<=A;q++)if(qt[q-k]===0&&Qt(xe,d[q])){Oe=q;break}Oe===void 0?Le(xe,w,v,!0):(qt[Oe-k]=x+1,Oe>=ws?ws=Oe:Nt=!0,N(xe,d[Oe],m,null,w,v,S,b,_),ne++)}const xs=Nt?Ya(qt):Ft;for(q=xs.length-1,x=Pe-1;x>=0;x--){const xe=k+x,Oe=d[xe],bs=xe+1{const{el:v,type:S,transition:b,children:_,shapeFlag:x}=l;if(x&6){dt(l.component.subTree,d,m,y);return}if(x&128){l.suspense.move(d,m,y);return}if(x&64){S.move(l,d,m,jt);return}if(S===ye){r(v,d,m);for(let R=0;R<_.length;R++)dt(_[R],d,m,y);r(l.anchor,d,m);return}if(S===gr){U(l,d,m);return}if(y!==2&&x&1&&b)if(y===0)b.beforeEnter(v),r(v,d,m),ge(()=>b.enter(v),w);else{const{leave:R,delayLeave:A,afterLeave:C}=b,k=()=>r(v,d,m),B=()=>{R(v,()=>{k(),C&&C()})};A?A(v,k,B):B()}else r(v,d,m)},Le=(l,d,m,y=!1,w=!1)=>{const{type:v,props:S,ref:b,children:_,dynamicChildren:x,shapeFlag:P,patchFlag:R,dirs:A}=l;if(b!=null&&Fr(b,null,m,l,!0),P&256){d.ctx.deactivate(l);return}const C=P&1&&A,k=!An(l);let B;if(k&&(B=S&&S.onVnodeBeforeUnmount)&&Me(B,d,l),P&6)fc(l.component,m,y);else{if(P&128){l.suspense.unmount(m,y);return}C&&pt(l,null,d,"beforeUnmount"),P&64?l.type.remove(l,d,m,w,jt,y):x&&(v!==ye||R>0&&R&64)?We(x,d,m,!1,!0):(v===ye&&R&384||!w&&P&16)&&We(_,d,m),y&&ps(l)}(k&&(B=S&&S.onVnodeUnmounted)||C)&&ge(()=>{B&&Me(B,d,l),C&&pt(l,null,d,"unmounted")},m)},ps=l=>{const{type:d,el:m,anchor:y,transition:w}=l;if(d===ye){lc(m,y);return}if(d===gr){te(l);return}const v=()=>{s(m),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(l.shapeFlag&1&&w&&!w.persisted){const{leave:S,delayLeave:b}=w,_=()=>S(m,v);b?b(l.el,v,_):_()}else v()},lc=(l,d)=>{let m;for(;l!==d;)m=g(l),s(l),l=m;s(d)},fc=(l,d,m)=>{const{bum:y,scope:w,update:v,subTree:S,um:b}=l;y&&ur(y),w.stop(),v&&(v.active=!1,Le(S,l,d,m)),b&&ge(b,d),ge(()=>{l.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&l.asyncDep&&!l.asyncResolved&&l.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},We=(l,d,m,y=!1,w=!1,v=0)=>{for(let S=v;Sl.shapeFlag&6?wn(l.component.subTree):l.shapeFlag&128?l.suspense.next():g(l.anchor||l.el);let cr=!1;const ms=(l,d,m)=>{l==null?d._vnode&&Le(d._vnode,null,null,!0):N(d._vnode||null,l,d,null,null,null,m),cr||(cr=!0,Ns(),no(),cr=!1),d._vnode=l},jt={p:N,um:Le,m:dt,r:ps,mt:or,mc:Ce,pc:z,pbc:ft,n:wn,o:t};let gs,ys;return{render:ms,hydrate:gs,createApp:Ba(ms,gs)}}function mr({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function mt({effect:t,update:e},n){t.allowRecurse=e.allowRecurse=n}function Ga(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function vo(t,e,n=!1){const r=t.children,s=e.children;if(L(r)&&L(s))for(let i=0;i>1,t[n[c]]0&&(e[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=e[o];return n}function Eo(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Eo(e)}const Xa=t=>t.__isTeleport,ye=Symbol.for("v-fgt"),Jn=Symbol.for("v-txt"),_t=Symbol.for("v-cmt"),gr=Symbol.for("v-stc"),nn=[];let Ne=null;function me(t=!1){nn.push(Ne=t?null:[])}function Ja(){nn.pop(),Ne=nn[nn.length-1]||null}let an=1;function Us(t){an+=t}function _o(t){return t.dynamicChildren=an>0?Ne||Ft:null,Ja(),an>0&&Ne&&Ne.push(t),t}function be(t,e,n,r,s,i){return _o(Z(t,e,n,r,s,i,!0))}function Za(t,e,n,r,s){return _o(qe(t,e,n,r,s,!0))}function eu(t){return t?t.__v_isVNode===!0:!1}function Qt(t,e){return t.type===e.type&&t.key===e.key}const To=({key:t})=>t??null,Rn=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?ee(t)||_e(t)||O(t)?{i:Ue,r:t,k:e,f:!!n}:t:null);function Z(t,e=null,n=null,r=0,s=null,i=t===ye?0:1,o=!1,c=!1){const a={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&To(e),ref:e&&Rn(e),scopeId:Yn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ue};return c?(is(a,n),i&128&&t.normalize(a)):n&&(a.shapeFlag|=ee(n)?8:16),an>0&&!o&&Ne&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&Ne.push(a),a}const qe=tu;function tu(t,e=null,n=null,r=0,s=null,i=!1){if((!t||t===pa)&&(t=_t),eu(t)){const c=Dt(t,e,!0);return n&&is(c,n),an>0&&!i&&Ne&&(c.shapeFlag&6?Ne[Ne.indexOf(t)]=c:Ne.push(c)),c.patchFlag|=-2,c}if(hu(t)&&(t=t.__vccOpts),e){e=nu(e);let{class:c,style:a}=e;c&&!ee(c)&&(e.class=Lt(c)),J(a)&&(Xi(a)&&!L(a)&&(a=ie({},a)),e.style=jr(a))}const o=ee(t)?1:ma(t)?128:Xa(t)?64:J(t)?4:O(t)?2:0;return Z(t,e,n,r,s,o,i,!0)}function nu(t){return t?Xi(t)||mo(t)?ie({},t):t:null}function Dt(t,e,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:c,transition:a}=t,f=e?su(s||{},e):s,h={__v_isVNode:!0,__v_skip:!0,type:t.type,props:f,key:f&&To(f),ref:e&&e.ref?n&&i?L(i)?i.concat(Rn(e)):[i,Rn(e)]:Rn(e):i,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:c,target:t.target,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==ye?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:a,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Dt(t.ssContent),ssFallback:t.ssFallback&&Dt(t.ssFallback),el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return a&&r&&(h.transition=a.clone(h)),h}function ru(t=" ",e=0){return qe(Jn,null,t,e)}function Bs(t="",e=!1){return e?(me(),Za(_t,null,t)):qe(_t,null,t)}function De(t){return t==null||typeof t=="boolean"?qe(_t):L(t)?qe(ye,null,t.slice()):typeof t=="object"?tt(t):qe(Jn,null,String(t))}function tt(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Dt(t)}function is(t,e){let n=0;const{shapeFlag:r}=t;if(e==null)e=null;else if(L(e))n=16;else if(typeof e=="object")if(r&65){const s=e.default;s&&(s._c&&(s._d=!1),is(t,s()),s._c&&(s._d=!0));return}else{n=32;const s=e._;!s&&!mo(e)?e._ctx=Ue:s===3&&Ue&&(Ue.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else O(e)?(e={default:e,_ctx:Ue},n=32):(e=String(e),r&64?(n=16,e=[ru(e)]):n=8);t.children=e,t.shapeFlag|=n}function su(...t){const e={};for(let n=0;n{let s;return(s=t[n])||(s=t[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};kn=e("__VUE_INSTANCE_SETTERS__",n=>pe=n),Cr=e("__VUE_SSR_SETTERS__",n=>Zn=n)}const pn=t=>{const e=pe;return kn(t),t.scope.on(),()=>{t.scope.off(),kn(e)}},Vs=()=>{pe&&pe.scope.off(),kn(null)};function So(t){return t.vnode.shapeFlag&4}let Zn=!1;function au(t,e=!1){e&&Cr(e);const{props:n,children:r}=t.vnode,s=So(t);Ha(t,n,s,e),ja(t,r);const i=s?uu(t,e):void 0;return e&&Cr(!1),i}function uu(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,La);const{setup:r}=n;if(r){const s=t.setupContext=r.length>1?fu(t):null,i=pn(t);ut();const o=st(r,t,0,[t.props,s]);if(lt(),i(),Fi(o)){if(o.then(Vs,Vs),e)return o.then(c=>{Hs(t,c,e)}).catch(c=>{Qn(c,t,0)});t.asyncDep=o}else Hs(t,o,e)}else Io(t,e)}function Hs(t,e,n){O(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:J(e)&&(t.setupState=Zi(e)),Io(t,n)}let Ws;function Io(t,e,n){const r=t.type;if(!t.render){if(!e&&Ws&&!r.render){const s=r.template||rs(t).template;if(s){const{isCustomElement:i,compilerOptions:o}=t.appContext.config,{delimiters:c,compilerOptions:a}=r,f=ie(ie({isCustomElement:i,delimiters:c},o),a);r.render=Ws(s,f)}}t.render=r.render||Se}{const s=pn(t);ut();try{Oa(t)}finally{lt(),s()}}}const lu={get(t,e){return we(t,"get",""),t[e]}};function fu(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,lu),slots:t.slots,emit:t.emit,expose:e}}function os(t){if(t.exposed)return t.exposeProxy||(t.exposeProxy=new Proxy(Zi(Gc(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in en)return en[n](t)},has(e,n){return n in e||n in en}}))}function hu(t){return O(t)&&"__vccOpts"in t}const du=(t,e)=>Yc(t,e,Zn),pu="3.4.27";/** +* @vue/runtime-dom v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const mu="http://www.w3.org/2000/svg",gu="http://www.w3.org/1998/Math/MathML",nt=typeof document<"u"?document:null,zs=nt&&nt.createElement("template"),yu={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,r)=>{const s=e==="svg"?nt.createElementNS(mu,t):e==="mathml"?nt.createElementNS(gu,t):nt.createElement(t,n?{is:n}:void 0);return t==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:t=>nt.createTextNode(t),createComment:t=>nt.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>nt.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,r,s,i){const o=n?n.previousSibling:e.lastChild;if(s&&(s===i||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{zs.innerHTML=r==="svg"?`${t}`:r==="mathml"?`${t}`:t;const c=zs.content;if(r==="svg"||r==="mathml"){const a=c.firstChild;for(;a.firstChild;)c.appendChild(a.firstChild);c.removeChild(a)}e.insertBefore(c,n)}return[o?o.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},wu=Symbol("_vtc");function xu(t,e,n){const r=t[wu];r&&(e=(e?[e,...r]:[...r]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const js=Symbol("_vod"),bu=Symbol("_vsh"),vu=Symbol(""),Eu=/(^|;)\s*display\s*:/;function _u(t,e,n){const r=t.style,s=ee(n);let i=!1;if(n&&!s){if(e)if(ee(e))for(const o of e.split(";")){const c=o.slice(0,o.indexOf(":")).trim();n[c]==null&&Fn(r,c,"")}else for(const o in e)n[o]==null&&Fn(r,o,"");for(const o in n)o==="display"&&(i=!0),Fn(r,o,n[o])}else if(s){if(e!==n){const o=r[vu];o&&(n+=";"+o),r.cssText=n,i=Eu.test(n)}}else e&&t.removeAttribute("style");js in t&&(t[js]=i?r.display:"",t[bu]&&(r.display="none"))}const qs=/\s*!important$/;function Fn(t,e,n){if(L(n))n.forEach(r=>Fn(t,e,r));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const r=Tu(t,e);qs.test(n)?t.setProperty(Ht(r),n.replace(qs,""),"important"):t[r]=n}}const Ks=["Webkit","Moz","ms"],yr={};function Tu(t,e){const n=yr[e];if(n)return n;let r=Mt(e);if(r!=="filter"&&r in t)return yr[e]=r;r=Oi(r);for(let s=0;swr||(Fu.then(()=>wr=0),wr=Date.now());function Lu(t,e){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Re(Ou(r,n.value),e,5,[r])};return n.value=t,n.attached=Cu(),n}function Ou(t,e){if(L(e)){const n=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{n.call(t),t._stopped=!0},e.map(r=>s=>!s._stopped&&r&&r(s))}else return e}const Xs=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,ku=(t,e,n,r,s,i,o,c,a)=>{const f=s==="svg";e==="class"?xu(t,r,f):e==="style"?_u(t,n,r):zn(e)?Hr(e)||Nu(t,e,n,r,o):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Mu(t,e,r,f))?Iu(t,e,r,i,o,c,a):(e==="true-value"?t._trueValue=r:e==="false-value"&&(t._falseValue=r),Su(t,e,r,f))};function Mu(t,e,n,r){if(r)return!!(e==="innerHTML"||e==="textContent"||e in t&&Xs(e)&&O(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=t.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Xs(e)&&ee(n)?!1:e in t}const Du=ie({patchProp:ku},yu);let Js;function $u(){return Js||(Js=Ka(Du))}const Uu=(...t)=>{const e=$u().createApp(...t),{mount:n}=e;return e.mount=r=>{const s=Vu(r);if(!s)return;const i=e._component;!O(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.innerHTML="";const o=n(s,!1,Bu(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},e};function Bu(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Vu(t){return ee(t)?document.querySelector(t):t}function fe(t){return t&&t.__esModule?t:{default:t}}function Po(t){Object.getOwnPropertyDescriptor(Symbol,t)||Object.defineProperty(Symbol,t,{value:Symbol(`@shigen/polyfill-symbol-dispose:Symbol.${t}`),configurable:!1,enumerable:!1,writable:!1})}Po("dispose");Po("asyncDispose");function At(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Hu=Ao;function Ao(t,e){if(!t)throw new Error(e||"Assertion failed")}Ao.equal=function(e,n,r){if(e!=n)throw new Error(r||"Assertion failed: "+e+" != "+n)};const er=At(Hu),Wu=fe(er).default;function No(t,e){e??(e=t.reduce((s,{byteLength:i})=>s+i,0));const n=new Uint8Array(e);let r=0;for(const s of t)n.set(s,r),r+=s.byteLength;return Wu.equal(r,e),n}const zu=globalThis.console,Mn=globalThis.crypto;!Mn.subtle&&!globalThis.isSecureContext&&Object.defineProperty(Mn,"subtle",{configurable:!0,get(){zu.error("NDNts depends on Web Crypto but it is unavailable because this webpage is not delivered securely, see https://mdn.io/SecureContext")}});function ju(t,e){return e instanceof t?e:e instanceof ArrayBuffer?new t(e):new t(e.buffer,e.byteOffset,e.byteLength)}function Ke(t){return ju(DataView,t)}async function Lr(t){const e=await Mn.subtle.digest("SHA-256",t);return new Uint8Array(e)}const qu=fe(er).default;function Ku(t){const e={},n=t.addEventListener;return qu(n),Object.defineProperty(t,"addEventListener",{configurable:!0,value(...r){e[r[0]]=!0,n.call(this,...r)}}),e}var tr={},nr={};Object.defineProperty(nr,"__esModule",{value:!0});class Qu{constructor(){this.pullQueue=[],this.pushQueue=[],this.eventHandlers={},this.isPaused=!1,this.isStopped=!1}push(e){if(this.isStopped)return;const n={value:e,done:!1};if(this.pullQueue.length){const r=this.pullQueue.shift();r&&r.resolve(n)}else this.pushQueue.push(Promise.resolve(n)),this.highWaterMark!==void 0&&this.pushQueue.length>=this.highWaterMark&&!this.isPaused&&(this.isPaused=!0,this.eventHandlers.highWater?this.eventHandlers.highWater():console&&console.warn(`EventIterator queue reached ${this.pushQueue.length} items`))}stop(){if(!this.isStopped){this.isStopped=!0,this.remove();for(const e of this.pullQueue)e.resolve({value:void 0,done:!0});this.pullQueue.length=0}}fail(e){if(!this.isStopped)if(this.isStopped=!0,this.remove(),this.pullQueue.length){for(const n of this.pullQueue)n.reject(e);this.pullQueue.length=0}else{const n=Promise.reject(e);n.catch(()=>{}),this.pushQueue.push(n)}}remove(){Promise.resolve().then(()=>{this.removeCallback&&this.removeCallback()})}[Symbol.asyncIterator](){return{next:e=>{const n=this.pushQueue.shift();return n?(this.lowWaterMark!==void 0&&this.pushQueue.length<=this.lowWaterMark&&this.isPaused&&(this.isPaused=!1,this.eventHandlers.lowWater&&this.eventHandlers.lowWater()),n):this.isStopped?Promise.resolve({value:void 0,done:!0}):new Promise((r,s)=>{this.pullQueue.push({resolve:r,reject:s})})},return:()=>(this.isStopped=!0,this.pushQueue.length=0,this.remove(),Promise.resolve({value:void 0,done:!0}))}}}let Ro=class{constructor(e,{highWaterMark:n=100,lowWaterMark:r=1}={}){const s=new Qu;s.highWaterMark=n,s.lowWaterMark=r,s.removeCallback=e({push:i=>s.push(i),stop:()=>s.stop(),fail:i=>s.fail(i),on:(i,o)=>{s.eventHandlers[i]=o}})||(()=>{}),this[Symbol.asyncIterator]=()=>s[Symbol.asyncIterator](),Object.freeze(this)}};nr.EventIterator=Ro;nr.default=Ro;Object.defineProperty(tr,"__esModule",{value:!0});const cs=nr;tr.EventIterator=cs.EventIterator;function Gu(t,e,n){return new cs.EventIterator(({push:r})=>(this.addEventListener(t,r,e),()=>this.removeEventListener(t,r,e)),n)}tr.subscribe=Gu;var Fo=tr.default=cs.EventIterator;const Yu=fe(Fo).default,Co=fe(er).default;function Tt(){let t;const n=new Yu(r=>{t=r},{highWaterMark:1/0})[Symbol.asyncIterator]();return Co(!!t),{[Symbol.asyncIterator]:()=>n,push:t.push,stop:t.stop,fail:t.fail}}async function*Lo(t,e){try{yield*t}catch{}}async function*Zs(t,e){for await(const n of e)yield*t(n)}function Xu(t,e){Co(t>=0);for(const n of e.keys()){if(e.size<=t)break;e.delete(n)}}class as{constructor(e){u(this,"keyOf");u(this,"m",new Map);this.keyOf=e}get size(){return this.m.size}has(e){return this.m.has(this.keyOf(e))}get(e){var n;return(n=this.m.get(this.keyOf(e)))==null?void 0:n[1]}set(e,n){return this.m.set(this.keyOf(e),[e,n]),this}delete(e){return this.m.delete(this.keyOf(e))}[Symbol.iterator](){return this.m.values()}}class Oo{constructor(e){u(this,"m");u(this,"size_",0);this.m=new as(e)}get dimension(){return this.m.size}get size(){return this.size_}count(e){var n;return((n=this.m.get(e))==null?void 0:n.size)??0}list(e){return this.m.get(e)??new Set}add(e,n){let r=this.m.get(e);r||(r=new Set,this.m.set(e,r));const s=r.size;return r.add(n),this.size_+=r.size-s,r.size}remove(e,n){const r=this.m.get(e);if(!r)return 0;const s=r.size;return r.delete(n),this.size_+=r.size-s,r.size===0&&this.m.delete(e),r.size}associations(){return this.m[Symbol.iterator]()}*[Symbol.iterator](){for(const[e,n]of this.associations())for(const r of n)yield[e,r]}}class Ju extends Oo{constructor(){super(e=>e)}}class Zu{constructor(e){u(this,"m");u(this,"size_",0);this.m=new as(e)}get dimension(){return this.m.size}get size(){return this.size_}count(e){return this.m.get(e)??0}add(e){const n=this.count(e)+1;return this.m.set(e,n),++this.size_,n}remove(e){let n=this.count(e);return n===0||(--this.size_,--n,n===0?this.m.delete(e):this.m.set(e,n)),n}multiplicities(){return this.m[Symbol.iterator]()}}function bt(t,e,n,r){const[s=0,i=Number.MAX_SAFE_INTEGER]=r===void 0?[0,n]:[n,r];if(!(Number.isInteger(t)&&t>=s&&t<=i))throw new RangeError(`${t} is not an integer or out of ${e} valid range`);return t}class el{constructor(e=0){u(this,"next");u(this,"buffer",new Map);this.next=e}get size(){return this.buffer.size}get empty(){return this.buffer.size===0}push(e,n){e>=this.next&&this.buffer.set(e,n)}shift(){const e=[];for(;this.buffer.has(this.next);)e.push(this.buffer.get(this.next)),this.buffer.delete(this.next),++this.next;return e}}const us={};for(let t=0;t<=255;++t)us[t]=t.toString(16).padStart(2,"0").toUpperCase();const un={};for(let t=0;t<=15;++t){const e=t.toString(16);un[e.toLowerCase()]=t,un[e.toUpperCase()]=t}function ot(t){let e="";for(const n of t)e+=us[n];return e}(function(t){t.TABLE=us})(ot||(ot={}));function ln(t){const e=new Uint8Array(t.length/2);for(let n=0;ne;const n=1-t,r=2*t;return()=>e*(n+r*Math.random())}const oe=fe(er).default;function*sl(t,e){const n=[""];let r="";for(const i of t.comps)r+=ot(i.tlv),n.push(r);let s;for(;(s=n.pop())!==void 0;){const i=e(s);i!==void 0&&(yield i)}}const E={Name:7,GenericNameComponent:8,ImplicitSha256DigestComponent:1,ParametersSha256DigestComponent:2,Interest:5,CanBePrefix:33,MustBeFresh:18,ForwardingHint:30,Nonce:10,InterestLifetime:12,HopLimit:34,AppParameters:36,ISigInfo:44,ISigValue:46,Data:6,MetaInfo:20,ContentType:24,FreshnessPeriod:25,FinalBlock:26,Content:21,DSigInfo:22,DSigValue:23,SigType:27,KeyLocator:28,KeyDigest:29,SigNonce:38,SigTime:40,SigSeqNum:42,ValidityPeriod:253,NotBefore:254,NotAfter:255,Nack:800,NackReason:801},Mo={Sha256:0,Sha256WithRsa:1,Sha256WithEcdsa:3,HmacWithSha256:4,Ed25519:5,Null:200},il={Congestion:50,Duplicate:100,NoRoute:150};class Do{constructor(e){u(this,"n");this.n=e}encodeTo(e){e.prependRoom(1)[0]=this.n}}class $o{constructor(e){u(this,"n");this.n=e}encodeTo(e){Ke(e.prependRoom(2)).setUint16(0,this.n)}}class Uo{constructor(e){u(this,"n");this.n=e}encodeTo(e){Ke(e.prependRoom(4)).setUint32(0,this.n)}}class Bo{constructor(e){u(this,"n");this.n=e}encodeTo(e){const n=Ke(e.prependRoom(8));n.setUint32(0,this.n/4294967296),n.setUint32(4,this.n)}}class ei{constructor(e){u(this,"n");this.n=e}encodeTo(e){Ke(e.prependRoom(8)).setBigUint64(0,this.n)}}function ti(t){switch(t.byteLength){case 1:return t.getUint8(0);case 2:return t.getUint16(0);case 4:return t.getUint32(0)}throw new Error("incorrect TLV-LENGTH of NNI")}const Vo={1:Do,2:$o,4:Uo,8:Bo};function G(t,{len:e,unsafe:n=!1}={}){if(e)return e===8&&typeof t=="bigint"?new ei(t):new Vo[e](Number(t));if(typeof t=="bigint")switch(!0){case t<0x100000000n:{t=Number(t);break}case t<=0xffffffffffffffffn:return new ei(t);default:throw new RangeError("NNI is too large")}switch(!0){case t<0:throw new RangeError("NNI cannot be negative");case t<256:return new Do(t);case t<65536:return new $o(t);case t<4294967296:return new Uo(t);case t<=(n?18446744073709552e3:Number.MAX_SAFE_INTEGER):return new Bo(t);default:throw new RangeError("NNI is too large")}}(function(t){function e(r){return!!Vo[r]}t.isValidLength=e;function n(r,{len:s,big:i=!1,unsafe:o=!1}={}){if(s&&r.byteLength!==s)throw new Error(`incorrect TLV-LENGTH of NNI${s}`);const c=Ke(r);if(i)return c.byteLength===8?c.getBigUint64(0):BigInt(ti(c));if(c.byteLength===8){const a=c.getUint32(0)*4294967296+c.getUint32(4);if(!o&&!Number.isSafeInteger(a))throw new RangeError(`NNI is too large ${ot(r)}`);return a}return ti(c)}t.decode=n})(G||(G={}));class ol{constructor(e,n,r,s,i){u(this,"type");u(this,"buf");u(this,"offsetT");u(this,"offsetV");u(this,"offsetE");this.type=e,this.buf=n,this.offsetT=r,this.offsetV=s,this.offsetE=i}get length(){return this.offsetE-this.offsetV}get value(){return this.buf.subarray(this.offsetV,this.offsetE)}get tlv(){return this.buf.subarray(this.offsetT,this.offsetE)}get size(){return this.offsetE-this.offsetT}get decoder(){return new Qe(this.tlv)}get vd(){return new Qe(this.value)}get nni(){return G.decode(this.value)}get nniBig(){return G.decode(this.value,{big:!0})}get text(){return ko(this.value)}get before(){return this.buf.subarray(0,this.offsetT)}get after(){return this.buf.subarray(this.offsetE)}}class Qe{constructor(e){u(this,"input");u(this,"dv");u(this,"offset",0);this.input=e,this.dv=Ke(e)}get eof(){return this.offset>=this.input.length}throwUnlessEof(){if(!this.eof)throw new Error("junk after end of TLV")}read(){const e=this.offset,n=this.readVarNum(),r=this.readVarNum(),s=this.offset;if(r===void 0||(this.offset+=r)>this.input.length)throw new Error(`TLV at offset ${e} is incomplete`);return new ol(n,this.input,e,s,this.offset)}decode(e){return e.decodeFrom(this)}readVarNum(){if(!this.eof)switch(this.input[this.offset]){case 253:return this.offset+=3,this.offset>this.input.length?void 0:this.dv.getUint16(this.offset-2);case 254:return this.offset+=5,this.offset>this.input.length?void 0:this.dv.getUint32(this.offset-4);case 255:return;default:return this.offset+=1,this.input[this.offset-1]}}}(function(t){function e(n,r){const s=new t(n),i=r.decodeFrom(s);return s.throwUnlessEof(),i}t.decode=e})(Qe||(Qe={}));function ni(t){if(t<253)return 1;if(t<=65535)return 3;if(t<=4294967295)return 5;throw new Error("VAR-NUMBER is too large")}function ri(t,e,n,r){r<253?t[n++]=r:r<=65535?(t[n++]=253,e.setUint16(n,r)):(t[n++]=254,e.setUint32(n,r))}class H{constructor(e=2048){u(this,"buf");u(this,"off");this.buf=new ArrayBuffer(e),this.off=e}get size(){return this.buf.byteLength-this.off}get output(){return new Uint8Array(this.buf,this.off)}prependRoom(e){return this.off=0;--n)this.encode(e[n])}prependTlv(e,n,...r){const s=n===H.OmitEmpty;s||r.unshift(n);const i=this.size;this.prependValue(...r);const o=this.size-i;(o>0||!s)&&this.prependTypeLength(e,o)}encode(e){e instanceof Uint8Array?this.prependRoom(e.length).set(e):typeof(e==null?void 0:e.encodeTo)=="function"?e.encodeTo(this):Array.isArray(e)?typeof e[0]=="number"?this.prependTlv(...e):this.prependValue(...e):oe(e===void 0||e===!1,"obj is not Encodable")}grow(e){const n=2048+e,r=new ArrayBuffer(n+this.size);new Uint8Array(r,n).set(this.output),this.buf=r,this.off=n}}(function(t){t.OmitEmpty=Symbol("@ndn/tlv#OmitEmpty");function e(r,s){const i=new t(s);return i.encode(r),i.output}t.encode=e;function n(r,s){return{encodeTo(i){const o=i.size;i.encode(r),s(i.output.subarray(0,i.size-o))}}}t.extract=n})(H||(H={}));function Xt(t){const e=t.toString(16).toUpperCase();return t<253?`0x${e.padStart(2,"0")}`:t<=65535?`0x${e.padStart(4,"0")}`:`0x${e.padStart(8,"0")}`}const si=100;function cl(t){return(e,{decoder:n})=>{t.decode(e,n)}}function al(t){return t<=31||t%2===1}class ce{constructor(e,n=[]){u(this,"typeName");u(this,"topTT");u(this,"rules",new Map);u(this,"requiredTT",new Set);u(this,"nextOrder",si);u(this,"isCritical",al);u(this,"unknownHandler");u(this,"beforeObservers",[]);u(this,"afterObservers",[]);this.typeName=e,this.topTT=Array.isArray(n)?n:[n]}applyDefaultsToRuleOptions({order:e=this.nextOrder+=si,required:n=!1,repeat:r=!1}={}){return{order:e,required:n,repeat:r}}add(e,n,r={}){const s=this.applyDefaultsToRuleOptions(r);return oe(!this.rules.has(e),"duplicate rule for same TLV-TYPE"),this.rules.set(e,{...s,cb:n instanceof ce?cl(n):n}),s.required&&this.requiredTT.add(e),this}setIsCritical(e){return this.isCritical=e,this}setUnknown(e){return this.unknownHandler=e,this}decode(e,n){const r=n.read();if(this.topTT.length>0&&!this.topTT.includes(r.type))throw new Error(`TLV-TYPE ${Xt(r.type)} is not ${this.typeName}`);return this.decodeV(e,r.vd,r)}decodeValue(e,n){return this.decodeV(e,n)}decodeV(e,n,r){var c;for(const a of this.beforeObservers)a(e,r);let s=0;const i=new Set,o=new Set(this.requiredTT);for(;!n.eof;){const a=n.read(),f=a.type,h=this.rules.get(f);if(!h){(c=this.unknownHandler)!=null&&c.call(this,e,a,s)||this.handleUnrecognized(f,"unknown");continue}if(s>h.order){this.handleUnrecognized(f,"out of order");continue}if(s=h.order,!h.repeat&&i.has(f))throw new Error(`TLV-TYPE ${Xt(f)} cannot repeat in ${this.typeName}`);i.add(f),o.delete(f),h.cb(e,a)}if(o.size>0)throw new Error(`TLV-TYPE ${Array.from(o,Xt).join(",")} missing in ${this.typeName}`);for(const a of this.afterObservers)a(e,r);return e}handleUnrecognized(e,n){if(this.isCritical(e))throw new Error(`TLV-TYPE ${Xt(e)} is ${n} in ${this.typeName}`)}}(function(t){t.neverCritical=()=>!1,t.alwaysCritical=()=>!0})(ce||(ce={}));function Be(t){if(typeof t!="function")throw new Error("mnemonist/DefaultWeakMap.constructor: expecting a function.");this.items=new WeakMap,this.factory=t}Be.prototype.clear=function(){this.items=new WeakMap};Be.prototype.get=function(t){var e=this.items.get(t);return typeof e>"u"&&(e=this.factory(t),this.items.set(t,e)),e};Be.prototype.peek=function(t){return this.items.get(t)};Be.prototype.set=function(t,e){return this.items.set(t,e),this};Be.prototype.has=function(t){return this.items.has(t)};Be.prototype.delete=function(t){return this.items.delete(t)};Be.prototype.inspect=function(){return this.items};typeof Symbol<"u"&&(Be.prototype[Symbol.for("nodejs.util.inspect.custom")]=Be.prototype.inspect);var ul=Be;const Ho=At(ul);function ll(t,e,n,r,s){const i={...r,...s?s.applyDefaultsToRuleOptions(r):{order:t,required:!1,repeat:!1}};s.add(t,i.repeat?(c,a)=>c[e].push(n.decode(a)):(c,a)=>c[e]=n.decode(a),i);const{asString:o=c=>`${c}`}=n;return i.repeat?{...i,tt:t,key:e,newValue:()=>[],*encode(c){for(const a of c)yield n.encode(a)},*asString(c){if(c.length===0)return;let a=` ${e}=[`;for(const f of c)yield`${a}${o(f)}`,a=", ";yield"]"}}:{...i,tt:t,key:e,newValue:i.required?n.newValue:()=>{},*encode(c){c!==void 0&&(yield n.encode(c))},asString:function*(c){c!==void 0&&(yield` ${e}=${o(c)}`)}}}function fl(t){t.sort(({order:e},{order:n})=>e-n)}function hl(t,e){const n=[];for(const{tt:r,key:s,encode:i}of t)for(const o of i(e[s]))n.push([r,o]);return n}const dl=fe(Ho).default,vt=new dl(()=>({}));var fn;(function(t){t.TAG=Symbol("@ndn/tlv#Extensible");function e(r,s){const i=vt.peek(s);i!==void 0&&vt.set(r,i)}t.cloneRecord=e;function n(r,s){for(const[i,o]of Object.entries(s))Object.defineProperty(r.prototype,i,{enumerable:!0,get(){return rn.get(this,o)},set(c){c===void 0?rn.clear(this,o):rn.set(this,o,c)}})}t.defineGettersSetters=n})(fn||(fn={}));var rn;(function(t){function e(s,i){var o;return(o=vt.peek(s))==null?void 0:o[`ext_${i}`]}t.get=e;function n(s,i,o){vt.get(s)[`ext_${i}`]=o}t.set=n;function r(s,i){var o;(o=vt.peek(s))==null||delete o[`ext_${i}`]}t.clear=r})(rn||(rn={}));class pl{constructor(){u(this,"hasUnrecognized",!1);u(this,"evd",new ce("ExtensionRegistry").setUnknown(()=>(this.hasUnrecognized=!0,!1)).setIsCritical(ce.neverCritical));u(this,"fields",[]);u(this,"register",(e,n,r={})=>{r.order??(r.order=e),this.fields.push(ll(e,`ext_${e}`,n,r,this.evd)),fl(this.fields)});u(this,"decodeUnknown",(e,n)=>{const r=vt.get(e);return this.hasUnrecognized=!1,this.evd.decodeValue(r,n.decoder),!this.hasUnrecognized})}encode(e){const n=vt.peek(e);return n?hl(this.fields,n):[]}}var ml=function(t,e){if(typeof t.compare=="function")return t.compare(e);if(t===e)return 0;for(var n=t.length,r=e.length,s=0,i=Math.min(n,r);s=1)try{n=ii(Number.parseInt(e,10)),r=s+1}catch{}const i=e.length-r,o=new H(ci+i),c=o.prependRoom(i);let a=0,f=!1;for(let h=r;h=3&&(a-=3),new se(n,ai,o,a)}get length(){return this.value.length}get text(){return ko(this.value)}toString(){let e=`${this.type}=`,n=!1;for(const r of this.value)n||(n=r!==oi),e+=Wo[r];return n||(e+="..."),e}encodeTo(e){e.encode(this.tlv)}is(e){return e.match(this)}as(e){return oe(e.match(this),"component does not follow convention"),e.parse(this)}compare(e){return e=se.from(e),2*Math.sign(this.type-e.type||this.length-e.length||yl(this.value,e.value))}equals(e){return this.compare(e)===se.CompareResult.EQUAL}}(function(t){(function(e){e[e.LT=-2]="LT",e[e.EQUAL=0]="EQUAL",e[e.GT=2]="GT"})(t.CompareResult||(t.CompareResult={}))})(se||(se={}));const Sn=32;class zo{constructor(e,n){u(this,"tt");u(this,"altUriPrefix");u(this,"altUriRegex");this.tt=e,this.altUriPrefix=n,this.altUriRegex=new RegExp(`^${n}=([0-9a-fA-F]{${2*Sn}})$`)}match(e){return e.type===this.tt&&e.length===Sn}create(e){if(e.length!==Sn)throw new Error(`digest length must be ${Sn}`);return new se(this.tt,e)}parse(e){return e.value}toAltUri(e){return`${this.altUriPrefix}=${ot(e.value).toLowerCase()}`}fromAltUri(e){const n=this.altUriRegex.exec(e);if(n)return new se(this.tt,ln(n[1]))}}class xl extends zo{strip(e){var n;return(n=e.get(-1))!=null&&n.is(this)?e.getPrefix(-1):e}}const ui=new xl(E.ImplicitSha256DigestComponent,"sha256digest");class li extends se{}class bl extends zo{constructor(){super(...arguments);u(this,"PLACEHOLDER",new li(this.tt,"placeholder"))}isPlaceholder(n){return n instanceof li}findIn(n,r=!0){return n.comps.findIndex(s=>this.match(s)||r&&this.isPlaceholder(s))}}const ze=new bl(E.ParametersSha256DigestComponent,"params-sha256");class F{constructor(e,n=se.from){u(this,"comps",[]);u(this,"valueEncoderBufSize");u(this,"value_");u(this,"uri_");u(this,"hex_");if(e===void 0)this.valueEncoderBufSize=0;else if(e instanceof F)this.comps=e.comps,this.value_=e.value_,this.uri_=e.uri_,this.hex_=e.hex_;else if(typeof e=="string"){for(const r of e.replace(/^(?:ndn:)?\/*/,"").split("/"))r!==""&&this.comps.push(n(r));this.valueEncoderBufSize=e.length+4*this.comps.length}else if(Array.isArray(e))this.comps=Array.from(e,se.from);else if(e instanceof Uint8Array){this.value_=e;const r=new Qe(this.value_);for(;!r.eof;)this.comps.push(r.decode(se))}}static decodeFrom(e){const{value:n}=e.read();return new F(n)}static from(e){return e instanceof F?e:new F(e)}get length(){return this.comps.length}get value(){return this.value_??(this.value_=H.encode(this.comps,this.valueEncoderBufSize??256)),this.value_}get valueHex(){return this.hex_??(this.hex_=ot(this.value)),this.hex_}get(e){return e=e<0?e+this.length:e,this.comps[e]}at(e){const n=this.get(e);if(!n)throw new RangeError(`component ${e} out of range`);return n}toString(){return this.uri_??(this.uri_=`/${this.comps.map(e=>e.toString()).join("/")}`),this.uri_}slice(e,n){return new F(this.comps.slice(e,n))}getPrefix(e){return this.slice(0,e)}append(...e){let n;return e.length===2&&typeof e[0].create=="function"?n=[e[0].create(e[1])]:n=e,new F([...this.comps,...n])}replaceAt(e,n){const r=[...this.comps];return r.splice(e,1,n),new F(r)}compare(e){e=F.from(e);const n=Math.min(this.length,e.length),r=this.comparePrefix(e,n);return r!==F.CompareResult.EQUAL?r:this.length>n?F.CompareResult.RPREFIX:e.length>n?F.CompareResult.LPREFIX:F.CompareResult.EQUAL}equals(e){return e=F.from(e),this.hex_!==void 0&&e.hex_!==void 0?this.hex_===e.hex_:this.length===e.length&&this.comparePrefix(e,this.length)===F.CompareResult.EQUAL}isPrefixOf(e){return e=F.from(e),this.length<=e.length&&this.comparePrefix(e,this.length)===F.CompareResult.EQUAL}comparePrefix(e,n){for(let r=0;rt.push(e.decode(F)),{repeat:!0});class $t{constructor(e){u(this,"delegations",[]);if(Array.isArray(e))for(const n of e)this.delegations.push(F.from(n));else e instanceof $t?this.delegations=[...e.delegations]:F.isNameLike(e)&&(this.delegations=[F.from(e)])}static decodeValue(e){const n=new $t;return _l.decodeValue(n.delegations,e),n}encodeTo(e){e.prependTlv(E.ForwardingHint,H.OmitEmpty,...this.delegations)}}const K=Symbol("@ndn/packet#FIELDS");function jo(t,e){for(const[n,r]of Object.entries(e))Object.defineProperty(t.prototype,n,{enumerable:!0,get(){return this[K][n]},set(s){const i=this[K];i[n]=s;for(const o of r)i[o]=void 0}})}const Tl=new ce("KeyLocator",E.KeyLocator).add(E.Name,(t,{value:e})=>t.name=new F(e)).add(E.KeyDigest,(t,{value:e})=>t.digest=e);class Ge{constructor(...e){u(this,"name");u(this,"digest");for(const n of e)if(F.isNameLike(n))this.name=F.from(n);else if(n instanceof Uint8Array)this.digest=n;else if(n instanceof Ge)Object.assign(this,n);else throw new Error("unknown KeyLocator constructor argument")}static decodeFrom(e){return Tl.decode(new Ge,e)}encodeTo(e){e.prependTlv(E.KeyLocator,H.OmitEmpty,this.name,[E.KeyDigest,H.OmitEmpty,this.digest])}}(function(t){function e(r){return r instanceof t||F.isNameLike(r)||r instanceof Uint8Array}t.isCtorArg=e;function n(r){const s=r==null?void 0:r.name;if(!s)throw new Error("KeyLocator does not have name");return s}t.mustGetName=n})(Ge||(Ge={}));const Sl=/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})$/;function hi(t){const e=Sl.exec(t);if(!e)throw new Error("invalid ISO8601 compact timestamp");const[n,r,s,i,o,c]=e.slice(1).map(a=>Number.parseInt(a,10));return Date.UTC(n,r-1,s,i,o,c)}function In(t){const e=new Date(t),n=(r,s=2,i=0)=>(i+e[`getUTC${r}`]()).toString().padStart(s,"0");return`${n("FullYear",4)}${n("Month",2,1)}${n("Date")}T${n("Hours")}${n("Minutes")}${n("Seconds")}`}const Il=new ce("ValidityPeriod",E.ValidityPeriod).add(E.NotBefore,(t,{text:e})=>t.notBefore=hi(e),{required:!0}).add(E.NotAfter,(t,{text:e})=>t.notAfter=hi(e),{required:!0});class St{constructor(e=0,n=0){u(this,"notBefore");u(this,"notAfter");this.notBefore=Number(e),this.notAfter=Number(n)}static decodeFrom(e){return Il.decode(new St,e)}encodeTo(e){return e.prependTlv(E.ValidityPeriod,[E.NotBefore,Or(In(this.notBefore))],[E.NotAfter,Or(In(this.notAfter))])}includes(e){return e=Number(e),this.notBefore<=e&&e<=this.notAfter}equals({notBefore:e,notAfter:n}){return this.notBefore===e&&this.notAfter===n}intersect(...e){return new St(Math.max(this.notBefore,...e.map(({notBefore:n})=>n)),Math.min(this.notAfter,...e.map(({notAfter:n})=>n)))}toString(){return`${In(this.notBefore)}-${In(this.notAfter)}`}}(function(t){t.MAX=new t(5401098e5,253402300799e3);function e(s){const i=Date.now(),o=new Date(i);return o.setUTCDate(o.getUTCDate()+s),new t(i,o)}t.daysFromNow=e;function n(s){return s.validity}t.get=n;function r(s,i){s.validity=i}t.set=r})(St||(St={}));const kr=new pl,Pl=new ce("SigInfo",[E.ISigInfo,E.DSigInfo]).add(E.SigType,(t,{nni:e})=>t.type=e,{required:!0}).add(E.KeyLocator,(t,{decoder:e})=>t.keyLocator=e.decode(Ge)).add(E.SigNonce,(t,{value:e})=>t.nonce=e).add(E.SigTime,(t,{nni:e})=>t.time=e).add(E.SigSeqNum,(t,{nniBig:e})=>t.seqNum=e).add(E.ValidityPeriod,(t,{decoder:e})=>t.validity=e.decode(St)).setUnknown(kr.decodeUnknown);var Ch;const Wn=class Wn{constructor(...e){u(this,"type",Mo.Null);u(this,"keyLocator");u(this,"nonce");u(this,"time");u(this,"seqNum");u(this,"validity");u(this,Ch,kr);const n=[];for(const r of e)if(typeof r=="number")this.type=r;else if(Ge.isCtorArg(r))n.push(r);else if(r instanceof Wn)Object.assign(this,r),fn.cloneRecord(this,r);else if(r instanceof St)this.validity=r;else if(r[sn])r[sn](this);else throw new Error("unknown SigInfo constructor argument");n.length>0&&(this.keyLocator=new Ge(...n))}static decodeFrom(e){return Pl.decode(new Wn,e)}encodeAs(e){return{encodeTo:n=>this.encodeTo(n,e)}}encodeTo(e,n){e.prependTlv(n,[E.SigType,G(this.type)],this.keyLocator,[E.SigNonce,H.OmitEmpty,this.nonce],this.time!==void 0&&[E.SigTime,G(this.time)],this.seqNum!==void 0&&[E.SigSeqNum,G(this.seqNum)],this.validity,...kr.encode(this))}};Ch=fn.TAG;let ct=Wn;const sn=Symbol("@ndn/packet#SigInfo.ctorAssign");(function(t){function e(i){return{[sn](o){o.nonce=i instanceof Uint8Array?i:n(i)}}}t.Nonce=e;function n(i=8){return oe(i>=1),Mn.getRandomValues(new Uint8Array(i))}t.generateNonce=n;function r(i=Date.now()){return{[sn](o){o.time=i}}}t.Time=r;function s(i){return{[sn](o){o.seqNum=i}}}t.SeqNum=s})(ct||(ct={}));var Dn;(function(t){t.OP=Symbol("@ndn/packet#LLSign.OP")})(Dn||(Dn={}));var $n;(function(t){t.OP=Symbol("@ndn/packet#LLVerify.OP")})($n||($n={}));var di;(function(t){function e(r,s,i){return r.sigInfo??(r.sigInfo=new ct),s!==void 0&&(r.sigInfo.type=s),i===!1?r.sigInfo.keyLocator=void 0:i!==void 0&&(r.sigInfo.keyLocator=new Ge(i)),r.sigInfo}t.putSigInfo=e;function n(r){return{async sign(s){(!s.sigInfo||s.sigInfo.type===Mo.Null)&&await r.sign(s)}}}t.onlyIfUnsigned=n})(di||(di={}));var pi;(function(t){function e(r,s){var i;oe(((i=r.sigInfo)==null?void 0:i.type)===s,`packet does not have SigType ${s}`)}t.checkSigType=e;function n(r){oe(r,"bad signature value")}t.throwOnBadSig=n})(pi||(pi={}));const Mr=255;let Al=class{constructor(...e){u(this,"name",new F);u(this,"canBePrefix",!1);u(this,"mustBeFresh",!1);u(this,"fwHint");u(this,"nonce_");u(this,"lifetime_",W.DefaultLifetime);u(this,"hopLimit_",Mr);u(this,"appParameters");u(this,"sigInfo");u(this,"sigValue",new Uint8Array);u(this,"paramsPortion");u(this,"signedPortion");for(const n of e)if(F.isNameLike(n))this.name=F.from(n);else if(n instanceof $t)this.fwHint=new $t(n);else if(n instanceof Uint8Array)this.appParameters=n;else if(n instanceof W)Object.assign(this,n[K]);else if(n[yt])n[yt](this);else throw new Error("unknown Interest constructor argument")}get nonce(){return this.nonce_}set nonce(e){this.nonce_=e&&bt(e,"Nonce",4294967295)}get lifetime(){return this.lifetime_}set lifetime(e){this.lifetime_=bt(Math.trunc(e),"InterestLifetime")}get hopLimit(){return this.hopLimit_}set hopLimit(e){this.hopLimit_=bt(e,"HopLimit",Mr)}};const Nl=new ce("Interest",E.Interest).add(E.Name,(t,{decoder:e})=>t.name=e.decode(F),{required:!0}).add(E.CanBePrefix,t=>t.canBePrefix=!0).add(E.MustBeFresh,t=>t.mustBeFresh=!0).add(E.ForwardingHint,(t,{vd:e})=>t.fwHint=$t.decodeValue(e)).add(E.Nonce,(t,{value:e})=>t.nonce=G.decode(e,{len:4})).add(E.InterestLifetime,(t,{nni:e})=>t.lifetime=e).add(E.HopLimit,(t,{value:e})=>t.hopLimit=G.decode(e,{len:1})).add(E.AppParameters,(t,{value:e,tlv:n,after:r})=>{if(ze.findIn(t.name,!1)<0)throw new Error("ParamsDigest missing in parameterized Interest");t.appParameters=e,oe(n.buffer===r.buffer),t.paramsPortion=new Uint8Array(n.buffer,n.byteOffset,n.byteLength+r.byteLength)}).add(E.ISigInfo,(t,{decoder:e})=>t.sigInfo=e.decode(ct)).add(E.ISigValue,(t,{value:e,tlv:n})=>{var i;if(!((i=t.name.get(-1))!=null&&i.is(ze)))throw new Error("ParamsDigest missing or out of place in signed Interest");if(!t.paramsPortion)throw new Error("AppParameters missing in signed Interest");if(!t.sigInfo)throw new Error("ISigInfo missing in signed Interest");oe(n.buffer===t.paramsPortion.buffer),t.sigValue=e;const r=t.name.value.subarray(0,-t.name.get(-1).tlv.byteLength),s=new Uint8Array(n.buffer,t.paramsPortion.byteOffset,n.byteOffset-t.paramsPortion.byteOffset);t.signedPortion=new Uint8Array(r.byteLength+s.byteLength),t.signedPortion.set(r,0),t.signedPortion.set(s,r.byteLength)});var Lh;class W{constructor(...e){u(this,Lh);this[K]=new Al(...e)}static decodeFrom(e){const n=new W;return Nl.decode(n[K],e),n}encodeTo(e){const{name:n,canBePrefix:r,mustBeFresh:s,fwHint:i,nonce:o,lifetime:c,hopLimit:a,appParameters:f}=this[K];if(n.length===0)throw new Error("invalid empty Interest name");if(f&&ze.findIn(n,!1)<0)throw new Error("ParamsDigest missing");e.prependTlv(E.Interest,n,r&&[E.CanBePrefix],s&&[E.MustBeFresh],i,[E.Nonce,G(o??W.generateNonce(),{len:4})],c!==W.DefaultLifetime&&[E.InterestLifetime,G(c)],a!==Mr&&[E.HopLimit,G(a,{len:1})],...this.encodeParamsPortion())}encodeParamsPortion(){const{appParameters:e,sigInfo:n,sigValue:r}=this[K];if(!e)return[];const s=[[E.AppParameters,e]];return n&&s.push(n.encodeAs(E.ISigInfo),[E.ISigValue,r]),s}appendParamsDigestPlaceholder(){const e=this[K];return this.name=e.name.append(ze.PLACEHOLDER),e.name.length-1}async updateParamsDigest(){const e=this[K];let n=ze.findIn(e.name);n<0&&(n=this.appendParamsDigestPlaceholder()),e.appParameters??(e.appParameters=new Uint8Array),e.paramsPortion=H.encode(this.encodeParamsPortion());const r=await Lr(e.paramsPortion);e.name=e.name.replaceAt(n,ze.create(r))}async validateParamsDigest(e=!1){const{appParameters:n,paramsPortion:r,name:s}=this[K];if(!n){if(e)throw new Error("AppParameters is missing");return}if(!r)throw new Error("parameters portion is empty");const i=s.at(ze.findIn(s,!1)),o=await Lr(r);if(!i.equals(ze.create(o)))throw new Error("incorrect ParamsDigest")}async[(Lh=K,Dn.OP)](e){var s;const n=this[K];let r=ze.findIn(n.name);if(r<0)r=this.appendParamsDigestPlaceholder();else if(r!==n.name.length-1)throw new Error("ParamsDigest out of place for signed Interest");return n.signedPortion=H.encode([...n.name.getPrefix(-1).comps,[E.AppParameters,n.appParameters],(s=n.sigInfo)==null?void 0:s.encodeAs(E.ISigInfo)]),this.sigValue=await e(n.signedPortion),this.updateParamsDigest()}async[$n.OP](e){const{signedPortion:n,sigValue:r}=this[K];if(await this.validateParamsDigest(),!n)throw new Error("SignedPortion is missing");await e(n,r)}}jo(W,{name:["signedPortion"],canBePrefix:[],mustBeFresh:[],fwHint:[],nonce:[],lifetime:[],hopLimit:[],appParameters:["paramsPortion","signedPortion"],sigInfo:["paramsPortion","signedPortion"],sigValue:["paramsPortion"]});const yt=Symbol("@ndn/packet#Interest.ctorAssign"),Rl=["canBePrefix","mustBeFresh","fwHint","lifetime","hopLimit"];(function(t){function e(){return Math.trunc(Math.random()*4294967296)}t.generateNonce=e,t.DefaultLifetime=4e3,t.CanBePrefix={[yt](o){o.canBePrefix=!0}},t.MustBeFresh={[yt](o){o.mustBeFresh=!0}};function n(o=e()){return{[yt](c){c.nonce=o}}}t.Nonce=n;function r(o){return{[yt](c){c.lifetime=o}}}t.Lifetime=r;function s(o){return{[yt](c){c.hopLimit=o}}}t.HopLimit=s;function i(o=()=>{}){if(typeof o=="function")return o;const c={};for(const a of Rl)o[a]!==void 0&&(c[a]=o[a]);return a=>{Object.assign(a,c)}}t.makeModifyFunc=i})(W||(W={}));class Fl{constructor(...e){u(this,"name",new F);u(this,"contentType_",0);u(this,"freshnessPeriod_",0);u(this,"finalBlockId");u(this,"content",new Uint8Array);u(this,"sigInfo",new ct);u(this,"sigValue",new Uint8Array);u(this,"signedPortion");u(this,"topTlv");u(this,"topTlvDigest");let n=!1;for(const r of e)if(F.isNameLike(r))this.name=F.from(r);else if(r instanceof Uint8Array)this.content=r;else if(r===Fe.FinalBlock)n=!0;else if(r instanceof Fe)Object.assign(this,r[K]);else if(r[Un])r[Un](this);else throw new Error("unknown Data constructor argument");this.isFinalBlock=n}get contentType(){return this.contentType_}set contentType(e){this.contentType_=bt(e,"ContentType")}get freshnessPeriod(){return this.freshnessPeriod_}set freshnessPeriod(e){this.freshnessPeriod_=bt(Math.trunc(e),"FreshnessPeriod")}get isFinalBlock(){return!!this.finalBlockId&&this.name.length>0&&this.finalBlockId.equals(this.name.get(-1))}set isFinalBlock(e){if(!e){this.finalBlockId=void 0;return}if(this.name.length===0)throw new Error("cannot set FinalBlockId when Name is empty");this.finalBlockId=this.name.get(-1)}}const qo=new ce("Data",E.Data).add(E.Name,(t,{decoder:e})=>t.name=e.decode(F),{required:!0}).add(E.MetaInfo,new ce("MetaInfo").add(E.ContentType,(t,{nni:e})=>t.contentType=e).add(E.FreshnessPeriod,(t,{nni:e})=>t.freshnessPeriod=e).add(E.FinalBlock,(t,{vd:e})=>t.finalBlockId=e.decode(se))).add(E.Content,(t,{value:e})=>t.content=e).add(E.DSigInfo,(t,{decoder:e})=>t.sigInfo=e.decode(ct),{required:!0}).add(E.DSigValue,(t,{value:e,before:n})=>{t.sigValue=e,t.signedPortion=n},{required:!0});qo.beforeObservers.push((t,e)=>t.topTlv=e.tlv);var Oh;class Fe{constructor(...e){u(this,Oh);this[K]=new Fl(...e)}static decodeFrom(e){const n=new Fe;return qo.decode(n[K],e),n}encodeTo(e){const n=this[K];if(n.topTlv){e.encode(n.topTlv);return}e.encode(H.extract([E.Data,H.extract(this.encodeSignedPortion(),r=>n.signedPortion=r),[E.DSigValue,n.sigValue]],r=>n.topTlv=r))}encodeSignedPortion(){const{name:e,contentType:n,freshnessPeriod:r,finalBlockId:s,content:i,sigInfo:o}=this[K];return[e,[E.MetaInfo,H.OmitEmpty,n>0&&[E.ContentType,G(n)],r>0&&[E.FreshnessPeriod,G(r)],s&&[E.FinalBlock,s]],i.length>0&&[E.Content,i],o.encodeAs(E.DSigInfo)]}getImplicitDigest(){return this[K].topTlvDigest}async computeImplicitDigest(){let e=this.getImplicitDigest();if(!e){const n=this[K];n.topTlv||H.encode(this),e=await Lr(n.topTlv),n.topTlvDigest=e}return e}getFullName(){const e=this.getImplicitDigest();if(e)return this[K].name.append(ui,e)}async computeFullName(){return await this.computeImplicitDigest(),this.getFullName()}async canSatisfy(e,{isCacheLookup:n=!1}={}){if(n&&e.mustBeFresh&&this.freshnessPeriod<=0)return!1;if(e.canBePrefix?e.name.isPrefixOf(this.name):e.name.equals(this.name))return!0;if(e.name.length===this.name.length+1&&e.name.get(-1).is(ui)){const r=this.getFullName();return r?e.name.equals(r):e.name.equals(await this.computeFullName())}return!1}async[(Oh=K,Dn.OP)](e){const n=H.encode(this.encodeSignedPortion());this[K].signedPortion=n,this.sigValue=await e(n)}async[$n.OP](e){const{signedPortion:n,sigValue:r}=this[K];if(!r)throw new Error("SigValue is missing");if(!n)throw new Error("SignedPortion is missing");await e(n,r)}}const Ze=["topTlv","topTlvDigest","signedPortion"];jo(Fe,{name:Ze,contentType:Ze,freshnessPeriod:Ze,finalBlockId:Ze,isFinalBlock:Ze,content:Ze,sigInfo:Ze,sigValue:Ze.slice(0,2)});const Un=Symbol("@ndn/packet#Data.ctorAssign");(function(t){function e(r){return{[Un](s){return s.contentType=r}}}t.ContentType=e;function n(r){return{[Un](s){return s.freshnessPeriod=r}}}t.FreshnessPeriod=n,t.FinalBlock=Symbol("@ndn/packet#Data.FinalBlock")})(Fe||(Fe={}));const Cl=new ce("NackHeader",E.Nack).add(E.NackReason,(t,{nni:e})=>t.reason=e);class rr{constructor(e=0){u(this,"reason_",0);this.reason=e}get reason(){return this.reason_}set reason(e){this.reason_=bt(e,"NackReason")}static decodeFrom(e){return Cl.decode(new rr,e)}encodeTo(e){e.prependTlv(E.Nack,this.reason_>0&&[E.NackReason,G(this.reason_)])}}class Bn{constructor(e,n=il.NoRoute){u(this,"interest");u(this,"header");this.interest=e,typeof n=="number"?this.header=new rr(n):this.header=n}get reason(){return this.header.reason}set reason(e){this.header.reason=e}}var It;(function(t){function e(r,s,i){return{l3:r,token:s,congestionMark:i}}t.create=e;function n({reject:r,cancel:s}){return!r&&!s}t.isEncodable=n})(It||(It={}));class mi{constructor(e,n,r){u(this,"reject");u(this,"l3");u(this,"token");this.reject=e,this.l3=n,this.token=r}}class Ko{constructor(e,n){u(this,"l3");u(this,"token");u(this,"cancel",!0);this.l3=e,this.token=n}}var sr=class extends EventTarget{dispatchTypedEvent(e,n){return super.dispatchEvent(n)}};function Qo(t){if(typeof t.next=="function")return t;if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();throw new TypeError('"values" does not to conform to any of the iterator or iterable protocols')}function Ll(){let t,e;return{promise:new Promise((r,s)=>{e=r,t=s}),reject:t,resolve:e}}function Ol(t,e){const n=Qo(e),r=[],s=[];let i=!1,o=!1;function c(){for(;s.length>0&&r.length>0;){const p=s.shift(),{error:g,value:T}=r.shift();g?p.reject(g):p.resolve({done:!1,value:T})}for(;s.length>0&&o;){const{resolve:p}=s.shift();p({done:!0,value:void 0})}}async function a(){if(!o&&!i&&!(r.length>=t)){i=!0;try{const{done:p,value:g}=await n.next();p?o=!0:r.push({value:g})}catch(p){o=!0,r.push({error:p})}c(),i=!1,a()}}async function f(){if(r.length>0){const{error:g,value:T}=r.shift();if(g)throw g;return a(),{done:!1,value:T}}if(o)return{done:!0,value:void 0};const p=Ll();return s.push(p),a(),p.promise}const h={next:f,[Symbol.asyncIterator]:()=>h};return h}function*kl(t,e){const n=[];let r;try{for(const s of e)n.push(s),!(n.length<=t)&&(yield n.shift())}catch(s){r=s}for(const s of n)yield s;if(r)throw r}function Dr(t,e){return e===void 0?n=>Dr(t,n):t===0?e:e[Symbol.asyncIterator]?Ol(t,e):kl(t,e)}async function Ml(t){const e=[];for await(const n of t)e.push(n);return e}function Dl(t){return t[Symbol.asyncIterator]?Ml(t):Array.from(t)}async function $l(t){for await(const e of t);}function Ul(t){if(t[Symbol.asyncIterator])return $l(t);for(const e of t);}async function*gi(t,e){for await(const n of e)await t(n)&&(yield n)}function kt(t,e){return e===void 0?n=>gi(t,n):gi(t,e)}async function*Go(t){for await(const e of t)e&&typeof e!="string"&&(e[Symbol.iterator]||e[Symbol.asyncIterator])?yield*Go(e):yield e}async function*yi(t,e){for await(const n of e)yield await t(n)}function Ut(t,e){return e===void 0?n=>yi(t,n):yi(t,e)}function Yo(t,e){return e===void 0?n=>Yo(t,n):kt(n=>n!=null,Go(Ut(t,e)))}function hn(t,...e){let n=t();for(const r of e)n=r(n);return n}async function*Bl(t,e,n){let r=null;const s=a=>({value:e(a)}),i=async function*(a){for await(const f of a){if(r)return;yield f}},o=hn(()=>n,Dr(1),i,Ut(s),Dr(t-1)),c=Qo(o);for(;;){const{value:a,done:f}=await c.next();if(f)break;try{const h=await a.value;r||(yield h)}catch(h){r=h}}if(r)throw r}function $r(t,e,n){return e===void 0?(r,s)=>$r(t,r,s):n===void 0?r=>$r(t,e,r):Bl(t,e,n)}async function Vl(t,e,n){let r=e;for await(const s of n)r=await t(r,s);return r}function Xo(t,e,n){return n===void 0?r=>Xo(t,e,r):Vl(t,e,n)}async function*Hl(t,e){for await(const n of e)await t(n),yield n}function Ur(t,e){return n=>Hl(t,n)}async function wi(t,e){let n=null,r=null,s=null;const i=f=>{n=f,r&&r(f)},o=()=>{s&&s()},c=()=>{t.removeListener("error",i),t.removeListener("drain",o)};t.once("error",i);const a=()=>new Promise((f,h)=>{if(n)return h(n);t.once("drain",o),s=f,r=h});for await(const f of e)if(t.write(f)===!1&&await a(),n)break;if(c(),n)throw n}function Wl(t,e){return e===void 0?n=>wi(t,n):wi(t,e)}function zl(t){return e=>{const n=t;if(typeof n.duplex=="function")return n.duplex(e);const r=t;return r.tx(e),r.rx}}function xi(t,e){switch(typeof e){case"number":return t.getPrefix(e);case"boolean":return e?t:void 0}return F.from(e)}class jl extends sr{constructor(n,r,s){var i,o;super();u(this,"fw");u(this,"rxtx");u(this,"attributes");u(this,"routes",new fi);u(this,"announcements",new fi);u(this,"running",!0);u(this,"txQueue",Tt());u(this,"handleLowerUp",()=>{this.dispatchTypedEvent("up",new Event("up"))});u(this,"handleLowerDown",()=>{this.dispatchTypedEvent("down",new Event("down"))});u(this,"rxLoop",async n=>{for await(const r of kt(()=>this.running,n))switch(!0){case r.l3 instanceof W:{this.fw[r.cancel?"cancelInterest":"processInterest"](this,r);break}case r.l3 instanceof Fe:{this.fw.processData(this,r);break}case r.l3 instanceof Bn:{this.fw.processNack(this,r);break}}this.close()});this.fw=n,this.rxtx=r,this.attributes={local:!1,advertiseFrom:!0,routeCapture:!0,...r.attributes,...s},n.dispatchTypedEvent("faceadd",new Ee.FaceEvent("faceadd",this)),n.faces.add(this),hn(()=>this.txLoop(),Ur(c=>n.dispatchPacketEvent("pkttx",this,c)),zl(r),Ur(c=>n.dispatchPacketEvent("pktrx",this,c)),this.rxLoop),(i=r.addEventListener)==null||i.call(r,"up",this.handleLowerUp),(o=r.addEventListener)==null||o.call(r,"down",this.handleLowerDown)}close(){var n,r,s,i;if(this.running){this.running=!1,(r=(n=this.rxtx).removeEventListener)==null||r.call(n,"up",this.handleLowerUp),(i=(s=this.rxtx).removeEventListener)==null||i.call(s,"down",this.handleLowerDown),this.fw.faces.delete(this);for(const[o]of this.routes.multiplicities())this.fw.fib.delete(this,o.valueHex);for(const[o]of this.announcements.multiplicities())this.fw.readvertise.removeAnnouncement(this,o);this.txQueue.fail(new Error("close")),this.dispatchTypedEvent("close",new Event("close")),this.fw.dispatchTypedEvent("facerm",new Ee.FaceEvent("facerm",this))}}toString(){return this.attributes.describe??"FwFace"}hasRoute(n){const r=F.from(n);return this.routes.count(r)>0}addRoute(n,r=!0){const s=F.from(n);this.fw.dispatchTypedEvent("prefixadd",new Ee.PrefixEvent("prefixadd",this,s)),this.routes.add(s)===1&&this.fw.fib.insert(this,s.valueHex,this.attributes.routeCapture);const i=xi(s,r);i&&this.addAnnouncement(i)}removeRoute(n,r=!0){const s=F.from(n),i=xi(s,r);i&&this.removeAnnouncement(i),this.routes.remove(s)===0&&this.fw.fib.delete(this,s.valueHex),this.fw.dispatchTypedEvent("prefixrm",new Ee.PrefixEvent("prefixrm",this,s))}addAnnouncement(n){if(!this.attributes.advertiseFrom)return;const r=F.from(n);this.announcements.add(r)===1&&this.fw.readvertise.addAnnouncement(this,r)}removeAnnouncement(n){if(!this.attributes.advertiseFrom)return;const r=F.from(n);this.announcements.remove(r)===0&&this.fw.readvertise.removeAnnouncement(this,r)}send(n){this.running&&this.txQueue.push(n)}txLoop(){return Lo(this.txQueue)}}function ae(t){if(typeof t!="function")throw new Error("mnemonist/DefaultMap.constructor: expecting a function.");this.items=new Map,this.factory=t,this.size=0}ae.prototype.clear=function(){this.items.clear(),this.size=0};ae.prototype.get=function(t){var e=this.items.get(t);return typeof e>"u"&&(e=this.factory(t,this.size),this.items.set(t,e),this.size++),e};ae.prototype.peek=function(t){return this.items.get(t)};ae.prototype.set=function(t,e){return this.items.set(t,e),this.size=this.items.size,this};ae.prototype.has=function(t){return this.items.has(t)};ae.prototype.delete=function(t){var e=this.items.delete(t);return this.size=this.items.size,e};ae.prototype.forEach=function(t,e){e=arguments.length>1?e:this,this.items.forEach(t,e)};ae.prototype.entries=function(){return this.items.entries()};ae.prototype.keys=function(){return this.items.keys()};ae.prototype.values=function(){return this.items.values()};typeof Symbol<"u"&&(ae.prototype[Symbol.iterator]=ae.prototype.entries);ae.prototype.inspect=function(){return this.items};typeof Symbol<"u"&&(ae.prototype[Symbol.for("nodejs.util.inspect.custom")]=ae.prototype.inspect);ae.autoIncrement=function(){var t=0;return function(){return t++}};var ql=ae;const Jo=At(ql),Kl=fe(Jo).default;class Ql{constructor(){u(this,"nexthops",new Map)}}class Gl{constructor(){u(this,"table",new Kl(()=>new Ql))}insert(e,n,r){const s=this.table.get(n);oe(!s.nexthops.has(e)),s.nexthops.set(e,r)}delete(e,n){const r=this.table.peek(n);oe(!!r),r.nexthops.delete(e),r.nexthops.size===0&&this.table.delete(n)}lookup(e){const n=new Set;for(const r of sl(e,s=>this.table.peek(s))){let s=!1;for(const[i,o]of r.nexthops)n.add(i),s||(s=o);if(s)break}return n}}var bi=function(t){return 1e3*t[0]+t[1]/1e6},Gt=function(t){return Number(t.toFixed(2))},xr=function(t,e){var n=function(){return Gt(e())};return n.startedAt=function(){return t},n.seconds=n.s=function(){return Gt(e()/1e3)},n.milliseconds=n.ms=function(){return Gt(e())},n.microseconds=n.us=function(){return Gt(1e3*e())},n.nanoseconds=n.ns=function(){return Gt(1e6*e())},n},fs=typeof process<"u"&&process.hrtime?function(){var t=process.hrtime();return xr(bi(t),function(){return bi(process.hrtime(t))})}:typeof window<"u"&&window.performance?function(){var t=window.performance.now();return xr(t,function(){return window.performance.now()-t})}:function(){var t=Date.now();return xr(t,function(){return Date.now()-t})};const Yl=fe(Jo).default,Pn=fs();class Xl{constructor(e,n,r){u(this,"pit");u(this,"key");u(this,"interest");u(this,"token");u(this,"dnRecords",new Yl(()=>({nRx:0,expire:0,nonce:0,token:void 0})));u(this,"lastExpire",0);u(this,"expireTimer");u(this,"expire",()=>{this.pit.eraseEntry(this);for(const[e,{token:n}]of this.dnRecords)e.send(new mi("expire",this.interest,n))});this.pit=e,this.key=n,this.interest=new W(r)}receiveInterest(e,{l3:n,token:r}){const s=Pn(),i=s+n.lifetime,o=n.nonce??W.generateNonce(),c=this.dnRecords.get(e);++c.nRx,c.expire=i,c.nonce=o,c.token=r,this.updateExpire(s)}cancelInterest(e){const n=this.dnRecords.peek(e);n&&(this.dnRecords.delete(e),this.updateExpire(),e.send(new mi("cancel",this.interest,n.token)))}forwardInterest(e){const n=this.lastExpire-Pn();n<=0||(this.interest.lifetime=n,e.send(It.create(this.interest,this.token)))}*returnData(e){clearTimeout(this.expireTimer),this.pit.eraseEntry(this);const n=Pn();for(const[r,{expire:s,token:i}]of this.dnRecords)s>n&&r!==e&&(yield{dn:r,token:i})}updateExpire(e=Pn()){let n=0;for(const{expire:r}of this.dnRecords.values())n=Math.max(n,r);n<=e&&(n=0),this.lastExpire!==n&&(this.lastExpire=n,clearTimeout(this.expireTimer),this.lastExpire===0?this.expire():(this.pit.insertEntry(this),this.expireTimer=setTimeout(this.expire,this.lastExpire-e)))}}class Jl{constructor(e){u(this,"dataNoTokenMatch");u(this,"byName",new Map);u(this,"byToken",new Map);u(this,"lastToken",0);this.dataNoTokenMatch=e}generateToken(){do--this.lastToken,this.lastToken<=0&&(this.lastToken=4294967295);while(this.byToken.has(this.lastToken));return this.lastToken}insertEntry(e){this.byName.set(e.key,e),e.token??(e.token=this.generateToken()),this.byToken.set(e.token,e)}eraseEntry(e){this.byName.delete(e.key),this.byToken.delete(e.token)}close(){for(const e of this.byName.values())clearTimeout(e.expireTimer)}lookup({l3:e},n=!0){const r=`${e.name.valueHex} ${e.canBePrefix?"+":"-"}${e.mustBeFresh?"+":"-"}`;let s=this.byName.get(r);return!s&&n&&(s=new Xl(this,r,e)),s}async satisfy(e,{l3:n,token:r}){return await hn(()=>this.findPotentialMatches(n,r),kt(({interest:i})=>n.canSatisfy(i)),Yo(i=>i.returnData(e)),Ur(({dn:i,token:o})=>i.send(It.create(n,o))),Xo(i=>i+1,0))>0}*findPotentialMatches(e,n){if(typeof n=="number"){const s=this.byToken.get(n);s&&(yield s);return}if(!this.dataNoTokenMatch)return;let r=[" ++"," +-"," -+"," --"];for(let s=e.name;s.length>0;s=s.getPrefix(-1)){const i=s.valueHex;for(const o of r){const c=this.byName.get(i+o);c&&(yield c)}r=[" ++"," +-"]}}}var Zo={};function Ie(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}var Zl=Ie;Ie.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};Ie.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};Ie.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0};Ie.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};Ie.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};Ie.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};Ie.prototype.start=Ie.prototype.try;Ie.prototype.errors=function(){return this._errors};Ie.prototype.attempts=function(){return this._attempts};Ie.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,n=0,r=0;r=n&&(e=s,n=o)}return e};(function(t){var e=Zl;t.operation=function(n){var r=t.timeouts(n);return new e(r,{forever:n&&(n.forever||n.retries===1/0),unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},t.timeouts=function(n){if(n instanceof Array)return[].concat(n);var r={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var s in n)r[s]=n[s];if(r.minTimeout>r.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var i=[],o=0;o1)){this.fw.dispatchTypedEvent("annadd",new Ee.AnnouncementEvent("annadd",n));for(const r of this.destinations)r.advertise(n)}}removeAnnouncement(e,n){if(!(this.announcements.remove(n,e)>0)){this.fw.dispatchTypedEvent("annrm",new Ee.AnnouncementEvent("annrm",n));for(const r of this.destinations)r.withdraw(n)}}close(){for(const e of this.destinations)e.disable()}}class ve{constructor(e={forever:!0,minTimeout:5e3,maxTimeout:6e4,randomize:!0}){u(this,"retryOptions");u(this,"readvertise");u(this,"table",new vl);u(this,"queue",Tt());u(this,"closed",!1);this.retryOptions=e}enable(e){this.readvertise=e.readvertise,this.readvertise.destinations.add(this);for(const[n]of this.readvertise.announcements.associations())this.advertise(n);this.process()}disable(){var e;(e=this.readvertise)==null||e.destinations.delete(this),this.readvertise=void 0;for(const[n,r]of this.table)this.queue.push(n),r.status=ve.Status.WITHDRAWING;this.queue.stop(),this.closed=!0}advertise(e){let n=this.table.get(e);n||(n={status:ve.Status.ADVERTISING,state:this.makeState(e)},this.table.set(e,n)),n.status=ve.Status.ADVERTISING,this.restart(e,n)}withdraw(e){const n=this.table.get(e);n&&(n.status=ve.Status.WITHDRAWING,this.restart(e,n))}restart(e,n){var r;(r=n.retry)==null||r.stop(),n.retry=tf.operation(this.retryOptions),n.retry.attempt(()=>{this.closed?n.retry.stop():this.queue.push(e)})}async process(){for await(const e of this.queue){const n=this.table.get(e);if(!n)continue;const{status:r,retry:s,state:i}=n;switch(r){case ve.Status.ADVERTISING:{try{await this.doAdvertise(e,i),n.status===ve.Status.ADVERTISING&&(n.status=ve.Status.ADVERTISED,s.stop())}catch(o){s.retry(o)}break}case ve.Status.WITHDRAWING:{try{await this.doWithdraw(e,i),n.status===ve.Status.WITHDRAWING&&(n.status=ve.Status.WITHDRAWN,s.stop(),this.table.delete(e))}catch(o){s.retry(o)}break}}}}makeState(e){return{}}}(function(t){(function(e){e[e.ADVERTISING=0]="ADVERTISING",e[e.ADVERTISED=1]="ADVERTISED",e[e.WITHDRAWING=2]="WITHDRAWING",e[e.WITHDRAWN=3]="WITHDRAWN"})(t.Status||(t.Status={}))})(ve||(ve={}));var Ee;(function(t){t.DefaultOptions={dataNoTokenMatch:!0};function e(h){return new rf({...t.DefaultOptions,...h})}t.create=e;let n;function r(){return n??(n=e()),n}t.getDefault=r;function s(h){n=h}t.replaceDefault=s;function i(){n==null||n.close(),n=void 0}t.deleteDefault=i;class o extends Event{constructor(g,T){super(g);u(this,"face");this.face=T}}t.FaceEvent=o;class c extends Event{constructor(g,T,I){super(g);u(this,"face");u(this,"prefix");this.face=T,this.prefix=I}}t.PrefixEvent=c;class a extends Event{constructor(g,T){super(g);u(this,"name");this.name=T}}t.AnnouncementEvent=a;class f extends Event{constructor(g,T,I){super(g);u(this,"face");u(this,"packet");this.face=T,this.packet=I}}t.PacketEvent=f})(Ee||(Ee={}));class rf extends sr{constructor(n){super();u(this,"opts");u(this,"nodeNames",[]);u(this,"faces",new Set);u(this,"fib",new Gl);u(this,"pit");u(this,"readvertise",new nf(this));u(this,"maybeHaveEventListener",Ku(this));this.opts=n,this.pit=new Jl(n.dataNoTokenMatch)}addFace(n,r={}){return new jl(this,n,r)}pickInterestForwardingName(n){var s;const r=(s=n.fwHint)==null?void 0:s.delegations[0];return r&&this.nodeNames.every(i=>!r.isPrefixOf(i))?r:n.name}processInterest(n,r){const s=this.pit.lookup(r);s.receiveInterest(n,r);const i=this.pickInterestForwardingName(r.l3);for(const o of this.fib.lookup(i))o!==n&&s.forwardInterest(o)}cancelInterest(n,r){const s=this.pit.lookup(r,!1);s==null||s.cancelInterest(n)}processData(n,r){this.pit.satisfy(n,r)}processNack(n,r){}close(){this.pit.close(),this.readvertise.close();for(const n of this.faces)n.close()}dispatchPacketEvent(n,r,s){this.maybeHaveEventListener[n]&&this.dispatchTypedEvent(n,new Ee.PacketEvent(n,r,s))}}const sf=fe(Ho).default;class of{constructor(e){u(this,"fw");u(this,"taps",new Ju);u(this,"facerm",e=>{const n=this.taps.list(e.face);for(const{rx:r}of n)r.stop();this.detachIfIdle()});u(this,"pktrx",e=>{const n=this.taps.list(e.face);for(const{rx:r}of n)r.push(e.packet)});this.fw=e,this.fw.addEventListener("pktrx",this.pktrx),this.fw.addEventListener("facerm",this.facerm)}add(e,n){oe.equal(e.fw,this.fw),this.taps.add(e,n)}remove(e,n){this.taps.remove(e,n),this.detachIfIdle()}detachIfIdle(){this.taps.size===0&&(this.fw.removeEventListener("pktrx",this.pktrx),this.fw.removeEventListener("facerm",this.facerm),tc.delete(this.fw))}}const tc=new sf(t=>new of(t));class Br{constructor(e){u(this,"face");u(this,"ctrl");u(this,"rx",Tt());this.face=e,this.ctrl=tc.get(e.fw),this.ctrl.add(this.face,this)}get attributes(){return{...this.face.attributes,describe:`tap(${this.face})`}}async tx(e){for await(const n of e)this.face.send(n);this.ctrl.remove(this.face,this)}}(function(t){function e(n){return Ee.create().addFace(new t(n))}t.create=e})(Br||(Br={}));const ue={LpPacket:100,LpPayload:80,LpSeqNum:81,FragIndex:82,FragCount:83,PitToken:98,Nack:E.Nack,NackReason:E.NackReason,CongestionMark:832};function cf(t){return!(t>=800&&t<=959&&t%4===0)}const af=new ce("LpPacket",ue.LpPacket).add(ue.LpSeqNum,(t,{nniBig:e})=>t.fragSeqNum=e).add(ue.FragIndex,(t,{nni:e})=>t.fragIndex=e).add(ue.FragCount,(t,{nni:e})=>t.fragCount=e).add(ue.PitToken,(t,{value:e})=>t.pitToken=e).add(ue.Nack,(t,{decoder:e})=>t.nack=e.decode(rr)).add(ue.CongestionMark,(t,{nni:e})=>t.congestionMark=e).add(ue.LpPayload,(t,{value:e})=>t.payload=e).setIsCritical(cf);class at{constructor(){u(this,"fragSeqNum");u(this,"fragIndex",0);u(this,"fragCount",1);u(this,"payload")}static decodeFrom(e){return af.decode(new at,e)}get l3(){const e={};for(const n of["pitToken","nack","congestionMark"])e[n]=this[n];return e}encodeTo(e){e.prependTlv(ue.LpPacket,...this.encodeFragHeaders(),...this.encodeL3Headers(),[ue.LpPayload,H.OmitEmpty,this.payload])}encodeFragHeaders(){return oe(this.fragIndex0&&[ue.FragIndex,G(this.fragIndex)],this.fragCount>1&&[ue.FragCount,G(this.fragCount)]]}hasL3Headers(){const{congestionMark:e=0}=this;return!!this.pitToken||!!this.nack||e>0}encodeL3Headers(){const{congestionMark:e=0}=this;return[[ue.PitToken,H.OmitEmpty,this.pitToken],this.nack,e>0&&[ue.CongestionMark,G(e)]]}}class uf{constructor(){u(this,"current",BigInt(Math.trunc(Math.random()*4294967296))<<32n|BigInt(Math.trunc(Math.random()*4294967296)))}next(){return this.current=BigInt.asUintN(64,this.current+1n),this.current}}class lf{constructor(){u(this,"seqNumGen",new uf)}fragment(e,n){var f;const r=n-26,s=H.encode(e.encodeL3Headers()).length,i=((f=e.payload)==null?void 0:f.byteLength)??0,o=Math.min(i,r-s);if(o===i)return[e];if(o<=0)return[];const c=[],a=new at;Object.assign(a,e.l3),a.fragSeqNum=this.seqNumGen.next(),a.payload=e.payload.subarray(0,o),c.push(a);for(let h=o;h=e.fragCount)return;const n=BigInt.asUintN(64,e.fragSeqNum-BigInt(e.fragIndex)),r=this.getPartial(n),s=r.accept(e);if(s)return s;s!==!1&&this.putPartial(r)}getPartial(e){const n=this.partials.get(e);return n?(this.partials.delete(e),n):new ff(e)}putPartial(e){this.partials.set(e.seqNumBase,e),Xu(this.capacity,this.partials)}}var df=function(e){if(e){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")};const pf=df,vi={};var mf=(t,e)=>(e=e||{},n=>{n=pf(n);let r;return{[Symbol.asyncIterator](){return this},async next(){for(;;){r||(r=n.next());let s;const i=new Promise(a=>{s=setTimeout(()=>a({value:vi}),e.timeout||1e3)}),{done:o,value:c}=await Promise.race([i,r]);if(clearTimeout(s),o)return{done:o};if(c===vi){if(!e.shouldKeepAlive||e.shouldKeepAlive())return{value:t()};continue}return r=null,{value:c}}},return(){if(n.return)return n.return()}}});const nc=At(mf),gf=fe(nc).default,yf=H.encode(new at);class it{constructor({keepAlive:e=6e4,mtu:n=1/0,reassemblerCapacity:r=16},s){u(this,"transport");u(this,"keepAlive");u(this,"mtu");u(this,"fragmenter",new lf);u(this,"reassembler");u(this,"rx",e=>Zs(n=>this.decode(n),e));u(this,"tx",e=>Zs(n=>this.encode(n),this.keepAlive?gf(()=>!1,{timeout:this.keepAlive})(e):e));this.transport=s,Number.isFinite(e)&&e>0&&(this.keepAlive=Math.ceil(e)),this.mtu=n,this.reassembler=new hf(r)}*decode(e){const{type:n,decoder:r,tlv:s}=e;try{if(n!==ue.LpPacket)return yield this.decodeL3(e);const i=r.decode(at),o=this.reassembler.accept(i);if(!(o!=null&&o.payload))return;const c=this.decodeL3(new Qe(o.payload).read());o.nack&&(oe(c.l3 instanceof W,"Nack can only appear on Interest"),c.l3=new Bn(c.l3,o.nack)),c.token=o.pitToken,c.congestionMark=o.congestionMark,yield c}catch(i){yield new it.RxError(i,s)}}decodeL3({type:e,decoder:n}){switch(e){case E.Interest:return{l3:n.decode(W)};case E.Data:return{l3:n.decode(Fe)};default:throw new Error(`unrecognized TLV-TYPE ${Xt(e)} as L3Pkt`)}}*encode(e){if(e===!1){yield yf;return}const n=Math.min(this.mtu,this.transport.mtu),{l3:r}=e,s=new at;s.pitToken=e.token,s.congestionMark=e.congestionMark;try{r instanceof Bn?(s.nack=r.header,s.payload=H.encode(r.interest)):s.payload=H.encode(r)}catch(i){return yield new it.TxError(i,e.l3)}!s.hasL3Headers()&&s.payload.length<=n?yield s.payload:Number.isFinite(n)?yield*this.fragmenter.fragment(s,n).map(i=>H.encode(i,n)):yield H.encode(s)}}(function(t){class e extends Error{constructor(i,o){super(`${i.message} ${ot(o)}`);u(this,"packet");this.packet=o}}t.RxError=e;class n extends Error{constructor(i,o){super(`${i.message} ${o instanceof Bn?o.interest.name:o.name}`);u(this,"packet");this.packet=o}}t.TxError=n})(it||(it={}));let Vn=class extends Error{constructor(e,n){super(e??"The operation was aborted"),this.type="aborted",this.code=n??"ABORT_ERR"}};function wf(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function Ei(t,e,n){const r={},s=wf(t);async function*i(){let o;const c=()=>{o!=null&&o()};for(e.addEventListener("abort",c);;){let a;try{if(e.aborted){const{abortMessage:h,abortCode:p}=r;throw new Vn(h,p)}const f=new Promise((h,p)=>{o=()=>{const{abortMessage:g,abortCode:T}=r;p(new Vn(g,T))}});a=await Promise.race([f,s.next()]),o=null}catch(f){e.removeEventListener("abort",c);const h=f.type==="aborted"&&e.aborted;if(h&&r.onAbort!=null&&r.onAbort(t),typeof s.return=="function")try{const p=s.return();p instanceof Promise&&p.catch(g=>{r.onReturnError!=null&&r.onReturnError(g)})}catch(p){r.onReturnError!=null&&r.onReturnError(p)}if(h&&r.returnOnAbort===!0)return;throw f}if(a.done===!0)break;yield a.value}e.removeEventListener("abort",c)}return i()}const xf=1200;class Bt{constructor(e){u(this,"attributes");this.attributes=e}get mtu(){return xf}reopen(){return Promise.reject(new Bt.ReopenNotSupportedError)}toString(){return this.attributes.describe??this.constructor.name}}(function(t){class e extends Error{constructor(){super("reopen not supported")}}t.ReopenNotSupportedError=e})(Bt||(Bt={}));const bf=fe(ec).default;class re extends sr{constructor(n,r={},s={}){super();u(this,"transport");u(this,"attributes");u(this,"lp");u(this,"rx");u(this,"wireTokenPrefix",Math.trunc(Math.random()*65536));u(this,"state_",re.State.UP);u(this,"lastError");u(this,"rxSources",Tt());u(this,"reopenRetry");u(this,"tx",async n=>{var i;const r=this.txTransform(n)[Symbol.asyncIterator](),s={[Symbol.asyncIterator]:()=>({next:()=>r.next()})};for(;this.state!==re.State.CLOSED;){this.state===re.State.DOWN&&this.reopenTransport();const o=new AbortController;this.addEventListener("state",()=>o.abort(),{once:!0,signal:o.signal});try{const c=Ei(s,o.signal);this.state===re.State.UP?(this.rxSources.push(Ei(this.transport.rx,o.signal)),await this.transport.tx(c)):await Ul(c),this.state=re.State.CLOSED}catch(c){c instanceof Vn||(this.lastError=c,this.state=re.State.DOWN)}finally{o.abort()}}(i=this.reopenRetry)==null||i.stop(),this.rxSources.stop()});this.transport=n,this.attributes={describe:`L3Face(${n})`,advertiseFrom:!1,...n.attributes,...r},this.lp=new it(s,n),this.rx=this.makeRx()}get state(){return this.state_}set state(n){if(n===this.state_)return;const r=new re.StateEvent("state",n,this.state_);switch(this.state_=n,this.dispatchTypedEvent("state",r),n){case re.State.UP:{this.dispatchTypedEvent("up",new Event("up"));break}case re.State.DOWN:{const s=this.lastError instanceof Error?this.lastError:new Error(`${this.lastError??"unknown error"}`);this.dispatchTypedEvent("down",new CustomEvent("down",{detail:s})),this.lastError=void 0;break}case re.State.CLOSED:{this.dispatchTypedEvent("close",new Event("close"));break}}}async*makeRx(){for await(const n of this.rxSources)try{yield*this.rxTransform(n),this.lastError=new Error("RX ending"),this.state=re.State.DOWN}catch(r){r instanceof Vn||(this.lastError=r,this.state=re.State.DOWN)}}async*rxTransform(n){yield*hn(()=>n,this.lp.rx,kt(r=>r instanceof it.RxError?(this.dispatchTypedEvent("rxerror",new CustomEvent("rxerror",{detail:r})),!1):!0),Ut(({l3:r,token:s,congestionMark:i})=>{let o;if(r instanceof W)o=s;else if((s==null?void 0:s.length)===6){const c=Ke(s);c.getUint16(0)===this.wireTokenPrefix&&(o=c.getUint32(2))}return It.create(r,o,i)}))}txTransform(n){return hn(()=>n,kt(r=>It.isEncodable(r)),Ut(({l3:r,token:s,congestionMark:i})=>{let o;if(typeof s=="number"){o=new Uint8Array(6);const c=Ke(o);c.setUint16(0,this.wireTokenPrefix),c.setUint32(2,s)}else s instanceof Uint8Array&&(o=s);return{l3:r,token:o,congestionMark:i}}),this.lp.tx,kt(r=>r instanceof it.TxError?(this.dispatchTypedEvent("txerror",new CustomEvent("txerror",{detail:r})),!1):!0))}reopenTransport(){var n;(n=this.reopenRetry)==null||n.stop(),this.reopenRetry=bf.operation({forever:!0,minTimeout:100,maxTimeout:6e4,randomize:!0}),this.reopenRetry.attempt(async()=>{try{this.transport=await this.transport.reopen()}catch(r){r instanceof Bt.ReopenNotSupportedError||this.reopenRetry.retry(r);return}if(this.state===re.State.CLOSED){this.transport.tx(async function*(){}());return}this.reopenRetry.stop(),this.state=re.State.UP})}}(function(t){(function(s){s[s.UP=0]="UP",s[s.DOWN=1]="DOWN",s[s.CLOSED=2]="CLOSED"})(t.State||(t.State={}));class e extends Event{constructor(o,c,a){super(o);u(this,"state");u(this,"prev");this.state=c,this.prev=a}}t.StateEvent=e;function n(s){return async({fw:i=Ee.getDefault(),addRoutes:o,l3:c,lp:a,callback:f},...h)=>{const p=await s(...h),g=T=>{const I=new t(T,{advertiseFrom:!1,...c},a),N=i.addFace(I);return r(N,o),f==null||f(T,I,N),N};return Array.isArray(p)?p.map(g):g(p)}}t.makeCreateFace=n;function r(s,i=["/"]){for(const o of i)s.addRoute(o)}t.processAddRoutes=r})(re||(re={}));async function*vf(t){for await(const e of Lo(t)){const n=new Qe(e);let r;try{r=n.read()}catch{continue}yield r}}class Ef extends Error{constructor(e){super(e),this.name="TimeoutError"}}class _f extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const _i=t=>globalThis.DOMException===void 0?new _f(t):new DOMException(t),Ti=t=>{const e=t.reason===void 0?_i("This operation was aborted."):t.reason;return e instanceof Error?e:_i(e)};function Tf(t,e){const{milliseconds:n,fallback:r,message:s,customTimers:i={setTimeout,clearTimeout}}=e;let o;const a=new Promise((f,h)=>{if(typeof n!="number"||Math.sign(n)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(e.signal){const{signal:g}=e;g.aborted&&h(Ti(g)),g.addEventListener("abort",()=>{h(Ti(g))})}if(n===Number.POSITIVE_INFINITY){t.then(f,h);return}const p=new Ef;o=i.setTimeout.call(void 0,()=>{if(r){try{f(r())}catch(g){h(g)}return}typeof t.cancel=="function"&&t.cancel(),s===!1?f():s instanceof Error?h(s):(p.message=s??`Promise timed out after ${n} milliseconds`,h(p))},n),(async()=>{try{f(await t)}catch(g){h(g)}})()}).finally(()=>{a.clear()});return a.clear=()=>{i.clearTimeout.call(void 0,o),o=void 0},a}const Sf=t=>{const e=t.addEventListener||t.on||t.addListener,n=t.removeEventListener||t.off||t.removeListener;if(!e||!n)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(t),removeListener:n.bind(t)}};function If(t,e,n){let r;const s=new Promise((i,o)=>{var T;if(n={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...n},!(n.count>=0&&(n.count===Number.POSITIVE_INFINITY||Number.isInteger(n.count))))throw new TypeError("The `count` option should be at least 0 or more");(T=n.signal)==null||T.throwIfAborted();const c=[e].flat(),a=[],{addListener:f,removeListener:h}=Sf(t),p=(...I)=>{const N=n.multiArgs?I:I[0];n.filter&&!n.filter(N)||(a.push(N),n.count===a.length&&(r(),i(a)))},g=I=>{r(),o(I)};r=()=>{for(const I of c)h(I,p);for(const I of n.rejectionEvents)h(I,g)};for(const I of c)f(I,p);for(const I of n.rejectionEvents)f(I,g);n.signal&&n.signal.addEventListener("abort",()=>{g(n.signal.reason)},{once:!0}),n.resolveImmediately&&i(a)});if(s.cancel=r,typeof n.timeout=="number"){const i=Tf(s,{milliseconds:n.timeout});return i.cancel=r,i}return s}function Pf(t,e,n){typeof n=="function"&&(n={filter:n}),n={...n,count:1,resolveImmediately:!1};const r=If(t,e,n),s=r.then(i=>i[0]);return s.cancel=r.cancel,s}function Af(t){return new WebSocket(t,[])}function Nf(t){t.binaryType="arraybuffer"}function Rf(t){return new Uint8Array(t.data)}const Ff=fe(Fo).default;class Vt extends Bt{constructor(n,r){super({describe:`WebSocket(${n.url})`});u(this,"sock");u(this,"opts");u(this,"rx");u(this,"highWaterMark");u(this,"lowWaterMark");this.sock=n,this.opts=r,Nf(n),this.rx=vf(new Ff(({push:s,stop:i})=>{const o=c=>{s(Rf(c))};return n.addEventListener("message",o),n.addEventListener("close",i),()=>{n.removeEventListener("message",o),n.removeEventListener("close",i)}})),this.highWaterMark=r.highWaterMark??1024*1024,this.lowWaterMark=r.lowWaterMark??16*1024}static async connect(n,r={}){const s=typeof n=="string"?Af(n):n;if(s.readyState!==s.OPEN)try{await Pf(s,"open",{timeout:r.connectTimeout??1e4})}catch(i){throw s.close(),i}return new Vt(s,r)}get mtu(){return 1/0}async tx(n){try{for await(const r of n){if(this.sock.readyState!==this.sock.OPEN)throw new Error(`unexpected WebSocket.readyState ${this.sock.readyState}`);this.sock.send(r),this.sock.bufferedAmount>this.highWaterMark&&await this.waitForTxBuffer()}}finally{this.close()}}waitForTxBuffer(){return new Promise(n=>{const r=setInterval(()=>{(this.sock.bufferedAmount<=this.lowWaterMark||this.sock.readyState!==this.sock.OPEN)&&(clearInterval(r),n())},100)})}close(){this.sock.close()}reopen(){return Vt.connect(this.sock.url,this.opts)}}(function(t){t.createFace=re.makeCreateFace(t.connect)})(Vt||(Vt={}));const Hn={transports({H3Transport:t}={}){const e=["wss"];return t!=null&&t.supported&&e.push("http3"),e}};async function Cf(){throw new Error("no default gateway in browser")}function Lf(t,{fw:e,H3Transport:n,mtu:r=1200,connectTimeout:s,addRoutes:i}){const o=(()=>{try{return new URL(t)}catch{return new URL(`wss://${t}/ws/`)}})();switch(o.protocol){case"ws:":case"wss:":return Vt.createFace({fw:e,addRoutes:i},o.toString(),{connectTimeout:s});case"https:":{if(!n)throw new Error("H3Transport unavailable");return n.createFace({fw:e,addRoutes:i,lp:{mtu:r}},o.toString())}default:throw new Error(`unknown protocol ${o.protocol}`)}}async function Of(t={}){var h;const{server:e="https://fch.ndn.today",ipv4:n=Hn.hasIPv4,ipv6:r=Hn.hasIPv6,position:s,network:i,signal:o}=t,c=async(p,g)=>{const T=new URL(e),I=T.searchParams;for(const[Y,$]of p)I.append("cap",Y),I.append("k",`${$}`);if(n!==void 0&&I.set("ipv4",`${Number(n)}`),r!==void 0&&I.set("ipv6",`${Number(r)}`),(s==null?void 0:s.length)===2){const[Y,$]=s;I.set("lon",`${Y.toFixed(5)}`),I.set("lat",`${$.toFixed(5)}`)}i&&I.set("network",i);const N=await fetch(T.toString(),{headers:{accept:g},signal:o});if(!N.ok)throw new Error(`HTTP ${N.status}`);return N},a=kf(t),f=new Mf;try{const p=await c(a,"application/json, text/plain, */*");if((h=p.headers.get("Content-Type"))!=null&&h.startsWith("application/json"))return await f.setJsonResponse(p),f;if(a.length===1)return await f.addTextResponse(a[0][0],p),f}catch{}return await Promise.all(a.map(async p=>{try{const g=await c([p],"text/plain, */*");await f.addTextResponse(p[0],g)}catch{}})),f}function kf({transport:t,count:e=1,transports:n}){if(n===void 0){if(t)return[[t,e]];n=Hn.transports()}return Array.isArray(n)?n.map(r=>[r,e]):Object.entries(n)}class Mf{constructor(){u(this,"updated");u(this,"routers",[])}async setJsonResponse(e){const n=await e.json();this.updated=new Date(n.updated),this.routers=Array.from(n.routers,r=>({transport:String(r.transport),connect:String(r.connect),prefix:r.prefix?new F(r.prefix):void 0}))}async addTextResponse(e,n){const r=(await n.text()).trim();if(r!=="")for(const s of r.split(","))this.routers.push({transport:e,connect:s})}}function Df(t){return t?typeof t=="function"?t:(typeof t=="number"&&(t={limit:t}),function*(e){const{limit:n=0,interval:r=e*.5,randomize:s=.1,backoff:i=1,max:o=e*.9}=t,c=rl(s);let a=r;for(let f=0;f[]}var Si;(function(t){const e=["fw","describe","signal","modifyInterest","retx","verifier"];function n(r={}){return Object.fromEntries(Object.entries(r).filter(([s])=>e.includes(s)))}t.exact=n})(Si||(Si={}));function $f(t,{fw:e=Ee.getDefault(),describe:n=`consume(${t.name})`,signal:r,modifyInterest:s,retx:i,verifier:o}){W.makeModifyFunc(s)(t);let c=-1;const a=Df(i)(t.lifetime)[Symbol.iterator](),f=new Promise((h,p)=>{const g=Tt();let T;const I=()=>{clearTimeout(T),T=void 0},N=()=>{I();const{value:$,done:j}=a.next();j||(T=setTimeout(N,$)),g.push(It.create(t)),++c},Y=()=>{I(),g.push(new Ko(t))};r==null||r.addEventListener("abort",Y),e.addFace({rx:g,async tx($){for await(const j of $){if(j.l3 instanceof Fe){try{await(o==null?void 0:o.verify(j.l3))}catch(U){p(new Error(`Data verify failed: ${U} @${n}`));break}h(j.l3);break}if(j.reject&&!T){p(new Error(`Interest rejected: ${j.reject} @${n}`));break}}I(),r==null||r.removeEventListener("abort",Y),g.stop()}},{describe:n,local:!0}),N()});return Object.defineProperties(f,{interest:{value:t},nRetx:{get(){return c}}})}function rc(t,e={}){return $f(t instanceof W?t:new W(t),e)}const Ii=fs();async function Uf(t,e={}){const n=await Lf(t,e),r=Ii();let s,i;try{i=await Bf(n,e),s=Ii()-r}catch(o){throw n.close(),o}return{router:t,face:n,testConnectionDuration:s,testConnectionResult:i}}async function Bf(t,{testConnection:e=new F("/localhop/nfd/rib/list"),testConnectionTimeout:n=2e3}){if(e===!1)return;if(typeof e=="function")return e(t);Array.isArray(e)||(e=[e]);const r=Br.create(t);r.addRoute("/");const s=new AbortController,i={fw:r.fw,signal:s.signal};try{await Promise.any(e.map(o=>{typeof o=="string"&&o.endsWith("/*")&&(o=new F(o.slice(0,-2)).append(Math.trunc(Math.random()*1e8).toString().padStart(8,"0")));const c=o instanceof W?o:new W(o,W.CanBePrefix,W.Lifetime(n));return rc(c,i)}))}finally{s.abort(),r.close()}}async function Vf(t={}){const{fch:e={count:4},preferH3:n=!1,tryDefaultGateway:r=!0,fallback:s=[],fastest:i=1}=t,o=[],c={};for await(const a of async function*(){const f=[];if(e!==!1){e.transports??(e.transports=Hn.transports(t));const h=await Of(e),p=[];for(const g of h.routers)(n&&g.transport==="http3"?p:f).push(g.connect);yield p}if(r)try{f.unshift(await Cf())}catch{}yield f,yield s}())if(await Promise.all(a.map(async f=>{try{o.push(await Uf(f,t))}catch(h){c[f]=h}})),o.length>0)break;if(o.length===0){const a=Object.entries(c).map(([f,h])=>` ${f} ${h}`);throw new AggregateError(Object.values(c),`connect to network failed +${a.join(` +`)}`)}o.sort((a,f)=>a.testConnectionDuration-f.testConnectionDuration);for(const{face:a}of o.splice(i,1/0))a.close();return o.map(({face:a})=>a)}const Hf={k:4,alpha:1/8,beta:1/4,initRto:1e3,minRto:200,maxRto:6e4};class Pi{constructor(e={}){u(this,"params");u(this,"sRtt_",Number.NaN);u(this,"rttVar",Number.NaN);u(this,"rto_");this.params={...Hf,...e},this.rto_=this.params.initRto}get sRtt(){return this.sRtt_}get rto(){return this.rto_}push(e,n=1){if(n=Math.max(n,1),Number.isNaN(this.rttVar))this.sRtt_=e,this.rttVar=e/2;else{const r=this.params.alpha/n,s=this.params.beta/n;this.rttVar=(1-s)*this.rttVar+s*Math.abs(this.sRtt_-e),this.sRtt_=(1-r)*this.sRtt_+r*e}this.rto_=this.clampRto(this.sRtt_+this.params.k*this.rttVar)}backoff(){this.rto_=this.clampRto(this.rto_*2)}clampRto(e){return Math.max(this.params.minRto,Math.min(e,this.params.maxRto))}}class Wf extends sr{constructor(n){super();u(this,"cwnd_");this.cwnd_=n}get cwnd(){return this.cwnd_}updateCwnd(n){oe(n>=0),this.cwnd_=n,this.dispatchTypedEvent("cwndupdate",new Event("cwndupdate"))}}class zf extends Wf{constructor({iw:n=2,c:r=.4,betaCubic:s=.7}={}){super(n);u(this,"c");u(this,"betaCubic");u(this,"alphaAimd");u(this,"t0",0);u(this,"wMax",0);u(this,"wLastMax",0);u(this,"k",Number.NaN);u(this,"ssthresh",1/0);this.c=r,this.betaCubic=s,this.alphaAimd=3*(1-s)/(1+s)}increase(n,r){if(n=e?{done:!0}:{done:!1,value:t[n++]}})};Ve.empty=function(){var t=new Ve(function(){return{done:!0}});return t};Ve.fromSequence=function(t){var e=0,n=t.length;return new Ve(function(){return e>=n?{done:!0}:{done:!1,value:t[e++]}})};Ve.is=function(t){return t instanceof Ve?!0:typeof t=="object"&&t!==null&&typeof t.next=="function"};var jf=Ve,hs={};hs.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u";hs.SYMBOL_SUPPORT=typeof Symbol<"u";var qf=jf,sc=hs,Kf=sc.ARRAY_BUFFER_SUPPORT,Qf=sc.SYMBOL_SUPPORT;function Gf(t){return typeof t=="string"||Array.isArray(t)||Kf&&ArrayBuffer.isView(t)?qf.fromSequence(t):typeof t!="object"||t===null?null:Qf&&typeof t[Symbol.iterator]=="function"?t[Symbol.iterator]():typeof t.next=="function"?t:null}var Yf=function(e){var n=Gf(e);if(!n)throw new Error("obliterator: target is not iterable nor a valid iterator.");return n},Xf=Yf,Jf=function(e,n){for(var r=arguments.length>1?n:1/0,s=r!==1/0?new Array(r):[],i,o=0,c=Xf(e);;){if(o===r)return s;if(i=c.next(),i.done)return o!==n&&(s.length=o),s;s[o++]=i.value}};const Zf=At(Jf);class ic{constructor(e){u(this,"tt");this.tt=e}get type(){return this.tt}match(e){return e.type===this.tt}}class eh extends ic{create(e){return new se(this.tt,e)}parse(e){return e.text}}class oc extends ic{constructor(n,r){super(n);u(this,"altUriPrefix");u(this,"altUriRegex");this.altUriPrefix=r,this.altUriRegex=new RegExp(`^${r}(\\d+)$`)}create(n){return new se(H.encode([this.tt,G(n)],12))}match(n){return super.match(n)&&G.isValidLength(n.length)}toAltUri(n){return this.altUriPrefix+G.decode(n.value,{big:!0})}fromAltUri(n){const r=this.altUriRegex.exec(n);if(r)return this.create(BigInt(r[1]))}}class cc extends oc{parse(e){return G.decode(e.value)}}class th extends oc{parse(e){return G.decode(e.value,{big:!0})}}class Xe extends cc{constructor(...n){super(...n);u(this,"big");this.big=new th(...n)}}class Ai extends cc{constructor(n,r,s){super(n,"t=");u(this,"unit");u(this,"max");this.unit=r,this.max=s}create(n){return n instanceof Date?n=n.getTime()*1e3:n=Number(n)*this.unit,this.checkMax(n),super.create(n)}parse(n){const r=super.parse(n);return this.checkMax(r),r/this.unit}checkMax(n){oe(n<=this.max,"timestamp number too large")}}function ac(t){const e=new Ai(t,1e3,8787511468039992),n=new Ai(t,1,Number.MAX_SAFE_INTEGER);return Object.assign(e,{ms:e,us:n})}new Xe(E.GenericNameComponent,"");const nh=new eh(32);new Xe(33,"seg=");const rh=new Xe(50,"seg="),sh=rh;new Xe(34,"off=");new Xe(52,"off=");new Xe(35,"v=");new Xe(54,"v=");ac(36);ac(56);new Xe(37,"seq=");new Xe(58,"seq=");const ih=sh,oh=fe(nc).default,ch=fe(Zf).default,br=fs();class ah{constructor(e,{fw:n=Ee.getDefault(),describe:r=`fetch(${e})`,signal:s,segmentRange:[i,o=Number.MAX_SAFE_INTEGER]=[0,void 0],segmentNumConvention:c=ih,modifyInterest:a,lifetimeAfterRto:f=1e3,rtte:h,ca:p=new zf,retxLimit:g=15,acceptContentType:T=[0]}){u(this,"name");u(this,"signal");u(this,"segNext");u(this,"segLast");u(this,"segmentNumConvention");u(this,"modifyInterest");u(this,"lifetimeAfterRto");u(this,"rtte");u(this,"ca");u(this,"retxLimit");u(this,"acceptContentType");u(this,"face");u(this,"count_",0);u(this,"nextCwndDecrease",0);u(this,"pendings",new Map);u(this,"retxQ",new Set);u(this,"txQ",Tt());u(this,"rxQ",Tt());this.name=e,this.signal=s,this.segNext=i,this.segLast=o-1,this.segmentNumConvention=c,this.modifyInterest=W.makeModifyFunc(a),this.lifetimeAfterRto=f,this.rtte=h instanceof Pi?h:new Pi(h),this.ca=p,this.retxLimit=g,this.acceptContentType=T,this.face=n.addFace({rx:this.txQ,tx:async I=>{for await(const N of I)this.rxQ.push(N);this.rxQ.stop()}},{describe:r})}get count(){return this.count_}async*fetch(){try{yield*this.unsafeFetch()}finally{this.txQ.stop(),this.face.close()}}async*unsafeFetch(){var e;for await(const n of oh(()=>!1,{timeout:4})(this.rxQ)){if((e=this.signal)!=null&&e.aborted)throw new Error("fetch aborted");if(n){const{l3:r,token:s,congestionMark:i=0}=n;r instanceof Fe&&typeof s=="number"&&this.acceptContentType.includes(r.contentType)&&(yield*this.handleData(r,s,i))}if(this.processRtoExpiry(),this.processTx())return}if(this.pendings.size>0)throw new Error("fetch incomplete")}*handleData(e,n,r){const s=this.pendings.get(n);if(!s)return;const i=br(),o=i-s.txTime;s.nRetx===0&&this.rtte.push(o,this.pendings.size),r?this.decreaseCwnd(i):this.ca.increase(i,o),e.isFinalBlock&&(this.segLast=n),++this.count_,yield{data:e,seg:n},this.retxQ.delete(n),this.pendings.delete(n)}processRtoExpiry(){const e=br();for(const[n,r]of this.pendings){if(n>this.segLast){this.pendings.delete(n),this.retxQ.delete(n)||this.txQ.push(new Ko(r.interest,n));continue}if(!this.retxQ.has(n)&&r.rtoExpiry=this.retxLimit)throw new Error(`exceed retx limit on segment ${n}`);this.decreaseCwnd(r.rtoExpiry)&&this.rtte.backoff(),this.retxQ.add(n)}}}processTx(){switch(!0){case this.pendings.size-this.retxQ.size>=this.ca.cwnd:break;case this.retxQ.size>0:{const[e]=ch(this.retxQ,1);this.retxQ.delete(e);const n=this.pendings.get(e);++n.nRetx,this.sendInterest(n);break}case this.segNext<=this.segLast:{const e=this.segNext++,n=new uh(e);this.pendings.set(e,n),this.sendInterest(n);break}case this.pendings.size===0:return!0}return!1}sendInterest(e){const n=this.rtte.rto;e.txTime=br(),e.rtoExpiry=e.txTime+n,e.interest=new W,e.interest.name=this.name.append(this.segmentNumConvention,e.seg),e.interest.lifetime=n+this.lifetimeAfterRto,this.modifyInterest(e.interest),this.txQ.push({l3:e.interest,token:e.seg})}decreaseCwnd(e){return e{var i;return await((i=e.verifier)==null?void 0:i.verify(s)),{seg:r,data:s}},this.uvf.fetch())}unordered(){return Ut(({data:e,seg:n})=>Object.assign(e,{segNum:n}),this.startFetcher())}async*ordered(){var n;const e=new el((n=this.opts.segmentRange)==null?void 0:n[0]);for await(const{seg:r,data:s}of this.startFetcher())e.push(r,s),yield*e.shift();oe(e.empty,`${e.size} leftover segments`)}chunks(){return Ut(e=>e.content,this.ordered())}pipe(e){return Wl(e,this.chunks())}async startPromise(){const e=await Dl(this.chunks());return No(e)}then(e,n){return this.promise??(this.promise=this.startPromise()),this.promise.then(e,n)}[Symbol.asyncIterator](){return this.ordered()[Symbol.asyncIterator]()}}function fh(t,e={}){return new lh(F.from(t),e)}const Ni=nh.create("metadata");function uc(t){return new ce(t).add(E.Name,(e,{value:n})=>e.name=new F(n),{required:!0}).setIsCritical(ce.neverCritical)}const hh=uc("Metadata");class dn{constructor(e=new F){u(this,"name");this.name=e}static decodeFrom(e){return hh.decodeValue(new dn,e)}encodeTo(e){e.prependValue(this.name)}}(function(t){function e(n,r){const s=new n()[fn.TAG],i=uc(n.name).setUnknown(s.decodeUnknown);Object.defineProperty(n,"decodeFrom",{value(o){return i.decodeValue(new n,o)}}),Object.defineProperty(n.prototype,"encodeTo",{value(o){o.prependValue(this.name,...s.encode(this))}})}t.extend=e})(dn||(dn={}));function dh(t){var n;let e=F.from(t);return(n=e.get(-1))!=null&&n.equals(Ni)||(e=e.append(Ni)),new W(e,W.CanBePrefix,W.MustBeFresh)}async function ph(t,e,n){var o;let r=dn;typeof e=="function"?r=e:n=e;const s=dh(t),i=await rc(s,{describe:`RDR-c(${t})`,...(o=n==null?void 0:n.endpoint)==null?void 0:o.cOpts,...n});return Qe.decode(i.content,r)}const mh="/ndn/edu/ucla/file-server/routers.json",gh="/file-server/status.json",yh="https://github.com/UCLA-IRL/testbed",wh=ba({name:"App",data:()=>({connectedFace:"",routers:{},services:[]}),async mounted(){const t=await Vf();if(!t.length){alert("Failed to connect to testbed");return}this.connectedFace=`${t[0]}`,this.start()},methods:{async start(){this.routers=JSON.parse(await this.cat(mh));for(const[t,e]of Object.entries(this.routers))["SAVI","UCLA","WU"].includes(t)&&this.refreshRouter(e)},async refreshRouter(t){var e;try{t.fetching=!0,t.status=JSON.parse(await this.cat(t.prefix+gh)),t.error=!1;for(const n of Object.keys(((e=t.status)==null?void 0:e.services)??{}))this.services.includes(n)||this.services.push(n)}catch(n){console.warn(n),t.error=!0,t.status=void 0}finally{t.fetching=!1}},async cat(t){const e=await ph(t,{retx:2}),n=await fh(e.name,{cOpts:{retx:2}});return new TextDecoder().decode(n)},getRevUrl(t){return`${yh}/commit/${t.status.revision}`}}}),xh=(t,e)=>{const n=t.__vccOpts||t;for(const[r,s]of e)n[r]=s;return n},Wt=t=>(ca("data-v-7f4c38a2"),t=t(),aa(),t),bh={class:"outer"},vh={class:"styled-table"},Eh=Wt(()=>Z("th",null,null,-1)),_h=Wt(()=>Z("th",null,"Prefix",-1)),Th=Wt(()=>Z("th",null,"HTTPS",-1)),Sh=Wt(()=>Z("th",null,"Revision",-1)),Ih=Wt(()=>Z("th",null,"NFD Version",-1)),Ph=Wt(()=>Z("th",null,"NLSR Version",-1)),Ah=["href"],Nh=["href"];function Rh(t,e,n,r,s,i){return me(),be("div",bh,[Z("table",vh,[Z("thead",null,[Z("tr",null,[Eh,_h,Th,Sh,Ih,Ph,(me(!0),be(ye,null,Kt(t.services,o=>(me(),be("th",null,ke(o),1))),256)),(me(!0),be(ye,null,Kt(t.routers,o=>(me(),be("th",null,ke(o.shortname),1))),256))])]),Z("tbody",null,[(me(!0),be(ye,null,Kt(t.routers,(o,c)=>{var a,f,h,p,g,T;return me(),be("tr",{key:c},[Z("td",{class:Lt({okay:!!o.status,error:o.error,warning:o.fetching})},ke(o.shortname),3),Z("td",null,ke(o.prefix),1),Z("td",null,[Z("a",{href:`https://${o.host}`,target:"_blank"},ke(o.host),9,Ah)]),Z("td",null,[(a=o.status)!=null&&a.revision?(me(),be("a",{key:0,href:t.getRevUrl(o),target:"_blank"},ke((f=o.status)==null?void 0:f.revision),9,Nh)):Bs("",!0)]),Z("td",null,ke((p=(h=o.status)==null?void 0:h.nfd)==null?void 0:p.version),1),Z("td",null,ke((T=(g=o.status)==null?void 0:g.nlsr)==null?void 0:T.version),1),(me(!0),be(ye,null,Kt(t.services,I=>{var N;return me(),be("td",null,[(N=o.status)!=null&&N.services[I]?(me(),be("span",{key:0,class:Lt({error:!o.status.services[I].running})},ke(o.status.services[I].status),3)):Bs("",!0)])}),256)),(me(!0),be(ye,null,Kt(t.routers,I=>{var N,Y,$;return me(),be("td",{class:Lt({error:!((N=o.status)!=null&&N.ndnping[I.shortname]),okay:((Y=o.status)==null?void 0:Y.ndnping[I.shortname])??!1})},ke((($=o.status)==null?void 0:$.ndnping[I.shortname])||""),3)}),256))])}),128))])])])}const Fh=xh(wh,[["render",Rh],["__scopeId","data-v-7f4c38a2"]]);Uu(Fh).mount("#app"); diff --git a/assets/index-DtEJakyE.css b/assets/index-DtEJakyE.css new file mode 100644 index 0000000..d83ca57 --- /dev/null +++ b/assets/index-DtEJakyE.css @@ -0,0 +1 @@ +html,body{margin:0;padding:0;font-family:Roboto,sans-serif;overflow:hidden}div.outer[data-v-7f4c38a2]{width:100%;height:100vh;overflow:auto}table[data-v-7f4c38a2]{border-collapse:collapse;font-family:monospace;white-space:nowrap;margin:0;border-collapse:separate;border-spacing:0;table-layout:fixed}th[data-v-7f4c38a2],td[data-v-7f4c38a2]{border:1px solid #888;padding:6px 10px}table thead th[data-v-7f4c38a2]:first-child,table tbody td[data-v-7f4c38a2]:first-child{position:sticky;left:0;z-index:2}table thead th[data-v-7f4c38a2]{position:sticky;top:0;background-color:#fff;z-index:1}td[data-v-7f4c38a2]{background-color:#fff}td.error[data-v-7f4c38a2],td[data-v-7f4c38a2]:has(.error){background-color:#faa!important}td.okay[data-v-7f4c38a2]{background-color:#afa}td.warning[data-v-7f4c38a2]{background-color:#ffa}a[data-v-7f4c38a2]{color:#00f;text-decoration:none} diff --git a/index.html b/index.html new file mode 100644 index 0000000..d7ea2cb --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + NDN Testbed Status + + + + +
+ +