(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))n(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const r of i.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function s(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(l){if(l.ep)return;l.ep=!0;const i=s(l);fetch(l.href,i)}})();/** * @vue/shared v3.5.41 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/function mn(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const ee={},Dt=[],ze=()=>{},ml=()=>!1,Ds=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ls=e=>e.startsWith("onUpdate:"),be=Object.assign,bn=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Ri=Object.prototype.hasOwnProperty,G=(e,t)=>Ri.call(e,t),$=Array.isArray,Lt=e=>is(e)==="[object Map]",$s=e=>is(e)==="[object Set]",Hn=e=>is(e)==="[object Date]",N=e=>typeof e=="function",ae=e=>typeof e=="string",Ye=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",bl=e=>(Z(e)||N(e))&&N(e.then)&&N(e.catch),yl=Object.prototype.toString,is=e=>yl.call(e),Mi=e=>is(e).slice(8,-1),xl=e=>is(e)==="[object Object]",yn=e=>ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,qt=mn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ns=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},Ii=/-\w/g,De=Ns(e=>e.replace(Ii,t=>t.slice(1).toUpperCase())),Fi=/\B([A-Z])/g,Ot=Ns(e=>e.replace(Fi,"-$1").toLowerCase()),wl=Ns(e=>e.charAt(0).toUpperCase()+e.slice(1)),Gs=Ns(e=>e?`on${wl(e)}`:""),We=(e,t)=>!Object.is(e,t),Ss=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},xn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Vn;const js=()=>Vn||(Vn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Hs(e){if($(e)){const t={};for(let s=0;s{if(s){const n=s.split(Li);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Q(e){let t="";if(ae(e))t=e;else if($(e))for(let s=0;sos(s,t))}const Tl=e=>!!(e&&e.__v_isRef===!0),m=e=>ae(e)?e:e==null?"":$(e)||Z(e)&&(e.toString===yl||!N(e.toString))?Tl(e)?m(e.value):JSON.stringify(e,El,2):String(e),El=(e,t)=>Tl(t)?El(e,t.value):Lt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,l],i)=>(s[Js(n,i)+" =>"]=l,s),{})}:$s(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Js(s))}:Ye(t)?Js(t):Z(t)&&!$(t)&&!xl(t)?String(t):t,Js=(e,t="")=>{var s;return Ye(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** * @vue/reactivity v3.5.41 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/let he;class Bi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&he&&(he.active?(this.parent=he,this.index=(he.scopes||(he.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const n=this.scopes.slice();for(t=0,s=n.length;t0&&--this._on===0){if(he===this)he=this.prevScope;else{let t=he;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s0)return;if(Gt){let t=Gt;for(Gt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;Yt;){let t=Yt;for(Yt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function Rl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ml(e){let t,s=e.depsTail,n=s;for(;n;){const l=n.prevDep;n.version===-1?(n===s&&(s=l),Cn(n),Ui(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=l}e.deps=t,e.depsTail=s}function an(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Il(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Il(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Qt)||(e.globalVersion=Qt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!an(e))))return;e.flags|=2;const t=e.dep,s=se,n=Le;se=e,Le=!0;try{Rl(e);const l=e.fn(e._value);(t.version===0||We(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{se=s,Le=n,Ml(e),e.flags&=-3}}function Cn(e,t=!1){const{dep:s,prevSub:n,nextSub:l}=e;if(n&&(n.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Cn(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Ui(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Le=!0;const Fl=[];function rt(){Fl.push(Le),Le=!1}function at(){const e=Fl.pop();Le=e===void 0?!0:e}function Bn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=se;se=void 0;try{t()}finally{se=s}}}let Qt=0;class Wi{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class kn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!se||!Le||se===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==se)s=this.activeLink=new Wi(se,this),se.deps?(s.prevDep=se.depsTail,se.depsTail.nextDep=s,se.depsTail=s):se.deps=se.depsTail=s,Dl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=se.depsTail,s.nextDep=void 0,se.depsTail.nextDep=s,se.depsTail=s,se.deps===s&&(se.deps=n)}return s}trigger(t){this.version++,Qt++,this.notify(t)}notify(t){wn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Sn()}}}function Dl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Dl(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const cn=new WeakMap,kt=Symbol(""),un=Symbol(""),es=Symbol("");function _e(e,t,s){if(Le&&se){let n=cn.get(e);n||cn.set(e,n=new Map);let l=n.get(s);l||(n.set(s,l=new kn),l.map=n,l.key=s),l.track()}}function it(e,t,s,n,l,i){const r=cn.get(e);if(!r){Qt++;return}const a=u=>{u&&u.trigger()};if(wn(),t==="clear")r.forEach(a);else{const u=$(e),g=u&&yn(s);if(u&&s==="length"){const h=Number(n);r.forEach((y,R)=>{(R==="length"||R===es||!Ye(R)&&R>=h)&&a(y)})}else switch((s!==void 0||r.has(void 0))&&a(r.get(s)),g&&a(r.get(es)),t){case"add":u?g&&a(r.get("length")):(a(r.get(kt)),Lt(e)&&a(r.get(un)));break;case"delete":u||(a(r.get(kt)),Lt(e)&&a(r.get(un)));break;case"set":Lt(e)&&a(r.get(kt));break}}Sn()}function Mt(e){const t=Y(e);return t===e?t:(_e(t,"iterate",es),Fe(e)?t:t.map($e))}function Vs(e){return _e(e=Y(e),"iterate",es),e}function Ke(e,t){return ct(e)?jt(Tt(e)?$e(t):t):$e(t)}const zi={__proto__:null,[Symbol.iterator](){return Zs(this,Symbol.iterator,e=>Ke(this,e))},concat(...e){return Mt(this).concat(...e.map(t=>$(t)?Mt(t):t))},entries(){return Zs(this,"entries",e=>(e[1]=Ke(this,e[1]),e))},every(e,t){return st(this,"every",e,t,void 0,arguments)},filter(e,t){return st(this,"filter",e,t,s=>s.map(n=>Ke(this,n)),arguments)},find(e,t){return st(this,"find",e,t,s=>Ke(this,s),arguments)},findIndex(e,t){return st(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return st(this,"findLast",e,t,s=>Ke(this,s),arguments)},findLastIndex(e,t){return st(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return st(this,"forEach",e,t,void 0,arguments)},includes(...e){return Qs(this,"includes",e)},indexOf(...e){return Qs(this,"indexOf",e)},join(e){return Mt(this).join(e)},lastIndexOf(...e){return Qs(this,"lastIndexOf",e)},map(e,t){return st(this,"map",e,t,void 0,arguments)},pop(){return Kt(this,"pop")},push(...e){return Kt(this,"push",e)},reduce(e,...t){return Kn(this,"reduce",e,t)},reduceRight(e,...t){return Kn(this,"reduceRight",e,t)},shift(){return Kt(this,"shift")},some(e,t){return st(this,"some",e,t,void 0,arguments)},splice(...e){return Kt(this,"splice",e)},toReversed(){return Mt(this).toReversed()},toSorted(e){return Mt(this).toSorted(e)},toSpliced(...e){return Mt(this).toSpliced(...e)},unshift(...e){return Kt(this,"unshift",e)},values(){return Zs(this,"values",e=>Ke(this,e))}};function Zs(e,t,s){const n=Vs(e),l=n[t]();return n!==e&&!Fe(e)&&(l._next=l.next,l.next=()=>{const i=l._next();return i.done||(i.value=s(i.value)),i}),l}const qi=Array.prototype;function st(e,t,s,n,l,i){const r=Vs(e),a=r!==e&&!Fe(e),u=r[t];if(u!==qi[t]){const y=u.apply(e,i);return a?$e(y):y}let g=s;r!==e&&(a?g=function(y,R){return s.call(this,Ke(e,y),R,e)}:s.length>2&&(g=function(y,R){return s.call(this,y,R,e)}));const h=u.call(r,g,n);return a&&l?l(h):h}function Kn(e,t,s,n){const l=Vs(e),i=l!==e&&!Fe(e);let r=s,a=!1;l!==e&&(i?(a=n.length===0,r=function(g,h,y){return a&&(a=!1,g=Ke(e,g)),s.call(this,g,Ke(e,h),y,e)}):s.length>3&&(r=function(g,h,y){return s.call(this,g,h,y,e)}));const u=l[t](r,...n);return a?Ke(e,u):u}function Qs(e,t,s){const n=Y(e);_e(n,"iterate",es);const l=n[t](...s);return(l===-1||l===!1)&&Pn(s[0])?(s[0]=Y(s[0]),n[t](...s)):l}function Kt(e,t,s=[]){rt(),wn();const n=Y(e)[t].apply(e,s);return Sn(),at(),n}const Yi=mn("__proto__,__v_isRef,__isVue"),Ll=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ye));function Gi(e){Ye(e)||(e=String(e));const t=Y(this);return _e(t,"has",e),t.hasOwnProperty(e)}class $l{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const l=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!l;if(s==="__v_isReadonly")return l;if(s==="__v_isShallow")return i;if(s==="__v_raw")return n===(l?i?io:Vl:i?Hl:jl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=$(t);if(!l){let u;if(r&&(u=zi[s]))return u;if(s==="hasOwnProperty")return Gi}const a=Reflect.get(t,s,me(t)?t:n);if((Ye(s)?Ll.has(s):Yi(s))||(l||_e(t,"get",s),i))return a;if(me(a)){const u=r&&yn(s)?a:a.value;return l&&Z(u)?dn(u):u}return Z(a)?l?dn(a):En(a):a}}class Nl extends $l{constructor(t=!1){super(!1,t)}set(t,s,n,l){let i=t[s];const r=$(t)&&yn(s);if(!this._isShallow){const g=ct(i);if(!Fe(n)&&!ct(n)&&(i=Y(i),n=Y(n)),!r&&me(i)&&!me(n))return g||(i.value=n),!0}const a=r?Number(s)e,ms=e=>Reflect.getPrototypeOf(e);function eo(e,t,s){return function(...n){const l=this.__v_raw,i=Y(l),r=Lt(i),a=e==="entries"||e===Symbol.iterator&&r,u=e==="keys"&&r,g=l[e](...n),h=s?fn:t?jt:$e;return!t&&_e(i,"iterate",u?un:kt),be(Object.create(g),{next(){const{value:y,done:R}=g.next();return R?{value:y,done:R}:{value:a?[h(y[0]),h(y[1])]:h(y),done:R}}})}}function bs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function to(e,t){const s={get(l){const i=this.__v_raw,r=Y(i),a=Y(l);e||(We(l,a)&&_e(r,"get",l),_e(r,"get",a));const{has:u}=ms(r),g=t?fn:e?jt:$e;if(u.call(r,l))return g(i.get(l));if(u.call(r,a))return g(i.get(a));i!==r&&i.get(l)},get size(){const l=this.__v_raw;return!e&&_e(Y(l),"iterate",kt),l.size},has(l){const i=this.__v_raw,r=Y(i),a=Y(l);return e||(We(l,a)&&_e(r,"has",l),_e(r,"has",a)),l===a?i.has(l):i.has(l)||i.has(a)},forEach(l,i){const r=this,a=r.__v_raw,u=Y(a),g=t?fn:e?jt:$e;return!e&&_e(u,"iterate",kt),a.forEach((h,y)=>l.call(i,g(h),g(y),r))}};return be(s,e?{add:bs("add"),set:bs("set"),delete:bs("delete"),clear:bs("clear")}:{add(l){const i=Y(this),r=ms(i),a=Y(l),u=!t&&!Fe(l)&&!ct(l)?a:l;return r.has.call(i,u)||We(l,u)&&r.has.call(i,l)||We(a,u)&&r.has.call(i,a)||(i.add(u),it(i,"add",u,u)),this},set(l,i){!t&&!Fe(i)&&!ct(i)&&(i=Y(i));const r=Y(this),{has:a,get:u}=ms(r);let g=a.call(r,l);g||(l=Y(l),g=a.call(r,l));const h=u.call(r,l);return r.set(l,i),g?We(i,h)&&it(r,"set",l,i):it(r,"add",l,i),this},delete(l){const i=Y(this),{has:r,get:a}=ms(i);let u=r.call(i,l);u||(l=Y(l),u=r.call(i,l)),a&&a.call(i,l);const g=i.delete(l);return u&&it(i,"delete",l,void 0),g},clear(){const l=Y(this),i=l.size!==0,r=l.clear();return i&&it(l,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(l=>{s[l]=eo(l,e,t)}),s}function Tn(e,t){const s=to(e,t);return(n,l,i)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?n:Reflect.get(G(s,l)&&l in n?s:n,l,i)}const so={get:Tn(!1,!1)},no={get:Tn(!1,!0)},lo={get:Tn(!0,!1)};const jl=new WeakMap,Hl=new WeakMap,Vl=new WeakMap,io=new WeakMap;function oo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function En(e){return ct(e)?e:On(e,!1,Xi,so,jl)}function ro(e){return On(e,!1,Qi,no,Hl)}function dn(e){return On(e,!0,Zi,lo,Vl)}function On(e,t,s,n,l){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=l.get(e);if(i)return i;const r=oo(Mi(e));if(r===0)return e;const a=new Proxy(e,r===2?n:s);return l.set(e,a),a}function Tt(e){return ct(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function ct(e){return!!(e&&e.__v_isReadonly)}function Fe(e){return!!(e&&e.__v_isShallow)}function Pn(e){return e?!!e.__v_raw:!1}function Y(e){const t=e&&e.__v_raw;return t?Y(t):e}function ao(e){return!G(e,"__v_skip")&&Object.isExtensible(e)&&Sl(e,"__v_skip",!0),e}const $e=e=>Z(e)?En(e):e,jt=e=>Z(e)?dn(e):e;function me(e){return e?e.__v_isRef===!0:!1}function K(e){return co(e,!1)}function co(e,t){return me(e)?e:new uo(e,t)}class uo{constructor(t,s){this.dep=new kn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:Y(t),this._value=s?t:$e(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||Fe(t)||ct(t);t=n?t:Y(t),We(t,s)&&(this._rawValue=t,this._value=n?t:$e(t),this.dep.trigger())}}function fo(e){return me(e)?e.value:e}const po={get:(e,t,s)=>t==="__v_raw"?e:fo(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const l=e[t];return me(l)&&!me(s)?(l.value=s,!0):Reflect.set(e,t,s,n)}};function Bl(e){return Tt(e)?e:new Proxy(e,po)}class ho{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new kn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Qt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&se!==this)return Al(this,!0),!0}get value(){const t=this.dep.track();return Il(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function go(e,t,s=!1){let n,l;return N(e)?n=e:(n=e.get,l=e.set),new ho(n,l,s)}const ys={},Es=new WeakMap;let wt;function vo(e,t=!1,s=wt){if(s){let n=Es.get(s);n||Es.set(s,n=[]),n.push(e)}}function _o(e,t,s=ee){const{immediate:n,deep:l,once:i,scheduler:r,augmentJob:a,call:u}=s,g=I=>l?I:Fe(I)||l===!1||l===0?ot(I,1):ot(I);let h,y,R,M,U=!1,A=!1;if(me(e)?(y=()=>e.value,U=Fe(e)):Tt(e)?(y=()=>g(e),U=!0):$(e)?(A=!0,U=e.some(I=>Tt(I)||Fe(I)),y=()=>e.map(I=>{if(me(I))return I.value;if(Tt(I))return g(I);if(N(I))return u?u(I,2):I()})):N(e)?t?y=u?()=>u(e,2):e:y=()=>{if(R){rt();try{R()}finally{at()}}const I=wt;wt=h;try{return u?u(e,3,[M]):e(M)}finally{wt=I}}:y=ze,t&&l){const I=y,oe=l===!0?1/0:l;y=()=>ot(I(),oe)}const ne=Ki(),V=()=>{h.stop(),ne&&ne.active&&bn(ne.effects,h)};if(i&&t){const I=t;t=(...oe)=>{const le=I(...oe);return V(),le}}let H=A?new Array(e.length).fill(ys):ys;const W=I=>{if(!(!(h.flags&1)||!h.dirty&&!I))if(t){const oe=h.run();if(I||l||U||(A?oe.some((le,ge)=>We(le,H[ge])):We(oe,H))){R&&R();const le=wt;wt=h;try{const ge=[oe,H===ys?void 0:A&&H[0]===ys?[]:H,M];H=oe,u?u(t,3,ge):t(...ge)}finally{wt=le}}}else h.run()};return a&&a(W),h=new Ol(y),h.scheduler=r?()=>r(W,!1):W,M=I=>vo(I,!1,h),R=h.onStop=()=>{const I=Es.get(h);if(I){if(u)u(I,4);else for(const oe of I)oe();Es.delete(h)}},t?n?W(!0):H=h.run():r?r(W.bind(null,!0),!0):h.run(),V.pause=h.pause.bind(h),V.resume=h.resume.bind(h),V.stop=V,V}function ot(e,t=1/0,s){if(t<=0||!Z(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,me(e))ot(e.value,t,s);else if($(e))for(let n=0;n{ot(n,t,s)});else if(xl(e)){for(const n in e)ot(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ot(e[n],t,s)}return e}/** * @vue/runtime-core v3.5.41 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/function rs(e,t,s,n){try{return n?e(...n):e()}catch(l){Bs(l,t,s)}}function Ne(e,t,s,n){if(N(e)){const l=rs(e,t,s,n);return l&&bl(l)&&l.catch(i=>{Bs(i,t,s)}),l}if($(e)){const l=[];for(let i=0;i>>1,l=we[n],i=ts(l);i=ts(s)?we.push(e):we.splice(yo(t),0,e),e.flags|=1,Ul()}}function Ul(){Os||(Os=Kl.then(zl))}function xo(e){if(!$(e))ht&&e.id===-1?ht.splice(Ft+1,0,e):e.flags&1||($t.push(e),e.flags|=1);else for(let t=0;tts(s)-ts(n));if($t.length=0,ht){for(let s=0;se.id==null?e.flags&2?-1:1/0:e.id;function zl(e){try{for(Be=0;Be{n._d&&tl(-1);const i=Ps(t),r=Et.length;let a;try{a=e(...l)}finally{for(let u=Et.length;u>r;u--)mi();Ps(i),n._d&&tl(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function It(e,t){if(Ie===null)return e;const s=qs(Ie),n=e.dirs||(e.dirs=[]);for(let l=0;l1)return s&&N(t)?t.call(n&&n.proxy):t}}const Co=Symbol.for("v-scx"),ko=()=>Cs(Co);function en(e,t,s){return Yl(e,t,s)}function Yl(e,t,s=ee){const{immediate:n,deep:l,flush:i,once:r}=s,a=be({},s),u=t&&n||!t&&i!=="post";let g;if(ls){if(i==="sync"){const M=ko();g=M.__watcherHandles||(M.__watcherHandles=[])}else if(!u){const M=()=>{};return M.stop=ze,M.resume=ze,M.pause=ze,M}}const h=Se;a.call=(M,U,A)=>Ne(M,h,U,A);let y=!1;i==="post"?a.scheduler=M=>{ke(M,h&&h.suspense)}:i!=="sync"&&(y=!0,a.scheduler=(M,U)=>{U?M():An(M)}),a.augmentJob=M=>{t&&(M.flags|=4),y&&(M.flags|=2,h&&(M.id=h.uid,M.i=h))};const R=_o(e,t,a);return ls&&(g?g.push(R):u&&R()),R}function To(e,t,s){const n=this.proxy,l=ae(e)?e.includes(".")?Gl(n,e):()=>n[e]:e.bind(n,n);let i;N(t)?i=t:(i=t.handler,s=t);const r=as(this),a=Yl(l,i.bind(n),s);return r(),a}function Gl(e,t){const s=t.split(".");return()=>{let n=e;for(let l=0;le.__isTeleport,tn=Symbol("_leaveCb");function Oo(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==ut){t=s;break}}return t}function Jl(e){if(!Mn(e))return Ks(e.type)&&e.children?Oo(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&N(s.default))return s.default()}}function Rn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;Rn(Ks(s.type)&&Jl(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Xl(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Wn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const As=new WeakMap;function Jt(e,t,s,n,l=!1){if($(e)){e.forEach((A,ne)=>Jt(A,t&&($(t)?t[ne]:t),s,n,l));return}if(Xt(n)&&!l){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Jt(e,t,s,n.component.subTree);return}const i=n.shapeFlag&4?qs(n.component):n.el,r=l?null:i,{i:a,r:u}=e,g=t&&t.r,h=a.refs===ee?a.refs={}:a.refs,y=a.setupState,R=Y(y),M=y===ee?ml:A=>Wn(h,A)?!1:G(R,A),U=(A,ne)=>!(ne&&Wn(h,ne));if(g!=null&&g!==u){if(zn(t),ae(g))h[g]=null,M(g)&&(y[g]=null);else if(me(g)){const A=t;U(g,A.k)&&(g.value=null),A.k&&(h[A.k]=null)}}if(N(u))rs(u,a,12,[r,h]);else{const A=ae(u),ne=me(u);if(A||ne){const V=()=>{if(e.f){const H=A?M(u)?y[u]:h[u]:U()||!e.k?u.value:h[e.k];if(l)$(H)&&bn(H,i);else if($(H))H.includes(i)||H.push(i);else if(A)h[u]=[i],M(u)&&(y[u]=h[u]);else{const W=[i];U(u,e.k)&&(u.value=W),e.k&&(h[e.k]=W)}}else A?(h[u]=r,M(u)&&(y[u]=r)):ne&&(U(u,e.k)&&(u.value=r),e.k&&(h[e.k]=r))};if(r){const H=()=>{V(),As.delete(e)};H.id=-1,As.set(e,H),ke(H,s)}else zn(e),V()}}}function zn(e){const t=As.get(e);t&&(t.flags|=8,As.delete(e))}js().requestIdleCallback;js().cancelIdleCallback;const Xt=e=>!!e.type.__asyncLoader,Mn=e=>e.type.__isKeepAlive;function Po(e,t){Zl(e,"a",t)}function Ao(e,t){Zl(e,"da",t)}function Zl(e,t,s=Se){const n=e.__wdc||(e.__wdc=()=>{let l=s;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(Us(t,n,s),s){let l=s.parent;for(;l&&l.parent;)Mn(l.parent.vnode)&&Ro(n,t,s,l),l=l.parent}}function Ro(e,t,s,n){const l=Us(t,e,n,!0);ei(()=>{bn(n[t],l)},s)}function Us(e,t,s=Se,n=!1){if(s){const l=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...r)=>{rt();const a=as(s),u=Ne(t,s,e,r);return a(),at(),u});return n?l.unshift(i):l.push(i),i}}const ft=e=>(t,s=Se)=>{(!ls||e==="sp")&&Us(e,(...n)=>t(...n),s)},Mo=ft("bm"),Ql=ft("m"),Io=ft("bu"),Fo=ft("u"),Do=ft("bum"),ei=ft("um"),Lo=ft("sp"),$o=ft("rtg"),No=ft("rtc");function jo(e,t=Se){Us("ec",e,t)}const Ho=Symbol.for("v-ndc");function Ce(e,t,s,n){let l;const i=s,r=$(e);if(r||ae(e)){const a=r&&Tt(e);let u=!1,g=!1;a&&(u=!Fe(e),g=ct(e),e=Vs(e)),l=new Array(e.length);for(let h=0,y=e.length;ht(a,u,void 0,i));else{const a=Object.keys(e);l=new Array(a.length);for(let u=0,g=a.length;ue?wi(e)?qs(e):pn(e.parent):null,Zt=be(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>pn(e.parent),$root:e=>pn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>si(e),$forceUpdate:e=>e.f||(e.f=()=>{An(e.update)}),$nextTick:e=>e.n||(e.n=bo.bind(e.proxy)),$watch:e=>To.bind(e)}),sn=(e,t)=>e!==ee&&!e.__isScriptSetup&&G(e,t),Vo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:l,props:i,accessCache:r,type:a,appContext:u}=e;if(t[0]!=="$"){const R=r[t];if(R!==void 0)switch(R){case 1:return n[t];case 2:return l[t];case 4:return s[t];case 3:return i[t]}else{if(sn(n,t))return r[t]=1,n[t];if(l!==ee&&G(l,t))return r[t]=2,l[t];if(G(i,t))return r[t]=3,i[t];if(s!==ee&&G(s,t))return r[t]=4,s[t];hn&&(r[t]=0)}}const g=Zt[t];let h,y;if(g)return t==="$attrs"&&_e(e.attrs,"get",""),g(e);if((h=a.__cssModules)&&(h=h[t]))return h;if(s!==ee&&G(s,t))return r[t]=4,s[t];if(y=u.config.globalProperties,G(y,t))return y[t]},set({_:e},t,s){const{data:n,setupState:l,ctx:i}=e;return sn(l,t)?(l[t]=s,!0):n!==ee&&G(n,t)?(n[t]=s,!0):G(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:l,props:i,type:r}},a){let u;return!!(s[a]||e!==ee&&a[0]!=="$"&&G(e,a)||sn(t,a)||G(i,a)||G(n,a)||G(Zt,a)||G(l.config.globalProperties,a)||(u=r.__cssModules)&&u[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:G(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function qn(e){return $(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let hn=!0;function Bo(e){const t=si(e),s=e.proxy,n=e.ctx;hn=!1,t.beforeCreate&&Yn(t.beforeCreate,e,"bc");const{data:l,computed:i,methods:r,watch:a,provide:u,inject:g,created:h,beforeMount:y,mounted:R,beforeUpdate:M,updated:U,activated:A,deactivated:ne,beforeDestroy:V,beforeUnmount:H,destroyed:W,unmounted:I,render:oe,renderTracked:le,renderTriggered:ge,errorCaptured:je,serverPrefetch:Pt,expose:Ge,inheritAttrs:Je,components:Xe,directives:dt,filters:Vt}=t;if(g&&Ko(g,n,null),r)for(const ie in r){const J=r[ie];N(J)&&(n[ie]=J.bind(s))}if(l){const ie=l.call(s,s);Z(ie)&&(e.data=En(ie))}if(hn=!0,i)for(const ie in i){const J=i[ie],He=N(J)?J.bind(s,s):N(J.get)?J.get.bind(s,s):ze,gt=!N(J)&&N(J.set)?J.set.bind(s):ze,Oe=fe({get:He,set:gt});Object.defineProperty(n,ie,{enumerable:!0,configurable:!0,get:()=>Oe.value,set:Pe=>Oe.value=Pe})}if(a)for(const ie in a)ti(a[ie],n,s,ie);if(u){const ie=N(u)?u.call(s):u;Reflect.ownKeys(ie).forEach(J=>{So(J,ie[J])})}h&&Yn(h,e,"c");function pe(ie,J){$(J)?J.forEach(He=>ie(He.bind(s))):J&&ie(J.bind(s))}if(pe(Mo,y),pe(Ql,R),pe(Io,M),pe(Fo,U),pe(Po,A),pe(Ao,ne),pe(jo,je),pe(No,le),pe($o,ge),pe(Do,H),pe(ei,I),pe(Lo,Pt),$(Ge))if(Ge.length){const ie=e.exposed||(e.exposed={});Ge.forEach(J=>{Object.defineProperty(ie,J,{get:()=>s[J],set:He=>s[J]=He,enumerable:!0})})}else e.exposed||(e.exposed={});oe&&e.render===ze&&(e.render=oe),Je!=null&&(e.inheritAttrs=Je),Xe&&(e.components=Xe),dt&&(e.directives=dt),Pt&&Xl(e)}function Ko(e,t,s=ze){$(e)&&(e=gn(e));for(const n in e){const l=e[n];let i;Z(l)?"default"in l?i=Cs(l.from||n,l.default,!0):i=Cs(l.from||n):i=Cs(l),me(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:r=>i.value=r}):t[n]=i}}function Yn(e,t,s){Ne($(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function ti(e,t,s,n){let l=n.includes(".")?Gl(s,n):()=>s[n];if(ae(e)){const i=t[e];N(i)&&en(l,i)}else if(N(e))en(l,e.bind(s));else if(Z(e))if($(e))e.forEach(i=>ti(i,t,s,n));else{const i=N(e.handler)?e.handler.bind(s):t[e.handler];N(i)&&en(l,i,e)}}function si(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:l,optionsCache:i,config:{optionMergeStrategies:r}}=e.appContext,a=i.get(t);let u;return a?u=a:!l.length&&!s&&!n?u=t:(u={},l.length&&l.forEach(g=>Rs(u,g,r,!0)),Rs(u,t,r)),Z(t)&&i.set(t,u),u}function Rs(e,t,s,n=!1){const{mixins:l,extends:i}=t;i&&Rs(e,i,s,!0),l&&l.forEach(r=>Rs(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const a=Uo[r]||s&&s[r];e[r]=a?a(e[r],t[r]):t[r]}return e}const Uo={data:Gn,props:Jn,emits:Jn,methods:Wt,computed:Wt,beforeCreate:xe,created:xe,beforeMount:xe,mounted:xe,beforeUpdate:xe,updated:xe,beforeDestroy:xe,beforeUnmount:xe,destroyed:xe,unmounted:xe,activated:xe,deactivated:xe,errorCaptured:xe,serverPrefetch:xe,components:Wt,directives:Wt,watch:zo,provide:Gn,inject:Wo};function Gn(e,t){return t?e?function(){return be(N(e)?e.call(this,this):e,N(t)?t.call(this,this):t)}:t:e}function Wo(e,t){return Wt(gn(e),gn(t))}function gn(e){if($(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${De(t)}Modifiers`]||e[`${Ot(t)}Modifiers`];function Jo(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||ee;let l=s;const i=t.startsWith("update:"),r=i&&Go(n,t.slice(7));r&&(r.trim&&(l=s.map(h=>ae(h)?h.trim():h)),r.number&&(l=s.map(xn)));let a,u=n[a=Gs(t)]||n[a=Gs(De(t))];!u&&i&&(u=n[a=Gs(Ot(t))]),u&&Ne(u,e,6,l);const g=n[a+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ne(g,e,6,l)}}const Xo=new WeakMap;function li(e,t,s=!1){const n=s?Xo:t.emitsCache,l=n.get(e);if(l!==void 0)return l;const i=e.emits;let r={},a=!1;if(!N(e)){const u=g=>{const h=li(g,t,!0);h&&(a=!0,be(r,h))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!a?(Z(e)&&n.set(e,null),null):($(i)?i.forEach(u=>r[u]=null):be(r,i),Z(e)&&n.set(e,r),r)}function Ws(e,t){return!e||!Ds(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),G(e,t[0].toLowerCase()+t.slice(1))||G(e,Ot(t))||G(e,t))}function Xn(e){const{type:t,vnode:s,proxy:n,withProxy:l,propsOptions:[i],slots:r,attrs:a,emit:u,render:g,renderCache:h,props:y,data:R,setupState:M,ctx:U,inheritAttrs:A}=e,ne=Ps(e);let V,H;try{if(s.shapeFlag&4){const I=l||n,oe=I;V=Ue(g.call(oe,I,h,y,M,R,U)),H=a}else{const I=t;V=Ue(I.length>1?I(y,{attrs:a,slots:r,emit:u}):I(y,null)),H=t.props?a:Zo(a)}}catch(I){Et.length=0,Bs(I,e,1),V=qe(ut)}let W=V;if(H&&A!==!1){const I=Object.keys(H),{shapeFlag:oe}=W;I.length&&oe&7&&(i&&I.some(Ls)&&(H=Qo(H,i)),W=Ht(W,H,!1,!0))}if(s.dirs&&(W=Ht(W,null,!1,!0),W.dirs=W.dirs?W.dirs.concat(s.dirs):s.dirs),s.transition){const I=Ks(W.type)&&Jl(W)||W;Rn(I,s.transition)}return V=W,Ps(ne),V}const Zo=e=>{let t;for(const s in e)(s==="class"||s==="style"||Ds(s))&&((t||(t={}))[s]=e[s]);return t},Qo=(e,t)=>{const s={};for(const n in e)(!Ls(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function er(e,t,s){const{props:n,children:l,component:i}=e,{props:r,children:a,patchFlag:u}=t,g=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return n?Zn(n,r,g):!!r;if(u&8){const h=t.dynamicProps;for(let y=0;yObject.create(oi),ai=e=>Object.getPrototypeOf(e)===oi;function sr(e,t,s,n=!1){const l={},i=ri();e.propsDefaults=Object.create(null),ci(e,t,l,i);for(const r in e.propsOptions[0])r in l||(l[r]=void 0);s?e.props=n?l:ro(l):e.type.props?e.props=l:e.props=i,e.attrs=i}function nr(e,t,s,n){const{props:l,attrs:i,vnode:{patchFlag:r}}=e,a=Y(l),[u]=e.propsOptions;let g=!1;if((n||r>0)&&!(r&16)){if(r&8){const h=e.vnode.dynamicProps;for(let y=0;y{u=!0;const[R,M]=ui(y,t,!0);be(r,R),M&&a.push(...M)};!s&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!u)return Z(e)&&n.set(e,Dt),Dt;if($(i))for(let h=0;he==="_"||e==="_ctx"||e==="$stable",Fn=e=>$(e)?e.map(Ue):[Ue(e)],ir=(e,t,s)=>{if(t._n)return t;const n=wo((...l)=>Fn(t(...l)),s);return n._c=!1,n},fi=(e,t,s)=>{const n=e._ctx;for(const l in e){if(In(l))continue;const i=e[l];if(N(i))t[l]=ir(l,i,n);else if(i!=null){const r=Fn(i);t[l]=()=>r}}},di=(e,t)=>{const s=Fn(t);e.slots.default=()=>s},pi=(e,t,s)=>{for(const n in t)(s||!In(n))&&(e[n]=t[n])},or=(e,t,s)=>{const n=e.slots=ri();if(e.vnode.shapeFlag&32){const l=t._;l?(pi(n,t,s),s&&Sl(n,"_",l,!0)):fi(t,n)}else t&&di(e,t)},rr=(e,t,s)=>{const{vnode:n,slots:l}=e;let i=!0,r=ee;if(n.shapeFlag&32){const a=t._;a?s&&a===1?i=!1:pi(l,t,s):(i=!t.$stable,fi(t,l)),r=t}else t&&(di(e,t),r={default:1});if(i)for(const a in l)!In(a)&&r[a]==null&&delete l[a]},ke=dr;function ar(e){return cr(e)}function cr(e,t){const s=js();s.__VUE__=!0;const{insert:n,remove:l,patchProp:i,createElement:r,createText:a,createComment:u,setText:g,setElementText:h,parentNode:y,nextSibling:R,setScopeId:M=ze,insertStaticContent:U}=e,A=(c,p,b,S=null,w=null,x=null,O=void 0,E=null,k=!!p.dynamicChildren)=>{if(c===p)return;c&&!Ut(c,p)&&(S=At(c),Pe(c,w,x,!0),c=null),p.patchFlag===-2&&(k=!1,p.dynamicChildren=null);const{type:_,ref:D,shapeFlag:P}=p;switch(_){case zs:ne(c,p,b,S);break;case ut:V(c,p,b,S);break;case ks:c==null&&H(p,b,S,O);break;case te:Xe(c,p,b,S,w,x,O,E,k);break;default:P&1?oe(c,p,b,S,w,x,O,E,k):P&6?dt(c,p,b,S,w,x,O,E,k):(P&64||P&128)&&_.process(c,p,b,S,w,x,O,E,k,_t)}D!=null&&w?Jt(D,c&&c.ref,x,p||c,!p):D==null&&c&&c.ref!=null&&Jt(c.ref,null,x,c,!0)},ne=(c,p,b,S)=>{if(c==null)n(p.el=a(p.children),b,S);else{const w=p.el=c.el;p.children!==c.children&&g(w,p.children)}},V=(c,p,b,S)=>{c==null?n(p.el=u(p.children||""),b,S):p.el=c.el},H=(c,p,b,S)=>{[c.el,c.anchor]=U(c.children,p,b,S,c.el,c.anchor)},W=({el:c,anchor:p},b,S)=>{let w;for(;c&&c!==p;)w=R(c),n(c,b,S),c=w;n(p,b,S)},I=({el:c,anchor:p})=>{let b;for(;c&&c!==p;)b=R(c),l(c),c=b;l(p)},oe=(c,p,b,S,w,x,O,E,k)=>{if(p.type==="svg"?O="svg":p.type==="math"&&(O="mathml"),c==null)le(p,b,S,w,x,O,E,k);else{const _=c.el&&c.el._isVueCE?c.el:null;try{_&&_._beginPatch(),Pt(c,p,w,x,O,E,k)}finally{_&&_._endPatch()}}},le=(c,p,b,S,w,x,O,E)=>{let k,_;const{props:D,shapeFlag:P,transition:F,dirs:L}=c;if(k=c.el=r(c.type,x,D&&D.is,D),P&8?h(k,c.children):P&16&&je(c.children,k,null,S,w,nn(c,x),O,E),L&&yt(c,null,S,"created"),ge(k,c,c.scopeId,O,S),D){for(const X in D)X!=="value"&&!qt(X)&&i(k,X,null,D[X],x,S);"value"in D&&i(k,"value",null,D.value,x),(_=D.onVnodeBeforeMount)&&Ve(_,S,c)}L&&yt(c,null,S,"beforeMount");const j=ur(w,F);j&&F.beforeEnter(k),n(k,p,b),((_=D&&D.onVnodeMounted)||j||L)&&ke(()=>{try{_&&Ve(_,S,c),j&&F.enter(k),L&&yt(c,null,S,"mounted")}finally{}},w)},ge=(c,p,b,S,w)=>{if(b&&M(c,b),S)for(let x=0;x{for(let _=k;_{const E=p.el=c.el;let{patchFlag:k,dynamicChildren:_,dirs:D}=p;k|=c.patchFlag&16;const P=c.props||ee,F=p.props||ee;let L;if(b&&xt(b,!1),(L=F.onVnodeBeforeUpdate)&&Ve(L,b,p,c),D&&yt(p,c,b,"beforeUpdate"),b&&xt(b,!0),_&&(!c.dynamicChildren||c.dynamicChildren.length!==_.length)&&(k=0,O=!1,_=null),(P.innerHTML&&F.innerHTML==null||P.textContent&&F.textContent==null)&&h(E,""),_?Ge(c.dynamicChildren,_,E,b,S,nn(p,w),x):O||J(c,p,E,null,b,S,nn(p,w),x,!1),k>0){if(k&16)Je(E,P,F,b,w);else if(k&2&&P.class!==F.class&&i(E,"class",null,F.class,w),k&4&&i(E,"style",P.style,F.style,w),k&8){const j=p.dynamicProps;for(let X=0;X{L&&Ve(L,b,p,c),D&&yt(p,c,b,"updated")},S)},Ge=(c,p,b,S,w,x,O)=>{for(let E=0;E{if(p!==b){if(p!==ee)for(const x in p)!qt(x)&&!(x in b)&&i(c,x,p[x],null,w,S);for(const x in b){if(qt(x))continue;const O=b[x],E=p[x];O!==E&&x!=="value"&&i(c,x,E,O,w,S)}"value"in b&&i(c,"value",p.value,b.value,w)}},Xe=(c,p,b,S,w,x,O,E,k)=>{const _=p.el=c?c.el:a(""),D=p.anchor=c?c.anchor:a("");let{patchFlag:P,dynamicChildren:F,slotScopeIds:L}=p;L&&(E=E?E.concat(L):L),c==null?(n(_,b,S),n(D,b,S),je(p.children||[],b,D,w,x,O,E,k)):P>0&&P&64&&F&&c.dynamicChildren&&c.dynamicChildren.length===F.length?(Ge(c.dynamicChildren,F,b,w,x,O,E),(p.key!=null||w&&p===w.subTree)&&hi(c,p,!0)):J(c,p,b,D,w,x,O,E,k)},dt=(c,p,b,S,w,x,O,E,k)=>{p.slotScopeIds=E,c==null?p.shapeFlag&512?w.ctx.activate(p,b,S,O,k):Vt(p,b,S,w,x,O,k):cs(c,p,k)},Vt=(c,p,b,S,w,x,O)=>{const E=c.component=yr(c,S,w);if(Mn(c)&&(E.ctx.renderer=_t),wr(E,!1,O),E.asyncDep){if(w&&w.registerDep(E,pe,O),!c.el){const k=E.subTree=qe(ut);V(null,k,p,b),c.placeholder=k.el}}else pe(E,c,p,b,w,x,O)},cs=(c,p,b)=>{const S=p.component=c.component;if(er(c,p,b))if(S.asyncDep&&!S.asyncResolved){ie(S,p,b);return}else S.next=p,S.update();else p.el=c.el,S.vnode=p},pe=(c,p,b,S,w,x,O)=>{const E=()=>{if(c.isMounted){let{next:P,bu:F,u:L,parent:j,vnode:X}=c;{const Re=gi(c);if(Re){P&&(P.el=X.el,ie(c,P,O)),Re.asyncDep.then(()=>{ke(()=>{c.isUnmounted||_()},w)});return}}let z=P,B;xt(c,!1),P?(P.el=X.el,ie(c,P,O)):P=X,F&&Ss(F),(B=P.props&&P.props.onVnodeBeforeUpdate)&&Ve(B,j,P,X),xt(c,!0);const de=Xn(c),Ae=c.subTree;c.subTree=de,A(Ae,de,y(Ae.el),At(Ae),c,w,x),P.el=de.el,z===null&&tr(c,de.el),L&&ke(L,w),(B=P.props&&P.props.onVnodeUpdated)&&ke(()=>Ve(B,j,P,X),w)}else{let P;const{el:F,props:L}=p,{bm:j,m:X,parent:z,root:B,type:de}=c,Ae=Xt(p);xt(c,!1),j&&Ss(j),!Ae&&(P=L&&L.onVnodeBeforeMount)&&Ve(P,z,p),xt(c,!0);{B.ce&&B.ce._hasShadowRoot()&&B.ce._injectChildStyle(de,c.parent?c.parent.type:void 0);const Re=c.subTree=Xn(c);A(null,Re,b,S,c,w,x),p.el=Re.el}if(X&&ke(X,w),!Ae&&(P=L&&L.onVnodeMounted)){const Re=p;ke(()=>Ve(P,z,Re),w)}(p.shapeFlag&256||z&&Xt(z.vnode)&&z.vnode.shapeFlag&256)&&c.a&&ke(c.a,w),c.isMounted=!0,p=b=S=null}};c.scope.on();const k=c.effect=new Ol(E);c.scope.off();const _=c.update=k.run.bind(k),D=c.job=k.runIfDirty.bind(k);D.i=c,D.id=c.uid,k.scheduler=()=>An(D),xt(c,!0),_()},ie=(c,p,b)=>{p.component=c;const S=c.vnode.props;c.vnode=p,c.next=null,nr(c,p.props,S,b),rr(c,p.children,b),rt(),Un(c),at()},J=(c,p,b,S,w,x,O,E,k=!1)=>{const _=c&&c.children,D=c?c.shapeFlag:0,P=p.children,{patchFlag:F,shapeFlag:L}=p;if(F>0){if(F&128){gt(_,P,b,S,w,x,O,E,k);return}else if(F&256){He(_,P,b,S,w,x,O,E,k);return}}L&8?(D&16&&Qe(_,w,x),P!==_&&h(b,P)):D&16?L&16?gt(_,P,b,S,w,x,O,E,k):Qe(_,w,x,!0):(D&8&&h(b,""),L&16&&je(P,b,S,w,x,O,E,k))},He=(c,p,b,S,w,x,O,E,k)=>{c=c||Dt,p=p||Dt;const _=c.length,D=p.length,P=Math.min(_,D);let F;for(F=0;FD?Qe(c,w,x,!0,!1,P):je(p,b,S,w,x,O,E,k,P)},gt=(c,p,b,S,w,x,O,E,k)=>{let _=0;const D=p.length;let P=c.length-1,F=D-1;for(;_<=P&&_<=F;){const L=c[_],j=p[_]=k?lt(p[_]):Ue(p[_]);if(Ut(L,j))A(L,j,b,null,w,x,O,E,k);else break;_++}for(;_<=P&&_<=F;){const L=c[P],j=p[F]=k?lt(p[F]):Ue(p[F]);if(Ut(L,j))A(L,j,b,null,w,x,O,E,k);else break;P--,F--}if(_>P){if(_<=F){const L=F+1,j=LF)for(;_<=P;)Pe(c[_],w,x,!0),_++;else{const L=_,j=_,X=new Map;for(_=j;_<=F;_++){const ue=p[_]=k?lt(p[_]):Ue(p[_]);ue.key!=null&&X.set(ue.key,_)}let z,B=0;const de=F-j+1;let Ae=!1,Re=0;const mt=new Array(de);for(_=0;_=de){Pe(ue,w,x,!0);continue}let Me;if(ue.key!=null)Me=X.get(ue.key);else for(z=j;z<=F;z++)if(mt[z-j]===0&&Ut(ue,p[z])){Me=z;break}Me===void 0?Pe(ue,w,x,!0):(mt[Me-j]=_+1,Me>=Re?Re=Me:Ae=!0,A(ue,p[Me],b,null,w,x,O,E,k),B++)}const ds=Ae?fr(mt):Dt;for(z=ds.length-1,_=de-1;_>=0;_--){const ue=j+_,Me=p[ue],ps=p[ue+1],hs=ue+1{const{el:x,type:O,transition:E,children:k,shapeFlag:_}=c;if(_&6){Oe(c.component.subTree,p,b,S);return}if(_&128){c.suspense.move(p,b,S);return}if(_&64){O.move(c,p,b,_t);return}if(O===te){n(x,p,b);for(let P=0;PE.enter(x),w));else{const{leave:P,delayLeave:F,afterLeave:L}=E,j=()=>{c.ctx.isUnmounted?l(x):n(x,p,b)},X=()=>{const z=x._isLeaving||!!x[tn];x._isLeaving&&x[tn](!0),E.persisted&&!z?j():P(x,()=>{j(),L&&L()})};F?F(x,j,X):X()}else n(x,p,b)},Pe=(c,p,b,S=!1,w=!1)=>{const{type:x,props:O,ref:E,children:k,dynamicChildren:_,shapeFlag:D,patchFlag:P,dirs:F,cacheIndex:L,memo:j}=c;if(P===-2&&(w=!1),E!=null&&(rt(),Jt(E,null,b,c,!0),at()),L!=null&&(p.renderCache[L]=void 0),D&256){p.ctx.deactivate(c);return}const X=D&1&&F,z=!Xt(c);let B;if(z&&(B=O&&O.onVnodeBeforeUnmount)&&Ve(B,p,c),D&6)us(c.component,b,S);else{if(D&128){c.suspense.unmount(b,S);return}X&&yt(c,null,p,"beforeUnmount"),D&64?c.type.remove(c,p,b,_t,S):_&&!_.hasOnce&&(x!==te||P>0&&P&64)?Qe(_,p,b,!1,!0):(x===te&&P&384||!w&&D&16)&&Qe(k,p,b),S&&Ze(c)}const de=j!=null&&L==null;(z&&(B=O&&O.onVnodeUnmounted)||X||de)&&ke(()=>{B&&Ve(B,p,c),X&&yt(c,null,p,"unmounted"),de&&(c.el=null)},b)},Ze=c=>{const{type:p,el:b,anchor:S,transition:w}=c;if(p===te){Bt(b,S);return}if(p===ks){I(c);return}const x=()=>{l(b),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(c.shapeFlag&1&&w&&!w.persisted){const{leave:O,delayLeave:E}=w,k=()=>O(b,x);E?E(c.el,x,k):k()}else x()},Bt=(c,p)=>{let b;for(;c!==p;)b=R(c),l(c),c=b;l(p)},us=(c,p,b)=>{const{bum:S,scope:w,job:x,subTree:O,um:E,m:k,a:_}=c;el(k),el(_),S&&Ss(S),w.stop(),x&&(x.flags|=8,Pe(O,c,p,b)),E&&ke(E,p),ke(()=>{c.isUnmounted=!0},p)},Qe=(c,p,b,S=!1,w=!1,x=0)=>{for(let O=x;O{if(c.shapeFlag&6)return At(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const p=R(c.anchor||c.el),b=p&&p[Eo];return b?R(b):p};let pt=!1;const vt=(c,p,b)=>{let S;c==null?p._vnode&&(Pe(p._vnode,null,null,!0),S=p._vnode.component):A(p._vnode||null,c,p,null,null,null,b),p._vnode=c,pt||(pt=!0,Un(S),Wl(),pt=!1)},_t={p:A,um:Pe,m:Oe,r:Ze,mt:Vt,mc:je,pc:J,pbc:Ge,n:At,o:e};return{render:vt,hydrate:void 0,createApp:Yo(vt)}}function nn({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function xt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ur(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function hi(e,t,s=!1){const n=e.children,l=t.children;if($(n)&&$(l))for(let i=0;i>1,e[s[a]]0&&(t[n]=s[i-1]),s[i]=n)}}for(i=s.length,r=s[i-1];i-- >0;)s[i]=r,r=t[r];return s}function gi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:gi(t)}function el(e){if(e)for(let t=0;te.__isSuspense;function dr(e,t){t&&t.pendingBranch?$(e)?t.effects.push(...e):t.effects.push(e):xo(e)}const te=Symbol.for("v-fgt"),zs=Symbol.for("v-txt"),ut=Symbol.for("v-cmt"),ks=Symbol.for("v-stc"),Et=[];let Ee=null;function C(e=!1){Et.push(Ee=e?null:[])}function mi(){Et.pop(),Ee=Et[Et.length-1]||null}let ss=1;function tl(e,t=!1){ss+=e,e<0&&Ee&&t&&(Ee.hasOnce=!0)}function bi(e){return e.dynamicChildren=ss>0?Ee||Dt:null,mi(),ss>0&&Ee&&Ee.push(e),e}function T(e,t,s,n,l,i){return bi(o(e,t,s,n,l,i,!0))}function pr(e,t,s,n,l){return bi(qe(e,t,s,n,l,!0))}function yi(e){return e?e.__v_isVNode===!0:!1}function Ut(e,t){return e.type===t.type&&e.key===t.key}const xi=({key:e})=>e??null,Ts=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?ae(e)||me(e)||N(e)?{i:Ie,r:e,k:t,f:!!s}:e:null);function o(e,t=null,s=null,n=0,l=null,i=e===te?0:1,r=!1,a=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&xi(t),ref:t&&Ts(t),scopeId:ql,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Ie};return a?(Ms(u,s),i&128&&e.normalize(u)):s&&(u.shapeFlag|=ae(s)?8:16),ss>0&&!r&&Ee&&(u.patchFlag>0||i&6)&&u.patchFlag!==32&&Ee.push(u),u}const qe=hr;function hr(e,t=null,s=null,n=0,l=null,i=!1){if((!e||e===Ho)&&(e=ut),yi(e)){const a=Ht(e,t,!0);return s&&Ms(a,s),ss>0&&!i&&Ee&&(a.shapeFlag&6?Ee[Ee.indexOf(e)]=a:Ee.push(a)),a.patchFlag=-2,a}if(Tr(e)&&(e=e.__vccOpts),t){t=gr(t);let{class:a,style:u}=t;a&&!ae(a)&&(t.class=Q(a)),Z(u)&&(Pn(u)&&!$(u)&&(u=be({},u)),t.style=Hs(u))}const r=ae(e)?1:_i(e)?128:Ks(e)?64:Z(e)?4:N(e)?2:0;return o(e,t,s,n,l,r,i,!0)}function gr(e){return e?Pn(e)||ai(e)?be({},e):e:null}function Ht(e,t,s=!1,n=!1){const{props:l,ref:i,patchFlag:r,children:a,transition:u}=e,g=t?_r(l||{},t):l,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&xi(g),ref:t&&t.ref?s&&i?$(i)?i.concat(Ts(t)):[i,Ts(t)]:Ts(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==te?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ht(e.ssContent),ssFallback:e.ssFallback&&Ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&n&&Rn(h,u.clone(h)),h}function q(e=" ",t=0){return qe(zs,null,e,t)}function vr(e,t){const s=qe(ks,null,e);return s.staticCount=t,s}function ve(e="",t=!1){return t?(C(),pr(ut,null,e)):qe(ut,null,e)}function Ue(e){return e==null||typeof e=="boolean"?qe(ut):$(e)?qe(te,null,e.slice()):yi(e)?lt(e):qe(zs,null,String(e))}function lt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ht(e)}function Ms(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if($(t))s=16;else if(typeof t=="object")if(n&65){const l=t.default;l&&(l._c&&(l._d=!1),Ms(e,l()),l._c&&(l._d=!0));return}else{s=32;const l=t._;!l&&!ai(t)?t._ctx=Ie:l===3&&Ie&&(Ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(N(t)){if(n&65){Ms(e,{default:t});return}t={default:t,_ctx:Ie},s=32}else t=String(t),n&64?(s=16,t=[q(t)]):s=8;e.children=t,e.shapeFlag|=s}function _r(...e){const t={};for(let s=0;sSe||Ie;let Is,ns;{const e=js(),t=(s,n)=>{let l;return(l=e[s])||(l=e[s]=[]),l.push(n),i=>{l.length>1?l.forEach(r=>r(i)):l[0](i)}};Is=t("__VUE_INSTANCE_SETTERS__",s=>Se=s),ns=t("__VUE_SSR_SETTERS__",s=>ls=s)}const as=e=>{const t=Se;return Is(e),e.scope.on(),()=>{e.scope.off(),Is(t)}},sl=()=>{Se&&Se.scope.off(),Is(null)};function wi(e){return e.vnode.shapeFlag&4}let ls=!1;function wr(e,t=!1,s=!1){t&&ns(t);const{props:n,children:l}=e.vnode,i=wi(e);sr(e,n,i,t),or(e,l,s||t);const r=i?Sr(e,t):void 0;return t&&ns(!1),r}function Sr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Vo);const{setup:n}=s;if(n){rt();const l=e.setupContext=n.length>1?kr(e):null,i=as(e),r=rs(n,e,0,[e.props,l]),a=bl(r);if(at(),i(),(a||e.sp)&&!Xt(e)&&Xl(e),a){if(r.then(sl,sl),t)return r.then(u=>{ns(!0);try{nl(e,u,t)}finally{ns(!1)}}).catch(u=>{Bs(u,e,0)});e.asyncDep=r}else nl(e,r)}else Si(e)}function nl(e,t,s){N(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Bl(t)),Si(e)}function Si(e,t,s){const n=e.type;e.render||(e.render=n.render||ze);{const l=as(e);rt();try{Bo(e)}finally{at(),l()}}}const Cr={get(e,t){return _e(e,"get",""),e[t]}};function kr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Cr),slots:e.slots,emit:e.emit,expose:t}}function qs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Bl(ao(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Zt)return Zt[s](e)},has(t,s){return s in t||s in Zt}})):e.proxy}function Tr(e){return N(e)&&"__vccOpts"in e}const fe=(e,t)=>go(e,t,ls),Er="3.5.41";/** * @vue/runtime-dom v3.5.41 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/let _n;const ll=typeof window<"u"&&window.trustedTypes;if(ll)try{_n=ll.createPolicy("vue",{createHTML:e=>e})}catch{}const Ci=_n?e=>_n.createHTML(e):e=>e,Or="http://www.w3.org/2000/svg",Pr="http://www.w3.org/1998/Math/MathML",nt=typeof document<"u"?document:null,il=nt&&nt.createElement("template"),Ar={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const l=t==="svg"?nt.createElementNS(Or,e):t==="mathml"?nt.createElementNS(Pr,e):s?nt.createElement(e,{is:s}):nt.createElement(e);return e==="select"&&n&&n.multiple!=null&&l.setAttribute("multiple",n.multiple),l},createText:e=>nt.createTextNode(e),createComment:e=>nt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>nt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,l,i){const r=s?s.previousSibling:t.lastChild;if(l&&(l===i||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),s),!(l===i||!(l=l.nextSibling)););else{il.innerHTML=Ci(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const a=il.content;if(n==="svg"||n==="mathml"){const u=a.firstChild;for(;u.firstChild;)a.appendChild(u.firstChild);a.removeChild(u)}t.insertBefore(a,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Rr=Symbol("_vtc");function Mr(e,t,s){const n=e[Rr];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const ol=Symbol("_vod"),Ir=Symbol("_vsh"),Fr=Symbol(""),Dr=/(?:^|;)\s*display\s*:/;function Lr(e,t,s){const n=e.style,l=ae(s);let i=!1;if(s&&!l){if(t)if(ae(t))for(const r of t.split(";")){const a=r.slice(0,r.indexOf(":")).trim();s[a]==null&&zt(n,a,"")}else for(const r in t)s[r]==null&&zt(n,r,"");for(const r in s){r==="display"&&(i=!0);const a=s[r];a!=null?Nr(e,r,!ae(t)&&t?t[r]:void 0,a)||zt(n,r,a):zt(n,r,"")}}else if(l){if(t!==s){const r=n[Fr];r&&(s+=";"+r),n.cssText=s,i=Dr.test(s)}}else t&&e.removeAttribute("style");ol in e&&(e[ol]=i?n.display:"",e[Ir]&&(n.display="none"))}const rl=/\s*!important$/;function zt(e,t,s){if($(s))s.forEach(n=>zt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=$r(e,t);rl.test(s)?e.setProperty(Ot(n),s.replace(rl,""),"important"):e[n]=s}}const al=["Webkit","Moz","ms"],ln={};function $r(e,t){const s=ln[t];if(s)return s;let n=De(t);if(n!=="filter"&&n in e)return ln[t]=n;n=wl(n);for(let l=0;lon||(Ur.then(()=>on=0),on=Date.now());function zr(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;const l=s.value;if($(l)){const i=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{i.call(n),n._stopped=!0};const r=l.slice(),a=[n];for(let u=0;ue.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,qr=(e,t,s,n,l,i)=>{const r=l==="svg";t==="class"?Mr(e,n,r):t==="style"?Lr(e,s,n):Ds(t)?Ls(t)||Hr(e,t,s,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Yr(e,t,n,r))?(fl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ul(e,t,n,r,i,t!=="value")):e._isVueCE&&(Gr(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ae(n)))?fl(e,De(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),ul(e,t,n,r))};function Yr(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&pl(t)&&N(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const l=e.tagName;if(l==="IMG"||l==="VIDEO"||l==="CANVAS"||l==="SOURCE")return!1}return pl(t)&&ae(s)?!1:t in e}function Gr(e,t){const s=e._def.props;if(!s)return!1;const n=De(t);return Array.isArray(s)?s.some(l=>De(l)===n):Object.keys(s).some(l=>De(l)===n)}const Fs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return $(t)?s=>Ss(t,s):t};function Jr(e){e.target.composing=!0}function hl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ct=Symbol("_assign"),xs=Symbol("_initialValue");function rn(e,t,s){return t&&(e=e.trim()),s&&(e=xn(e)),e}const ws={created(e,{modifiers:{lazy:t,trim:s,number:n}},l){e.parentNode&&(e.type==="text"?e[xs]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[xs]=e.defaultValue.replace(/\r\n?/g,` `))),e[Ct]=Fs(l);const i=n||l.props&&l.props.type==="number";St(e,t?"change":"input",r=>{r.target.composing||e[Ct](rn(e.value,s,i))}),(s||i)&&St(e,"change",()=>{e.value=rn(e.value,s,i)}),t||(St(e,"compositionstart",Jr),St(e,"compositionend",hl),St(e,"change",hl))},mounted(e,{value:t,modifiers:{trim:s,number:n}}){const l=t??"",i=e[xs];delete e[xs],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ct](rn(e.value,s,n)):e.value=l},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:l,number:i}},r){if(e[Ct]=Fs(r),e.composing)return;const a=(i||e.type==="number")&&!/^0\d/.test(e.value)?xn(e.value):e.value,u=t??"";if(a===u)return;const g=e.getRootNode();(g instanceof Document||g instanceof ShadowRoot)&&g.activeElement===e&&e.type!=="range"&&(n&&t===s||l&&e.value.trim()===u)||(e.value=u)}},gl={deep:!0,created(e,t,s){e[Ct]=Fs(s),St(e,"change",()=>{const n=e._modelValue,l=Xr(e),i=e.checked,r=e[Ct];if($(n)){const a=kl(n,l),u=a!==-1;if(i&&!u)r(n.concat(l));else if(!i&&u){const g=[...n];g.splice(a,1),r(g)}}else if($s(n)){const a=new Set(n);i?a.add(l):a.delete(l),r(a)}else r(ki(e,i))})},mounted:vl,beforeUpdate(e,t,s){e[Ct]=Fs(s),vl(e,t,s)}};function vl(e,{value:t,oldValue:s},n){e._modelValue=t;let l;if($(t))l=kl(t,n.props.value)>-1;else if($s(t))l=t.has(n.props.value);else{if(t===s)return;l=os(t,ki(e,!0))}e.checked!==l&&(e.checked=l)}function Xr(e){return"_value"in e?e._value:e.value}function ki(e,t){const s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}const Zr=["ctrl","shift","alt","meta"],Qr={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Zr.some(s=>e[`${s}Key`]&&!t.includes(s))},ea=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((l,...i)=>{for(let r=0;r{const t=sa().createApp(...e),{mount:s}=t;return t.mount=n=>{const l=ia(n);if(!l)return;const i=t._component;!N(i)&&!i.render&&!i.template&&(i.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const r=s(l,!1,la(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),r},t});function la(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ia(e){return ae(e)?document.querySelector(e):e}const oa={class:"app-shell"},ra={class:"content",id:"overview"},aa={class:"topbar"},ca={class:"topbar-meta"},ua={class:"as-of"},fa={key:0,class:"state-card"},da={key:1,class:"state-card error-state"},pa={class:"kpi-grid","aria-label":"Signal summary"},ha={class:"kpi-card accent-card"},ga={class:"kpi-value"},va={class:"kpi-foot"},_a={class:"long-count"},ma={class:"short-count"},ba={class:"neutral-count"},ya={class:"kpi-card"},xa={class:"kpi-value"},wa={class:"kpi-foot"},Sa={class:"panel theme-panel",id:"themes"},Ca={class:"panel-header signal-header"},ka={class:"status-tag"},Ta={class:"theme-grid"},Ea={class:"theme-card-head"},Oa={class:"theme-chip"},Pa={class:"theme-label-th"},Aa={class:"theme-surprise"},Ra={class:"theme-surprise-value"},Ma={class:"theme-read"},Ia={key:0,class:"theme-read-value"},Fa={key:1,class:"theme-read-value"},Da={key:2,class:"theme-read-value"},La={key:3,class:"theme-read-value"},$a={key:4,class:"theme-read-value"},Na={key:5,class:"theme-read-value"},ja={key:6,class:"theme-read-value"},Ha={key:7,class:"theme-read-value"},Va={key:8,class:"theme-read-value"},Ba={key:9,class:"theme-read-value"},Ka={key:10,class:"theme-read-value"},Ua={key:11,class:"theme-read-value"},Wa={key:12,class:"theme-read-value"},za={key:13,class:"theme-read-value"},qa={key:0,class:"theme-narrative"},Ya={key:0,class:"macro-panel"},Ga={class:"macro-chips"},Ja={class:"macro-chip"},Xa={class:"macro-chip"},Za={class:"macro-chip"},Qa={class:"macro-chip"},ec={class:"macro-chip"},tc={class:"panel stock-panel",id:"stocks"},sc={class:"panel-header signal-header"},nc={class:"stock-controls"},lc={class:"toggle-filter"},ic={key:0,class:"empty-research"},oc={key:1,class:"table-wrap"},rc={class:"factor-table"},ac=["onClick"],cc={key:1,class:"muted-cell"},uc={class:"combined-cell"},fc={class:"symbol-name"},dc={key:0,class:"muted-cell"},pc={class:"score-cell"},hc={key:0,class:"dividend-dot",title:"จ่ายปันผล"},gc={class:"panel lineage-panel",id:"lineage"},vc={class:"panel-header signal-header"},_c={class:"status-tag"},mc={class:"table-wrap"},bc={class:"source-table"},yc={class:"source-name"},xc={class:"muted-cell"},wc={class:"muted-cell"},Sc={class:"muted-cell"},Cc={class:"muted-cell"},kc={class:"panel sim-panel",id:"suggestion"},Tc={class:"panel-header signal-header"},Ec={class:"status-tag neutral-tag"},Oc={class:"sim-controls"},Pc={class:"sim-field"},Ac=["disabled"],Rc={key:0,class:"sim-result"},Mc={class:"sim-sums"},Ic={class:"sim-sum"},Fc={class:"sim-sum"},Dc={class:"sim-note"},Lc={class:"sim-buckets"},$c={class:"sim-bucket"},Nc={class:"sim-order-table"},jc={key:0},Hc={class:"muted-cell"},Vc={class:"score-cell"},Bc={class:"score-cell"},Kc={key:1},Uc={class:"sim-bucket"},Wc={class:"sim-order-table"},zc={key:0},qc={class:"muted-cell"},Yc={class:"score-cell"},Gc={class:"score-cell"},Jc={key:1},Xc={class:"sim-bucket"},Zc={class:"sim-order-table"},Qc={key:0},eu={class:"muted-cell"},tu={class:"score-cell"},su={class:"score-cell"},nu={key:1},lu={key:1,class:"empty-research"},iu={class:"panel backtest-panel",id:"backtest"},ou={class:"backtest-controls"},ru={class:"checkbox-label",style:{display:"flex","align-items":"center",gap:"6px"}},au=["disabled"],cu={key:0,class:"state-card warning-state"},uu={class:"muted-cell",style:{"margin-top":"4px"}},fu={class:"muted-cell",style:{"margin-top":"2px"}},du={key:1,class:"state-card error-state"},pu={key:2,class:"backtest-results"},hu={class:"bt-kpi-grid"},gu={class:"bt-kpi"},vu={class:"bt-kpi"},_u={class:"bt-kpi"},mu={class:"positive-text"},bu={class:"bt-kpi"},yu={class:"negative-text"},xu={class:"bt-kpi"},wu={class:"bt-kpi"},Su={class:"bt-kpi"},Cu={class:"bt-meta muted-cell"},ku={key:0,class:"bt-meta"},Tu={key:1,class:"bt-meta muted-cell"},Eu={key:2,class:"bt-holdings"},Ou={class:"source-table",style:{"margin-top":"6px"}},Pu={class:"muted-cell"},Au={key:3,class:"empty-research"},Ru={key:4,class:"bt-history"},Mu={class:"source-table"},Iu={key:0,class:"status-tag warning-tag",title:"ใช้คะแนนปัจจุบันย้อนหลัง ไม่ใช่ point-in-time"},Fu={class:"positive-text"},Du=["title"],Lu={class:"muted-cell"},$u={class:"panel health-panel",id:"health"},Nu={key:0,class:"empty-research muted-cell"},ju={key:1},Hu={class:"source-table"},Vu={class:"source-name"},Bu={class:"muted-cell",style:{"font-size":"11px"}},Ku={key:0,class:"status-tag",style:{background:"#1a7f37",color:"#fff"}},Uu={key:1,class:"status-tag warning-tag"},Wu={key:0,class:"muted-cell",style:{"font-size":"11px","word-break":"break-word"}},zu={class:"muted-cell"},qu=["onClick"],Yu={class:"modal-card"},Gu={class:"modal-head"},Ju={key:0,class:"empty-research"},Xu={key:1,class:"state-card error-state"},Zu={key:2,class:"modal-body"},Qu={class:"modal-section"},ef={key:0,class:"modal-themes"},tf={class:"contrib-name"},sf={key:0,class:"contrib-calc"},nf={key:1,class:"muted-cell"},lf={key:1,class:"muted-cell"},of={class:"modal-section"},rf={key:0},af={style:{color:"var(--accent)"}},cf={class:"score-table"},uf={class:"muted-cell",style:{"font-size":"10px"}},ff={class:"calc-z",style:{"margin-top":"4px"}},df={key:0},pf={key:1,class:"muted-cell"},hf={key:1,class:"muted-cell"},gf={class:"modal-section"},vf={class:"fund-grid"},_f={class:"modal-sub"},mf={class:"modal-section"},bf={class:"calc-box"},yf={class:"calc-line"},xf={class:"calc-step-head"},wf={class:"calc-step-note"},Sf={key:0,class:"calc-z"},Cf={class:"modal-sub"},kf={__name:"App",setup(e){const t=K(null),s=K(null),n=K(null),l=K(null),i=K(null),r=K(null),a=K(1e6),u=K(null),g=K(null),h=K(!1),y=K(""),R=K(""),M=K(1e6),U=K(!1),A=K(null),ne=K([]),V=K(null),H=K(!0),W=K(!1),I=K(null),oe=K(!1),le=K("signal_score"),ge=K("desc"),je=K({entries:[]}),Pt=K(null),Ge=K(null),Je=K(!0),Xe=K(""),dt=K(""),Vt=K(!1),cs=K("token"),pe=K(!0),ie=K(""),J=fe(()=>{var v;return((v=l.value)==null?void 0:v.factors)??[]}),He=fe(()=>{var v;return((v=r.value)==null?void 0:v.themes)??[]}),gt=fe(()=>{var v;return((v=r.value)==null?void 0:v.sources)??[]}),Oe=K([]),Pe=K(!1),Ze=fe(()=>{var v;return((v=r.value)==null?void 0:v.macro)??{}}),Bt=fe(()=>gt.value.length),us=fe(()=>{var v,f;return((f=(v=r.value)==null?void 0:v.source_summary)==null?void 0:f.factor_keys)??Bt.value}),Qe=fe(()=>{var v;return((v=r.value)==null?void 0:v.available)??!1}),At=fe(()=>{var v;return((v=r.value)==null?void 0:v.board)??J.value}),pt=fe(()=>{const v={};for(const f of At.value)v[f.symbol]=f;return v}),vt=fe(()=>{var f;const v=(f=t.value)==null?void 0:f.signal_summary;return{long:(v==null?void 0:v.long)??0,short:(v==null?void 0:v.short)??0,neutral:(v==null?void 0:v.neutral)??0,total:(v==null?void 0:v.total)??0}}),_t=v=>({monthly:"รายเดือน",quarterly:"รายไตรมาส",annual:"รายปี",daily:"รายวัน"})[v]||v,fs=fe(()=>{const v={};for(const f of He.value)v[f.id]=f.label_th;return v});function c(v){const f=pt.value[v];return((f==null?void 0:f.themes)??[]).map(ye=>fs.value[ye]||ye)}const p=fe(()=>{var v;return((v=l.value)==null?void 0:v.available)??!1}),b=fe(()=>{var v;return((v=l.value)==null?void 0:v.dividend_count)??0}),S=fe(()=>{var v;return((v=i.value)==null?void 0:v.combined_count)??0}),w=fe(()=>{let v=J.value;return oe.value&&(v=v.filter(f=>f.is_dividend)),v});function x(v,f){var re;return f==="signal_score"?v.signal_score??(v.signal_side==="LONG"?9999:0):f==="combined"?((re=pt.value[v.symbol])==null?void 0:re.combined)??-9999:f==="symbol"?v.symbol:f==="dividend_yield"?v.dividend_yield??-1:f==="eps_growth_yoy"?v.eps_growth_yoy??-1:f==="pe"?v.pe??0:f==="eps"?v.eps??0:f==="pbv"?v.pbv??0:f==="roe"?v.roe??0:v[f]}const O=fe(()=>{const v=[...w.value],f=ge.value==="asc"?1:-1;return v.sort((re,ye)=>{const Te=x(re,le.value),et=x(ye,le.value);return typeof Te=="string"?Te.localeCompare(et)*f:Te===et?re.symbol.localeCompare(ye.symbol):Te==null?1:et==null?-1:(Te-et)*f}),v});function E(v){le.value===v?ge.value=ge.value==="asc"?"desc":"asc":(le.value=v,ge.value="desc")}function k(v){return le.value!==v?"":ge.value==="asc"?"↑":"↓"}function _(v,f=2){return Number(v??0).toFixed(f)}function D(v){return(v||[]).reduce((f,re)=>f+(re.contribution??0),0)}function P(v){return(v||[]).reduce((f,re)=>f+Math.abs(re.weight??0),0)}function F(v){const f=(v||[]).filter(Te=>!Te.missing&&Te.normalized!=null),re=D(f),ye=P(f);return ye===0?null:Math.max(-1,Math.min(1,re/ye))}function L(v){return v==="dated_ledger"}function j(v){return L(v)?{label:"ตามวันจริง",cls:"status-tag",style:"background:#1a7f37;color:#fff"}:v==="dps_annual_proxy"?{label:"Proxy (ต่อหุ้น)",cls:"status-tag warning-tag"}:{label:"Proxy",cls:"status-tag warning-tag"}}function X(v){return L(v)?"ปันผลตามวันจริงจาก ledger (ex-date × จำนวนหุ้น) — กระแสเงินสดจริง":v==="dps_annual_proxy"?"ประมาณการปันผลต่อหุ้น (DPS ล่าสุด × จำนวนหุ้น) ไม่ใช่กระแสเงินสดตามวันจริง":"ประมาณจาก dividend yield ของพอร์ตสุดท้าย ไม่ใช่กระแสเงินสดปันผลจริง"}function z(v){return v?new Date(v).toLocaleString("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}async function B(v,f){const re=await fetch(v,f);if(!re.ok){const ye=await re.json().catch(()=>({}));throw new Error(ye.error||`Request failed: ${re.status}`)}return re.json()}async function de(){const v=await fetch("/api/v1/backtest/tourism?min_events=12"),f=await v.json().catch(()=>({}));if(![200,409].includes(v.status))throw new Error(f.error||`Request failed: ${v.status}`);return f}async function Ae(){const v=await fetch("/api/v1/research/tourism/latest");if(v.status===404)return null;const f=await v.json().catch(()=>({}));if(!v.ok)throw new Error(f.error||`Request failed: ${v.status}`);return f}const Re=fe(()=>{var v;return((v=I.value)==null?void 0:v.orders)??[]}),mt=fe(()=>{var v;return((v=I.value)==null?void 0:v.invested)??0}),ds=fe(()=>{var v;return((v=I.value)==null?void 0:v.unallocated_cash)??0}),ue=v=>Re.value.filter(f=>f.bucket===v);async function Me(){W.value=!0,I.value=null;try{I.value=await B("/api/v1/suggestion",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({capital:Number(a.value)})})}catch(v){dt.value=v.message}finally{W.value=!1}}async function ps(){Je.value=!0,Xe.value="";try{const[v,f,re,ye,Te,et,gs,bt,vs,_s]=await Promise.all([B("/api/v1/dashboard/summary"),B("/api/v1/factors/tourism/observations"),B("/api/v1/signals"),B("/api/v1/factors"),B("/api/v1/themes"),B("/api/v1/dashboard"),B("/api/v1/paper/ledger"),B("/api/v1/auth/paper",{credentials:"include"}),de(),Ae()]);t.value=v,s.value=f,n.value=re,l.value=ye,i.value=Te,r.value=et,je.value=gs,Vt.value=!!bt.authenticated,cs.value=bt.mode||"token",pe.value=bt.enabled!==!1,ie.value=bt.warning||"",Pt.value=vs,Ge.value=_s}catch(v){Xe.value=v.message}finally{Je.value=!1}}async function hs(v){u.value=v,g.value=null,h.value=!0;try{g.value=await B(`/api/v1/symbols/${v}`)}catch(f){g.value={error:f.message,symbol:v}}finally{h.value=!1}}function Dn(){u.value=null,g.value=null}async function Ti(){try{const v=await B("/api/v1/backtest/readiness");V.value=v,!y.value&&v.recommended_start&&(y.value=v.recommended_start),!R.value&&v.recommended_end&&(R.value=v.recommended_end)}catch{V.value=null}}async function Ei(){try{const v=await B("/api/v1/scheduler/sources");Oe.value=v.sources||[]}catch{Oe.value=[]}Pe.value=!0}const Ys=v=>({ok:"ปกติ",network:"เครือข่ายขัดข้อง",timeout:"หมดเวลา",http:"HTTP error",parse:"รูปแบบข้อมูลผิด",structure:"หน้าเว็บเปลี่ยนโครงสร้าง",auth:"สิทธิ์/ยืนยันตัวตน",other:"อื่น ๆ"})[v]||v;async function Oi(v){const f=`[${v.at}] ${v.label} (${v.key}) — ${v.ok?"OK":"FAIL: "+Ys(v.category)} ${v.detail?"| "+v.detail:""}`;try{await navigator.clipboard.writeText(f),dt.value=`คัดลอกสาเหตุของ ${v.key} แล้ว`}catch{dt.value=f}}function Pi(v){return v.ok?"":` (สาเหตุน่าจะ: ${Ys(v.category)})`}async function Ai(){U.value=!0,A.value=null;try{A.value=await B("/api/v1/backtest/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({start:y.value,end:R.value,capital:Number(M.value),use_ledger:H.value})}),await Ln()}catch(v){A.value={error:v.message}}finally{U.value=!1}}async function Ln(){try{ne.value=(await B("/api/v1/backtest/run")).runs||[]}catch{ne.value=[]}}const Rt=v=>v!=null?v>=0?"positive-text":"negative-text":"";return Ql(async()=>{await ps(),await Promise.all([Ln(),Ti(),Ei()])}),(v,f)=>{var re,ye,Te,et,gs,bt,vs,_s,$n,Nn,jn;return C(),T("div",oa,[f[79]||(f[79]=vr('',1)),o("main",ra,[o("header",aa,[f[16]||(f[16]=o("div",null,[o("div",{class:"eyebrow"},"Alternative data · SET50"),o("h1",null,"SET50 Signal Lab"),o("p",{class:"subtitle"},"ภาพรวม alternative factors ไทย ไปจนถึงสัญญาณลงทุนที่อธิบายได้ — research + paper only")],-1)),o("div",ca,[o("div",{class:Q(["freshness-pill",Qe.value?"pill-live":"pill-fixture"])},[f[15]||(f[15]=o("span",{class:"freshness-dot"},null,-1)),q(m(Qe.value?"ข้อมูลจริงจากแหล่งไทย":"ข้อมูลจำลอง (fixture)"),1)],2),o("div",ua,"ข้อมูล "+m(((re=t.value)==null?void 0:re.as_of)||"—"),1)])]),Je.value?(C(),T("div",fa,"กำลังโหลดข้อมูล…")):Xe.value?(C(),T("div",da,m(Xe.value),1)):(C(),T(te,{key:2},[o("section",pa,[o("article",ha,[f[19]||(f[19]=o("div",{class:"kpi-label"},"สัญญาณที่ใช้งาน",-1)),o("div",ga,m(vt.value.long),1),o("div",va,[o("span",_a,m(vt.value.long)+" ซื้อ",1),f[17]||(f[17]=q(" · ",-1)),o("span",ma,m(vt.value.short)+" ขาย",1),f[18]||(f[18]=q(" · ",-1)),o("span",ba,m(vt.value.neutral)+" เป็นกลาง",1)])]),o("article",ya,[f[20]||(f[20]=o("div",{class:"kpi-label"},"แหล่งข้อมูลที่ใช้",-1)),o("div",xa,m(us.value)+" ปัจจัย · "+m(Bt.value)+" แหล่ง",1),o("div",wa,"ข้อมูลจริงจากแหล่งไทย "+m(Qe.value?"(จริง)":"—"),1)])]),o("section",Sa,[o("div",Ca,[f[21]||(f[21]=o("div",null,[o("div",{class:"section-kicker"},"ธีม"),o("h2",null,"ธีม (Themes)"),o("p",{class:"panel-subtitle"},"ภาพรวม alternative factors ของไทย — แต่ละธีมมีความถี่ข้อมูลต่างกัน (monthly / quarterly) ดังนั้นอย่าเทียบเป็นจุดเวลาเดียวกัน.")],-1)),o("span",ka,"รวม "+m(S.value)+" symbols",1)]),o("div",Ta,[(C(!0),T(te,null,Ce(He.value,d=>(C(),T("article",{key:d.id,class:"theme-card"},[o("div",Ea,[o("span",Oa,m(_t(d.frequency)),1),o("span",Pa,m(d.label_th),1)]),o("div",Aa,[f[22]||(f[22]=o("span",{class:"theme-surprise-label"},"ความต่าง (surprise)",-1)),o("span",Ra,m(d.surprise!=null?_(d.surprise,2)+"σ":"—"),1)]),o("div",Ma,[d.id==="auto_credit"&&d.read.new_car_sales_yoy!=null?(C(),T("div",Ia,m(_(d.read.new_car_sales_yoy))+"% YoY ยอดขายรถ",1)):d.id==="auto_credit"&&d.read.auto_npl_pct!=null?(C(),T("div",Fa,"NPL "+m(_(d.read.auto_npl_pct))+"%",1)):d.id==="refining_energy"&&(d.read.quarterly||d.read.net_profit)?(C(),T("div",Da,"กำไรสุทธิ TOP (รายไตรมาส)")):d.id==="refining_energy"&&d.read.irpc_net_margin_pct!=null?(C(),T("div",La,"กำไรสุทธิ IRPC "+m(_(d.read.irpc_net_margin_pct))+"%",1)):d.id==="tourism"?(C(),T("div",$a,"signal tourism "+m(d.surprise!=null?_(d.surprise,2):"—")+"σ",1)):d.id==="banks"&&d.read.interest_rate_pct!=null?(C(),T("div",Na,"ดอกเบี้ย "+m(_(d.read.interest_rate_pct))+"%",1)):d.id==="banks"&&d.read.bank_npl_pct!=null?(C(),T("div",ja,"NPL ภาคการเงิน "+m(_(d.read.bank_npl_pct))+"%",1)):(d.id==="retail"||d.id==="consumer_staples")&&d.read.retail_sales_yoy!=null?(C(),T("div",Ha,"ยอดขายปลีก "+m(_(d.read.retail_sales_yoy))+"% YoY",1)):(d.id==="retail"||d.id==="consumer_staples")&&d.read.consumer_confidence!=null?(C(),T("div",Va,"เชื่อมั่นผู้บริโภค "+m(_(d.read.consumer_confidence,1)),1)):d.id==="nonbank_finance"&&d.read.consumer_credit!=null?(C(),T("div",Ba,"สินเชื่อผู้บริโภค "+m(_(d.read.consumer_credit/1e6,2))+" ล้านลบ.",1)):d.id==="nonbank_finance"&&d.read.household_debt_gdp!=null?(C(),T("div",Ka,"หนี้ครัวเรือน "+m(_(d.read.household_debt_gdp))+"% GDP",1)):d.id==="property"&&d.read.property_prices_yoy!=null?(C(),T("div",Ua,"ราคาอสังหา "+m(_(d.read.property_prices_yoy))+"% YoY",1)):d.id==="telecom_it"&&d.read.business_confidence!=null?(C(),T("div",Wa,"เชื่อมั่นธุรกิจ "+m(_(d.read.business_confidence,1)),1)):d.id==="healthcare"&&d.read.consumption_yoy!=null?(C(),T("div",za,"บริโภค "+m(_(d.read.consumption_yoy))+"% YoY",1)):ve("",!0)]),d.narrative?(C(),T("div",qa,m(d.narrative),1)):ve("",!0)]))),128))]),Object.keys(Ze.value).length?(C(),T("div",Ya,[f[28]||(f[28]=o("div",{class:"section-kicker"},"ภาพรวมประเทศไทย",-1)),o("div",Ga,[o("span",Ja,[f[23]||(f[23]=q("การบริโภคภาคเอกชน ",-1)),o("strong",null,m(Ze.value.private_consumption_yoy)+"%",1)]),o("span",Xa,[f[24]||(f[24]=q("การลงทุนเอกชน ",-1)),o("strong",null,m(Ze.value.private_investment_yoy)+"%",1)]),o("span",Za,[f[25]||(f[25]=q("เงินเฟ้อ ",-1)),o("strong",null,m(Ze.value.headline_inflation_yoy)+"%",1)]),o("span",Qa,[f[26]||(f[26]=q("การว่างงาน ",-1)),o("strong",null,m(Ze.value.unemployment_pct)+"%",1)]),o("span",ec,[f[27]||(f[27]=q("นักท่องเที่ยว YTD ",-1)),o("strong",null,m(Ze.value.tourists_ytd_mn)+" ล้าน",1)])])])):ve("",!0)]),o("section",tc,[o("div",sc,[f[29]||(f[29]=o("div",null,[o("div",{class:"section-kicker"},"ตารางหุ้น"),o("h2",null,"ตารางหุ้น"),o("p",{class:"panel-subtitle"},[q("ตารางเดียวรวมทุกธีม — สัญญาณ + คะแนนรวม (60% ธีม / 40% พื้นฐาน) + มูลค่าพื้นฐานจาก Siamchart. เรียงได้โดยคลิกหัวตาราง; เปิด "),o("em",null,"เฉพาะหุ้นปันผล"),q(" เพื่อกรองหุ้นที่จ่ายปันผล.")])],-1)),o("div",nc,[o("label",lc,[It(o("input",{type:"checkbox","onUpdate:modelValue":f[0]||(f[0]=d=>oe.value=d)},null,512),[[gl,oe.value]]),o("span",null,"เฉพาะหุ้นปันผล ("+m(b.value)+")",1)]),o("span",{class:Q(["status-tag",p.value?"":"warning-tag"])},m(p.value?"Siamchart ใช้งานได้":"ไม่มี factor"),3)])]),p.value?(C(),T("div",oc,[o("table",rc,[o("thead",null,[o("tr",null,[o("th",{class:Q(["sortable",{active:le.value==="signal_score"}]),onClick:f[1]||(f[1]=d=>E("signal_score"))},"สัญญาณ "+m(k("signal_score")),3),o("th",{class:Q(["sortable",{active:le.value==="combined"}]),onClick:f[2]||(f[2]=d=>E("combined")),title:"60% ธีม + 40% พื้นฐาน"},"คะแนนรวม (60/40) "+m(k("combined")),3),o("th",{class:Q(["sortable",{active:le.value==="symbol"}]),onClick:f[3]||(f[3]=d=>E("symbol"))},"หุ้น "+m(k("symbol")),3),f[31]||(f[31]=o("th",null,"ธีม",-1)),o("th",{class:Q(["sortable",{active:le.value==="pe"}]),onClick:f[4]||(f[4]=d=>E("pe"))},"P/E "+m(k("pe")),3),o("th",{class:Q(["sortable",{active:le.value==="eps"}]),onClick:f[5]||(f[5]=d=>E("eps"))},"EPS "+m(k("eps")),3),o("th",{class:Q(["sortable",{active:le.value==="eps_growth_yoy"}]),onClick:f[6]||(f[6]=d=>E("eps_growth_yoy"))},"EPS YoY "+m(k("eps_growth_yoy")),3),o("th",{class:Q(["sortable",{active:le.value==="dividend_yield"}]),onClick:f[7]||(f[7]=d=>E("dividend_yield"))},"ปันผล % "+m(k("dividend_yield")),3),o("th",{class:Q(["sortable",{active:le.value==="pbv"}]),onClick:f[8]||(f[8]=d=>E("pbv"))},"P/BV "+m(k("pbv")),3),o("th",{class:Q(["sortable",{active:le.value==="roe"}]),onClick:f[9]||(f[9]=d=>E("roe"))},"ROE "+m(k("roe")),3)])]),o("tbody",null,[(C(!0),T(te,null,Ce(O.value,d=>{var tt;return C(),T("tr",{key:d.symbol,class:"clickable-row",onClick:ce=>hs(d.symbol)},[o("td",null,[d.signal_side?(C(),T("span",{key:0,class:Q(["side-pill",d.signal_side.toLowerCase()])},m(d.signal_side),3)):(C(),T("span",cc,"—"))]),o("td",uc,m(((tt=pt.value[d.symbol])==null?void 0:tt.combined)!=null?_(pt.value[d.symbol].combined):"—"),1),o("td",null,[o("strong",fc,m(d.symbol),1)]),o("td",null,[(C(!0),T(te,null,Ce(c(d.symbol),ce=>(C(),T("span",{key:ce,class:"theme-tag"},m(ce),1))),128)),c(d.symbol).length?ve("",!0):(C(),T("span",dc,"—"))]),o("td",pc,m(d.pe!=null?_(d.pe):"—"),1),o("td",null,m(d.eps!=null?_(d.eps):"—"),1),o("td",{class:Q(d.eps_growth_yoy>=0?"positive-text":"negative-text")},m(d.eps_growth_yoy!=null?(d.eps_growth_yoy>=0?"+":"")+_(d.eps_growth_yoy)+"%":"—"),3),o("td",{class:Q(d.dividend_yield>=0?"positive-text":"")},[q(m(d.dividend_yield!=null?_(d.dividend_yield)+"%":"—"),1),d.is_dividend?(C(),T("span",hc,"●")):ve("",!0)],2),o("td",null,m(d.pbv!=null?_(d.pbv):"—"),1),o("td",{class:Q(d.roe>=0?"positive-text":"negative-text")},m(d.roe!=null?_(d.roe)+"%":"—"),3)],8,ac)}),128))])])])):(C(),T("div",ic,[...f[30]||(f[30]=[q("Siamchart snapshot ไม่อยู่บน disk. รัน ",-1),o("code",null,"collect_siamchart.py --group SET50 --with-info",-1),q(" เพื่อเก็บข้อมูล.",-1)])]))]),o("section",gc,[o("div",vc,[f[32]||(f[32]=o("div",null,[o("div",{class:"section-kicker"},"ที่มาของข้อมูล"),o("h2",null,"แหล่งข้อมูลทั้งหมด"),o("p",{class:"panel-subtitle"},"รายการแหล่งข้อมูลจริงที่ใช้ — ดึงมาเมื่อใด และข้อมูลชุดไหน ข้อมูลทั้งหมดจากแหล่งไทย.")],-1)),o("span",_c,m(us.value)+" ปัจจัย · "+m(Bt.value)+" แหล่ง",1)]),o("div",mc,[o("table",bc,[f[33]||(f[33]=o("thead",null,[o("tr",null,[o("th",null,"ข้อมูล"),o("th",null,"แหล่ง"),o("th",null,"ช่วงข้อมูล"),o("th",null,"ความถี่"),o("th",null,"อัปเดตครั้งต่อไป"),o("th",null,"อัปเดตล่าสุด")])],-1)),o("tbody",null,[(C(!0),T(te,null,Ce(gt.value,(d,tt)=>(C(),T("tr",{key:tt},[o("td",null,m(d.จาก||d.ขอบเขต),1),o("td",yc,m(d.แหล่ง),1),o("td",xc,m(d.ข้อมูล),1),o("td",wc,m(d.ความถี่||"—"),1),o("td",Sc,m(d.อัปเดตครั้งต่อไป?z(d.อัปเดตครั้งต่อไป):"—"),1),o("td",Cc,m(d.dึงมาเมื่อ?z(d.dึงมาเมื่อ):"—"),1)]))),128))])])])]),o("section",kc,[o("div",Tc,[f[34]||(f[34]=o("div",null,[o("div",{class:"section-kicker"},"คำแนะนำการลงทุน"),o("h2",null,"จัดสรรทุน (Suggestion)"),o("p",{class:"panel-subtitle"},"กรอกทุน และระบบแนะนำสัดส่วน 50 / 20 / 30 — หุ้นที่ทำกำไรได้มากสุดแล้วจ่ายปันผล, หุ้นทำกำไรแต่ไม่ปันผล, และหุ้นปันผลสูงสุด (ไม่ซ้ำ) — ขั้นต่ำ 100 หุ้นต่อตัว.")],-1)),o("span",Ec,m(I.value?"ใช้ได้":"รอใส่ทุน"),1)]),o("div",Oc,[o("div",Pc,[f[35]||(f[35]=o("label",null,"ทุน (บาท)",-1)),It(o("input",{"onUpdate:modelValue":f[10]||(f[10]=d=>a.value=d),type:"number",min:"1000",step:"1000"},null,512),[[ws,a.value]])]),o("button",{class:"primary-button",disabled:W.value,onClick:Me},m(W.value?"กำลังคำนวณ…":"คำนวณการจัดสรร"),9,Ac)]),I.value?(C(),T("div",Rc,[o("div",Mc,[o("div",Ic,[f[36]||(f[36]=o("span",null,"ลงทุนรวม",-1)),o("strong",null,m(_(mt.value,0))+" บาท",1)]),o("div",Fc,[f[37]||(f[37]=o("span",null,"เงินสดเหลือ",-1)),o("strong",null,m(_(ds.value,0))+" บาท",1)])]),o("div",Dc,m(I.value.data_note),1),o("div",Lc,[o("div",$c,[f[39]||(f[39]=o("div",{class:"sim-bucket-head"},[o("span",{class:"sim-bucket-tag b1"},"50%"),o("strong",null,"ทำกำไร + จ่ายปันผล")],-1)),o("table",Nc,[ue(1).length?(C(),T("tbody",jc,[(C(!0),T(te,null,Ce(ue(1),d=>(C(),T("tr",{key:"b1"+d.symbol},[o("td",null,m(d.symbol),1),o("td",Hc,"qty "+m(d.qty),1),o("td",Vc,"@ "+m(_(d.price)),1),o("td",Bc,m(_(d.notional,0)),1)]))),128))])):(C(),T("tbody",Kc,[...f[38]||(f[38]=[o("tr",null,[o("td",{class:"muted-cell"},"ไม่มีหุ้นที่เข้าเกณฑ์")],-1)])]))])]),o("div",Uc,[f[41]||(f[41]=o("div",{class:"sim-bucket-head"},[o("span",{class:"sim-bucket-tag b2"},"20%"),o("strong",null,"ทำกำไร ไม่ปันผล")],-1)),o("table",Wc,[ue(2).length?(C(),T("tbody",zc,[(C(!0),T(te,null,Ce(ue(2),d=>(C(),T("tr",{key:"b2"+d.symbol},[o("td",null,m(d.symbol),1),o("td",qc,"qty "+m(d.qty),1),o("td",Yc,"@ "+m(_(d.price)),1),o("td",Gc,m(_(d.notional,0)),1)]))),128))])):(C(),T("tbody",Jc,[...f[40]||(f[40]=[o("tr",null,[o("td",{class:"muted-cell"},"ไม่มีหุ้นที่เข้าเกณฑ์")],-1)])]))])]),o("div",Xc,[f[43]||(f[43]=o("div",{class:"sim-bucket-head"},[o("span",{class:"sim-bucket-tag b3"},"30%"),o("strong",null,"ปันผลสูงสุด (ไม่ซ้ำ)")],-1)),o("table",Zc,[ue(3).length?(C(),T("tbody",Qc,[(C(!0),T(te,null,Ce(ue(3),d=>(C(),T("tr",{key:"b3"+d.symbol},[o("td",null,m(d.symbol),1),o("td",eu,"qty "+m(d.qty),1),o("td",tu,"@ "+m(_(d.price)),1),o("td",su,m(_(d.notional,0)),1)]))),128))])):(C(),T("tbody",nu,[...f[42]||(f[42]=[o("tr",null,[o("td",{class:"muted-cell"},"ไม่มีหุ้นที่เข้าเกณฑ์")],-1)])]))])])])])):ve("",!0),I.value?ve("",!0):(C(),T("div",lu,"กด 'คำนวณการจัดสรร' เพื่อดูว่า 50/20/30 จัดสรรทุนของคุณไปที่หุ้นไหนบ้าง"))]),o("section",iu,[f[60]||(f[60]=o("div",{class:"panel-header signal-header"},[o("div",null,[o("div",{class:"section-kicker"},"การย้อนทดสอบ"),o("h2",null,"Backtest (ย้อนทดสอบ)"),o("p",{class:"panel-subtitle"},"กำหนดช่วงวัน แล้วระบบจัดสรร 50/20/30 ณ วันที่เริ่ม ลงทุน และปรับพอร์ตตามข้อมูลที่เผยแพร่ใหม่ (event-driven) จนถึงวันสิ้นสุด — สรุปกำไร/ขาดทุนจากราคา + เงินปันผล. มีค่าธรรมเนียม 0.3% ต่อรายการ และปันผลเข้าบัญชีใน 30 วันหลัง ex-date.")])],-1)),o("div",ou,[o("label",null,[f[44]||(f[44]=q("ตั้งแต่ ",-1)),It(o("input",{type:"date","onUpdate:modelValue":f[11]||(f[11]=d=>y.value=d)},null,512),[[ws,y.value]])]),o("label",null,[f[45]||(f[45]=q("ถึง ",-1)),It(o("input",{type:"date","onUpdate:modelValue":f[12]||(f[12]=d=>R.value=d)},null,512),[[ws,R.value]])]),o("label",null,[f[46]||(f[46]=q("ทุน ",-1)),It(o("input",{type:"number","onUpdate:modelValue":f[13]||(f[13]=d=>M.value=d),step:"100000"},null,512),[[ws,M.value,void 0,{number:!0}]])]),o("label",ru,[It(o("input",{type:"checkbox","onUpdate:modelValue":f[14]||(f[14]=d=>H.value=d)},null,512),[[gl,H.value]]),f[47]||(f[47]=q(" ใช้ ledger ปันผลตามวันที่จริง ",-1))]),o("button",{class:"primary-btn",disabled:U.value||V.value&&!V.value.ready,onClick:Ai},m(U.value?"กำลังย้อนทดสอบ…":"รัน Backtest"),9,au)]),V.value&&!V.value.ready?(C(),T("div",cu,[f[48]||(f[48]=o("strong",null,"ยังรันย้อนทดสอบแบบ strict PIT ไม่ได้ — ขาดข้อมูล coverage:",-1)),o("div",uu,m((V.value.missing||[]).slice(0,8).join(", "))+m((V.value.missing||[]).length>8?"…":""),1),o("div",fu,"วันเริ่มที่แนะนำ: "+m(V.value.recommended_start||"—")+" · วันสิ้นสุด: "+m(V.value.recommended_end||"—"),1)])):ve("",!0),(ye=A.value)!=null&&ye.error?(C(),T("div",du,m(A.value.error),1)):A.value&&!A.value.error?(C(),T("div",pu,[o("div",hu,[o("div",gu,[f[49]||(f[49]=o("span",null,"กำไรจากราคา (realized)",-1)),o("strong",{class:Q(Rt(A.value.realized_trading_pnl))},m(_(A.value.realized_trading_pnl))+" บาท",3)]),o("div",vu,[f[50]||(f[50]=o("span",null,"กำไรจากราคา (unrealized)",-1)),o("strong",{class:Q(Rt(A.value.unrealized_trading_pnl))},m(_(A.value.unrealized_trading_pnl))+" บาท",3)]),o("div",_u,[f[51]||(f[51]=o("span",null,"เงินปันผลที่ได้รับ",-1)),o("strong",mu,m(_(A.value.dividend_cash_received))+" บาท",1)]),o("div",bu,[f[52]||(f[52]=o("span",null,"ค่าธรรมเนียม (0.3%)",-1)),o("strong",yu,"–"+m(_(A.value.transaction_costs))+" บาท",1)]),o("div",xu,[f[53]||(f[53]=o("span",null,"เงินปันผลค้างรับ",-1)),o("strong",null,m(_(A.value.dividend_receivable))+" บาท",1)]),o("div",wu,[f[54]||(f[54]=o("span",null,"มูลค่าสุดท้าย (equity)",-1)),o("strong",null,m(_(A.value.final_equity))+" บาท",1)]),o("div",Su,[f[55]||(f[55]=o("span",null,"ผลตอบแทนสุทธิ",-1)),o("strong",{class:Q(Rt(A.value.net_return))},m((A.value.net_return*100).toFixed(2))+"%",3)])]),o("div",Cu,"Rebalances: "+m(A.value.rebalances)+" · ปันผลตาม: "+m(A.value.dividend_timing)+" · ช่วง "+m(A.value.start)+" → "+m(A.value.end),1),A.value.leakage_guard?(C(),T("div",ku,"✅ strict PIT (leakage guard active)")):(C(),T("div",Tu,"คำเตือน: ไม่ได้พิสูจน์ point-in-time (non-PIT)")),A.value.holdings&&A.value.holdings.length?(C(),T("div",Eu,[f[57]||(f[57]=o("strong",null,"พอร์ตสุดท้าย:",-1)),o("table",Ou,[f[56]||(f[56]=o("thead",null,[o("tr",null,[o("th",null,"หุ้น"),o("th",null,"จำนวน"),o("th",null,"ต้นทุนเฉลี่ย"),o("th",null,"ราคาล่าสุด"),o("th",null,"มูลค่า"),o("th",null,"กำไร unrealized")])],-1)),o("tbody",null,[(C(!0),T(te,null,Ce(A.value.holdings,d=>(C(),T("tr",{key:d.symbol},[o("td",Pu,m(d.symbol),1),o("td",null,m(d.qty),1),o("td",null,m(_(d.average_cost,2)),1),o("td",null,m(_(d.last_price,2)),1),o("td",null,m(_(d.market_value)),1),o("td",{class:Q(Rt(d.unrealized_pnl))},m(_(d.unrealized_pnl)),3)]))),128))])])])):ve("",!0)])):(C(),T("div",Au,"กำหนดช่วงวันแล้วกด 'รัน Backtest' เพื่อดูผล (กำไร/ขาดทุนจากราคา + ปันผล)")),ne.value.length?(C(),T("div",Ru,[f[59]||(f[59]=o("div",{class:"section-kicker"},"ประวัติการย้อนทดสอบ",-1)),o("table",Mu,[f[58]||(f[58]=o("thead",null,[o("tr",null,[o("th",null,"#"),o("th",null,"ช่วง"),o("th",null,"ทุน"),o("th",null,"กำไรราคา"),o("th",null,"ปันผล"),o("th",null,"ผลตอบแทน"),o("th",null,"รันเมื่อ")])],-1)),o("tbody",null,[(C(!0),T(te,null,Ce(ne.value.slice().reverse(),d=>(C(),T("tr",{key:d.id},[o("td",null,m(d.id),1),o("td",null,[q(m(d.start)+" → "+m(d.end)+" ",1),d.leakage_guard===!1?(C(),T("span",Iu,"descriptive non-PIT")):ve("",!0)]),o("td",null,m(_(d.capital)),1),o("td",{class:Q(Rt(d.price_pnl))},m(_(d.price_pnl)),3),o("td",Fu,[q(m(_(d.dividend_income)),1),o("span",{class:Q(["status-tag",j(d.dividend_method).cls]),style:Hs([j(d.dividend_method).style||void 0,{"margin-left":"4px"}]),title:X(d.dividend_method)},m(j(d.dividend_method).label),15,Du)]),o("td",{class:Q(Rt(d.net_return))},m((d.net_return*100).toFixed(2))+"%",3),o("td",Lu,m(d.ran_at?z(d.ran_at):"—"),1)]))),128))])])])):ve("",!0)]),o("section",$u,[f[62]||(f[62]=o("div",{class:"panel-header signal-header"},[o("div",null,[o("div",{class:"section-kicker"},"สถานะการดึงข้อมูล"),o("h2",null,"Log — สถานะแหล่งข้อมูล"),o("p",{class:"panel-subtitle"},'ผลการดึงข้อมูลครั้งล่าสุดของแต่ละแหล่ง (1 แถวต่อแหล่ง) โดยระบบวิเคราะห์สาเหตุให้อัตโนมัติ (เครือข่าย / หมดเวลา / หน้าเว็บเปลี่ยนโครงสร้าง / รูปแบบข้อมูล เป็นต้น) — กดปุ่ม "คัดลอก" เพื่อ copy สาเหตุไปแจ้ง/ตรวจสอบได้ทันที.')])],-1)),Oe.value.length===0?(C(),T("div",Nu,"ยังไม่มี log — รอรอบ refresh ถัดไป (ปกติ ~ทุกวันสำหรับราคา, ~รายเดือน/ไตรมาสสำหรับปัจจัย).")):(C(),T("div",ju,[o("table",Hu,[f[61]||(f[61]=o("thead",null,[o("tr",null,[o("th",null,"แหล่ง"),o("th",null,"ผลลัพธ์"),o("th",null,"สาเหตุ"),o("th",null,"เวลา"),o("th")])],-1)),o("tbody",null,[(C(!0),T(te,null,Ce(Oe.value,d=>(C(),T("tr",{key:d.key},[o("td",Vu,[q(m(d.label),1),o("div",Bu,m(d.key),1)]),o("td",null,[d.ok?(C(),T("span",Ku,"OK")):(C(),T("span",Uu,"FAIL"))]),o("td",null,[d.ok?(C(),T(te,{key:0},[q("—")],64)):(C(),T(te,{key:1},[o("div",null,m(Ys(d.category))+m(Pi(d)),1),d.detail?(C(),T("div",Wu,m(d.detail.slice(0,160)),1)):ve("",!0)],64))]),o("td",zu,m(d.at?z(d.at):"—"),1),o("td",null,[d.ok?ve("",!0):(C(),T("button",{key:0,class:"primary-btn",style:{padding:"2px 8px"},onClick:tt=>Oi(d)},"คัดลอกสาเหตุ",8,qu))])]))),128))])])]))])],64))]),u.value?(C(),T("div",{key:0,class:"modal-overlay",onClick:ea(Dn,["self"])},[o("div",Yu,[o("div",Gu,[o("div",null,[f[63]||(f[63]=o("div",{class:"modal-kicker"},"การวิเคราะห์รายหุ้น",-1)),o("h3",null,m(u.value),1)]),o("button",{class:"modal-close",onClick:Dn},"✕")]),h.value?(C(),T("div",Ju,"กำลังโหลดการวิเคราะห์…")):(Te=g.value)!=null&&Te.error?(C(),T("div",Xu,m(g.value.error),1)):g.value?(C(),T("div",Zu,[o("div",Qu,[f[67]||(f[67]=o("div",{class:"modal-section-title"},"ธีมที่เกี่ยวข้อง (คะแนนต่อธีม)",-1)),(et=g.value.themes)!=null&&et.length?(C(),T("div",ef,[(C(!0),T(te,null,Ce(g.value.theme_contributions,d=>(C(),T("div",{key:d.theme,class:"contrib-line"},[o("span",tf,m(d.label_th||fs.value[d.theme]||d.theme),1),d.surprise!=null?(C(),T("span",sf,[o("em",null,m(_(d.surprise))+"σ",1),f[64]||(f[64]=q(" × คุณภาพ ",-1)),o("em",null,m(d.quality),1),f[65]||(f[65]=q(" = ",-1)),o("strong",null,m(_(d.theme_score))+"σ",1)])):(C(),T("strong",nf,"ยังไม่มีข้อมูล"))]))),128)),f[66]||(f[66]=o("div",{class:"modal-sub"},"คะแนนธีม = ค่าเฉลี่ยของ (surprise × คุณภาพหุ้น) ที่หุ้นนี้อยู่ใน",-1))])):(C(),T("div",lf,"หุ้นนี้ยังไม่ได้จัดอยู่ในธีมใด (จะอัปเดตเมื่อเพิ่มธีม)"))]),o("div",of,[f[70]||(f[70]=o("div",{class:"modal-section-title"},"คะแนนตามแหล่งข้อมูล (factor × weight)",-1)),g.value.factor_sources&&Object.keys(g.value.factor_sources).length?(C(),T("div",rf,[(C(!0),T(te,null,Ce(g.value.factor_sources,(d,tt)=>(C(),T("div",{key:tt,class:"modal-sub",style:{"margin-top":"10px"}},[o("strong",af,m(fs.value[tt]||tt),1),o("table",cf,[f[68]||(f[68]=o("thead",null,[o("tr",null,[o("th",null,"ข้อมูล (source)"),o("th",null,"ค่า raw"),o("th",null,"normalized"),o("th",null,"weight"),o("th",null,"contribution")])],-1)),o("tbody",null,[(C(!0),T(te,null,Ce(d,ce=>(C(),T("tr",{key:ce.factor},[o("td",null,[o("span",{class:Q(ce.missing?"muted-cell":"")},m(ce.name_th),3),o("div",uf,m(ce.source),1)]),o("td",null,m(ce.raw!=null?ce.normalized!=null&&Math.abs(ce.normalized)<=1&&Math.abs(ce.raw)<1e3?_(ce.raw,2):_(ce.raw,0):"—"),1),o("td",null,m(ce.normalized!=null?_(ce.normalized,3):"—"),1),o("td",null,m(_(ce.weight)),1),o("td",{class:Q(ce.contribution!=null&&ce.contribution<0?"negative-text":"positive-text")},m(ce.contribution!=null?_(ce.contribution,4):"—"),3)]))),128))])]),o("div",ff,[F(d)!=null?(C(),T("span",df,[q("Σcontrib "+m(_(D(d),4))+" ÷ Σ"+m("|w|")+" "+m(_(P(d),2))+" = ธีม surprise ",1),o("strong",null,m(_(F(d),3))+"σ",1)])):(C(),T("span",pf,"ยังไม่มีข้อมูล factor"))])]))),128)),f[69]||(f[69]=o("div",{class:"modal-sub"},"normalized = ค่า raw ที่ปรับด้วย sign/center/span อยู่ในช่วง [-1,1]; contribution = weight × normalized; theme surprise = Σcontribution ÷ Σ"+m("|weight|")+". แหล่งที่ไม่มีข้อมูลจะไม่ถูกนับ (drop source)",-1))])):(C(),T("div",hf,"ไม่มีข้อมูลแยกตามแหล่ง"))]),o("div",gf,[f[76]||(f[76]=o("div",{class:"modal-section-title"},"มูลค่าพื้นฐาน (Siamchart)",-1)),o("div",vf,[o("span",null,[f[71]||(f[71]=q("P/E ",-1)),o("strong",null,m(((gs=g.value.fundamentals)==null?void 0:gs.pe)??"—"),1)]),o("span",null,[f[72]||(f[72]=q("EPS ",-1)),o("strong",null,m(((bt=g.value.fundamentals)==null?void 0:bt.eps)??"—"),1)]),o("span",null,[f[73]||(f[73]=q("P/BV ",-1)),o("strong",null,m(((vs=g.value.fundamentals)==null?void 0:vs.pbv)??"—"),1)]),o("span",null,[f[74]||(f[74]=q("ROE ",-1)),o("strong",null,m(((_s=g.value.fundamentals)==null?void 0:_s.roe)??"—"),1)]),o("span",null,[f[75]||(f[75]=q("ปันผล ",-1)),o("strong",null,m(($n=g.value.fundamentals)!=null&&$n.is_dividend?"จ่าย":"—"),1)])]),o("div",_f,"ภาพรวม: "+m(g.value.company_name||u.value),1)]),o("div",mf,[f[78]||(f[78]=o("div",{class:"modal-section-title"},"ขั้นตอนการคำนวณคะแนนรวม",-1)),o("div",bf,[o("div",yf,m(g.value.combined_formula),1),(C(!0),T(te,null,Ce(g.value.combined_calc,d=>(C(),T("div",{key:d.label,class:"calc-step"},[o("div",xf,[o("span",null,m(d.label),1),o("strong",null,m(_(d.value))+" × "+m(d.weight),1)]),o("div",wf,m(d.note),1)]))),128)),g.value.siamchart_z_note?(C(),T("div",Sf,[q(" คะแนนพื้นฐานได้จาก z-score: z = (ค่า"+m(g.value.siamchart_z_note.raw_i)+" − ค่าเฉลี่ย "+m(g.value.siamchart_z_note.population_mean)+") / ค่าเบี่ยงเบน "+m(g.value.siamchart_z_note.population_stdev),1),f[77]||(f[77]=o("br",null,null,-1)),q("เทียบกับ "+m(g.value.siamchart_z_note.universe_size)+" หุ้นใน SET50 ",1)])):ve("",!0)]),o("div",Cf,"ราคาล่าสุด: "+m(((Nn=g.value.price)==null?void 0:Nn.latest)!=null?_(g.value.price.latest):"—")+" ("+m(((jn=g.value.price)==null?void 0:jn.date)||"—")+")",1)])])):ve("",!0)])])):ve("",!0)])}}};na(kf).mount("#app");