前言

本篇会首先构造一个简单的SpringBootWeb案例。接着再逐步拆解为三层架构,以便更好地理解其设计思想,进行高效地业务开发。

相比于之前的文章(SpringBoot-三层架构 | 花猪のBlog),本篇会更加深入的讲解为什么SpringBoot会如此设计。

版本:

  • Maven:3.9.8
  • JDK:17
  • SpringBoot:3.5.7
  • API测试工具:Apifox

SpringBootWeb案例

工作流程:

  • 创建一个SpringBoot工程。
  • 引入准备好的数据文件:user.txt、前端静态页面文件(正文中会提供样例)。
  • 定义一个实体类,用于封装用户信息。
  • 开发服务端程序,接收前端请求,服务端接受请求后读取文本数据并响应请求。

创建SpringBoot工程

File -> New -> Module

  • 选择Spring Initializr,编辑项目名称,指定项目位置,选择语言为Java,指定为Maven项目,这里选择JDK版本为17。
  • 点击Next

  • 选择SpringBoot版本为:3.5.7,并勾选Spring WebLombok两项依赖。
  • 点击Create创建项目。

项目创建完毕后,多余的文件可以将其删去。只留下src文件夹和pom.xml文件。

至此基本的项目结构就完成了,可以点击启动项目进行测试。

注意:

  1. 有时候会遇到启动类文件图标显示红色的J,可以通过重启IDEA解决。(亲测有效)

  2. 自动引入Lombok依赖时可能会导致javabean的注解失效,这里可以通过在pom.xml文件中将Lombok插件删除或注释解决。(亲测有效)

user.txt文件粘贴至resources目录下。

user.txt文件内容如下:

1
2
3
4
5
6
7
8
1,daqiao,1234567890,大乔,22,2024-07-15 15:05:45
2,xiaoqiao,1234567890,小乔,18,2024-07-15 15:12:09
3,diaochan,1234567890,貂蝉,21,2024-07-15 15:07:16
4,lvbu,1234567890,吕布,28,2024-07-16 10:05:15
5,zhaoyun,1234567890,赵云,27,2024-07-16 11:03:28
6,zhangfei,1234567890,张飞,31,2024-07-16 11:03:28
7,guanyu,1234567890,关羽,34,2024-07-16 12:05:12
8,liubei,1234567890,刘备,37,2024-07-16 15:03:28

user.html文件以及js目录粘贴至static静态目录文件下。

user.html文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户列表数据</title>
<style>
/*定义css,美化表格*/
table{
border-collapse: collapse;
width: 100%;
margin-top: 20px;
border: 1px solid #ccc;
text-align: center;
font-size: 14px;
}
tr {
height: 40px;
}
th,td{
border: 1px solid #ccc;
}
thead{
background-color: #e8e8e8;
}
h1{
text-align: center;
font-family: 楷体;
}
</style>
</head>
<body>
<div id="app">
<h1>用户列表数据</h1>
<!--定义一个表格,包括6列,分别是: ID, 用户名, 密码, 姓名, 年龄, 更新时间-->
<table>
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
<th>姓名</th>
<th>年龄</th>
<th>更新时间</th>
</tr>
</thead>
<tbody>
<tr v-for="user in userList">
<td>{{user.id}}</td>
<td>{{user.username}}</td>
<td>{{user.password}}</td>
<td>{{user.name}}</td>
<td>{{user.age}}</td>
<td>{{user.updateTime}}</td>
</tr>
</tbody>
</table>
</div>

<!--引入axios-->
<script src="js/axios.min.js"></script>
<script type="module">
import { createApp } from './js/vue.esm-browser.js'
createApp({
data() {
return {
userList: []
}
},
methods: {
async search(){
const result = await axios.get('/list');
this.userList = result.data;
}
},
mounted() {
this.search();
}
}).mount('#app')
</script>
</body>
</html>

js目录中包含两个文件,分别为axios.min.js以及vue.esm-browser.js

axios.min.js文件内容如下:

1
2
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var n="return"===r?"return":"next";if(!s.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var s={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=s:(r=n=s,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){v(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=t&&t.prototype instanceof m?t:m,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:T(e,r,s)}),a}function h(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var p="suspendedStart",d="executing",y="completed",v={};function m(){}function b(){}function g(){}var w={};f(w,a,(function(){return this}));var E=Object.getPrototypeOf,O=E&&E(E(L([])));O&&O!==r&&n.call(O,a)&&(w=O);var S=g.prototype=m.prototype=Object.create(w);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function R(e,t){function r(o,i,a,s){var u=h(e[o],e,i);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,s)}),(function(e){r("throw",e,a,s)})):t.resolve(f).then((function(e){c.value=e,a(c)}),(function(e){return r("throw",e,a,s)}))}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function T(t,r,n){var o=p;return function(i,a){if(o===d)throw new Error("Generator is already running");if(o===y){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=j(s,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=y,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var c=h(t,r,n);if("normal"===c.type){if(o=n.done?y:"suspendedYield",c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(o=y,n.method="throw",n.arg=c.arg)}}}function j(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=h(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function L(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(typeof t+" is not iterable")}return b.prototype=g,o(S,"constructor",{value:g,configurable:!0}),o(g,"constructor",{value:b,configurable:!0}),b.displayName=f(g,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===b||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,f(e,c,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},x(R.prototype),f(R.prototype,s,(function(){return this})),t.AsyncIterator=R,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new R(l(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(S),f(S,c,"Generator"),f(S,a,(function(){return this})),f(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=L,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(A),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return s.type="throw",s.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){l(i,n,o,a,s,"next",e)}function s(e){l(i,n,o,a,s,"throw",e)}a(void 0)}))}}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,c(n.key),n)}}function y(e,t,r){return t&&d(e.prototype,t),r&&d(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function v(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e,t){return g(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(e,t)||E(e,t)||S()}function b(e){return function(e){if(Array.isArray(e))return O(e)}(e)||w(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e){if(Array.isArray(e))return e}function w(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function E(e,t){if(e){if("string"==typeof e)return O(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function S(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function x(e,t){return function(){return e.apply(t,arguments)}}e.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},e.prototype.next=function(e){return this._invoke("next",e)},e.prototype.throw=function(e){return this._invoke("throw",e)},e.prototype.return=function(e){return this._invoke("return",e)};var R,T=Object.prototype.toString,j=Object.getPrototypeOf,k=(R=Object.create(null),function(e){var t=T.call(e);return R[t]||(R[t]=t.slice(8,-1).toLowerCase())}),A=function(e){return e=e.toLowerCase(),function(t){return k(t)===e}},P=function(e){return function(t){return f(t)===e}},L=Array.isArray,N=P("undefined");var _=A("ArrayBuffer");var C=P("string"),F=P("function"),U=P("number"),D=function(e){return null!==e&&"object"===f(e)},B=function(e){if("object"!==k(e))return!1;var t=j(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},I=A("Date"),q=A("File"),z=A("Blob"),M=A("FileList"),H=A("URLSearchParams"),J=m(["ReadableStream","Request","Response","Headers"].map(A),4),W=J[0],G=J[1],K=J[2],V=J[3];function X(e,t){var r,n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),L(e))for(r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else{var s,u=a?Object.getOwnPropertyNames(e):Object.keys(e),c=u.length;for(r=0;r<c;r++)s=u[r],t.call(null,e[s],s,e)}}function $(e,t){t=t.toLowerCase();for(var r,n=Object.keys(e),o=n.length;o-- >0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Y="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Q=function(e){return!N(e)&&e!==Y};var Z,ee=(Z="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return Z&&e instanceof Z}),te=A("HTMLFormElement"),re=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),ne=A("RegExp"),oe=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};X(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ie="abcdefghijklmnopqrstuvwxyz",ae="0123456789",se={DIGIT:ae,ALPHA:ie,ALPHA_DIGIT:ie+ie.toUpperCase()+ae};var ue=A("AsyncFunction"),ce={isArray:L,isArrayBuffer:_,isBuffer:function(e){return null!==e&&!N(e)&&null!==e.constructor&&!N(e.constructor)&&F(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||F(e.append)&&("formdata"===(t=k(e))||"object"===t&&F(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&_(e.buffer)},isString:C,isNumber:U,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:B,isReadableStream:W,isRequest:G,isResponse:K,isHeaders:V,isUndefined:N,isDate:I,isFile:q,isBlob:z,isRegExp:ne,isFunction:F,isStream:function(e){return D(e)&&F(e.pipe)},isURLSearchParams:H,isTypedArray:ee,isFileList:M,forEach:X,merge:function e(){for(var t=Q(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&$(n,o)||o;B(n[i])&&B(t)?n[i]=e(n[i],t):B(t)?n[i]=e({},t):L(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i<a;i++)arguments[i]&&X(arguments[i],o);return n},extend:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return X(t,(function(t,n){r&&F(t)?e[n]=x(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,s={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:k,kindOfTest:A,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(L(e))return e;var t=e.length;if(!U(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:te,hasOwnProperty:re,hasOwnProp:re,reduceDescriptors:oe,freezeMethods:function(e){oe(e,(function(t,r){if(F(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];F(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return L(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:$,global:Y,isContextDefined:Q,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&F(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=L(r)?[]:{};return X(r,(function(t,r){var i=e(t,n+1);!N(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:ue,isThenable:function(e){return e&&(D(e)||F(e))&&F(e.then)&&F(e.catch)}};function fe(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}ce.inherits(fe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ce.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var le=fe.prototype,he={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){he[e]={value:e}})),Object.defineProperties(fe,he),Object.defineProperty(le,"isAxiosError",{value:!0}),fe.from=function(e,t,r,n,o,i){var a=Object.create(le);return ce.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),fe.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function pe(e){return ce.isPlainObject(e)||ce.isArray(e)}function de(e){return ce.endsWith(e,"[]")?e.slice(0,-2):e}function ye(e,t,r){return e?e.concat(t).map((function(e,t){return e=de(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var ve=ce.toFlatObject(ce,{},null,(function(e){return/^is[A-Z]/.test(e)}));function me(e,t,r){if(!ce.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ce.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ce.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,s=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ce.isSpecCompliantForm(t);if(!ce.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(ce.isDate(e))return e.toISOString();if(!s&&ce.isBlob(e))throw new fe("Blob is not supported. Use a Buffer instead.");return ce.isArrayBuffer(e)||ce.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var s=e;if(e&&!o&&"object"===f(e))if(ce.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ce.isArray(e)&&function(e){return ce.isArray(e)&&!e.some(pe)}(e)||(ce.isFileList(e)||ce.endsWith(r,"[]"))&&(s=ce.toArray(e)))return r=de(r),s.forEach((function(e,n){!ce.isUndefined(e)&&null!==e&&t.append(!0===a?ye([r],n,i):null===a?r:r+"[]",u(e))})),!1;return!!pe(e)||(t.append(ye(o,r,i),u(e)),!1)}var l=[],h=Object.assign(ve,{defaultVisitor:c,convertValue:u,isVisitable:pe});if(!ce.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ce.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ce.forEach(r,(function(r,i){!0===(!(ce.isUndefined(r)||null===r)&&o.call(t,r,ce.isString(i)?i.trim():i,n,h))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function be(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ge(e,t){this._pairs=[],e&&me(e,this,t)}var we=ge.prototype;function Ee(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Oe(e,t,r){if(!t)return e;var n,o=r&&r.encode||Ee,i=r&&r.serialize;if(n=i?i(t,r):ce.isURLSearchParams(t)?t.toString():new ge(t,r).toString(o)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}we.append=function(e,t){this._pairs.push([e,t])},we.toString=function(e){var t=e?function(t){return e.call(this,t,be)}:be;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Se,xe=function(){function e(){p(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ce.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Re={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Te={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ge,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},je="undefined"!=typeof window&&"undefined"!=typeof document,ke=(Se="undefined"!=typeof navigator&&navigator.product,je&&["ReactNative","NativeScript","NS"].indexOf(Se)<0),Ae="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Pe=je&&window.location.href||"http://localhost",Le=s(s({},Object.freeze({__proto__:null,hasBrowserEnv:je,hasStandardBrowserWebWorkerEnv:Ae,hasStandardBrowserEnv:ke,origin:Pe})),Te);function Ne(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),s=o>=e.length;return i=!i&&ce.isArray(n)?n.length:i,s?(ce.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ce.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ce.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t<i;t++)n[r=o[t]]=e[r];return n}(n[i])),!a)}if(ce.isFormData(e)&&ce.isFunction(e.entries)){var r={};return ce.forEachEntry(e,(function(e,n){t(function(e){return ce.matchAll(/\w+|\[(\w*)]/g,e).map((function(e){return"[]"===e[0]?"":e[1]||e[0]}))}(e),n,r,0)})),r}return null}var _e={transitional:Re,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){var r,n=t.getContentType()||"",o=n.indexOf("application/json")>-1,i=ce.isObject(e);if(i&&ce.isHTMLForm(e)&&(e=new FormData(e)),ce.isFormData(e))return o?JSON.stringify(Ne(e)):e;if(ce.isArrayBuffer(e)||ce.isBuffer(e)||ce.isStream(e)||ce.isFile(e)||ce.isBlob(e)||ce.isReadableStream(e))return e;if(ce.isArrayBufferView(e))return e.buffer;if(ce.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return me(e,new Le.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return Le.isNode&&ce.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ce.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return me(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ce.isString(e))try{return(t||JSON.parse)(e),ce.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||_e.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ce.isResponse(e)||ce.isReadableStream(e))return e;if(e&&ce.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw fe.from(e,fe.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Le.classes.FormData,Blob:Le.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ce.forEach(["delete","get","head","post","put","patch"],(function(e){_e.headers[e]={}}));var Ce=_e,Fe=ce.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ue=Symbol("internals");function De(e){return e&&String(e).trim().toLowerCase()}function Be(e){return!1===e||null==e?e:ce.isArray(e)?e.map(Be):String(e)}function Ie(e,t,r,n,o){return ce.isFunction(n)?n.call(this,t,r):(o&&(t=r),ce.isString(t)?ce.isString(n)?-1!==t.indexOf(n):ce.isRegExp(n)?n.test(t):void 0:void 0)}var qe=function(e,t){function r(e){p(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=De(t);if(!o)throw new Error("header name must be a non-empty string");var i=ce.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=Be(e))}var i=function(e,t){return ce.forEach(e,(function(e,r){return o(e,r,t)}))};if(ce.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ce.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&Fe[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ce.isHeaders(e)){var a,s=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=E(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e.entries());try{for(s.s();!(a=s.n()).done;){var u=m(a.value,2),c=u[0];o(u[1],c,r)}}catch(e){s.e(e)}finally{s.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=De(e)){var r=ce.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ce.isFunction(t))return t.call(this,n,r);if(ce.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=De(e)){var r=ce.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ie(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=De(e)){var o=ce.findKey(r,e);!o||t&&!Ie(0,r[o],o,t)||(delete r[o],n=!0)}}return ce.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ie(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ce.forEach(this,(function(n,o){var i=ce.findKey(r,o);if(i)return t[i]=Be(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=Be(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return(e=this.constructor).concat.apply(e,[this].concat(r))}},{key:"toJSON",value:function(e){var t=Object.create(null);return ce.forEach(this,(function(r,n){null!=r&&!1!==r&&(t[n]=e&&ce.isArray(r)?r.join(", "):r)})),t}},{key:Symbol.iterator,value:function(){return Object.entries(this.toJSON())[Symbol.iterator]()}},{key:"toString",value:function(){return Object.entries(this.toJSON()).map((function(e){var t=m(e,2);return t[0]+": "+t[1]})).join("\n")}},{key:Symbol.toStringTag,get:function(){return"AxiosHeaders"}}],[{key:"from",value:function(e){return e instanceof this?e:new this(e)}},{key:"concat",value:function(e){for(var t=new this(e),r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];return n.forEach((function(e){return t.set(e)})),t}},{key:"accessor",value:function(e){var t=(this[Ue]=this[Ue]={accessors:{}}).accessors,r=this.prototype;function n(e){var n=De(e);t[n]||(!function(e,t){var r=ce.toCamelCase(" "+t);["get","set","has"].forEach((function(n){Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})}))}(r,e),t[n]=!0)}return ce.isArray(e)?e.forEach(n):n(e),this}}]),r}();qe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ce.reduceDescriptors(qe.prototype,(function(e,t){var r=e.value,n=t[0].toUpperCase()+t.slice(1);return{get:function(){return r},set:function(e){this[n]=e}}})),ce.freezeMethods(qe);var ze=qe;function Me(e,t){var r=this||Ce,n=t||r,o=ze.from(n.headers),i=n.data;return ce.forEach(e,(function(e){i=e.call(r,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function He(e){return!(!e||!e.__CANCEL__)}function Je(e,t,r){fe.call(this,null==e?"canceled":e,fe.ERR_CANCELED,t,r),this.name="CanceledError"}function We(e,t,r){var n=r.config.validateStatus;r.status&&n&&!n(r.status)?t(new fe("Request failed with status code "+r.status,[fe.ERR_BAD_REQUEST,fe.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}function Ge(e,t){e=e||10;var r,n=new Array(e),o=new Array(e),i=0,a=0;return t=void 0!==t?t:1e3,function(s){var u=Date.now(),c=o[a];r||(r=u),n[i]=s,o[i]=u;for(var f=a,l=0;f!==i;)l+=n[f++],f%=e;if((i=(i+1)%e)===a&&(a=(a+1)%e),!(u-r<t)){var h=c&&u-c;return h?Math.round(1e3*l/h):void 0}}}function Ke(e,t){var r=0,n=1e3/t,o=null;return function(){var t=arguments,i=!0===this,a=Date.now();if(i||a-r>n)return o&&(clearTimeout(o),o=null),r=a,e.apply(null,arguments);o||(o=setTimeout((function(){return o=null,r=Date.now(),e.apply(null,t)}),n-(a-r)))}}ce.inherits(Je,fe,{__CANCEL__:!0});var Ve=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ge(50,250);return Ke((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,s=i-n,u=o(s);n=i;var c={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:r,lengthComputable:null!=a};c[t?"download":"upload"]=!0,e(c)}),r)},Xe=Le.hasStandardBrowserEnv?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function n(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=n(window.location.href),function(t){var r=ce.isString(t)?n(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0},$e=Le.hasStandardBrowserEnv?{write:function(e,t,r,n,o,i){var a=[e+"="+encodeURIComponent(t)];ce.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),ce.isString(n)&&a.push("path="+n),ce.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function Ye(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var Qe=function(e){return e instanceof ze?s({},e):e};function Ze(e,t){t=t||{};var r={};function n(e,t,r){return ce.isPlainObject(e)&&ce.isPlainObject(t)?ce.merge.call({caseless:r},e,t):ce.isPlainObject(t)?ce.merge({},t):ce.isArray(t)?t.slice():t}function o(e,t,r){return ce.isUndefined(t)?ce.isUndefined(e)?void 0:n(void 0,e,r):n(e,t,r)}function i(e,t){if(!ce.isUndefined(t))return n(void 0,t)}function a(e,t){return ce.isUndefined(t)?ce.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}var u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:function(e,t){return o(Qe(e),Qe(t),!0)}};return ce.forEach(Object.keys(Object.assign({},e,t)),(function(n){var i=u[n]||o,a=i(e[n],t[n],n);ce.isUndefined(a)&&i!==s||(r[n]=a)})),r}var et,tt,rt,nt,ot=function(e){var t,r,n=Ze({},e),o=n.data,i=n.withXSRFToken,a=n.xsrfHeaderName,s=n.xsrfCookieName,u=n.headers,c=n.auth;if(n.headers=u=ze.from(u),n.url=Oe(Ye(n.baseURL,n.url),e.params,e.paramsSerializer),c&&u.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ce.isFormData(o))if(Le.hasStandardBrowserEnv||Le.hasStandardBrowserWebWorkerEnv)u.setContentType(void 0);else if(!1!==(t=u.getContentType())){var f=t?t.split(";").map((function(e){return e.trim()})).filter(Boolean):[],l=g(r=f)||w(r)||E(r)||S(),h=l[0],p=l.slice(1);u.setContentType([h||"multipart/form-data"].concat(b(p)).join("; "))}if(Le.hasStandardBrowserEnv&&(i&&ce.isFunction(i)&&(i=i(n)),i||!1!==i&&Xe(n.url))){var d=a&&s&&$e.read(s);d&&u.set(a,d)}return n},it="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){var n,o=ot(e),i=o.data,a=ze.from(o.headers).normalize(),s=o.responseType;function u(){o.cancelToken&&o.cancelToken.unsubscribe(n),o.signal&&o.signal.removeEventListener("abort",n)}var c=new XMLHttpRequest;function f(){if(c){var n=ze.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());We((function(e){t(e),u()}),(function(e){r(e),u()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:n,config:e,request:c}),c=null}}c.open(o.method.toUpperCase(),o.url,!0),c.timeout=o.timeout,"onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(f)},c.onabort=function(){c&&(r(new fe("Request aborted",fe.ECONNABORTED,o,c)),c=null)},c.onerror=function(){r(new fe("Network Error",fe.ERR_NETWORK,o,c)),c=null},c.ontimeout=function(){var e=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",t=o.transitional||Re;o.timeoutErrorMessage&&(e=o.timeoutErrorMessage),r(new fe(e,t.clarifyTimeoutError?fe.ETIMEDOUT:fe.ECONNABORTED,o,c)),c=null},void 0===i&&a.setContentType(null),"setRequestHeader"in c&&ce.forEach(a.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),ce.isUndefined(o.withCredentials)||(c.withCredentials=!!o.withCredentials),s&&"json"!==s&&(c.responseType=o.responseType),"function"==typeof o.onDownloadProgress&&c.addEventListener("progress",Ve(o.onDownloadProgress,!0)),"function"==typeof o.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",Ve(o.onUploadProgress)),(o.cancelToken||o.signal)&&(n=function(t){c&&(r(!t||t.type?new Je(null,e,c):t),c.abort(),c=null)},o.cancelToken&&o.cancelToken.subscribe(n),o.signal&&(o.signal.aborted?n():o.signal.addEventListener("abort",n)));var l,h,p=(l=o.url,(h=/^([-+\w]{1,25})(:?\/\/|:)/.exec(l))&&h[1]||"");p&&-1===Le.protocols.indexOf(p)?r(new fe("Unsupported protocol "+p+":",fe.ERR_BAD_REQUEST,e)):c.send(i||null)}))},at=function(e,t){var r,n=new AbortController,o=function(e){if(!r){r=!0,a();var t=e instanceof Error?e:this.reason;n.abort(t instanceof fe?t:new Je(t instanceof Error?t.message:t))}},i=t&&setTimeout((function(){o(new fe("timeout ".concat(t," of ms exceeded"),fe.ETIMEDOUT))}),t),a=function(){e&&(i&&clearTimeout(i),i=null,e.forEach((function(e){e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((function(e){return e&&e.addEventListener&&e.addEventListener("abort",o)}));var s=n.signal;return s.unsubscribe=a,[s,function(){i&&clearTimeout(i),i=null}]},st=u().mark((function e(t,r){var n,o,i;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.byteLength,r&&!(n<r)){e.next=5;break}return e.next=4,t;case 4:return e.abrupt("return");case 5:o=0;case 6:if(!(o<n)){e.next=13;break}return i=o+r,e.next=10,t.slice(o,i);case 10:o=i,e.next=6;break;case 13:case"end":return e.stop()}}),e)})),ut=function(){var t,o=(t=u().mark((function e(t,o,a){var s,c,f,l,h,p;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:s=!1,c=!1,e.prev=2,l=n(t);case 4:return e.next=6,i(l.next());case 6:if(!(s=!(h=e.sent).done)){e.next=27;break}if(p=h.value,e.t0=r,e.t1=n,e.t2=st,!ArrayBuffer.isView(p)){e.next=15;break}e.t3=p,e.next=18;break;case 15:return e.next=17,i(a(String(p)));case 17:e.t3=e.sent;case 18:return e.t4=e.t3,e.t5=o,e.t6=(0,e.t2)(e.t4,e.t5),e.t7=(0,e.t1)(e.t6),e.t8=i,e.delegateYield((0,e.t0)(e.t7,e.t8),"t9",24);case 24:s=!1,e.next=4;break;case 27:e.next=33;break;case 29:e.prev=29,e.t10=e.catch(2),c=!0,f=e.t10;case 33:if(e.prev=33,e.prev=34,!s||null==l.return){e.next=38;break}return e.next=38,i(l.return());case 38:if(e.prev=38,!c){e.next=41;break}throw f;case 41:return e.finish(38);case 42:return e.finish(33);case 43:case"end":return e.stop()}}),e,null,[[2,29,33,43],[34,,38,42]])})),function(){return new e(t.apply(this,arguments))});return function(e,t,r){return o.apply(this,arguments)}}(),ct=function(e,t,r,n,o){var i=ut(e,t,o),a=0;return new ReadableStream({type:"bytes",pull:function(e){return h(u().mark((function t(){var o,s,c,f;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,i.next();case 2:if(o=t.sent,s=o.done,c=o.value,!s){t.next=9;break}return e.close(),n(),t.abrupt("return");case 9:f=c.byteLength,r&&r(a+=f),e.enqueue(new Uint8Array(c));case 12:case"end":return t.stop()}}),t)})))()},cancel:function(e){return n(e),i.return()}},{highWaterMark:2})},ft=function(e,t){var r=null!=e;return function(n){return setTimeout((function(){return t({lengthComputable:r,total:e,loaded:n})}))}},lt="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,ht=lt&&"function"==typeof ReadableStream,pt=lt&&("function"==typeof TextEncoder?(et=new TextEncoder,function(e){return et.encode(e)}):function(){var e=h(u().mark((function e(t){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,new Response(t).arrayBuffer();case 3:return e.t1=e.sent,e.abrupt("return",new e.t0(e.t1));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),dt=ht&&(tt=!1,rt=new Request(Le.origin,{body:new ReadableStream,method:"POST",get duplex(){return tt=!0,"half"}}).headers.has("Content-Type"),tt&&!rt),yt=ht&&!!function(){try{return ce.isReadableStream(new Response("").body)}catch(e){}}(),vt={stream:yt&&function(e){return e.body}};lt&&(nt=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((function(e){!vt[e]&&(vt[e]=ce.isFunction(nt[e])?function(t){return t[e]()}:function(t,r){throw new fe("Response type '".concat(e,"' is not supported"),fe.ERR_NOT_SUPPORT,r)})})));var mt=function(){var e=h(u().mark((function e(t){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=t){e.next=2;break}return e.abrupt("return",0);case 2:if(!ce.isBlob(t)){e.next=4;break}return e.abrupt("return",t.size);case 4:if(!ce.isSpecCompliantForm(t)){e.next=8;break}return e.next=7,new Request(t).arrayBuffer();case 7:case 14:return e.abrupt("return",e.sent.byteLength);case 8:if(!ce.isArrayBufferView(t)){e.next=10;break}return e.abrupt("return",t.byteLength);case 10:if(ce.isURLSearchParams(t)&&(t+=""),!ce.isString(t)){e.next=15;break}return e.next=14,pt(t);case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),bt=function(){var e=h(u().mark((function e(t,r){var n;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=ce.toFiniteNumber(t.getContentLength()),e.abrupt("return",null==n?mt(r):n);case 2:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),gt=lt&&function(){var e=h(u().mark((function e(t){var r,n,o,i,a,c,f,l,h,p,d,y,v,b,g,w,E,O,S,x,R,T,j,k,A,P,L,N,_;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=ot(t),n=r.url,o=r.method,i=r.data,a=r.signal,c=r.cancelToken,f=r.timeout,l=r.onDownloadProgress,h=r.onUploadProgress,p=r.responseType,d=r.headers,y=r.withCredentials,v=void 0===y?"same-origin":y,b=r.fetchOptions,p=p?(p+"").toLowerCase():"text",g=a||c||f?at([a,c],f):[],w=m(g,2),E=w[0],O=w[1],R=function(){!S&&setTimeout((function(){E&&E.unsubscribe()})),S=!0},e.prev=4,e.t0=h&&dt&&"get"!==o&&"head"!==o,!e.t0){e.next=11;break}return e.next=9,bt(d,i);case 9:e.t1=T=e.sent,e.t0=0!==e.t1;case 11:if(!e.t0){e.next=15;break}j=new Request(n,{method:"POST",body:i,duplex:"half"}),ce.isFormData(i)&&(k=j.headers.get("content-type"))&&d.setContentType(k),j.body&&(i=ct(j.body,65536,ft(T,Ve(h)),null,pt));case 15:return ce.isString(v)||(v=v?"cors":"omit"),x=new Request(n,s(s({},b),{},{signal:E,method:o.toUpperCase(),headers:d.normalize().toJSON(),body:i,duplex:"half",withCredentials:v})),e.next=19,fetch(x);case 19:return A=e.sent,P=yt&&("stream"===p||"response"===p),yt&&(l||P)&&(L={},["status","statusText","headers"].forEach((function(e){L[e]=A[e]})),N=ce.toFiniteNumber(A.headers.get("content-length")),A=new Response(ct(A.body,65536,l&&ft(N,Ve(l,!0)),P&&R,pt),L)),p=p||"text",e.next=25,vt[ce.findKey(vt,p)||"text"](A,t);case 25:return _=e.sent,!P&&R(),O&&O(),e.next=30,new Promise((function(e,r){We(e,r,{data:_,headers:ze.from(A.headers),status:A.status,statusText:A.statusText,config:t,request:x})}));case 30:return e.abrupt("return",e.sent);case 33:if(e.prev=33,e.t2=e.catch(4),R(),!e.t2||"TypeError"!==e.t2.name||!/fetch/i.test(e.t2.message)){e.next=38;break}throw Object.assign(new fe("Network Error",fe.ERR_NETWORK,t,x),{cause:e.t2.cause||e.t2});case 38:throw fe.from(e.t2,e.t2&&e.t2.code,t,x);case 39:case"end":return e.stop()}}),e,null,[[4,33]])})));return function(t){return e.apply(this,arguments)}}(),wt={http:null,xhr:it,fetch:gt};ce.forEach(wt,(function(e,t){if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));var Et=function(e){return"- ".concat(e)},Ot=function(e){return ce.isFunction(e)||null===e||!1===e},St=function(e){for(var t,r,n=(e=ce.isArray(e)?e:[e]).length,o={},i=0;i<n;i++){var a=void 0;if(r=t=e[i],!Ot(t)&&void 0===(r=wt[(a=String(t)).toLowerCase()]))throw new fe("Unknown adapter '".concat(a,"'"));if(r)break;o[a||"#"+i]=r}if(!r){var s=Object.entries(o).map((function(e){var t=m(e,2),r=t[0],n=t[1];return"adapter ".concat(r," ")+(!1===n?"is not supported by the environment":"is not available in the build")}));throw new fe("There is no suitable adapter to dispatch the request "+(n?s.length>1?"since :\n"+s.map(Et).join("\n"):" "+Et(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function xt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Je(null,e)}function Rt(e){return xt(e),e.headers=ze.from(e.headers),e.data=Me.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),St(e.adapter||Ce.adapter)(e).then((function(t){return xt(e),t.data=Me.call(e,e.transformResponse,t),t.headers=ze.from(t.headers),t}),(function(t){return He(t)||(xt(e),t&&t.response&&(t.response.data=Me.call(e,e.transformResponse,t.response),t.response.headers=ze.from(t.response.headers))),Promise.reject(t)}))}var Tt="1.7.2",jt={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){jt[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var kt={};jt.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.2] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new fe(n(o," has been removed"+(t?" in "+t:"")),fe.ERR_DEPRECATED);return t&&!kt[o]&&(kt[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}};var At={assertOptions:function(e,t,r){if("object"!==f(e))throw new fe("options must be an object",fe.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var s=e[i],u=void 0===s||a(s,i,e);if(!0!==u)throw new fe("option "+i+" must be "+u,fe.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new fe("Unknown option "+i,fe.ERR_BAD_OPTION)}},validators:jt},Pt=At.validators,Lt=function(){function e(t){p(this,e),this.defaults=t,this.interceptors={request:new xe,response:new xe}}var t;return y(e,[{key:"request",value:(t=h(u().mark((function e(t,r){var n,o;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){Error.captureStackTrace?Error.captureStackTrace(n={}):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=Ze(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&At.assertOptions(n,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),null!=o&&(ce.isFunction(o)?t.paramsSerializer={serialize:o}:At.assertOptions(o,{encode:Pt.function,serialize:Pt.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ce.merge(i.common,i[t.method]);i&&ce.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=ze.concat(a,i);var s=[],u=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(u=u&&e.synchronous,s.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,h=0;if(!u){var p=[Rt.bind(this),void 0];for(p.unshift.apply(p,s),p.push.apply(p,f),l=p.length,c=Promise.resolve(t);h<l;)c=c.then(p[h++],p[h++]);return c}l=s.length;var d=t;for(h=0;h<l;){var y=s[h++],v=s[h++];try{d=y(d)}catch(e){v.call(this,e);break}}try{c=Rt.call(this,d)}catch(e){return Promise.reject(e)}for(h=0,l=f.length;h<l;)c=c.then(f[h++],f[h++]);return c}},{key:"getUri",value:function(e){return Oe(Ye((e=Ze(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}]),e}();ce.forEach(["delete","get","head","options"],(function(e){Lt.prototype[e]=function(t,r){return this.request(Ze(r||{},{method:e,url:t,data:(r||{}).data}))}})),ce.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,o){return this.request(Ze(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}Lt.prototype[e]=t(),Lt.prototype[e+"Form"]=t(!0)}));var Nt=Lt,_t=function(){function e(t){if(p(this,e),"function"!=typeof t)throw new TypeError("executor must be a function.");var r;this.promise=new Promise((function(e){r=e}));var n=this;this.promise.then((function(e){if(n._listeners){for(var t=n._listeners.length;t-- >0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Je(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Ct={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ct).forEach((function(e){var t=m(e,2),r=t[0],n=t[1];Ct[n]=r}));var Ft=Ct;var Ut=function e(t){var r=new Nt(t),n=x(Nt.prototype.request,r);return ce.extend(n,Nt.prototype,r,{allOwnKeys:!0}),ce.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(Ze(t,r))},n}(Ce);return Ut.Axios=Nt,Ut.CanceledError=Je,Ut.CancelToken=_t,Ut.isCancel=He,Ut.VERSION=Tt,Ut.toFormData=me,Ut.AxiosError=fe,Ut.Cancel=Ut.CanceledError,Ut.all=function(e){return Promise.all(e)},Ut.spread=function(e){return function(t){return e.apply(null,t)}},Ut.isAxiosError=function(e){return ce.isObject(e)&&!0===e.isAxiosError},Ut.mergeConfig=Ze,Ut.AxiosHeaders=ze,Ut.formToJSON=function(e){return Ne(ce.isHTMLForm(e)?new FormData(e):e)},Ut.getAdapter=St,Ut.HttpStatusCode=Ft,Ut.default=Ut,Ut}));
//# sourceMappingURL=axios.min.js.map

vue.esm-browser.js文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* vue v3.4.27
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
/*! #__NO_SIDE_EFFECTS__ */
function makeMap(e,t){const n=new Set(e.split(","));return t?e=>n.has(e.toLowerCase()):e=>n.has(e)}const EMPTY_OBJ=Object.freeze({}),EMPTY_ARR=Object.freeze([]),NOOP=()=>{},NO=()=>!1,isOn=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),isModelListener=e=>e.startsWith("onUpdate:"),extend=Object.assign,remove=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hasOwnProperty$1=Object.prototype.hasOwnProperty,hasOwn=(e,t)=>hasOwnProperty$1.call(e,t),isArray=Array.isArray,isMap=e=>"[object Map]"===toTypeString(e),isSet=e=>"[object Set]"===toTypeString(e),isDate=e=>"[object Date]"===toTypeString(e),isRegExp=e=>"[object RegExp]"===toTypeString(e),isFunction=e=>"function"==typeof e,isString=e=>"string"==typeof e,isSymbol=e=>"symbol"==typeof e,isObject=e=>null!==e&&"object"==typeof e,isPromise=e=>(isObject(e)||isFunction(e))&&isFunction(e.then)&&isFunction(e.catch),objectToString=Object.prototype.toString,toTypeString=e=>objectToString.call(e),toRawType=e=>toTypeString(e).slice(8,-1),isPlainObject=e=>"[object Object]"===toTypeString(e),isIntegerKey=e=>isString(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},camelizeRE=/-(\w)/g,camelize=cacheStringFunction((e=>e.replace(camelizeRE,((e,t)=>t?t.toUpperCase():"")))),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction((e=>e.replace(hyphenateRE,"-$1").toLowerCase())),capitalize=cacheStringFunction((e=>e.charAt(0).toUpperCase()+e.slice(1))),toHandlerKey=cacheStringFunction((e=>e?`on${capitalize(e)}`:"")),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},def=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},looseToNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t},toNumber=e=>{const t=isString(e)?Number(e):NaN;return isNaN(t)?e:t};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}),PatchFlagNames={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},slotFlagsText={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error",isGloballyAllowed=makeMap(GLOBALS_ALLOWED),range=2;function generateCodeFrame(e,t=0,n=e.length){let r=e.split(/(\r?\n)/);const o=r.filter(((e,t)=>t%2==1));r=r.filter(((e,t)=>t%2==0));let s=0;const i=[];for(let e=0;e<r.length;e++)if(s+=r[e].length+(o[e]&&o[e].length||0),s>=t){for(let a=e-2;a<=e+2||n>s;a++){if(a<0||a>=r.length)continue;const c=a+1;i.push(`${c}${" ".repeat(Math.max(3-String(c).length,0))}| ${r[a]}`);const l=r[a].length,p=o[a]&&o[a].length||0;if(a===e){const e=t-(s-(l+p)),r=Math.max(1,n>s?l-e:n-t);i.push(" | "+" ".repeat(e)+"^".repeat(r))}else if(a>e){if(n>s){const e=Math.max(Math.min(n-s,l),1);i.push(" | "+"^".repeat(e))}s+=l+p}}break}return i.join("\n")}function normalizeStyle(e){if(isArray(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],o=isString(r)?parseStringStyle(r):normalizeStyle(r);if(o)for(const e in o)t[e]=o[e]}return t}if(isString(e)||isObject(e))return e}const listDelimiterRE=/;(?![^(]*\))/g,propertyDelimiterRE=/:([^]+)/,styleCommentRE=/\/\*[^]*?\*\//g;function parseStringStyle(e){const t={};return e.replace(styleCommentRE,"").split(listDelimiterRE).forEach((e=>{if(e){const n=e.split(propertyDelimiterRE);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function stringifyStyle(e){let t="";if(!e||isString(e))return t;for(const n in e){const r=e[n];if(isString(r)||"number"==typeof r){t+=`${n.startsWith("--")?n:hyphenate(n)}:${r};`}}return t}function normalizeClass(e){let t="";if(isString(e))t=e;else if(isArray(e))for(let n=0;n<e.length;n++){const r=normalizeClass(e[n]);r&&(t+=r+" ")}else if(isObject(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function normalizeProps(e){if(!e)return null;let{class:t,style:n}=e;return t&&!isString(t)&&(e.class=normalizeClass(t)),n&&(e.style=normalizeStyle(n)),e}const HTML_TAGS="html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot",SVG_TAGS="svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view",MATH_TAGS="annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics",VOID_TAGS="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",isHTMLTag=makeMap(HTML_TAGS),isSVGTag=makeMap(SVG_TAGS),isMathMLTag=makeMap(MATH_TAGS),isVoidTag=makeMap(VOID_TAGS),specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",isSpecialBooleanAttr=makeMap(specialBooleanAttrs),isBooleanAttr=makeMap(specialBooleanAttrs+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");function includeBooleanAttr(e){return!!e||""===e}const isKnownHtmlAttr=makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),isKnownSvgAttr=makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");function isRenderableAttrValue(e){if(null==e)return!1;const t=typeof e;return"string"===t||"number"===t||"boolean"===t}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=looseEqual(e[r],t[r]);return n}function looseEqual(e,t){if(e===t)return!0;let n=isDate(e),r=isDate(t);if(n||r)return!(!n||!r)&&e.getTime()===t.getTime();if(n=isSymbol(e),r=isSymbol(t),n||r)return e===t;if(n=isArray(e),r=isArray(t),n||r)return!(!n||!r)&&looseCompareArrays(e,t);if(n=isObject(e),r=isObject(t),n||r){if(!n||!r)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const r=e.hasOwnProperty(n),o=t.hasOwnProperty(n);if(r&&!o||!r&&o||!looseEqual(e[n],t[n]))return!1}}return String(e)===String(t)}function looseIndexOf(e,t){return e.findIndex((e=>looseEqual(e,t)))}const toDisplayString=e=>isString(e)?e:null==e?"":isArray(e)||isObject(e)&&(e.toString===objectToString||!isFunction(e.toString))?JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>t&&t.__v_isRef?replacer(e,t.value):isMap(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n],r)=>(e[stringifySymbol(t,r)+" =>"]=n,e)),{})}:isSet(t)?{[`Set(${t.size})`]:[...t.values()].map((e=>stringifySymbol(e)))}:isSymbol(t)?stringifySymbol(t):!isObject(t)||isArray(t)||isPlainObject(t)?t:String(t),stringifySymbol=(e,t="")=>{var n;return isSymbol(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};function warn$2(e,...t){}let activeEffectScope,activeEffect;class EffectScope{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=activeEffectScope,!e&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=activeEffectScope;try{return activeEffectScope=this,e()}finally{activeEffectScope=t}}else warn$2("cannot run an inactive effect scope.")}on(){activeEffectScope=this}off(){activeEffectScope=this.parent}stop(e){if(this._active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this._active=!1}}}function effectScope(e){return new EffectScope(e)}function recordEffectScope(e,t=activeEffectScope){t&&t.active&&t.effects.push(e)}function getCurrentScope(){return activeEffectScope}function onScopeDispose(e){activeEffectScope?activeEffectScope.cleanups.push(e):warn$2("onScopeDispose() is called when there is no active effect scope to be associated with.")}class ReactiveEffect{constructor(e,t,n,r){this.fn=e,this.trigger=t,this.scheduler=n,this.active=!0,this.deps=[],this._dirtyLevel=4,this._trackId=0,this._runnings=0,this._shouldSchedule=!1,this._depsLength=0,recordEffectScope(this,r)}get dirty(){if(2===this._dirtyLevel||3===this._dirtyLevel){this._dirtyLevel=1,pauseTracking();for(let e=0;e<this._depsLength;e++){const t=this.deps[e];if(t.computed&&(triggerComputed(t.computed),this._dirtyLevel>=4))break}1===this._dirtyLevel&&(this._dirtyLevel=0),resetTracking()}return this._dirtyLevel>=4}set dirty(e){this._dirtyLevel=e?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let e=shouldTrack,t=activeEffect;try{return shouldTrack=!0,activeEffect=this,this._runnings++,preCleanupEffect(this),this.fn()}finally{postCleanupEffect(this),this._runnings--,activeEffect=t,shouldTrack=e}}stop(){this.active&&(preCleanupEffect(this),postCleanupEffect(this),this.onStop&&this.onStop(),this.active=!1)}}function triggerComputed(e){return e.value}function preCleanupEffect(e){e._trackId++,e._depsLength=0}function postCleanupEffect(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t<e.deps.length;t++)cleanupDepEffect(e.deps[t],e);e.deps.length=e._depsLength}}function cleanupDepEffect(e,t){const n=e.get(t);void 0!==n&&t._trackId!==n&&(e.delete(t),0===e.size&&e.cleanup())}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e,NOOP,(()=>{n.dirty&&n.run()}));t&&(extend(n,t),t.scope&&recordEffectScope(n,t.scope)),t&&t.lazy||n.run();const r=n.run.bind(n);return r.effect=n,r}function stop(e){e.effect.stop()}let shouldTrack=!0,pauseScheduleStack=0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=void 0===e||e}function pauseScheduling(){pauseScheduleStack++}function resetScheduling(){for(pauseScheduleStack--;!pauseScheduleStack&&queueEffectSchedulers.length;)queueEffectSchedulers.shift()()}function trackEffect(e,t,n){var r;if(t.get(e)!==e._trackId){t.set(e,e._trackId);const o=e.deps[e._depsLength];o!==t?(o&&cleanupDepEffect(o,e),e.deps[e._depsLength++]=t):e._depsLength++,null==(r=e.onTrack)||r.call(e,extend({effect:e},n))}}const queueEffectSchedulers=[];function triggerEffects(e,t,n){var r;pauseScheduling();for(const o of e.keys()){let s;o._dirtyLevel<t&&(null!=s?s:s=e.get(o)===o._trackId)&&(o._shouldSchedule||(o._shouldSchedule=0===o._dirtyLevel),o._dirtyLevel=t),o._shouldSchedule&&(null!=s?s:s=e.get(o)===o._trackId)&&(null==(r=o.onTrigger)||r.call(o,extend({effect:o},n)),o.trigger(),o._runnings&&!o.allowRecurse||2===o._dirtyLevel||(o._shouldSchedule=!1,o.scheduler&&queueEffectSchedulers.push(o.scheduler)))}resetScheduling()}const createDep=(e,t)=>{const n=new Map;return n.cleanup=e,n.computed=t,n},targetMap=new WeakMap,ITERATE_KEY=Symbol("iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map key iterate");function track(e,t,n){if(shouldTrack&&activeEffect){let r=targetMap.get(e);r||targetMap.set(e,r=new Map);let o=r.get(n);o||r.set(n,o=createDep((()=>r.delete(n)))),trackEffect(activeEffect,o,{target:e,type:t,key:n})}}function trigger(e,t,n,r,o,s){const i=targetMap.get(e);if(!i)return;let a=[];if("clear"===t)a=[...i.values()];else if("length"===n&&isArray(e)){const e=Number(r);i.forEach(((t,n)=>{("length"===n||!isSymbol(n)&&n>=e)&&a.push(t)}))}else switch(void 0!==n&&a.push(i.get(n)),t){case"add":isArray(e)?isIntegerKey(n)&&a.push(i.get("length")):(a.push(i.get(ITERATE_KEY)),isMap(e)&&a.push(i.get(MAP_KEY_ITERATE_KEY)));break;case"delete":isArray(e)||(a.push(i.get(ITERATE_KEY)),isMap(e)&&a.push(i.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(e)&&a.push(i.get(ITERATE_KEY));break}pauseScheduling();for(const i of a)i&&triggerEffects(i,4,{target:e,type:t,key:n,newValue:r,oldValue:o,oldTarget:s});resetScheduling()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(isSymbol)),arrayInstrumentations=createArrayInstrumentations();function createArrayInstrumentations(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=toRaw(this);for(let e=0,t=this.length;e<t;e++)track(n,"get",e+"");const r=n[t](...e);return-1===r||!1===r?n[t](...e.map(toRaw)):r}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){pauseTracking(),pauseScheduling();const n=toRaw(this)[t].apply(this,e);return resetScheduling(),resetTracking(),n}})),e}function hasOwnProperty(e){isSymbol(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){const r=this._isReadonly,o=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return o;if("__v_raw"===t)return n===(r?o?shallowReadonlyMap:readonlyMap:o?shallowReactiveMap:reactiveMap).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const s=isArray(e);if(!r){if(s&&hasOwn(arrayInstrumentations,t))return Reflect.get(arrayInstrumentations,t,n);if("hasOwnProperty"===t)return hasOwnProperty}const i=Reflect.get(e,t,n);return(isSymbol(t)?builtInSymbols.has(t):isNonTrackableKeys(t))?i:(r||track(e,"get",t),o?i:isRef(i)?s&&isIntegerKey(t)?i:i.value:isObject(i)?r?readonly(i):reactive(i):i)}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(e=!1){super(!1,e)}set(e,t,n,r){let o=e[t];if(!this._isShallow){const t=isReadonly(o);if(isShallow(n)||isReadonly(n)||(o=toRaw(o),n=toRaw(n)),!isArray(e)&&isRef(o)&&!isRef(n))return!t&&(o.value=n,!0)}const s=isArray(e)&&isIntegerKey(t)?Number(t)<e.length:hasOwn(e,t),i=Reflect.set(e,t,n,r);return e===toRaw(r)&&(s?hasChanged(n,o)&&trigger(e,"set",t,n,o):trigger(e,"add",t,n)),i}deleteProperty(e,t){const n=hasOwn(e,t),r=e[t],o=Reflect.deleteProperty(e,t);return o&&n&&trigger(e,"delete",t,void 0,r),o}has(e,t){const n=Reflect.has(e,t);return isSymbol(t)&&builtInSymbols.has(t)||track(e,"has",t),n}ownKeys(e){return track(e,"iterate",isArray(e)?"length":ITERATE_KEY),Reflect.ownKeys(e)}}class ReadonlyReactiveHandler extends BaseReactiveHandler{constructor(e=!1){super(!0,e)}set(e,t){return warn$2(`Set operation on key "${String(t)}" failed: target is readonly.`,e),!0}deleteProperty(e,t){return warn$2(`Delete operation on key "${String(t)}" failed: target is readonly.`,e),!0}}const mutableHandlers=new MutableReactiveHandler,readonlyHandlers=new ReadonlyReactiveHandler,shallowReactiveHandlers=new MutableReactiveHandler(!0),shallowReadonlyHandlers=new ReadonlyReactiveHandler(!0),toShallow=e=>e,getProto=e=>Reflect.getPrototypeOf(e);function get(e,t,n=!1,r=!1){const o=toRaw(e=e.__v_raw),s=toRaw(t);n||(hasChanged(t,s)&&track(o,"get",t),track(o,"get",s));const{has:i}=getProto(o),a=r?toShallow:n?toReadonly:toReactive;return i.call(o,t)?a(e.get(t)):i.call(o,s)?a(e.get(s)):void(e!==o&&e.get(t))}function has(e,t=!1){const n=this.__v_raw,r=toRaw(n),o=toRaw(e);return t||(hasChanged(e,o)&&track(r,"has",e),track(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function size(e,t=!1){return e=e.__v_raw,!t&&track(toRaw(e),"iterate",ITERATE_KEY),Reflect.get(e,"size",e)}function add(e){e=toRaw(e);const t=toRaw(this);return getProto(t).has.call(t,e)||(t.add(e),trigger(t,"add",e,e)),this}function set(e,t){t=toRaw(t);const n=toRaw(this),{has:r,get:o}=getProto(n);let s=r.call(n,e);s?checkIdentityKeys(n,r,e):(e=toRaw(e),s=r.call(n,e));const i=o.call(n,e);return n.set(e,t),s?hasChanged(t,i)&&trigger(n,"set",e,t,i):trigger(n,"add",e,t),this}function deleteEntry(e){const t=toRaw(this),{has:n,get:r}=getProto(t);let o=n.call(t,e);o?checkIdentityKeys(t,n,e):(e=toRaw(e),o=n.call(t,e));const s=r?r.call(t,e):void 0,i=t.delete(e);return o&&trigger(t,"delete",e,void 0,s),i}function clear(){const e=toRaw(this),t=0!==e.size,n=isMap(e)?new Map(e):new Set(e),r=e.clear();return t&&trigger(e,"clear",void 0,void 0,n),r}function createForEach(e,t){return function(n,r){const o=this,s=o.__v_raw,i=toRaw(s),a=t?toShallow:e?toReadonly:toReactive;return!e&&track(i,"iterate",ITERATE_KEY),s.forEach(((e,t)=>n.call(r,a(e),a(t),o)))}}function createIterableMethod(e,t,n){return function(...r){const o=this.__v_raw,s=toRaw(o),i=isMap(s),a="entries"===e||e===Symbol.iterator&&i,c="keys"===e&&i,l=o[e](...r),p=n?toShallow:t?toReadonly:toReactive;return!t&&track(s,"iterate",c?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:a?[p(e[0]),p(e[1])]:p(e),done:t}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$2(`${capitalize(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return"delete"!==e&&("clear"===e?void 0:this)}}function createInstrumentations(){const e={get(e){return get(this,e)},get size(){return size(this)},has:has,add:add,set:set,delete:deleteEntry,clear:clear,forEach:createForEach(!1,!1)},t={get(e){return get(this,e,!1,!0)},get size(){return size(this)},has:has,add:add,set:set,delete:deleteEntry,clear:clear,forEach:createForEach(!1,!0)},n={get(e){return get(this,e,!0)},get size(){return size(this,!0)},has(e){return has.call(this,e,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!1)},r={get(e){return get(this,e,!0,!0)},get size(){return size(this,!0)},has(e){return has.call(this,e,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=createIterableMethod(o,!1,!1),n[o]=createIterableMethod(o,!0,!1),t[o]=createIterableMethod(o,!1,!0),r[o]=createIterableMethod(o,!0,!0)})),[e,n,t,r]}const[mutableInstrumentations,readonlyInstrumentations,shallowInstrumentations,shallowReadonlyInstrumentations]=createInstrumentations();function createInstrumentationGetter(e,t){const n=t?e?shallowReadonlyInstrumentations:shallowInstrumentations:e?readonlyInstrumentations:mutableInstrumentations;return(t,r,o)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(hasOwn(n,r)&&r in t?n:t,r,o)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const r=toRaw(n);if(r!==n&&t.call(e,r)){const t=toRawType(e);warn$2(`Reactive ${t} contains both the raw and reactive versions of the same object${"Map"===t?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,r,o){if(!isObject(e))return warn$2(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=getTargetType(e);if(0===i)return e;const a=new Proxy(e,2===i?r:n);return o.set(e,a),a}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!(!e||!e.__v_isReactive)}function isReadonly(e){return!(!e||!e.__v_isReadonly)}function isShallow(e){return!(!e||!e.__v_isShallow)}function isProxy(e){return!!e&&!!e.__v_raw}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject(e)?reactive(e):e,toReadonly=e=>isObject(e)?readonly(e):e,COMPUTED_SIDE_EFFECT_WARN="Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free";class ComputedRefImpl{constructor(e,t,n,r){this.getter=e,this._setter=t,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new ReactiveEffect((()=>e(this._value)),(()=>triggerRefValue(this,2===this.effect._dirtyLevel?2:3))),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const e=toRaw(this);return e._cacheable&&!e.effect.dirty||!hasChanged(e._value,e._value=e.effect.run())||triggerRefValue(e,4),trackRefValue(e),e.effect._dirtyLevel>=2&&(this._warnRecursive&&warn$2(COMPUTED_SIDE_EFFECT_WARN,"\n\ngetter: ",this.getter),triggerRefValue(e,2)),e._value}set value(e){this._setter(e)}get _dirty(){return this.effect.dirty}set _dirty(e){this.effect.dirty=e}}function computed$1(e,t,n=!1){let r,o;const s=isFunction(e);s?(r=e,o=()=>{warn$2("Write operation failed: computed value is readonly")}):(r=e.get,o=e.set);const i=new ComputedRefImpl(r,o,s||!o,n);return t&&!n&&(i.effect.onTrack=t.onTrack,i.effect.onTrigger=t.onTrigger),i}function trackRefValue(e){var t;shouldTrack&&activeEffect&&(e=toRaw(e),trackEffect(activeEffect,null!=(t=e.dep)?t:e.dep=createDep((()=>e.dep=void 0),e instanceof ComputedRefImpl?e:void 0),{target:e,type:"get",key:"value"}))}function triggerRefValue(e,t=4,n){const r=(e=toRaw(e)).dep;r&&triggerEffects(r,t,{target:e,type:"set",key:"value",newValue:n})}function isRef(e){return!(!e||!0!==e.__v_isRef)}function ref(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:toRaw(e),this._value=t?e:toReactive(e)}get value(){return trackRefValue(this),this._value}set value(e){const t=this.__v_isShallow||isShallow(e)||isReadonly(e);e=t?e:toRaw(e),hasChanged(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:toReactive(e),triggerRefValue(this,4,e))}}function triggerRef(e){triggerRefValue(e,4,e.value)}function unref(e){return isRef(e)?e.value:e}function toValue(e){return isFunction(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>unref(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return isRef(o)&&!isRef(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(e){this.dep=void 0,this.__v_isRef=!0;const{get:t,set:n}=e((()=>trackRefValue(this)),(()=>triggerRefValue(this)));this._get=t,this._set=n}get value(){return this._get()}set value(e){this._set(e)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$2("toRefs() expects a reactive object but received a plain one.");const t=isArray(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction(e)?new GetterRefImpl(e):isObject(e)&&arguments.length>1?propertyToRef(e,t,n):ref(e)}function propertyToRef(e,t,n){const r=e[t];return isRef(r)?r:new ObjectRefImpl(e,t,n)}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},stack$1=[];function pushWarningContext(e){stack$1.push(e)}function popWarningContext(){stack$1.pop()}function warn$1(e,...t){pauseTracking();const n=stack$1.length?stack$1[stack$1.length-1].component:null,r=n&&n.appContext.config.warnHandler,o=getComponentTrace();if(r)callWithErrorHandling(r,n,11,[e+t.map((e=>{var t,n;return null!=(n=null==(t=e.toString)?void 0:t.call(e))?n:JSON.stringify(e)})).join(""),n&&n.proxy,o.map((({vnode:e})=>`at <${formatComponentName(n,e.type)}>`)).join("\n"),o]);else{const n=[`[Vue warn]: ${e}`,...t];o.length&&n.push("\n",...formatTrace(o))}resetTracking()}function getComponentTrace(){let e=stack$1[stack$1.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function formatTrace(e){const t=[];return e.forEach(((e,n)=>{t.push(...0===n?[]:["\n"],...formatTraceEntry(e))})),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=!!e.component&&null==e.component.parent,o=` at <${formatComponentName(e.component,e.type,r)}`,s=">"+n;return e.props?[o,...formatProps(e.props),s]:[o+s]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach((n=>{t.push(...formatProp(n,e[n]))})),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):"number"==typeof t||"boolean"==typeof t||null==t?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){void 0!==e&&("number"!=typeof e?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",WATCH_GETTER:2,2:"WATCH_GETTER",WATCH_CALLBACK:3,3:"WATCH_CALLBACK",WATCH_CLEANUP:4,4:"WATCH_CLEANUP",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ."};function callWithErrorHandling(e,t,n,r){try{return r?e(...r):e()}catch(e){handleError(e,t,n)}}function callWithAsyncErrorHandling(e,t,n,r){if(isFunction(e)){const o=callWithErrorHandling(e,t,n,r);return o&&isPromise(o)&&o.catch((e=>{handleError(e,t,n)})),o}if(isArray(e)){const o=[];for(let s=0;s<e.length;s++)o.push(callWithAsyncErrorHandling(e[s],t,n,r));return o}warn$1("Invalid value type passed to callWithAsyncErrorHandling(): "+typeof e)}function handleError(e,t,n,r=!0){const o=t?t.vnode:null;if(t){let r=t.parent;const o=t.proxy,s=ErrorTypeStrings$1[n];for(;r;){const t=r.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,o,s))return;r=r.parent}const i=t.appContext.config.errorHandler;if(i)return pauseTracking(),callWithErrorHandling(i,null,10,[e,o,s]),void resetTracking()}logError(e,n,o,r)}function logError(e,t,n,r=!0){{const o=ErrorTypeStrings$1[t];if(n&&pushWarningContext(n),warn$1("Unhandled error"+(o?` during execution of ${o}`:"")),n&&popWarningContext(),r)throw e}}let isFlushing=!1,isFlushPending=!1;const queue=[];let flushIndex=0;const pendingPostFlushCbs=[];let activePostFlushCbs=null,postFlushIndex=0;const resolvedPromise=Promise.resolve();let currentFlushPromise=null;const RECURSION_LIMIT=100;function nextTick(e){const t=currentFlushPromise||resolvedPromise;return e?t.then(this?e.bind(this):e):t}function findInsertionIndex(e){let t=flushIndex+1,n=queue.length;for(;t<n;){const r=t+n>>>1,o=queue[r],s=getId(o);s<e||s===e&&o.pre?t=r+1:n=r}return t}function queueJob(e){queue.length&&queue.includes(e,isFlushing&&e.allowRecurse?flushIndex+1:flushIndex)||(null==e.id?queue.push(e):queue.splice(findInsertionIndex(e.id),0,e),queueFlush())}function queueFlush(){isFlushing||isFlushPending||(isFlushPending=!0,currentFlushPromise=resolvedPromise.then(flushJobs))}function invalidateJob(e){const t=queue.indexOf(e);t>flushIndex&&queue.splice(t,1)}function queuePostFlushCb(e){isArray(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&activePostFlushCbs.includes(e,e.allowRecurse?postFlushIndex+1:postFlushIndex)||pendingPostFlushCbs.push(e),queueFlush()}function flushPreFlushCbs(e,t,n=(isFlushing?flushIndex+1:0)){for(t=t||new Map;n<queue.length;n++){const r=queue[n];if(r&&r.pre){if(e&&r.id!==e.uid)continue;if(checkRecursiveUpdates(t,r))continue;queue.splice(n,1),n--,r()}}}function flushPostFlushCbs(e){if(pendingPostFlushCbs.length){const t=[...new Set(pendingPostFlushCbs)].sort(((e,t)=>getId(e)-getId(t)));if(pendingPostFlushCbs.length=0,activePostFlushCbs)return void activePostFlushCbs.push(...t);for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndex<activePostFlushCbs.length;postFlushIndex++)checkRecursiveUpdates(e,activePostFlushCbs[postFlushIndex])||activePostFlushCbs[postFlushIndex]();activePostFlushCbs=null,postFlushIndex=0}}const getId=e=>null==e.id?1/0:e.id,comparator=(e,t)=>{const n=getId(e)-getId(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function flushJobs(e){isFlushPending=!1,isFlushing=!0,e=e||new Map,queue.sort(comparator);const t=t=>checkRecursiveUpdates(e,t);try{for(flushIndex=0;flushIndex<queue.length;flushIndex++){const e=queue[flushIndex];if(e&&!1!==e.active){if(t(e))continue;callWithErrorHandling(e,null,14)}}}finally{flushIndex=0,queue.length=0,flushPostFlushCbs(e),isFlushing=!1,currentFlushPromise=null,(queue.length||pendingPostFlushCbs.length)&&flushJobs(e)}}function checkRecursiveUpdates(e,t){if(e.has(t)){const n=e.get(t);if(n>100){const e=t.ownerInstance,n=e&&getComponentName(e.type);return handleError(`Maximum recursive updates exceeded${n?` in component <${n}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}e.set(t,n+1)}else e.set(t,1)}let isHmrUpdating=!1;const hmrDirtyComponents=new Set;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map.get(t);n||(createRecord(t,e.type),n=map.get(t)),n.instances.add(e)}function unregisterHMR(e){map.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return!map.has(e)&&(map.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach((e=>{t&&(e.render=t,normalizeClassComponent(e.type).render=t),e.renderCache=[],isHmrUpdating=!0,e.effect.dirty=!0,e.update(),isHmrUpdating=!1})))}function reload(e,t){const n=map.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const r=[...n.instances];for(const e of r){const r=normalizeClassComponent(e.type);hmrDirtyComponents.has(r)||(r!==n.initialDef&&updateComponentDef(r,t),hmrDirtyComponents.add(r)),e.appContext.propsCache.delete(e.type),e.appContext.emitsCache.delete(e.type),e.appContext.optionsCache.delete(e.type),e.ceReload?(hmrDirtyComponents.add(r),e.ceReload(t.styles),hmrDirtyComponents.delete(r)):e.parent?(e.parent.effect.dirty=!0,queueJob(e.parent.update)):e.appContext.reload?e.appContext.reload():"undefined"!=typeof window&&window.location.reload()}queuePostFlushCb((()=>{for(const e of r)hmrDirtyComponents.delete(normalizeClassComponent(e.type))}))}function updateComponentDef(e,t){extend(e,t);for(const n in e)"__file"===n||n in t||delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(e){}}}let devtools$1,buffer=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,r;if(devtools$1=e,devtools$1)devtools$1.enabled=!0,buffer.forEach((({event:e,args:t})=>devtools$1.emit(e,...t))),buffer=[];else if("undefined"!=typeof window&&window.HTMLElement&&!(null==(r=null==(n=window.navigator)?void 0:n.userAgent)?void 0:r.includes("jsdom"))){(t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{setDevtoolsHook$1(e,t)})),setTimeout((()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer=[])}),3e3)}else devtoolsNotInstalled=!0,buffer=[]}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment:Fragment,Text:Text,Comment:Comment,Static:Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&"function"==typeof devtools$1.cleanupBuffer&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};
/*! #__NO_SIDE_EFFECTS__ */
function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,r)=>{emit$1(e,t.appContext.app,t.uid,t,n,r)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}function emit(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||EMPTY_OBJ;{const{emitsOptions:r,propsOptions:[o]}=e;if(r)if(t in r){const e=r[t];if(isFunction(e)){e(...n)||warn$1(`Invalid event arguments: event validation failed for event "${t}".`)}}else o&&toHandlerKey(t)in o||warn$1(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${toHandlerKey(t)}" prop.`)}let o=n;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in r){const e=`${"modelValue"===i?"model":i}Modifiers`,{number:t,trim:s}=r[e]||EMPTY_OBJ;s&&(o=n.map((e=>isString(e)?e.trim():e))),t&&(o=n.map(looseToNumber))}devtoolsComponentEmit(e,t,o);{const n=t.toLowerCase();n!==t&&r[toHandlerKey(n)]&&warn$1(`Event "${n}" is emitted in component ${formatComponentName(e,e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(t)}" instead of "${t}".`)}let a,c=r[a=toHandlerKey(t)]||r[a=toHandlerKey(camelize(t))];!c&&s&&(c=r[a=toHandlerKey(hyphenate(t))]),c&&callWithAsyncErrorHandling(c,e,6,o);const l=r[a+"Once"];if(l){if(e.emitted){if(e.emitted[a])return}else e.emitted={};e.emitted[a]=!0,callWithAsyncErrorHandling(l,e,6,o)}}function normalizeEmitsOptions(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(void 0!==o)return o;const s=e.emits;let i={},a=!1;if(!isFunction(e)){const r=e=>{const n=normalizeEmitsOptions(e,t,!0);n&&(a=!0,extend(i,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return s||a?(isArray(s)?s.forEach((e=>i[e]=null)):extend(i,s),isObject(e)&&r.set(e,i),i):(isObject(e)&&r.set(e,null),null)}function isEmitListener(e,t){return!(!e||!isOn(t))&&(t=t.slice(2).replace(/Once$/,""),hasOwn(e,t[0].toLowerCase()+t.slice(1))||hasOwn(e,hyphenate(t))||hasOwn(e,t))}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t)return e;if(e._n)return e;const r=(...n)=>{r._d&&setBlockTracking(-1);const o=setCurrentRenderingInstance(t);let s;try{s=e(...n)}finally{setCurrentRenderingInstance(o),r._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),s};return r._n=!0,r._c=!0,r._d=!0,r}let accessedAttrs=!1;function markAttrsAccessed(){accessedAttrs=!0}function renderComponentRoot(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[s],slots:i,attrs:a,emit:c,render:l,renderCache:p,props:d,data:u,setupState:h,ctx:f,inheritAttrs:m}=e,g=setCurrentRenderingInstance(e);let y,v;accessedAttrs=!1;try{if(4&n.shapeFlag){const e=o||r,t=h.__isScriptSetup?new Proxy(e,{get:(e,t,n)=>(warn$1(`Property '${String(t)}' was accessed via 'this'. Avoid using 'this' in templates.`),Reflect.get(e,t,n))}):e;y=normalizeVNode(l.call(t,e,p,shallowReadonly(d),h,u,f)),v=a}else{const e=t;a===d&&markAttrsAccessed(),y=normalizeVNode(e.length>1?e(shallowReadonly(d),{get attrs(){return markAttrsAccessed(),shallowReadonly(a)},slots:i,emit:c}):e(shallowReadonly(d),null)),v=t.props?a:getFunctionalFallthrough(a)}}catch(t){blockStack.length=0,handleError(t,e,1),y=createVNode(Comment)}let S,E=y;if(y.patchFlag>0&&2048&y.patchFlag&&([E,S]=getChildRoot(y)),v&&!1!==m){const e=Object.keys(v),{shapeFlag:t}=E;if(e.length)if(7&t)s&&e.some(isModelListener)&&(v=filterModelListeners(v,s)),E=cloneVNode(E,v,!1,!0);else if(!accessedAttrs&&E.type!==Comment){const e=Object.keys(a),t=[],n=[];for(let r=0,o=e.length;r<o;r++){const o=e[r];isOn(o)?isModelListener(o)||t.push(o[2].toLowerCase()+o.slice(3)):n.push(o)}n.length&&warn$1(`Extraneous non-props attributes (${n.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`),t.length&&warn$1(`Extraneous non-emits event listeners (${t.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.`)}}return n.dirs&&(isElementRoot(E)||warn$1("Runtime directive used on component with non-element root node. The directives will not function as intended."),E=cloneVNode(E,null,!1,!0),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&(isElementRoot(E)||warn$1("Component inside <Transition> renders non-element root node that cannot be animated."),E.transition=n.transition),S?S(E):y=E,setCurrentRenderingInstance(g),y}const getChildRoot=e=>{const t=e.children,n=e.dynamicChildren,r=filterSingleRoot(t,!1);if(!r)return[e,void 0];if(r.patchFlag>0&&2048&r.patchFlag)return getChildRoot(r);const o=t.indexOf(r),s=n?n.indexOf(r):-1;return[normalizeVNode(r),r=>{t[o]=r,n&&(s>-1?n[s]=r:r.patchFlag>0&&(e.dynamicChildren=[...n,r]))}]};function filterSingleRoot(e,t=!0){let n;for(let r=0;r<e.length;r++){const o=e[r];if(!isVNode(o))return;if(o.type!==Comment||"v-if"===o.children){if(n)return;if(n=o,t&&n.patchFlag>0&&2048&n.patchFlag)return filterSingleRoot(n.children)}}return n}const getFunctionalFallthrough=e=>{let t;for(const n in e)("class"===n||"style"===n||isOn(n))&&((t||(t={}))[n]=e[n]);return t},filterModelListeners=(e,t)=>{const n={};for(const r in e)isModelListener(r)&&r.slice(9)in t||(n[r]=e[r]);return n},isElementRoot=e=>7&e.shapeFlag||e.type===Comment;function shouldUpdateComponent(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:a,patchFlag:c}=t,l=s.emitsOptions;if((o||a)&&isHmrUpdating)return!0;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!o&&!a||a&&a.$stable)||r!==i&&(r?!i||hasPropsChanged(r,i,l):!!i);if(1024&c)return!0;if(16&c)return r?hasPropsChanged(r,i,l):!!i;if(8&c){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==r[n]&&!isEmitListener(l,n))return!0}}return!1}function hasPropsChanged(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let o=0;o<r.length;o++){const s=r[o];if(t[s]!==e[s]&&!isEmitListener(n,s))return!0}return!1}function updateHOCHostEl({vnode:e,parent:t},n){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.el=e.el),r!==e)break;(e=t.vnode).el=n,t=t.parent}}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(e){return isString(e)?resolveAsset(COMPONENTS,e,!1)||e:e||NULL_DYNAMIC_COMPONENT}function resolveDirective(e){return resolveAsset(DIRECTIVES,e)}function resolveAsset(e,t,n=!0,r=!1){const o=currentRenderingInstance||currentInstance;if(o){const s=o.type;if(e===COMPONENTS){const e=getComponentName(s,!1);if(e&&(e===t||e===camelize(t)||e===capitalize(camelize(t))))return s}const i=resolve(o[e]||s[e],t)||resolve(o.appContext[e],t);if(!i&&r)return s;if(n&&!i){const n=e===COMPONENTS?"\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.":"";warn$1(`Failed to resolve ${e.slice(0,-1)}: ${t}${n}`)}return i}warn$1(`resolve${capitalize(e.slice(0,-1))} can only be used in render() or setup().`)}function resolve(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize(camelize(t))])}const isSuspense=e=>e.__isSuspense;let suspenseId=0;const SuspenseImpl={name:"Suspense",__isSuspense:!0,process(e,t,n,r,o,s,i,a,c,l){if(null==e)mountSuspense(t,n,r,o,s,i,a,c,l);else{if(s&&s.deps>0&&!e.suspense.isInFallback)return t.suspense=e.suspense,t.suspense.vnode=t,void(t.el=e.el);patchSuspense(e,t,n,r,o,i,a,c,l)}},hydrate:hydrateSuspense,create:createSuspenseBoundary,normalize:normalizeSuspenseChildren},Suspense=SuspenseImpl;function triggerEvent(e,t){const n=e.props&&e.props[t];isFunction(n)&&n()}function mountSuspense(e,t,n,r,o,s,i,a,c){const{p:l,o:{createElement:p}}=c,d=p("div"),u=e.suspense=createSuspenseBoundary(e,o,r,t,d,n,s,i,a,c);l(null,u.pendingBranch=e.ssContent,d,null,r,u,s,i),u.deps>0?(triggerEvent(e,"onPending"),triggerEvent(e,"onFallback"),l(null,e.ssFallback,t,n,r,null,s,i),setActiveBranch(u,e.ssFallback)):u.resolve(!1,!0)}function patchSuspense(e,t,n,r,o,s,i,a,{p:c,um:l,o:{createElement:p}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const u=t.ssContent,h=t.ssFallback,{activeBranch:f,pendingBranch:m,isInFallback:g,isHydrating:y}=d;if(m)d.pendingBranch=u,isSameVNodeType(u,m)?(c(m,u,d.hiddenContainer,null,o,d,s,i,a),d.deps<=0?d.resolve():g&&(y||(c(f,h,n,r,o,null,s,i,a),setActiveBranch(d,h)))):(d.pendingId=suspenseId++,y?(d.isHydrating=!1,d.activeBranch=m):l(m,o,d),d.deps=0,d.effects.length=0,d.hiddenContainer=p("div"),g?(c(null,u,d.hiddenContainer,null,o,d,s,i,a),d.deps<=0?d.resolve():(c(f,h,n,r,o,null,s,i,a),setActiveBranch(d,h))):f&&isSameVNodeType(u,f)?(c(f,u,n,r,o,d,s,i,a),d.resolve(!0)):(c(null,u,d.hiddenContainer,null,o,d,s,i,a),d.deps<=0&&d.resolve()));else if(f&&isSameVNodeType(u,f))c(f,u,n,r,o,d,s,i,a),setActiveBranch(d,u);else if(triggerEvent(t,"onPending"),d.pendingBranch=u,512&u.shapeFlag?d.pendingId=u.component.suspenseId:d.pendingId=suspenseId++,c(null,u,d.hiddenContainer,null,o,d,s,i,a),d.deps<=0)d.resolve();else{const{timeout:e,pendingId:t}=d;e>0?setTimeout((()=>{d.pendingId===t&&d.fallback(h)}),e):0===e&&d.fallback(h)}}let hasWarned=!1;function createSuspenseBoundary(e,t,n,r,o,s,i,a,c,l,p=!1){hasWarned||(hasWarned=!0);const{p:d,m:u,um:h,n:f,o:{parentNode:m,remove:g}}=l;let y;const v=isVNodeSuspensible(e);v&&t&&t.pendingBranch&&(y=t.pendingId,t.deps++);const S=e.props?toNumber(e.props.timeout):void 0;assertNumber(S,"Suspense timeout");const E=s,C={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:o,deps:0,pendingId:suspenseId++,timeout:"number"==typeof S?S:-1,activeBranch:null,pendingBranch:null,isInFallback:!p,isHydrating:p,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){if(!e&&!C.pendingBranch)throw new Error("suspense.resolve() is called without a pending branch.");if(C.isUnmounted)throw new Error("suspense.resolve() is called on an already unmounted suspense boundary.");const{vnode:r,activeBranch:o,pendingBranch:i,pendingId:a,effects:c,parentComponent:l,container:p}=C;let d=!1;C.isHydrating?C.isHydrating=!1:e||(d=o&&i.transition&&"out-in"===i.transition.mode,d&&(o.transition.afterLeave=()=>{a===C.pendingId&&(u(i,p,s===E?f(o):s,0),queuePostFlushCb(c))}),o&&(m(o.el)!==C.hiddenContainer&&(s=f(o)),h(o,l,C,!0)),d||u(i,p,s,0)),setActiveBranch(C,i),C.pendingBranch=null,C.isInFallback=!1;let g=C.parent,S=!1;for(;g;){if(g.pendingBranch){g.effects.push(...c),S=!0;break}g=g.parent}S||d||queuePostFlushCb(c),C.effects=[],v&&t&&t.pendingBranch&&y===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),triggerEvent(r,"onResolve")},fallback(e){if(!C.pendingBranch)return;const{vnode:t,activeBranch:n,parentComponent:r,container:o,namespace:s}=C;triggerEvent(t,"onFallback");const i=f(n),l=()=>{C.isInFallback&&(d(null,e,o,i,r,null,s,a,c),setActiveBranch(C,e))},p=e.transition&&"out-in"===e.transition.mode;p&&(n.transition.afterLeave=l),C.isInFallback=!0,h(n,r,null,!0),p||l()},move(e,t,n){C.activeBranch&&u(C.activeBranch,e,t,n),C.container=e},next:()=>C.activeBranch&&f(C.activeBranch),registerDep(e,t){const n=!!C.pendingBranch;n&&C.deps++;const r=e.vnode.el;e.asyncDep.catch((t=>{handleError(t,e,0)})).then((o=>{if(e.isUnmounted||C.isUnmounted||C.pendingId!==e.suspenseId)return;e.asyncResolved=!0;const{vnode:s}=e;pushWarningContext(s),handleSetupResult(e,o,!1),r&&(s.el=r);const a=!r&&e.subTree.el;t(e,s,m(r||e.subTree.el),r?null:f(e.subTree),C,i,c),a&&g(a),updateHOCHostEl(e,s.el),popWarningContext(),n&&0==--C.deps&&C.resolve()}))},unmount(e,t){C.isUnmounted=!0,C.activeBranch&&h(C.activeBranch,n,e,t),C.pendingBranch&&h(C.pendingBranch,n,e,t)}};return C}function hydrateSuspense(e,t,n,r,o,s,i,a,c){const l=t.suspense=createSuspenseBoundary(t,r,n,e.parentNode,document.createElement("div"),null,o,s,i,a,!0),p=c(e,l.pendingBranch=t.ssContent,n,l,s,i);return 0===l.deps&&l.resolve(!1,!0),p}function normalizeSuspenseChildren(e){const{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=normalizeSuspenseSlot(r?n.default:n),e.ssFallback=r?normalizeSuspenseSlot(n.fallback):createVNode(Comment)}function normalizeSuspenseSlot(e){let t;if(isFunction(e)){const n=isBlockTreeEnabled&&e._c;n&&(e._d=!1,openBlock()),e=e(),n&&(e._d=!0,t=currentBlock,closeBlock())}if(isArray(e)){const t=filterSingleRoot(e);!t&&e.filter((e=>e!==NULL_DYNAMIC_COMPONENT)).length>0&&warn$1("<Suspense> slots expect a single root node."),e=t}return e=normalizeVNode(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter((t=>t!==e))),e}function queueEffectWithSuspense(e,t){t&&t.pendingBranch?isArray(e)?t.effects.push(...e):t.effects.push(e):queuePostFlushCb(e)}function setActiveBranch(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let o=t.el;for(;!o&&t.component;)o=(t=t.component.subTree).el;n.el=o,r&&r.subTree===n&&(r.vnode.el=o,updateHOCHostEl(r,o))}function isVNodeSuspensible(e){const t=e.props&&e.props.suspensible;return null!=t&&!1!==t}const ssrContextKey=Symbol.for("v-scx"),useSSRContext=()=>{{const e=inject(ssrContextKey);return e||warn$1("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function watchEffect(e,t){return doWatch(e,null,t)}function watchPostEffect(e,t){return doWatch(e,null,extend({},t,{flush:"post"}))}function watchSyncEffect(e,t){return doWatch(e,null,extend({},t,{flush:"sync"}))}const INITIAL_WATCHER_VALUE={};function watch(e,t,n){return isFunction(t)||warn$1("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),doWatch(e,t,n)}function doWatch(e,t,{immediate:n,deep:r,flush:o,once:s,onTrack:i,onTrigger:a}=EMPTY_OBJ){if(t&&s){const e=t;t=(...t)=>{e(...t),C()}}void 0!==r&&"number"==typeof r&&warn$1('watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.'),t||(void 0!==n&&warn$1('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==r&&warn$1('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==s&&warn$1('watch() "once" option is only respected when using the watch(source, callback, options?) signature.'));const c=e=>{warn$1("Invalid watch source: ",e,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},l=currentInstance,p=e=>!0===r?e:traverse(e,!1===r?1:void 0);let d,u,h=!1,f=!1;if(isRef(e)?(d=()=>e.value,h=isShallow(e)):isReactive(e)?(d=()=>p(e),h=!0):isArray(e)?(f=!0,h=e.some((e=>isReactive(e)||isShallow(e))),d=()=>e.map((e=>isRef(e)?e.value:isReactive(e)?p(e):isFunction(e)?callWithErrorHandling(e,l,2):void c(e)))):isFunction(e)?d=t?()=>callWithErrorHandling(e,l,2):()=>(u&&u(),callWithAsyncErrorHandling(e,l,3,[m])):(d=NOOP,c(e)),t&&r){const e=d;d=()=>traverse(e())}let m=e=>{u=S.onStop=()=>{callWithErrorHandling(e,l,4),u=S.onStop=void 0}},g=f?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const y=()=>{if(S.active&&S.dirty)if(t){const e=S.run();(r||h||(f?e.some(((e,t)=>hasChanged(e,g[t]))):hasChanged(e,g)))&&(u&&u(),callWithAsyncErrorHandling(t,l,3,[e,g===INITIAL_WATCHER_VALUE?void 0:f&&g[0]===INITIAL_WATCHER_VALUE?[]:g,m]),g=e)}else S.run()};let v;y.allowRecurse=!!t,"sync"===o?v=y:"post"===o?v=()=>queuePostRenderEffect(y,l&&l.suspense):(y.pre=!0,l&&(y.id=l.uid),v=()=>queueJob(y));const S=new ReactiveEffect(d,NOOP,v),E=getCurrentScope(),C=()=>{S.stop(),E&&remove(E.effects,S)};return S.onTrack=i,S.onTrigger=a,t?n?y():g=S.run():"post"===o?queuePostRenderEffect(S.run.bind(S),l&&l.suspense):S.run(),C}function instanceWatch(e,t,n){const r=this.proxy,o=isString(e)?e.includes(".")?createPathGetter(r,e):()=>r[e]:e.bind(r,r);let s;isFunction(t)?s=t:(s=t.handler,n=t);const i=setCurrentInstance(this),a=doWatch(o,s.bind(r),n);return i(),a}function createPathGetter(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function traverse(e,t=1/0,n){if(t<=0||!isObject(e)||e.__v_skip)return e;if((n=n||new Set).has(e))return e;if(n.add(e),t--,isRef(e))traverse(e.value,t,n);else if(isArray(e))for(let r=0;r<e.length;r++)traverse(e[r],t,n);else if(isSet(e)||isMap(e))e.forEach((e=>{traverse(e,t,n)}));else if(isPlainObject(e))for(const r in e)traverse(e[r],t,n);return e}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(null===currentRenderingInstance)return warn$1("withDirectives can only be used inside render functions."),e;const n=getExposeProxy(currentRenderingInstance)||currentRenderingInstance.proxy,r=e.dirs||(e.dirs=[]);for(let e=0;e<t.length;e++){let[o,s,i,a=EMPTY_OBJ]=t[e];o&&(isFunction(o)&&(o={mounted:o,updated:o}),o.deep&&traverse(s),r.push({dir:o,instance:n,value:s,oldValue:void 0,arg:i,modifiers:a}))}return e}function invokeDirectiveHook(e,t,n,r){const o=e.dirs,s=t&&t.dirs;for(let i=0;i<o.length;i++){const a=o[i];s&&(a.oldValue=s[i].value);let c=a.dir[r];c&&(pauseTracking(),callWithAsyncErrorHandling(c,n,8,[e.el,a,e,t]),resetTracking())}}const leaveCbKey=Symbol("_leaveCb"),enterCbKey$1=Symbol("_enterCb");function useTransitionState(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return onMounted((()=>{e.isMounted=!0})),onBeforeUnmount((()=>{e.isUnmounting=!0})),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),r=useTransitionState();return()=>{const o=t.default&&getTransitionRawChildren(t.default(),!0);if(!o||!o.length)return;let s=o[0];if(o.length>1){let e=!1;for(const t of o)if(t.type!==Comment){if(e){warn$1("<transition> can only be used on a single element or component. Use <transition-group> for lists.");break}s=t,e=!0}}const i=toRaw(e),{mode:a}=i;if(a&&"in-out"!==a&&"out-in"!==a&&"default"!==a&&warn$1(`invalid <transition> mode: ${a}`),r.isLeaving)return emptyPlaceholder(s);const c=getKeepAliveChild(s);if(!c)return emptyPlaceholder(s);const l=resolveTransitionHooks(c,i,r,n);setTransitionHooks(c,l);const p=n.subTree,d=p&&getKeepAliveChild(p);if(d&&d.type!==Comment&&!isSameVNodeType(c,d)){const e=resolveTransitionHooks(d,i,r,n);if(setTransitionHooks(d,e),"out-in"===a&&c.type!==Comment)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,!1!==n.update.active&&(n.effect.dirty=!0,n.update())},emptyPlaceholder(s);"in-out"===a&&c.type!==Comment&&(e.delayLeave=(e,t,n)=>{getLeavingNodesForType(r,d)[String(d.key)]=d,e[leaveCbKey]=()=>{t(),e[leaveCbKey]=void 0,delete l.delayedLeave},l.delayedLeave=n})}return s}}},BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function resolveTransitionHooks(e,t,n,r){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:l,onEnterCancelled:p,onBeforeLeave:d,onLeave:u,onAfterLeave:h,onLeaveCancelled:f,onBeforeAppear:m,onAppear:g,onAfterAppear:y,onAppearCancelled:v}=t,S=String(e.key),E=getLeavingNodesForType(n,e),C=(e,t)=>{e&&callWithAsyncErrorHandling(e,r,9,t)},b=(e,t)=>{const n=t[1];C(e,t),isArray(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},T={mode:s,persisted:i,beforeEnter(t){let r=a;if(!n.isMounted){if(!o)return;r=m||a}t[leaveCbKey]&&t[leaveCbKey](!0);const s=E[S];s&&isSameVNodeType(e,s)&&s.el[leaveCbKey]&&s.el[leaveCbKey](),C(r,[t])},enter(e){let t=c,r=l,s=p;if(!n.isMounted){if(!o)return;t=g||c,r=y||l,s=v||p}let i=!1;const a=e[enterCbKey$1]=t=>{i||(i=!0,C(t?s:r,[e]),T.delayedLeave&&T.delayedLeave(),e[enterCbKey$1]=void 0)};t?b(t,[e,a]):a()},leave(t,r){const o=String(e.key);if(t[enterCbKey$1]&&t[enterCbKey$1](!0),n.isUnmounting)return r();C(d,[t]);let s=!1;const i=t[leaveCbKey]=n=>{s||(s=!0,r(),C(n?f:h,[t]),t[leaveCbKey]=void 0,E[o]===e&&delete E[o])};E[o]=e,u?b(u,[t,i]):i()},clone:e=>resolveTransitionHooks(e,t,n,r)};return T}function emptyPlaceholder(e){if(isKeepAlive(e))return(e=cloneVNode(e)).children=null,e}function getKeepAliveChild(e){if(!isKeepAlive(e))return e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&isFunction(n.default))return n.default()}}function setTransitionHooks(e,t){6&e.shapeFlag&&e.component?setTransitionHooks(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let r=[],o=0;for(let s=0;s<e.length;s++){let i=e[s];const a=null==n?i.key:String(n)+String(null!=i.key?i.key:s);i.type===Fragment?(128&i.patchFlag&&o++,r=r.concat(getTransitionRawChildren(i.children,t,a))):(t||i.type!==Comment)&&r.push(null!=a?cloneVNode(i,{key:a}):i)}if(o>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}
/*! #__NO_SIDE_EFFECTS__ */function defineComponent(e,t){return isFunction(e)?(()=>extend({name:e.name},t,{setup:e}))():e}const isAsyncWrapper=e=>!!e.type.__asyncLoader
/*! #__NO_SIDE_EFFECTS__ */;function defineAsyncComponent(e){isFunction(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:s,suspensible:i=!0,onError:a}=e;let c,l=null,p=0;const d=()=>{let e;return l||(e=l=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),a)return new Promise(((t,n)=>{a(e,(()=>t((p++,l=null,d()))),(()=>n(e)),p+1)}));throw e})).then((t=>{if(e!==l&&l)return l;if(t||warn$1("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),t&&!isObject(t)&&!isFunction(t))throw new Error(`Invalid async component load result: ${t}`);return c=t,t})))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return c},setup(){const e=currentInstance;if(c)return()=>createInnerComp(c,e);const t=t=>{l=null,handleError(t,e,13,!r)};if(i&&e.suspense)return d().then((t=>()=>createInnerComp(t,e))).catch((e=>(t(e),()=>r?createVNode(r,{error:e}):null)));const a=ref(!1),p=ref(),u=ref(!!o);return o&&setTimeout((()=>{u.value=!1}),o),null!=s&&setTimeout((()=>{if(!a.value&&!p.value){const e=new Error(`Async component timed out after ${s}ms.`);t(e),p.value=e}}),s),d().then((()=>{a.value=!0,e.parent&&isKeepAlive(e.parent.vnode)&&(e.parent.effect.dirty=!0,queueJob(e.parent.update))})).catch((e=>{t(e),p.value=e})),()=>a.value&&c?createInnerComp(c,e):p.value&&r?createVNode(r,{error:p.value}):n&&!u.value?createVNode(n):void 0}})}function createInnerComp(e,t){const{ref:n,props:r,children:o,ce:s}=t.vnode,i=createVNode(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const isKeepAlive=e=>e.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=getCurrentInstance(),r=n.ctx,o=new Map,s=new Set;let i=null;n.__v_cache=o;const a=n.suspense,{renderer:{p:c,m:l,um:p,o:{createElement:d}}}=r,u=d("div");function h(e){resetShapeFlag(e),p(e,n,a,!0)}function f(e){o.forEach(((t,n)=>{const r=getComponentName(t.type);!r||e&&e(r)||m(n)}))}function m(e){const t=o.get(e);i&&isSameVNodeType(t,i)?i&&resetShapeFlag(i):h(t),o.delete(e),s.delete(e)}r.activate=(e,t,n,r,o)=>{const s=e.component;l(e,t,n,0,a),c(s.vnode,e,t,n,s,a,r,e.slotScopeIds,o),queuePostRenderEffect((()=>{s.isDeactivated=!1,s.a&&invokeArrayFns(s.a);const t=e.props&&e.props.onVnodeMounted;t&&invokeVNodeHook(t,s.parent,e)}),a),devtoolsComponentAdded(s)},r.deactivate=e=>{const t=e.component;l(e,u,null,1,a),queuePostRenderEffect((()=>{t.da&&invokeArrayFns(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&invokeVNodeHook(n,t.parent,e),t.isDeactivated=!0}),a),devtoolsComponentAdded(t)},watch((()=>[e.include,e.exclude]),(([e,t])=>{e&&f((t=>matches(e,t))),t&&f((e=>!matches(t,e)))}),{flush:"post",deep:!0});let g=null;const y=()=>{null!=g&&o.set(g,getInnerChild(n.subTree))};return onMounted(y),onUpdated(y),onBeforeUnmount((()=>{o.forEach((e=>{const{subTree:t,suspense:r}=n,o=getInnerChild(t);if(e.type!==o.type||e.key!==o.key)h(e);else{resetShapeFlag(o);const e=o.component.da;e&&queuePostRenderEffect(e,r)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),r=n[0];if(n.length>1)return warn$1("KeepAlive should contain exactly one component child."),i=null,n;if(!(isVNode(r)&&(4&r.shapeFlag||128&r.shapeFlag)))return i=null,r;let a=getInnerChild(r);const c=a.type,l=getComponentName(isAsyncWrapper(a)?a.type.__asyncResolved||{}:c),{include:p,exclude:d,max:u}=e;if(p&&(!l||!matches(p,l))||d&&l&&matches(d,l))return i=a,r;const h=null==a.key?c:a.key,f=o.get(h);return a.el&&(a=cloneVNode(a),128&r.shapeFlag&&(r.ssContent=a)),g=h,f?(a.el=f.el,a.component=f.component,a.transition&&setTransitionHooks(a,a.transition),a.shapeFlag|=512,s.delete(h),s.add(h)):(s.add(h),u&&s.size>parseInt(u,10)&&m(s.values().next().value)),a.shapeFlag|=256,i=a,isSuspense(r.type)?r:a}}},KeepAlive=KeepAliveImpl;function matches(e,t){return isArray(e)?e.some((e=>matches(e,t))):isString(e)?e.split(",").includes(t):"[object RegExp]"===toTypeString(e)&&e.test(t)}function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,n=currentInstance){const r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(injectHook(t,r,n),n){let e=n.parent;for(;e&&e.parent;)isKeepAlive(e.parent.vnode)&&injectToKeepAliveRoot(r,t,n,e),e=e.parent}}function injectToKeepAliveRoot(e,t,n,r){const o=injectHook(t,e,r,!0);onUnmounted((()=>{remove(r[t],o)}),n)}function resetShapeFlag(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function getInnerChild(e){return 128&e.shapeFlag?e.ssContent:e}function injectHook(e,t,n=currentInstance,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...r)=>{if(n.isUnmounted)return;pauseTracking();const o=setCurrentInstance(n),s=callWithAsyncErrorHandling(t,n,e,r);return o(),resetTracking(),s});return r?o.unshift(s):o.push(s),s}warn$1(`${toHandlerKey(ErrorTypeStrings$1[e].replace(/ hook$/,""))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}const createHook=e=>(t,n=currentInstance)=>(!isInSSRComponentSetup||"sp"===e)&&injectHook(e,((...e)=>t(...e)),n),onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}function renderList(e,t,n,r){let o;const s=n&&n[r];if(isArray(e)||isString(e)){o=new Array(e.length);for(let n=0,r=e.length;n<r;n++)o[n]=t(e[n],n,void 0,s&&s[n])}else if("number"==typeof e){Number.isInteger(e)||warn$1(`The v-for range expect an integer value but got ${e}.`),o=new Array(e);for(let n=0;n<e;n++)o[n]=t(n+1,n,void 0,s&&s[n])}else if(isObject(e))if(e[Symbol.iterator])o=Array.from(e,((e,n)=>t(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);o=new Array(n.length);for(let r=0,i=n.length;r<i;r++){const i=n[r];o[r]=t(e[i],i,r,s&&s[r])}}else o=[];return n&&(n[r]=o),o}function createSlots(e,t){for(let n=0;n<t.length;n++){const r=t[n];if(isArray(r))for(let t=0;t<r.length;t++)e[r[t].name]=r[t].fn;else r&&(e[r.name]=r.key?(...e)=>{const t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function renderSlot(e,t,n={},r,o){if(currentRenderingInstance.isCE||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&&currentRenderingInstance.parent.isCE)return"default"!==t&&(n.name=t),createVNode("slot",n,r&&r());let s=e[t];s&&s.length>1&&(warn$1("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),s=()=>[]),s&&s._c&&(s._d=!1),openBlock();const i=s&&ensureValidVNode(s(n)),a=createBlock(Fragment,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&1===e._?64:-2);return!o&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}function ensureValidVNode(e){return e.some((e=>!isVNode(e)||e.type!==Comment&&!(e.type===Fragment&&!ensureValidVNode(e.children))))?e:null}function toHandlers(e,t){const n={};if(!isObject(e))return warn$1("v-on with no argument expects an object value."),n;for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:toHandlerKey(r)]=e[r];return n}const getPublicInstance=e=>e?isStatefulComponent(e)?getExposeProxy(e)||e.proxy:getPublicInstance(e.parent):null,publicPropertiesMap=extend(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>shallowReadonly(e.props),$attrs:e=>shallowReadonly(e.attrs),$slots:e=>shallowReadonly(e.slots),$refs:e=>shallowReadonly(e.refs),$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),isReservedPrefix=e=>"_"===e||"$"===e,hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn(e,t),PublicInstanceProxyHandlers={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:a,appContext:c}=e;if("__isVue"===t)return!0;let l;if("$"!==t[0]){const a=i[t];if(void 0!==a)switch(a){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(hasSetupBinding(r,t))return i[t]=1,r[t];if(o!==EMPTY_OBJ&&hasOwn(o,t))return i[t]=2,o[t];if((l=e.propsOptions[0])&&hasOwn(l,t))return i[t]=3,s[t];if(n!==EMPTY_OBJ&&hasOwn(n,t))return i[t]=4,n[t];shouldCacheAccess&&(i[t]=0)}}const p=publicPropertiesMap[t];let d,u;return p?("$attrs"===t?(track(e.attrs,"get",""),markAttrsAccessed()):"$slots"===t&&track(e,"get",t),p(e)):(d=a.__cssModules)&&(d=d[t])?d:n!==EMPTY_OBJ&&hasOwn(n,t)?(i[t]=4,n[t]):(u=c.config.globalProperties,hasOwn(u,t)?u[t]:void(!currentRenderingInstance||isString(t)&&0===t.indexOf("__v")||(o!==EMPTY_OBJ&&isReservedPrefix(t[0])&&hasOwn(o,t)?warn$1(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===currentRenderingInstance&&warn$1(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))))},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return hasSetupBinding(o,t)?(o[t]=n,!0):o.__isScriptSetup&&hasOwn(o,t)?(warn$1(`Cannot mutate <script setup> binding "${t}" from Options API.`),!1):r!==EMPTY_OBJ&&hasOwn(r,t)?(r[t]=n,!0):hasOwn(e.props,t)?(warn$1(`Attempting to mutate prop "${t}". Props are readonly.`),!1):"$"===t[0]&&t.slice(1)in e?(warn$1(`Attempting to mutate public property "${t}". Properties starting with $ are reserved and readonly.`),!1):(t in e.appContext.config.globalProperties?Object.defineProperty(s,t,{enumerable:!0,configurable:!0,value:n}):s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let a;return!!n[i]||e!==EMPTY_OBJ&&hasOwn(e,i)||hasSetupBinding(t,i)||(a=s[0])&&hasOwn(a,i)||hasOwn(r,i)||hasOwn(publicPropertiesMap,i)||hasOwn(o.config.globalProperties,i)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:hasOwn(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)},ownKeys:e=>(warn$1("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead."),Reflect.ownKeys(e))},RuntimeCompiledPublicInstanceProxyHandlers=extend({},PublicInstanceProxyHandlers,{get(e,t){if(t!==Symbol.unscopables)return PublicInstanceProxyHandlers.get(e,t,e)},has(e,t){const n="_"!==t[0]&&!isGloballyAllowed(t);return!n&&PublicInstanceProxyHandlers.has(e,t)&&warn$1(`Property ${JSON.stringify(t)} should not start with _ which is a reserved prefix for Vue internals.`),n}});function createDevRenderContext(e){const t={};return Object.defineProperty(t,"_",{configurable:!0,enumerable:!1,get:()=>e}),Object.keys(publicPropertiesMap).forEach((n=>{Object.defineProperty(t,n,{configurable:!0,enumerable:!1,get:()=>publicPropertiesMap[n](e),set:NOOP})})),t}function exposePropsOnRenderContext(e){const{ctx:t,propsOptions:[n]}=e;n&&Object.keys(n).forEach((n=>{Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>e.props[n],set:NOOP})}))}function exposeSetupStateOnRenderContext(e){const{ctx:t,setupState:n}=e;Object.keys(toRaw(n)).forEach((e=>{if(!n.__isScriptSetup){if(isReservedPrefix(e[0]))return void warn$1(`setup() return property ${JSON.stringify(e)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:()=>n[e],set:NOOP})}}))}const warnRuntimeUsage=e=>warn$1(`${e}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`);function defineProps(){return warnRuntimeUsage("defineProps"),null}function defineEmits(){return warnRuntimeUsage("defineEmits"),null}function defineExpose(e){warnRuntimeUsage("defineExpose")}function defineOptions(e){warnRuntimeUsage("defineOptions")}function defineSlots(){return warnRuntimeUsage("defineSlots"),null}function defineModel(){warnRuntimeUsage("defineModel")}function withDefaults(e,t){return warnRuntimeUsage("withDefaults"),null}function useSlots(){return getContext().slots}function useAttrs(){return getContext().attrs}function getContext(){const e=getCurrentInstance();return e||warn$1("useContext() called without active instance."),e.setupContext||(e.setupContext=createSetupContext(e))}function normalizePropsOrEmits(e){return isArray(e)?e.reduce(((e,t)=>(e[t]=null,e)),{}):e}function mergeDefaults(e,t){const n=normalizePropsOrEmits(e);for(const e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?isArray(r)||isFunction(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r?r=n[e]={default:t[e]}:warn$1(`props default key "${e}" has no corresponding declaration.`),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n}function mergeModels(e,t){return e&&t?isArray(e)&&isArray(t)?e.concat(t):extend({},normalizePropsOrEmits(e),normalizePropsOrEmits(t)):e||t}function createPropsRestProxy(e,t){const n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function withAsyncContext(e){const t=getCurrentInstance();t||warn$1("withAsyncContext called without active current instance. This is likely a bug.");let n=e();return unsetCurrentInstance(),isPromise(n)&&(n=n.catch((e=>{throw setCurrentInstance(t),e}))),[n,()=>setCurrentInstance(t)]}function createDuplicateChecker(){const e=Object.create(null);return(t,n)=>{e[n]?warn$1(`${t} property "${n}" is already defined in ${e[n]}.`):e[n]=t}}let shouldCacheAccess=!0;function applyOptions(e){const t=resolveMergedOptions(e),n=e.proxy,r=e.ctx;shouldCacheAccess=!1,t.beforeCreate&&callHook$1(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:a,provide:c,inject:l,created:p,beforeMount:d,mounted:u,beforeUpdate:h,updated:f,activated:m,deactivated:g,beforeDestroy:y,beforeUnmount:v,destroyed:S,unmounted:E,render:C,renderTracked:b,renderTriggered:T,errorCaptured:x,serverPrefetch:_,expose:w,inheritAttrs:R,components:O,directives:k,filters:A}=t,N=createDuplicateChecker();{const[t]=e.propsOptions;if(t)for(const e in t)N("Props",e)}if(l&&resolveInjections(l,r,N),i)for(const e in i){const t=i[e];isFunction(t)?(Object.defineProperty(r,e,{value:t.bind(n),configurable:!0,enumerable:!0,writable:!0}),N("Methods",e)):warn$1(`Method "${e}" has type "${typeof t}" in the component definition. Did you reference the function correctly?`)}if(o){isFunction(o)||warn$1("The data option must be a function. Plain object usage is no longer supported.");const t=o.call(n,n);if(isPromise(t)&&warn$1("data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>."),isObject(t)){e.data=reactive(t);for(const e in t)N("Data",e),isReservedPrefix(e[0])||Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:()=>t[e],set:NOOP})}else warn$1("data() should return an object.")}if(shouldCacheAccess=!0,s)for(const e in s){const t=s[e],o=isFunction(t)?t.bind(n,n):isFunction(t.get)?t.get.bind(n,n):NOOP;o===NOOP&&warn$1(`Computed property "${e}" has no getter.`);const i=!isFunction(t)&&isFunction(t.set)?t.set.bind(n):()=>{warn$1(`Write operation failed: computed property "${e}" is readonly.`)},a=computed({get:o,set:i});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e}),N("Computed",e)}if(a)for(const e in a)createWatcher(a[e],r,n,e);if(c){const e=isFunction(c)?c.call(n):c;Reflect.ownKeys(e).forEach((t=>{provide(t,e[t])}))}function I(e,t){isArray(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(p&&callHook$1(p,e,"c"),I(onBeforeMount,d),I(onMounted,u),I(onBeforeUpdate,h),I(onUpdated,f),I(onActivated,m),I(onDeactivated,g),I(onErrorCaptured,x),I(onRenderTracked,b),I(onRenderTriggered,T),I(onBeforeUnmount,v),I(onUnmounted,E),I(onServerPrefetch,_),isArray(w))if(w.length){const t=e.exposed||(e.exposed={});w.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});C&&e.render===NOOP&&(e.render=C),null!=R&&(e.inheritAttrs=R),O&&(e.components=O),k&&(e.directives=k)}function resolveInjections(e,t,n=NOOP){isArray(e)&&(e=normalizeInject(e));for(const r in e){const o=e[r];let s;s=isObject(o)?"default"in o?inject(o.from||r,o.default,!0):inject(o.from||r):inject(o),isRef(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[r]=s,n("Inject",r)}}function callHook$1(e,t,n){callWithAsyncErrorHandling(isArray(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function createWatcher(e,t,n,r){const o=r.includes(".")?createPathGetter(n,r):()=>n[r];if(isString(e)){const n=t[e];isFunction(n)?watch(o,n):warn$1(`Invalid watch handler specified by key "${e}"`,n)}else if(isFunction(e))watch(o,e.bind(n));else if(isObject(e))if(isArray(e))e.forEach((e=>createWatcher(e,t,n,r)));else{const r=isFunction(e.handler)?e.handler.bind(n):t[e.handler];isFunction(r)?watch(o,r,e):warn$1(`Invalid watch handler specified by key "${e.handler}"`,r)}else warn$1(`Invalid watch option: "${r}"`,e)}function resolveMergedOptions(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,a=s.get(t);let c;return a?c=a:o.length||n||r?(c={},o.length&&o.forEach((e=>mergeOptions(c,e,i,!0))),mergeOptions(c,t,i)):c=t,isObject(t)&&s.set(t,c),c}function mergeOptions(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&mergeOptions(e,s,n,!0),o&&o.forEach((t=>mergeOptions(e,t,n,!0)));for(const o in t)if(r&&"expose"===o)warn$1('"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.');else{const r=internalOptionMergeStrats[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}const internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray$1,created:mergeAsArray$1,beforeMount:mergeAsArray$1,mounted:mergeAsArray$1,beforeUpdate:mergeAsArray$1,updated:mergeAsArray$1,beforeDestroy:mergeAsArray$1,beforeUnmount:mergeAsArray$1,destroyed:mergeAsArray$1,unmounted:mergeAsArray$1,activated:mergeAsArray$1,deactivated:mergeAsArray$1,errorCaptured:mergeAsArray$1,serverPrefetch:mergeAsArray$1,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(e,t){return t?e?function(){return extend(isFunction(e)?e.call(this,this):e,isFunction(t)?t.call(this,this):t)}:t:e}function mergeInject(e,t){return mergeObjectOptions(normalizeInject(e),normalizeInject(t))}function normalizeInject(e){if(isArray(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function mergeAsArray$1(e,t){return e?[...new Set([].concat(e,t))]:t}function mergeObjectOptions(e,t){return e?extend(Object.create(null),e,t):t}function mergeEmitsOrPropsOptions(e,t){return e?isArray(e)&&isArray(t)?[...new Set([...e,...t])]:extend(Object.create(null),normalizePropsOrEmits(e),normalizePropsOrEmits(null!=t?t:{})):t}function mergeWatchOptions(e,t){if(!e)return t;if(!t)return e;const n=extend(Object.create(null),e);for(const r in t)n[r]=mergeAsArray$1(e[r],t[r]);return n}function createAppContext(){return{app:null,config:{isNativeTag:NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let uid$1=0;function createAppAPI(e,t){return function(n,r=null){isFunction(n)||(n=extend({},n)),null==r||isObject(r)||(warn$1("root props passed to app.mount() must be an object."),r=null);const o=createAppContext(),s=new WeakSet;let i=!1;const a=o.app={_uid:uid$1++,_component:n,_props:r,_container:null,_context:o,_instance:null,version:version,get config(){return o.config},set config(e){warn$1("app.config cannot be replaced. Modify individual options instead.")},use:(e,...t)=>(s.has(e)?warn$1("Plugin has already been applied to target app."):e&&isFunction(e.install)?(s.add(e),e.install(a,...t)):isFunction(e)?(s.add(e),e(a,...t)):warn$1('A plugin must either be a function or an object with an "install" function.'),a),mixin:e=>(o.mixins.includes(e)?warn$1("Mixin has already been applied to target app"+(e.name?`: ${e.name}`:"")):o.mixins.push(e),a),component:(e,t)=>(validateComponentName(e,o.config),t?(o.components[e]&&warn$1(`Component "${e}" has already been registered in target app.`),o.components[e]=t,a):o.components[e]),directive:(e,t)=>(validateDirectiveName(e),t?(o.directives[e]&&warn$1(`Directive "${e}" has already been registered in target app.`),o.directives[e]=t,a):o.directives[e]),mount(s,c,l){if(!i){s.__vue_app__&&warn$1("There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling `app.unmount()` first.");const p=createVNode(n,r);return p.appContext=o,!0===l?l="svg":!1===l&&(l=void 0),o.reload=()=>{e(cloneVNode(p),s,l)},c&&t?t(p,s):e(p,s,l),i=!0,a._container=s,s.__vue_app__=a,a._instance=p.component,devtoolsInitApp(a,version),getExposeProxy(p.component)||p.component.proxy}warn$1("App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. `const createMyApp = () => createApp(App)`")},unmount(){i?(e(null,a._container),a._instance=null,devtoolsUnmountApp(a),delete a._container.__vue_app__):warn$1("Cannot unmount an app that is not mounted.")},provide:(e,t)=>(e in o.provides&&warn$1(`App already provides property with key "${String(e)}". It will be overwritten with the new value.`),o.provides[e]=t,a),runWithContext(e){const t=currentApp;currentApp=a;try{return e()}finally{currentApp=t}}};return a}}let currentApp=null;function provide(e,t){if(currentInstance){let n=currentInstance.provides;const r=currentInstance.parent&&currentInstance.parent.provides;r===n&&(n=currentInstance.provides=Object.create(r)),n[e]=t}else warn$1("provide() can only be used inside setup().")}function inject(e,t,n=!1){const r=currentInstance||currentRenderingInstance;if(r||currentApp){const o=r?null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:currentApp._context.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&isFunction(t)?t.call(r&&r.proxy):t;warn$1(`injection "${String(e)}" not found.`)}else warn$1("inject() can only be used inside setup() or functional components.")}function hasInjectionContext(){return!!(currentInstance||currentRenderingInstance||currentApp)}const internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=e=>Object.getPrototypeOf(e)===internalObjectProto;function initProps(e,t,n,r=!1){const o={},s=createInternalObject();e.propsDefaults=Object.create(null),setFullProps(e,t,o,s);for(const t in e.propsOptions[0])t in o||(o[t]=void 0);validateProps(t||{},o,e),n?e.props=r?o:shallowReactive(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function isInHmrContext(e){for(;e;){if(e.type.__hmrId)return!0;e=e.parent}}function updateProps(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:i}}=e,a=toRaw(o),[c]=e.propsOptions;let l=!1;if(isInHmrContext(e)||!(r||i>0)||16&i){let r;setFullProps(e,t,o,s)&&(l=!0);for(const s in a)t&&(hasOwn(t,s)||(r=hyphenate(s))!==s&&hasOwn(t,r))||(c?!n||void 0===n[s]&&void 0===n[r]||(o[s]=resolvePropValue(c,a,s,void 0,e,!0)):delete o[s]);if(s!==a)for(const e in s)t&&hasOwn(t,e)||(delete s[e],l=!0)}else if(8&i){const n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let i=n[r];if(isEmitListener(e.emitsOptions,i))continue;const p=t[i];if(c)if(hasOwn(s,i))p!==s[i]&&(s[i]=p,l=!0);else{const t=camelize(i);o[t]=resolvePropValue(c,a,t,p,e,!1)}else p!==s[i]&&(s[i]=p,l=!0)}}l&&trigger(e.attrs,"set",""),validateProps(t||{},o,e)}function setFullProps(e,t,n,r){const[o,s]=e.propsOptions;let i,a=!1;if(t)for(let c in t){if(isReservedProp(c))continue;const l=t[c];let p;o&&hasOwn(o,p=camelize(c))?s&&s.includes(p)?(i||(i={}))[p]=l:n[p]=l:isEmitListener(e.emitsOptions,c)||c in r&&l===r[c]||(r[c]=l,a=!0)}if(s){const t=toRaw(n),r=i||EMPTY_OBJ;for(let i=0;i<s.length;i++){const a=s[i];n[a]=resolvePropValue(o,t,a,r[a],e,!hasOwn(r,a))}}return a}function resolvePropValue(e,t,n,r,o,s){const i=e[n];if(null!=i){const e=hasOwn(i,"default");if(e&&void 0===r){const e=i.default;if(i.type!==Function&&!i.skipFactory&&isFunction(e)){const{propsDefaults:s}=o;if(n in s)r=s[n];else{const i=setCurrentInstance(o);r=s[n]=e.call(null,t),i()}}else r=e}i[0]&&(s&&!e?r=!1:!i[1]||""!==r&&r!==hyphenate(n)||(r=!0))}return r}function normalizePropsOptions(e,t,n=!1){const r=t.propsCache,o=r.get(e);if(o)return o;const s=e.props,i={},a=[];let c=!1;if(!isFunction(e)){const r=e=>{c=!0;const[n,r]=normalizePropsOptions(e,t,!0);extend(i,n),r&&a.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!c)return isObject(e)&&r.set(e,EMPTY_ARR),EMPTY_ARR;if(isArray(s))for(let e=0;e<s.length;e++){isString(s[e])||warn$1("props must be strings when using array syntax.",s[e]);const t=camelize(s[e]);validatePropName(t)&&(i[t]=EMPTY_OBJ)}else if(s){isObject(s)||warn$1("invalid props options",s);for(const e in s){const t=camelize(e);if(validatePropName(t)){const n=s[e],r=i[t]=isArray(n)||isFunction(n)?{type:n}:extend({},n);if(r){const e=getTypeIndex(Boolean,r.type),n=getTypeIndex(String,r.type);r[0]=e>-1,r[1]=n<0||e<n,(e>-1||hasOwn(r,"default"))&&a.push(t)}}}}const l=[i,a];return isObject(e)&&r.set(e,l),l}function validatePropName(e){return"$"!==e[0]&&!isReservedProp(e)||(warn$1(`Invalid prop name: "${e}" is a reserved property.`),!1)}function getType(e){if(null===e)return"null";if("function"==typeof e)return e.name||"";if("object"==typeof e){return e.constructor&&e.constructor.name||""}return""}function isSameType(e,t){return getType(e)===getType(t)}function getTypeIndex(e,t){return isArray(t)?t.findIndex((t=>isSameType(t,e))):isFunction(t)&&isSameType(t,e)?0:-1}function validateProps(e,t,n){const r=toRaw(t),o=n.propsOptions[0];for(const t in o){let n=o[t];null!=n&&validateProp(t,r[t],n,shallowReadonly(r),!hasOwn(e,t)&&!hasOwn(e,hyphenate(t)))}}function validateProp(e,t,n,r,o){const{type:s,required:i,validator:a,skipCheck:c}=n;if(i&&o)warn$1('Missing required prop: "'+e+'"');else if(null!=t||i){if(null!=s&&!0!==s&&!c){let n=!1;const r=isArray(s)?s:[s],o=[];for(let e=0;e<r.length&&!n;e++){const{valid:s,expectedType:i}=assertType(t,r[e]);o.push(i||""),n=s}if(!n)return void warn$1(getInvalidTypeMessage(e,t,o))}a&&!a(t,r)&&warn$1('Invalid prop: custom validator check failed for prop "'+e+'".')}}const isSimpleType=makeMap("String,Number,Boolean,Function,Symbol,BigInt");function assertType(e,t){let n;const r=getType(t);if(isSimpleType(r)){const o=typeof e;n=o===r.toLowerCase(),n||"object"!==o||(n=e instanceof t)}else n="Object"===r?isObject(e):"Array"===r?isArray(e):"null"===r?null===e:e instanceof t;return{valid:n,expectedType:r}}function getInvalidTypeMessage(e,t,n){if(0===n.length)return`Prop type [] for prop "${e}" won't match anything. Did you mean to use type Array instead?`;let r=`Invalid prop: type check failed for prop "${e}". Expected ${n.map(capitalize).join(" | ")}`;const o=n[0],s=toRawType(t),i=styleValue(t,o),a=styleValue(t,s);return 1===n.length&&isExplicable(o)&&!isBoolean(o,s)&&(r+=` with value ${i}`),r+=`, got ${s} `,isExplicable(s)&&(r+=`with value ${a}.`),r}function styleValue(e,t){return"String"===t?`"${e}"`:"Number"===t?`${Number(e)}`:`${e}`}function isExplicable(e){return["string","number","boolean"].some((t=>e.toLowerCase()===t))}function isBoolean(...e){return e.some((e=>"boolean"===e.toLowerCase()))}const isInternalKey=e=>"_"===e[0]||"$stable"===e,normalizeSlotValue=e=>isArray(e)?e.map(normalizeVNode):[normalizeVNode(e)],normalizeSlot=(e,t,n)=>{if(t._n)return t;const r=withCtx(((...r)=>(!currentInstance||n&&n.root!==currentInstance.root||warn$1(`Slot "${e}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`),normalizeSlotValue(t(...r)))),n);return r._c=!1,r},normalizeObjectSlots=(e,t,n)=>{const r=e._ctx;for(const n in e){if(isInternalKey(n))continue;const o=e[n];if(isFunction(o))t[n]=normalizeSlot(n,o,r);else if(null!=o){warn$1(`Non-function value encountered for slot "${n}". Prefer function slots for better performance.`);const e=normalizeSlotValue(o);t[n]=()=>e}}},normalizeVNodeSlots=(e,t)=>{isKeepAlive(e.vnode)||warn$1("Non-function value encountered for default slot. Prefer function slots for better performance.");const n=normalizeSlotValue(t);e.slots.default=()=>n},initSlots=(e,t)=>{const n=e.slots=createInternalObject();if(32&e.vnode.shapeFlag){const e=t._;e?(extend(n,t),def(n,"_",e,!0)):normalizeObjectSlots(t,n)}else t&&normalizeVNodeSlots(e,t)},updateSlots=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=EMPTY_OBJ;if(32&r.shapeFlag){const r=t._;r?isHmrUpdating?(extend(o,t),trigger(e,"set","$slots")):n&&1===r?s=!1:(extend(o,t),n||1!==r||delete o._):(s=!t.$stable,normalizeObjectSlots(t,o)),i=t}else t&&(normalizeVNodeSlots(e,t),i={default:1});if(s)for(const e in o)isInternalKey(e)||null!=i[e]||delete o[e]};function setRef(e,t,n,r,o=!1){if(isArray(e))return void e.forEach(((e,s)=>setRef(e,t&&(isArray(t)?t[s]:t),n,r,o)));if(isAsyncWrapper(r)&&!o)return;const s=4&r.shapeFlag?getExposeProxy(r.component)||r.component.proxy:r.el,i=o?null:s,{i:a,r:c}=e;if(!a)return void warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");const l=t&&t.r,p=a.refs===EMPTY_OBJ?a.refs={}:a.refs,d=a.setupState;if(null!=l&&l!==c&&(isString(l)?(p[l]=null,hasOwn(d,l)&&(d[l]=null)):isRef(l)&&(l.value=null)),isFunction(c))callWithErrorHandling(c,a,12,[i,p]);else{const t=isString(c),r=isRef(c);if(t||r){const a=()=>{if(e.f){const n=t?hasOwn(d,c)?d[c]:p[c]:c.value;o?isArray(n)&&remove(n,s):isArray(n)?n.includes(s)||n.push(s):t?(p[c]=[s],hasOwn(d,c)&&(d[c]=p[c])):(c.value=[s],e.k&&(p[e.k]=c.value))}else t?(p[c]=i,hasOwn(d,c)&&(d[c]=i)):r?(c.value=i,e.k&&(p[e.k]=i)):warn$1("Invalid template ref type:",c,`(${typeof c})`)};i?(a.id=-1,queuePostRenderEffect(a,n)):a()}else warn$1("Invalid template ref type:",c,`(${typeof c})`)}}let hasMismatch=!1;const isSVGContainer=e=>e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName,isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>isSVGContainer(e)?"svg":isMathMLContainer(e)?"mathml":void 0,isComment=e=>8===e.nodeType;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:s,parentNode:i,remove:a,insert:c,createComment:l}}=e,p=(n,r,a,l,v,S=!1)=>{S=S||!!r.dynamicChildren;const E=isComment(n)&&"["===n.data,C=()=>f(n,r,a,l,v,E),{type:b,ref:T,shapeFlag:x,patchFlag:_}=r;let w=n.nodeType;r.el=n,"__vnode"in n||Object.defineProperty(n,"__vnode",{value:r,enumerable:!1}),"__vueParentComponent"in n||Object.defineProperty(n,"__vueParentComponent",{value:a,enumerable:!1}),-2===_&&(S=!1,r.dynamicChildren=null);let R=null;switch(b){case Text:3!==w?""===r.children?(c(r.el=o(""),i(n),n),R=n):R=C():(n.data!==r.children&&(hasMismatch=!0,warn$1("Hydration text mismatch in",n.parentNode,`\n - rendered on server: ${JSON.stringify(n.data)}\n - expected on client: ${JSON.stringify(r.children)}`),n.data=r.children),R=s(n));break;case Comment:y(n)?(R=s(n),g(r.el=n.content.firstChild,n,a)):R=8!==w||E?C():s(n);break;case Static:if(E&&(w=(n=s(n)).nodeType),1===w||3===w){R=n;const e=!r.children.length;for(let t=0;t<r.staticCount;t++)e&&(r.children+=1===R.nodeType?R.outerHTML:R.data),t===r.staticCount-1&&(r.anchor=R),R=s(R);return E?s(R):R}C();break;case Fragment:R=E?h(n,r,a,l,v,S):C();break;default:if(1&x)R=1===w&&r.type.toLowerCase()===n.tagName.toLowerCase()||y(n)?d(n,r,a,l,v,S):C();else if(6&x){r.slotScopeIds=v;const e=i(n);if(R=E?m(n):isComment(n)&&"teleport start"===n.data?m(n,n.data,"teleport end"):s(n),t(r,e,null,a,l,getContainerType(e),S),isAsyncWrapper(r)){let t;E?(t=createVNode(Fragment),t.anchor=R?R.previousSibling:e.lastChild):t=3===n.nodeType?createTextVNode(""):createVNode("div"),t.el=n,r.component.subTree=t}}else 64&x?R=8!==w?C():r.type.hydrate(n,r,a,l,v,S,e,u):128&x?R=r.type.hydrate(n,r,a,l,getContainerType(i(n)),v,S,e,p):warn$1("Invalid HostVNode type:",b,`(${typeof b})`)}return null!=T&&setRef(T,null,l,r),R},d=(e,t,n,o,s,i)=>{i=i||!!t.dynamicChildren;const{type:c,props:l,patchFlag:p,shapeFlag:d,dirs:h,transition:f}=t,m="input"===c||"option"===c;{h&&invokeDirectiveHook(t,null,n,"created");let c,p=!1;if(y(e)){p=needTransition(o,f)&&n&&n.vnode.props&&n.vnode.props.appear;const r=e.content.firstChild;p&&f.beforeEnter(r),g(r,e,n),t.el=e=r}if(16&d&&(!l||!l.innerHTML&&!l.textContent)){let r=u(e.firstChild,t,e,n,o,s,i),c=!1;for(;r;){hasMismatch=!0,c||(warn$1("Hydration children mismatch on",e,"\nServer rendered element contains more child nodes than client vdom."),c=!0);const t=r;r=r.nextSibling,a(t)}}else 8&d&&e.textContent!==t.children&&(hasMismatch=!0,warn$1("Hydration text content mismatch on",e,`\n - rendered on server: ${e.textContent}\n - expected on client: ${t.children}`),e.textContent=t.children);if(l)for(const o in l)propHasMismatch(e,o,l[o],t,n)&&(hasMismatch=!0),(m&&(o.endsWith("value")||"indeterminate"===o)||isOn(o)&&!isReservedProp(o)||"."===o[0])&&r(e,o,null,l[o],void 0,void 0,n);(c=l&&l.onVnodeBeforeMount)&&invokeVNodeHook(c,n,t),h&&invokeDirectiveHook(t,null,n,"beforeMount"),((c=l&&l.onVnodeMounted)||h||p)&&queueEffectWithSuspense((()=>{c&&invokeVNodeHook(c,n,t),p&&f.enter(e),h&&invokeDirectiveHook(t,null,n,"mounted")}),o)}return e.nextSibling},u=(e,t,r,o,s,i,a)=>{a=a||!!t.dynamicChildren;const c=t.children,l=c.length;let d=!1;for(let t=0;t<l;t++){const l=a?c[t]:c[t]=normalizeVNode(c[t]);if(e)e=p(e,l,o,s,i,a);else{if(l.type===Text&&!l.children)continue;hasMismatch=!0,d||(warn$1("Hydration children mismatch on",r,"\nServer rendered element contains fewer child nodes than client vdom."),d=!0),n(null,l,r,null,o,s,getContainerType(r),i)}}return e},h=(e,t,n,r,o,a)=>{const{slotScopeIds:p}=t;p&&(o=o?o.concat(p):p);const d=i(e),h=u(s(e),t,d,n,r,o,a);return h&&isComment(h)&&"]"===h.data?s(t.anchor=h):(hasMismatch=!0,c(t.anchor=l("]"),d,h),h)},f=(e,t,r,o,c,l)=>{if(hasMismatch=!0,warn$1("Hydration node mismatch:\n- rendered on server:",e,3===e.nodeType?"(text)":isComment(e)&&"["===e.data?"(start of fragment)":"","\n- expected on client:",t.type),t.el=null,l){const t=m(e);for(;;){const n=s(e);if(!n||n===t)break;a(n)}}const p=s(e),d=i(e);return a(e),n(null,t,d,p,r,o,getContainerType(d),c),p},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=s(e))&&isComment(e)&&(e.data===t&&r++,e.data===n)){if(0===r)return s(e);r--}return e},g=(e,t,n)=>{const r=t.parentNode;r&&r.replaceChild(e,t);let o=n;for(;o;)o.vnode.el===t&&(o.vnode.el=o.subTree.el=e),o=o.parent},y=e=>1===e.nodeType&&"template"===e.tagName.toLowerCase();return[(e,t)=>{if(!t.hasChildNodes())return warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,e,t),flushPostFlushCbs(),void(t._vnode=e);hasMismatch=!1,p(t.firstChild,e,null,null,null),flushPostFlushCbs(),t._vnode=e},p]}function propHasMismatch(e,t,n,r,o){var s;let i,a,c,l;if("class"===t)c=e.getAttribute("class"),l=normalizeClass(n),isSetEqual(toClassSet(c||""),toClassSet(l))||(i=a="class");else if("style"===t){c=e.getAttribute("style")||"",l=isString(n)?n:stringifyStyle(normalizeStyle(n));const t=toStyleMap(c),p=toStyleMap(l);if(r.dirs)for(const{dir:e,value:t}of r.dirs)"show"!==e.name||t||p.set("display","none");const d=null==o?void 0:o.subTree;if(r===d||(null==d?void 0:d.type)===Fragment&&d.children.includes(r)){const e=null==(s=null==o?void 0:o.getCssVars)?void 0:s.call(o);for(const t in e)p.set(`--${t}`,String(e[t]))}isMapEqual(t,p)||(i=a="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(c=e.hasAttribute(t),l=includeBooleanAttr(n)):null==n?(c=e.hasAttribute(t),l=!1):(c=e.hasAttribute(t)?e.getAttribute(t):"value"===t&&"TEXTAREA"===e.tagName&&e.value,l=!!isRenderableAttrValue(n)&&String(n)),c!==l&&(i="attribute",a=t));if(i){const t=e=>!1===e?"(not rendered)":`${a}="${e}"`;return warn$1(`Hydration ${i} mismatch on`,e,`\n - rendered on server: ${t(c)}\n - expected on client: ${t(l)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`),!0}return!1}function toClassSet(e){return new Set(e.trim().split(/\s+/))}function isSetEqual(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function toStyleMap(e){const t=new Map;for(const n of e.split(";")){let[e,r]=n.split(":");e=null==e?void 0:e.trim(),r=null==r?void 0:r.trim(),e&&r&&t.set(e,r)}return t}function isMapEqual(e,t){if(e.size!==t.size)return!1;for(const[n,r]of e)if(r!==t.get(n))return!1;return!0}let supported,perf;function startMeasure(e,t){e.appContext.config.performance&&isSupported()&&perf.mark(`vue-${t}-${e.uid}`),devtoolsPerfStart(e,t,isSupported()?perf.now():Date.now())}function endMeasure(e,t){if(e.appContext.config.performance&&isSupported()){const n=`vue-${t}-${e.uid}`,r=n+":end";perf.mark(r),perf.measure(`<${formatComponentName(e,e.type)}> ${t}`,n,r),perf.clearMarks(n),perf.clearMarks(r)}devtoolsPerfEnd(e,t,isSupported()?perf.now():Date.now())}function isSupported(){return void 0!==supported||("undefined"!=typeof window&&window.performance?(supported=!0,perf=window.performance):supported=!1),supported}const queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(e){return baseCreateRenderer(e)}function createHydrationRenderer(e){return baseCreateRenderer(e,createHydrationFunctions)}function baseCreateRenderer(e,t){const n=getGlobalThis();n.__VUE__=!0,setDevtoolsHook$1(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:r,remove:o,patchProp:s,createElement:i,createText:a,createComment:c,setText:l,setElementText:p,parentNode:d,nextSibling:u,setScopeId:h=NOOP,insertStaticContent:f}=e,m=(e,t,n,r=null,o=null,s=null,i,a=null,c=!isHmrUpdating&&!!t.dynamicChildren)=>{if(e===t)return;e&&!isSameVNodeType(e,t)&&(r=U(e),D(e,o,s,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:l,ref:p,shapeFlag:d}=t;switch(l){case Text:g(e,t,n,r);break;case Comment:y(e,t,n,r);break;case Static:null==e?v(t,n,r,i):S(e,t,n,i);break;case Fragment:O(e,t,n,r,o,s,i,a,c);break;default:1&d?C(e,t,n,r,o,s,i,a,c):6&d?k(e,t,n,r,o,s,i,a,c):64&d||128&d?l.process(e,t,n,r,o,s,i,a,c,W):warn$1("Invalid VNode type:",l,`(${typeof l})`)}null!=p&&o&&setRef(p,e&&e.ref,s,t||e,!t)},g=(e,t,n,o)=>{if(null==e)r(t.el=a(t.children),n,o);else{const n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},y=(e,t,n,o)=>{null==e?r(t.el=c(t.children||""),n,o):t.el=e.el},v=(e,t,n,r)=>{[e.el,e.anchor]=f(e.children,t,n,r,e.el,e.anchor)},S=(e,t,n,r)=>{if(t.children!==e.children){const o=u(e.anchor);E(e),[t.el,t.anchor]=f(t.children,n,o,r)}else t.el=e.el,t.anchor=e.anchor},E=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=u(e),o(e),e=n;o(t)},C=(e,t,n,r,o,s,i,a,c)=>{"svg"===t.type?i="svg":"math"===t.type&&(i="mathml"),null==e?b(t,n,r,o,s,i,a,c):_(e,t,o,s,i,a,c)},b=(e,t,n,o,a,c,l,d)=>{let u,h;const{props:f,shapeFlag:m,transition:g,dirs:y}=e;if(u=e.el=i(e.type,c,f&&f.is,f),8&m?p(u,e.children):16&m&&x(e.children,u,null,o,a,resolveChildrenNamespace(e,c),l,d),y&&invokeDirectiveHook(e,null,o,"created"),T(u,e,e.scopeId,l,o),f){for(const t in f)"value"===t||isReservedProp(t)||s(u,t,null,f[t],c,e.children,o,a,j);"value"in f&&s(u,"value",null,f.value,c),(h=f.onVnodeBeforeMount)&&invokeVNodeHook(h,o,e)}Object.defineProperty(u,"__vnode",{value:e,enumerable:!1}),Object.defineProperty(u,"__vueParentComponent",{value:o,enumerable:!1}),y&&invokeDirectiveHook(e,null,o,"beforeMount");const v=needTransition(a,g);v&&g.beforeEnter(u),r(u,t,n),((h=f&&f.onVnodeMounted)||v||y)&&queuePostRenderEffect((()=>{h&&invokeVNodeHook(h,o,e),v&&g.enter(u),y&&invokeDirectiveHook(e,null,o,"mounted")}),a)},T=(e,t,n,r,o)=>{if(n&&h(e,n),r)for(let t=0;t<r.length;t++)h(e,r[t]);if(o){let n=o.subTree;if(n.patchFlag>0&&2048&n.patchFlag&&(n=filterSingleRoot(n.children)||n),t===n){const t=o.vnode;T(e,t,t.scopeId,t.slotScopeIds,o.parent)}}},x=(e,t,n,r,o,s,i,a,c=0)=>{for(let l=c;l<e.length;l++){const c=e[l]=a?cloneIfMounted(e[l]):normalizeVNode(e[l]);m(null,c,t,n,r,o,s,i,a)}},_=(e,t,n,r,o,i,a)=>{const c=t.el=e.el;let{patchFlag:l,dynamicChildren:d,dirs:u}=t;l|=16&e.patchFlag;const h=e.props||EMPTY_OBJ,f=t.props||EMPTY_OBJ;let m;if(n&&toggleRecurse(n,!1),(m=f.onVnodeBeforeUpdate)&&invokeVNodeHook(m,n,t,e),u&&invokeDirectiveHook(t,e,n,"beforeUpdate"),n&&toggleRecurse(n,!0),isHmrUpdating&&(l=0,a=!1,d=null),d?(w(e.dynamicChildren,d,c,n,r,resolveChildrenNamespace(t,o),i),traverseStaticChildren(e,t)):a||M(e,t,c,null,n,r,resolveChildrenNamespace(t,o),i,!1),l>0){if(16&l)R(c,t,h,f,n,r,o);else if(2&l&&h.class!==f.class&&s(c,"class",null,f.class,o),4&l&&s(c,"style",h.style,f.style,o),8&l){const i=t.dynamicProps;for(let t=0;t<i.length;t++){const a=i[t],l=h[a],p=f[a];p===l&&"value"!==a||s(c,a,l,p,o,e.children,n,r,j)}}1&l&&e.children!==t.children&&p(c,t.children)}else a||null!=d||R(c,t,h,f,n,r,o);((m=f.onVnodeUpdated)||u)&&queuePostRenderEffect((()=>{m&&invokeVNodeHook(m,n,t,e),u&&invokeDirectiveHook(t,e,n,"updated")}),r)},w=(e,t,n,r,o,s,i)=>{for(let a=0;a<t.length;a++){const c=e[a],l=t[a],p=c.el&&(c.type===Fragment||!isSameVNodeType(c,l)||70&c.shapeFlag)?d(c.el):n;m(c,l,p,null,r,o,s,i,!0)}},R=(e,t,n,r,o,i,a)=>{if(n!==r){if(n!==EMPTY_OBJ)for(const c in n)isReservedProp(c)||c in r||s(e,c,n[c],null,a,t.children,o,i,j);for(const c in r){if(isReservedProp(c))continue;const l=r[c],p=n[c];l!==p&&"value"!==c&&s(e,c,p,l,a,t.children,o,i,j)}"value"in r&&s(e,"value",n.value,r.value,a)}},O=(e,t,n,o,s,i,c,l,p)=>{const d=t.el=e?e.el:a(""),u=t.anchor=e?e.anchor:a("");let{patchFlag:h,dynamicChildren:f,slotScopeIds:m}=t;(isHmrUpdating||2048&h)&&(h=0,p=!1,f=null),m&&(l=l?l.concat(m):m),null==e?(r(d,n,o),r(u,n,o),x(t.children||[],n,u,s,i,c,l,p)):h>0&&64&h&&f&&e.dynamicChildren?(w(e.dynamicChildren,f,n,s,i,c,l),traverseStaticChildren(e,t)):M(e,t,n,u,s,i,c,l,p)},k=(e,t,n,r,o,s,i,a,c)=>{t.slotScopeIds=a,null==e?512&t.shapeFlag?o.ctx.activate(t,n,r,i,c):A(t,n,r,o,s,i,c):N(e,t,c)},A=(e,t,n,r,o,s,i)=>{const a=e.component=createComponentInstance(e,r,o);if(a.type.__hmrId&&registerHMR(a),pushWarningContext(e),startMeasure(a,"mount"),isKeepAlive(e)&&(a.ctx.renderer=W),startMeasure(a,"init"),setupComponent(a),endMeasure(a,"init"),a.asyncDep){if(o&&o.registerDep(a,I),!e.el){const e=a.subTree=createVNode(Comment);y(null,e,t,n)}}else I(a,e,t,n,o,s,i);popWarningContext(),endMeasure(a,"mount")},N=(e,t,n)=>{const r=t.component=e.component;if(shouldUpdateComponent(e,t,n)){if(r.asyncDep&&!r.asyncResolved)return pushWarningContext(t),P(r,t,n),void popWarningContext();r.next=t,invalidateJob(r.update),r.effect.dirty=!0,r.update()}else t.el=e.el,r.vnode=t},I=(e,t,n,r,o,s,i)=>{const a=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:c,vnode:l}=e;{const n=locateNonHydratedAsyncRoot(e);if(n)return t&&(t.el=l.el,P(e,t,i)),void n.asyncDep.then((()=>{e.isUnmounted||a()}))}let p,u=t;pushWarningContext(t||e.vnode),toggleRecurse(e,!1),t?(t.el=l.el,P(e,t,i)):t=l,n&&invokeArrayFns(n),(p=t.props&&t.props.onVnodeBeforeUpdate)&&invokeVNodeHook(p,c,t,l),toggleRecurse(e,!0),startMeasure(e,"render");const h=renderComponentRoot(e);endMeasure(e,"render");const f=e.subTree;e.subTree=h,startMeasure(e,"patch"),m(f,h,d(f.el),U(f),e,o,s),endMeasure(e,"patch"),t.el=h.el,null===u&&updateHOCHostEl(e,h.el),r&&queuePostRenderEffect(r,o),(p=t.props&&t.props.onVnodeUpdated)&&queuePostRenderEffect((()=>invokeVNodeHook(p,c,t,l)),o),devtoolsComponentUpdated(e),popWarningContext()}else{let i;const{el:a,props:c}=t,{bm:l,m:p,parent:d}=e,u=isAsyncWrapper(t);if(toggleRecurse(e,!1),l&&invokeArrayFns(l),!u&&(i=c&&c.onVnodeBeforeMount)&&invokeVNodeHook(i,d,t),toggleRecurse(e,!0),a&&G){const n=()=>{startMeasure(e,"render"),e.subTree=renderComponentRoot(e),endMeasure(e,"render"),startMeasure(e,"hydrate"),G(a,e.subTree,e,o,null),endMeasure(e,"hydrate")};u?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{startMeasure(e,"render");const i=e.subTree=renderComponentRoot(e);endMeasure(e,"render"),startMeasure(e,"patch"),m(null,i,n,r,e,o,s),endMeasure(e,"patch"),t.el=i.el}if(p&&queuePostRenderEffect(p,o),!u&&(i=c&&c.onVnodeMounted)){const e=t;queuePostRenderEffect((()=>invokeVNodeHook(i,d,e)),o)}(256&t.shapeFlag||d&&isAsyncWrapper(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&queuePostRenderEffect(e.a,o),e.isMounted=!0,devtoolsComponentAdded(e),t=n=r=null}},c=e.effect=new ReactiveEffect(a,NOOP,(()=>queueJob(l)),e.scope),l=e.update=()=>{c.dirty&&c.run()};l.id=e.uid,toggleRecurse(e,!0),c.onTrack=e.rtc?t=>invokeArrayFns(e.rtc,t):void 0,c.onTrigger=e.rtg?t=>invokeArrayFns(e.rtg,t):void 0,l.ownerInstance=e,l()},P=(e,t,n)=>{t.component=e;const r=e.vnode.props;e.vnode=t,e.next=null,updateProps(e,t.props,r,n),updateSlots(e,t.children,n),pauseTracking(),flushPreFlushCbs(e),resetTracking()},M=(e,t,n,r,o,s,i,a,c=!1)=>{const l=e&&e.children,d=e?e.shapeFlag:0,u=t.children,{patchFlag:h,shapeFlag:f}=t;if(h>0){if(128&h)return void $(l,u,n,r,o,s,i,a,c);if(256&h)return void V(l,u,n,r,o,s,i,a,c)}8&f?(16&d&&j(l,o,s),u!==l&&p(n,u)):16&d?16&f?$(l,u,n,r,o,s,i,a,c):j(l,o,s,!0):(8&d&&p(n,""),16&f&&x(u,n,r,o,s,i,a,c))},V=(e,t,n,r,o,s,i,a,c)=>{t=t||EMPTY_ARR;const l=(e=e||EMPTY_ARR).length,p=t.length,d=Math.min(l,p);let u;for(u=0;u<d;u++){const r=t[u]=c?cloneIfMounted(t[u]):normalizeVNode(t[u]);m(e[u],r,n,null,o,s,i,a,c)}l>p?j(e,o,s,!0,!1,d):x(t,n,r,o,s,i,a,c,d)},$=(e,t,n,r,o,s,i,a,c)=>{let l=0;const p=t.length;let d=e.length-1,u=p-1;for(;l<=d&&l<=u;){const r=e[l],p=t[l]=c?cloneIfMounted(t[l]):normalizeVNode(t[l]);if(!isSameVNodeType(r,p))break;m(r,p,n,null,o,s,i,a,c),l++}for(;l<=d&&l<=u;){const r=e[d],l=t[u]=c?cloneIfMounted(t[u]):normalizeVNode(t[u]);if(!isSameVNodeType(r,l))break;m(r,l,n,null,o,s,i,a,c),d--,u--}if(l>d){if(l<=u){const e=u+1,d=e<p?t[e].el:r;for(;l<=u;)m(null,t[l]=c?cloneIfMounted(t[l]):normalizeVNode(t[l]),n,d,o,s,i,a,c),l++}}else if(l>u)for(;l<=d;)D(e[l],o,s,!0),l++;else{const h=l,f=l,g=new Map;for(l=f;l<=u;l++){const e=t[l]=c?cloneIfMounted(t[l]):normalizeVNode(t[l]);null!=e.key&&(g.has(e.key)&&warn$1("Duplicate keys found during update:",JSON.stringify(e.key),"Make sure keys are unique."),g.set(e.key,l))}let y,v=0;const S=u-f+1;let E=!1,C=0;const b=new Array(S);for(l=0;l<S;l++)b[l]=0;for(l=h;l<=d;l++){const r=e[l];if(v>=S){D(r,o,s,!0);continue}let p;if(null!=r.key)p=g.get(r.key);else for(y=f;y<=u;y++)if(0===b[y-f]&&isSameVNodeType(r,t[y])){p=y;break}void 0===p?D(r,o,s,!0):(b[p-f]=l+1,p>=C?C=p:E=!0,m(r,t[p],n,null,o,s,i,a,c),v++)}const T=E?getSequence(b):EMPTY_ARR;for(y=T.length-1,l=S-1;l>=0;l--){const e=f+l,d=t[e],u=e+1<p?t[e+1].el:r;0===b[l]?m(null,d,n,u,o,s,i,a,c):E&&(y<0||l!==T[y]?F(d,n,u,2):y--)}}},F=(e,t,n,o,s=null)=>{const{el:i,type:a,transition:c,children:l,shapeFlag:p}=e;if(6&p)return void F(e.component.subTree,t,n,o);if(128&p)return void e.suspense.move(t,n,o);if(64&p)return void a.move(e,t,n,W);if(a===Fragment){r(i,t,n);for(let e=0;e<l.length;e++)F(l[e],t,n,o);return void r(e.anchor,t,n)}if(a===Static)return void(({el:e,anchor:t},n,o)=>{let s;for(;e&&e!==t;)s=u(e),r(e,n,o),e=s;r(t,n,o)})(e,t,n);if(2!==o&&1&p&&c)if(0===o)c.beforeEnter(i),r(i,t,n),queuePostRenderEffect((()=>c.enter(i)),s);else{const{leave:e,delayLeave:o,afterLeave:s}=c,a=()=>r(i,t,n),l=()=>{e(i,(()=>{a(),s&&s()}))};o?o(i,a,l):l()}else r(i,t,n)},D=(e,t,n,r=!1,o=!1)=>{const{type:s,props:i,ref:a,children:c,dynamicChildren:l,shapeFlag:p,patchFlag:d,dirs:u}=e;if(null!=a&&setRef(a,null,n,e,!0),256&p)return void t.ctx.deactivate(e);const h=1&p&&u,f=!isAsyncWrapper(e);let m;if(f&&(m=i&&i.onVnodeBeforeUnmount)&&invokeVNodeHook(m,t,e),6&p)B(e.component,n,r);else{if(128&p)return void e.suspense.unmount(n,r);h&&invokeDirectiveHook(e,null,t,"beforeUnmount"),64&p?e.type.remove(e,t,n,o,W,r):l&&(s!==Fragment||d>0&&64&d)?j(l,t,n,!1,!0):(s===Fragment&&384&d||!o&&16&p)&&j(c,t,n),r&&L(e)}(f&&(m=i&&i.onVnodeUnmounted)||h)&&queuePostRenderEffect((()=>{m&&invokeVNodeHook(m,t,e),h&&invokeDirectiveHook(e,null,t,"unmounted")}),n)},L=e=>{const{type:t,el:n,anchor:r,transition:s}=e;if(t===Fragment)return void(e.patchFlag>0&&2048&e.patchFlag&&s&&!s.persisted?e.children.forEach((e=>{e.type===Comment?o(e.el):L(e)})):H(n,r));if(t===Static)return void E(e);const i=()=>{o(n),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:t,delayLeave:r}=s,o=()=>t(n,i);r?r(e.el,i,o):o()}else i()},H=(e,t)=>{let n;for(;e!==t;)n=u(e),o(e),e=n;o(t)},B=(e,t,n)=>{e.type.__hmrId&&unregisterHMR(e);const{bum:r,scope:o,update:s,subTree:i,um:a}=e;var c;r&&invokeArrayFns(r),o.stop(),s&&(s.active=!1,D(i,e,t,n)),a&&queuePostRenderEffect(a,t),queuePostRenderEffect((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),c=e,devtools$1&&"function"==typeof devtools$1.cleanupBuffer&&!devtools$1.cleanupBuffer(c)&&_devtoolsComponentRemoved(c)},j=(e,t,n,r=!1,o=!1,s=0)=>{for(let i=s;i<e.length;i++)D(e[i],t,n,r,o)},U=e=>6&e.shapeFlag?U(e.component.subTree):128&e.shapeFlag?e.suspense.next():u(e.anchor||e.el);let z=!1;const K=(e,t,n)=>{null==e?t._vnode&&D(t._vnode,null,null,!0):m(t._vnode||null,e,t,null,null,null,n),z||(z=!0,flushPreFlushCbs(),flushPostFlushCbs(),z=!1),t._vnode=e},W={p:m,um:D,m:F,r:L,mt:A,mc:x,pc:M,pbc:w,n:U,o:e};let q,G;return t&&([q,G]=t(W)),{render:K,hydrate:q,createApp:createAppAPI(K,q)}}function resolveChildrenNamespace({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function toggleRecurse({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function needTransition(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function traverseStaticChildren(e,t,n=!1){const r=e.children,o=t.children;if(isArray(r)&&isArray(o))for(let e=0;e<r.length;e++){const t=r[e];let s=o[e];1&s.shapeFlag&&!s.dynamicChildren&&((s.patchFlag<=0||32===s.patchFlag)&&(s=o[e]=cloneIfMounted(o[e]),s.el=t.el),n||traverseStaticChildren(t,s)),s.type===Text&&(s.el=t.el),s.type!==Comment||s.el||(s.el=t.el)}}function getSequence(e){const t=e.slice(),n=[0];let r,o,s,i,a;const c=e.length;for(r=0;r<c;r++){const c=e[r];if(0!==c){if(o=n[n.length-1],e[o]<c){t[r]=o,n.push(r);continue}for(s=0,i=n.length-1;s<i;)a=s+i>>1,e[n[a]]<c?s=a+1:i=a;c<e[n[s]]&&(s>0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function locateNonHydratedAsyncRoot(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:locateNonHydratedAsyncRoot(t)}const isTeleport=e=>e.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||""===e.disabled),isTargetSVG=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,isTargetMathML=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString(n)){if(t){const e=t(n);return e||warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),e}return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null}return n||isTeleportDisabled(e)||warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,o,s,i,a,c,l){const{mc:p,pc:d,pbc:u,o:{insert:h,querySelector:f,createText:m,createComment:g}}=l,y=isTeleportDisabled(t.props);let{shapeFlag:v,children:S,dynamicChildren:E}=t;if(isHmrUpdating&&(c=!1,E=null),null==e){const e=t.el=g("teleport start"),l=t.anchor=g("teleport end");h(e,n,r),h(l,n,r);const d=t.target=resolveTarget(t.props,f),u=t.targetAnchor=m("");d?(h(u,d),"svg"===i||isTargetSVG(d)?i="svg":("mathml"===i||isTargetMathML(d))&&(i="mathml")):y||warn$1("Invalid Teleport target on mount:",d,`(${typeof d})`);const E=(e,t)=>{16&v&&p(S,e,t,o,s,i,a,c)};y?E(n,l):d&&E(d,u)}else{t.el=e.el;const r=t.anchor=e.anchor,p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,m=isTeleportDisabled(e.props),g=m?n:p,v=m?r:h;if("svg"===i||isTargetSVG(p)?i="svg":("mathml"===i||isTargetMathML(p))&&(i="mathml"),E?(u(e.dynamicChildren,E,g,o,s,i,a),traverseStaticChildren(e,t,!0)):c||d(e,t,g,v,o,s,i,a,!1),y)m?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=resolveTarget(t.props,f);e?moveTeleport(t,e,null,l,0):warn$1("Invalid Teleport target on update:",p,`(${typeof p})`)}else m&&moveTeleport(t,p,h,l,1)}updateCssVars(t)},remove(e,t,n,r,{um:o,o:{remove:s}},i){const{shapeFlag:a,children:c,anchor:l,targetAnchor:p,target:d,props:u}=e;if(d&&s(p),i&&s(l),16&a){const e=i||!isTeleportDisabled(u);for(let r=0;r<c.length;r++){const s=c[r];o(s,t,n,e,!!s.dynamicChildren)}}},move:moveTeleport,hydrate:hydrateTeleport};function moveTeleport(e,t,n,{o:{insert:r},m:o},s=2){0===s&&r(e.targetAnchor,t,n);const{el:i,anchor:a,shapeFlag:c,children:l,props:p}=e,d=2===s;if(d&&r(i,t,n),(!d||isTeleportDisabled(p))&&16&c)for(let e=0;e<l.length;e++)o(l[e],t,n,2);d&&r(a,t,n)}function hydrateTeleport(e,t,n,r,o,s,{o:{nextSibling:i,parentNode:a,querySelector:c}},l){const p=t.target=resolveTarget(t.props,c);if(p){const c=p._lpa||p.firstChild;if(16&t.shapeFlag)if(isTeleportDisabled(t.props))t.anchor=l(i(e),t,a(e),n,r,o,s),t.targetAnchor=c;else{t.anchor=i(e);let a=c;for(;a;)if(a=i(a),a&&8===a.nodeType&&"teleport anchor"===a.data){t.targetAnchor=a,p._lpa=t.targetAnchor&&i(t.targetAnchor);break}l(c,t,p,n,r,o,s)}updateCssVars(t)}return t.anchor&&i(t.anchor)}const Teleport=TeleportImpl;function updateCssVars(e){const t=e.ctx;if(t&&t.ut){let n=e.children[0].el;for(;n&&n!==e.targetAnchor;)1===n.nodeType&&n.setAttribute("data-v-owner",t.uid),n=n.nextSibling;t.ut()}}const Fragment=Symbol.for("v-fgt"),Text=Symbol.for("v-txt"),Comment=Symbol.for("v-cmt"),Static=Symbol.for("v-stc"),blockStack=[];let currentBlock=null;function openBlock(e=!1){blockStack.push(currentBlock=e?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}let vnodeArgsTransformer,isBlockTreeEnabled=1;function setBlockTracking(e){isBlockTreeEnabled+=e}function setupBlock(e){return e.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&&currentBlock&&currentBlock.push(e),e}function createElementBlock(e,t,n,r,o,s){return setupBlock(createBaseVNode(e,t,n,r,o,s,!0))}function createBlock(e,t,n,r,o){return setupBlock(createVNode(e,t,n,r,o,!0))}function isVNode(e){return!!e&&!0===e.__v_isVNode}function isSameVNodeType(e,t){return 6&t.shapeFlag&&hmrDirtyComponents.has(t.type)?(e.shapeFlag&=-257,t.shapeFlag&=-513,!1):e.type===t.type&&e.key===t.key}function transformVNodeArgs(e){vnodeArgsTransformer=e}const createVNodeWithArgsTransform=(...e)=>_createVNode(...vnodeArgsTransformer?vnodeArgsTransformer(e,currentRenderingInstance):e),normalizeKey=({key:e})=>null!=e?e:null,normalizeRef=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?isString(e)||isRef(e)||isFunction(e)?{i:currentRenderingInstance,r:e,k:t,f:!!n}:e:null);function createBaseVNode(e,t=null,n=null,r=0,o=null,s=(e===Fragment?0:1),i=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&normalizeKey(t),ref:t&&normalizeRef(t),scopeId:currentScopeId,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:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return a?(normalizeChildren(c,n),128&s&&e.normalize(c)):n&&(c.shapeFlag|=isString(n)?8:16),c.key!=c.key&&warn$1("VNode created with invalid key (NaN). VNode type:",c.type),isBlockTreeEnabled>0&&!i&&currentBlock&&(c.patchFlag>0||6&s)&&32!==c.patchFlag&&currentBlock.push(c),c}const createVNode=createVNodeWithArgsTransform;function _createVNode(e,t=null,n=null,r=0,o=null,s=!1){if(e&&e!==NULL_DYNAMIC_COMPONENT||(e||warn$1(`Invalid vnode type when creating vnode: ${e}.`),e=Comment),isVNode(e)){const r=cloneVNode(e,t,!0);return n&&normalizeChildren(r,n),isBlockTreeEnabled>0&&!s&&currentBlock&&(6&r.shapeFlag?currentBlock[currentBlock.indexOf(e)]=r:currentBlock.push(r)),r.patchFlag|=-2,r}if(isClassComponent(e)&&(e=e.__vccOpts),t){t=guardReactiveProps(t);let{class:e,style:n}=t;e&&!isString(e)&&(t.class=normalizeClass(e)),isObject(n)&&(isProxy(n)&&!isArray(n)&&(n=extend({},n)),t.style=normalizeStyle(n))}const i=isString(e)?1:isSuspense(e)?128:isTeleport(e)?64:isObject(e)?4:isFunction(e)?2:0;return 4&i&&isProxy(e)&&warn$1("Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.","\nComponent that was made reactive: ",e=toRaw(e)),createBaseVNode(e,t,n,r,o,i,s,!0)}function guardReactiveProps(e){return e?isProxy(e)||isInternalObject(e)?extend({},e):e:null}function cloneVNode(e,t,n=!1,r=!1){const{props:o,ref:s,patchFlag:i,children:a,transition:c}=e,l=t?mergeProps(o||{},t):o,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&normalizeKey(l),ref:t&&t.ref?n&&s?isArray(s)?s.concat(normalizeRef(t)):[s,normalizeRef(t)]:normalizeRef(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:-1===i&&isArray(a)?a.map(deepCloneVNode):a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fragment?-1===i?16:16|i:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&cloneVNode(e.ssContent),ssFallback:e.ssFallback&&cloneVNode(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&(p.transition=c.clone(p)),p}function deepCloneVNode(e){const t=cloneVNode(e);return isArray(e.children)&&(t.children=e.children.map(deepCloneVNode)),t}function createTextVNode(e=" ",t=0){return createVNode(Text,null,e,t)}function createStaticVNode(e,t){const n=createVNode(Static,null,e);return n.staticCount=t,n}function createCommentVNode(e="",t=!1){return t?(openBlock(),createBlock(Comment,null,e)):createVNode(Comment,null,e)}function normalizeVNode(e){return null==e||"boolean"==typeof e?createVNode(Comment):isArray(e)?createVNode(Fragment,null,e.slice()):"object"==typeof e?cloneIfMounted(e):createVNode(Text,null,String(e))}function cloneIfMounted(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:cloneVNode(e)}function normalizeChildren(e,t){let n=0;const{shapeFlag:r}=e;if(null==t)t=null;else if(isArray(t))n=16;else if("object"==typeof t){if(65&r){const n=t.default;return void(n&&(n._c&&(n._d=!1),normalizeChildren(e,n()),n._c&&(n._d=!0)))}{n=32;const r=t._;r||isInternalObject(t)?3===r&&currentRenderingInstance&&(1===currentRenderingInstance.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=currentRenderingInstance}}else isFunction(t)?(t={default:t,_ctx:currentRenderingInstance},n=32):(t=String(t),64&r?(n=16,t=[createTextVNode(t)]):n=8);e.children=t,e.shapeFlag|=n}function mergeProps(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const e in r)if("class"===e)t.class!==r.class&&(t.class=normalizeClass([t.class,r.class]));else if("style"===e)t.style=normalizeStyle([t.style,r.style]);else if(isOn(e)){const n=t[e],o=r[e];!o||n===o||isArray(n)&&n.includes(o)||(t[e]=n?[].concat(n,o):o)}else""!==e&&(t[e]=r[e])}return t}function invokeVNodeHook(e,t,n,r=null){callWithAsyncErrorHandling(e,t,7,[n,r])}const emptyAppContext=createAppContext();let uid=0;function createComponentInstance(e,t,n){const r=e.type,o=(t?t.appContext:e.appContext)||emptyAppContext,s={uid:uid++,vnode:e,type:r,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new EffectScope(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:normalizePropsOptions(r,o),emitsOptions:normalizeEmitsOptions(r,o),emit:null,emitted:null,propsDefaults:EMPTY_OBJ,inheritAttrs:r.inheritAttrs,ctx:EMPTY_OBJ,data:EMPTY_OBJ,props:EMPTY_OBJ,attrs:EMPTY_OBJ,slots:EMPTY_OBJ,refs:EMPTY_OBJ,setupState:EMPTY_OBJ,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx=createDevRenderContext(s),s.root=t?t.root:s,s.emit=emit.bind(null,s),e.ce&&e.ce(s),s}let currentInstance=null;const getCurrentInstance=()=>currentInstance||currentRenderingInstance;let internalSetCurrentInstance,setInSSRSetupState;internalSetCurrentInstance=e=>{currentInstance=e},setInSSRSetupState=e=>{isInSSRComponentSetup=e};const setCurrentInstance=e=>{const t=currentInstance;return internalSetCurrentInstance(e),e.scope.on(),()=>{e.scope.off(),internalSetCurrentInstance(t)}},unsetCurrentInstance=()=>{currentInstance&&currentInstance.scope.off(),internalSetCurrentInstance(null)},isBuiltInTag=makeMap("slot,component");function validateComponentName(e,{isNativeTag:t}){(isBuiltInTag(e)||t(e))&&warn$1("Do not use built-in or reserved HTML elements as component id: "+e)}function isStatefulComponent(e){return 4&e.vnode.shapeFlag}let compile$1,installWithProxy,isInSSRComponentSetup=!1;function setupComponent(e,t=!1){t&&setInSSRSetupState(t);const{props:n,children:r}=e.vnode,o=isStatefulComponent(e);initProps(e,n,o,t),initSlots(e,r);const s=o?setupStatefulComponent(e,t):void 0;return t&&setInSSRSetupState(!1),s}function setupStatefulComponent(e,t){var n;const r=e.type;if(r.name&&validateComponentName(r.name,e.appContext.config),r.components){const t=Object.keys(r.components);for(let n=0;n<t.length;n++)validateComponentName(t[n],e.appContext.config)}if(r.directives){const e=Object.keys(r.directives);for(let t=0;t<e.length;t++)validateDirectiveName(e[t])}r.compilerOptions&&isRuntimeOnly()&&warn$1('"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.'),e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,PublicInstanceProxyHandlers),exposePropsOnRenderContext(e);const{setup:o}=r;if(o){const s=e.setupContext=o.length>1?createSetupContext(e):null,i=setCurrentInstance(e);pauseTracking();const a=callWithErrorHandling(o,e,0,[shallowReadonly(e.props),s]);if(resetTracking(),i(),isPromise(a)){if(a.then(unsetCurrentInstance,unsetCurrentInstance),t)return a.then((n=>{handleSetupResult(e,n,t)})).catch((t=>{handleError(t,e,0)}));if(e.asyncDep=a,!e.suspense){warn$1(`Component <${null!=(n=r.name)?n:"Anonymous"}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`)}}else handleSetupResult(e,a,t)}else finishComponentSetup(e,t)}function handleSetupResult(e,t,n){isFunction(t)?e.render=t:isObject(t)?(isVNode(t)&&warn$1("setup() should not return VNodes directly - return a render function instead."),e.devtoolsRawSetupState=t,e.setupState=proxyRefs(t),exposeSetupStateOnRenderContext(e)):void 0!==t&&warn$1("setup() should return an object. Received: "+(null===t?"null":typeof t)),finishComponentSetup(e,n)}function registerRuntimeCompiler(e){compile$1=e,installWithProxy=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,RuntimeCompiledPublicInstanceProxyHandlers))}}const isRuntimeOnly=()=>!compile$1;function finishComponentSetup(e,t,n){const r=e.type;if(!e.render){if(!t&&compile$1&&!r.render){const t=r.template||resolveMergedOptions(e).template;if(t){startMeasure(e,"compile");const{isCustomElement:n,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:i}=r,a=extend(extend({isCustomElement:n,delimiters:s},o),i);r.render=compile$1(t,a),endMeasure(e,"compile")}}e.render=r.render||NOOP,installWithProxy&&installWithProxy(e)}{const t=setCurrentInstance(e);pauseTracking();try{applyOptions(e)}finally{resetTracking(),t()}}r.render||e.render!==NOOP||t||(!compile$1&&r.template?warn$1('Component provided template option but runtime compilation is not supported in this build of Vue. Use "vue.esm-browser.js" instead.'):warn$1("Component is missing template or render function."))}const attrsProxyHandlers={get:(e,t)=>(markAttrsAccessed(),track(e,"get",""),e[t]),set:()=>(warn$1("setupContext.attrs is readonly."),!1),deleteProperty:()=>(warn$1("setupContext.attrs is readonly."),!1)};function getSlotsProxy(e){return e.slotsProxy||(e.slotsProxy=new Proxy(e.slots,{get:(t,n)=>(track(e,"get","$slots"),t[n])}))}function createSetupContext(e){const t=t=>{if(e.exposed&&warn$1("expose() should be called only once per setup()."),null!=t){let e=typeof t;"object"===e&&(isArray(t)?e="array":isRef(t)&&(e="ref")),"object"!==e&&warn$1(`expose() should be passed a plain object, received ${e}.`)}e.exposed=t||{}};{let n;return Object.freeze({get attrs(){return n||(n=new Proxy(e.attrs,attrsProxyHandlers))},get slots(){return getSlotsProxy(e)},get emit(){return(t,...n)=>e.emit(t,...n)},expose:t})}}function getExposeProxy(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(proxyRefs(markRaw(e.exposed)),{get:(t,n)=>n in t?t[n]:n in publicPropertiesMap?publicPropertiesMap[n](e):void 0,has:(e,t)=>t in e||t in publicPropertiesMap}))}const classifyRE=/(?:^|[-_])(\w)/g,classify=e=>e.replace(classifyRE,(e=>e.toUpperCase())).replace(/[-_]/g,"");function getComponentName(e,t=!0){return isFunction(e)?e.displayName||e.name:e.name||t&&e.__name}function formatComponentName(e,t,n=!1){let r=getComponentName(t);if(!r&&t.__file){const e=t.__file.match(/([^/\\]+)\.\w+$/);e&&(r=e[1])}if(!r&&e&&e.parent){const n=e=>{for(const n in e)if(e[n]===t)return n};r=n(e.components||e.parent.type.components)||n(e.appContext.components)}return r?r.replace(classifyRE,(e=>e.toUpperCase())).replace(/[-_]/g,""):n?"App":"Anonymous"}function isClassComponent(e){return isFunction(e)&&"__vccOpts"in e}const computed=(e,t)=>{const n=computed$1(e,t,isInSSRComponentSetup);{const e=getCurrentInstance();e&&e.appContext.config.warnRecursiveComputed&&(n._warnRecursive=!0)}return n};function useModel(e,t,n=EMPTY_OBJ){const r=getCurrentInstance();if(!r)return warn$1("useModel() called without active instance."),ref();if(!r.propsOptions[0][t])return warn$1(`useModel() called with prop "${t}" which is not declared.`),ref();const o=camelize(t),s=hyphenate(t),i=customRef(((i,a)=>{let c;return watchSyncEffect((()=>{const n=e[t];hasChanged(c,n)&&(c=n,a())})),{get:()=>(i(),n.get?n.get(c):c),set(e){const i=r.vnode.props;i&&(t in i||o in i||s in i)&&(`onUpdate:${t}`in i||`onUpdate:${o}`in i||`onUpdate:${s}`in i)||!hasChanged(e,c)||(c=e,a()),r.emit(`update:${t}`,n.set?n.set(e):e)}}})),a="modelValue"===t?"modelModifiers":`${t}Modifiers`;return i[Symbol.iterator]=()=>{let t=0;return{next:()=>t<2?{value:t++?e[a]||{}:i,done:!1}:{done:!0}}},i}function h(e,t,n){const r=arguments.length;return 2===r?isObject(t)&&!isArray(t)?isVNode(t)?createVNode(e,null,[t]):createVNode(e,t):createVNode(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&isVNode(n)&&(n=[n]),createVNode(e,t,n))}function initCustomFormatter(){if("undefined"==typeof window)return;const e={style:"color:#3ba776"},t={style:"color:#1677ff"},n={style:"color:#f5222d"},r={style:"color:#eb2f96"},o={header:t=>isObject(t)?t.__isVue?["div",e,"VueInstance"]:isRef(t)?["div",{},["span",e,p(t)],"<",a(t.value),">"]:isReactive(t)?["div",{},["span",e,isShallow(t)?"ShallowReactive":"Reactive"],"<",a(t),">"+(isReadonly(t)?" (readonly)":"")]:isReadonly(t)?["div",{},["span",e,isShallow(t)?"ShallowReadonly":"Readonly"],"<",a(t),">"]:null:null,hasBody:e=>e&&e.__isVue,body(e){if(e&&e.__isVue)return["div",{},...s(e.$)]}};function s(e){const t=[];e.type.props&&e.props&&t.push(i("props",toRaw(e.props))),e.setupState!==EMPTY_OBJ&&t.push(i("setup",e.setupState)),e.data!==EMPTY_OBJ&&t.push(i("data",toRaw(e.data)));const n=c(e,"computed");n&&t.push(i("computed",n));const o=c(e,"inject");return o&&t.push(i("injected",o)),t.push(["div",{},["span",{style:r.style+";opacity:0.66"},"$ (internal): "],["object",{object:e}]]),t}function i(e,t){return t=extend({},t),Object.keys(t).length?["div",{style:"line-height:1.25em;margin-bottom:0.6em"},["div",{style:"color:#476582"},e],["div",{style:"padding-left:1.25em"},...Object.keys(t).map((e=>["div",{},["span",r,e+": "],a(t[e],!1)]))]]:["span",{}]}function a(e,o=!0){return"number"==typeof e?["span",t,e]:"string"==typeof e?["span",n,JSON.stringify(e)]:"boolean"==typeof e?["span",r,e]:isObject(e)?["object",{object:o?toRaw(e):e}]:["span",n,String(e)]}function c(e,t){const n=e.type;if(isFunction(n))return;const r={};for(const o in e.ctx)l(n,o,t)&&(r[o]=e.ctx[o]);return r}function l(e,t,n){const r=e[n];return!!(isArray(r)&&r.includes(t)||isObject(r)&&t in r)||(!(!e.extends||!l(e.extends,t,n))||(!(!e.mixins||!e.mixins.some((e=>l(e,t,n))))||void 0))}function p(e){return isShallow(e)?"ShallowRef":e.effect?"ComputedRef":"Ref"}window.devtoolsFormatters?window.devtoolsFormatters.push(o):window.devtoolsFormatters=[o]}function withMemo(e,t,n,r){const o=n[r];if(o&&isMemoSame(o,e))return o;const s=t();return s.memo=e.slice(),n[r]=s}function isMemoSame(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e<n.length;e++)if(hasChanged(n[e],t[e]))return!1;return isBlockTreeEnabled>0&&currentBlock&&currentBlock.push(e),!0}const version="3.4.27",warn=warn$1,ErrorTypeStrings=ErrorTypeStrings$1,devtools=devtools$1,setDevtoolsHook=setDevtoolsHook$1,ssrUtils=null,resolveFilter=null,compatUtils=null,DeprecationTypes=null,svgNS="http://www.w3.org/2000/svg",mathmlNS="http://www.w3.org/1998/Math/MathML",doc="undefined"!=typeof document?document:null,templateContainer=doc&&doc.createElement("template"),nodeOps={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o="svg"===t?doc.createElementNS(svgNS,e):"mathml"===t?doc.createElementNS(mathmlNS,e):doc.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&o.setAttribute("multiple",r.multiple),o},createText:e=>doc.createTextNode(e),createComment:e=>doc.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>doc.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),o!==s&&(o=o.nextSibling););else{templateContainer.innerHTML="svg"===r?`<svg>${e}</svg>`:"mathml"===r?`<math>${e}</math>`:e;const o=templateContainer.content;if("svg"===r||"mathml"===r){const e=o.firstChild;for(;e.firstChild;)o.appendChild(e.firstChild);o.removeChild(e)}t.insertBefore(o,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},TRANSITION$1="transition",ANIMATION="animation",vtcKey=Symbol("_vtc"),Transition=(e,{slots:t})=>h(BaseTransition,resolveTransitionProps(e),t);Transition.displayName="Transition";const DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=Transition.props=extend({},BaseTransitionPropsValidators,DOMTransitionPropsValidators),callHook=(e,t=[])=>{isArray(e)?e.forEach((e=>e(...t))):e&&e(...t)},hasExplicitCallback=e=>!!e&&(isArray(e)?e.some((e=>e.length>1)):e.length>1);function resolveTransitionProps(e){const t={};for(const n in e)n in DOMTransitionPropsValidators||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:c=s,appearActiveClass:l=i,appearToClass:p=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:u=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,f=normalizeDuration(o),m=f&&f[0],g=f&&f[1],{onBeforeEnter:y,onEnter:v,onEnterCancelled:S,onLeave:E,onLeaveCancelled:C,onBeforeAppear:b=y,onAppear:T=v,onAppearCancelled:x=S}=t,_=(e,t,n)=>{removeTransitionClass(e,t?p:a),removeTransitionClass(e,t?l:i),n&&n()},w=(e,t)=>{e._isLeaving=!1,removeTransitionClass(e,d),removeTransitionClass(e,h),removeTransitionClass(e,u),t&&t()},R=e=>(t,n)=>{const o=e?T:v,i=()=>_(t,e,n);callHook(o,[t,i]),nextFrame((()=>{removeTransitionClass(t,e?c:s),addTransitionClass(t,e?p:a),hasExplicitCallback(o)||whenTransitionEnds(t,r,m,i)}))};return extend(t,{onBeforeEnter(e){callHook(y,[e]),addTransitionClass(e,s),addTransitionClass(e,i)},onBeforeAppear(e){callHook(b,[e]),addTransitionClass(e,c),addTransitionClass(e,l)},onEnter:R(!1),onAppear:R(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>w(e,t);addTransitionClass(e,d),addTransitionClass(e,u),forceReflow(),nextFrame((()=>{e._isLeaving&&(removeTransitionClass(e,d),addTransitionClass(e,h),hasExplicitCallback(E)||whenTransitionEnds(e,r,g,n))})),callHook(E,[e,n])},onEnterCancelled(e){_(e,!1),callHook(S,[e])},onAppearCancelled(e){_(e,!0),callHook(x,[e])},onLeaveCancelled(e){w(e),callHook(C,[e])}})}function normalizeDuration(e){if(null==e)return null;if(isObject(e))return[NumberOf(e.enter),NumberOf(e.leave)];{const t=NumberOf(e);return[t,t]}}function NumberOf(e){const t=toNumber(e);return assertNumber(t,"<transition> explicit duration"),t}function addTransitionClass(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e[vtcKey]||(e[vtcKey]=new Set)).add(t)}function removeTransitionClass(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const n=e[vtcKey];n&&(n.delete(t),n.size||(e[vtcKey]=void 0))}function nextFrame(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let endId=0;function whenTransitionEnds(e,t,n,r){const o=e._endId=++endId,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:a,propCount:c}=getTransitionInfo(e,t);if(!i)return r();const l=i+"end";let p=0;const d=()=>{e.removeEventListener(l,u),s()},u=t=>{t.target===e&&++p>=c&&d()};setTimeout((()=>{p<c&&d()}),a+1),e.addEventListener(l,u)}function getTransitionInfo(e,t){const n=window.getComputedStyle(e),r=e=>(n[e]||"").split(", "),o=r("transitionDelay"),s=r("transitionDuration"),i=getTimeout(o,s),a=r("animationDelay"),c=r("animationDuration"),l=getTimeout(a,c);let p=null,d=0,u=0;"transition"===t?i>0&&(p="transition",d=i,u=s.length):t===ANIMATION?l>0&&(p=ANIMATION,d=l,u=c.length):(d=Math.max(i,l),p=d>0?i>l?"transition":ANIMATION:null,u=p?"transition"===p?s.length:c.length:0);return{type:p,timeout:d,propCount:u,hasTransform:"transition"===p&&/\b(transform|all)(,|$)/.test(r("transitionProperty").toString())}}function getTimeout(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>toMs(t)+toMs(e[n]))))}function toMs(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function forceReflow(){return document.body.offsetHeight}function patchClass(e,t,n){const r=e[vtcKey];r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const vShowOriginalDisplay=Symbol("_vod"),vShowHidden=Symbol("_vsh"),vShow={beforeMount(e,{value:t},{transition:n}){e[vShowOriginalDisplay]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):setDisplay(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),setDisplay(e,!0),r.enter(e)):r.leave(e,(()=>{setDisplay(e,!1)})):setDisplay(e,t))},beforeUnmount(e,{value:t}){setDisplay(e,t)}};function setDisplay(e,t){e.style.display=t?e[vShowOriginalDisplay]:"none",e[vShowHidden]=!t}vShow.name="show";const CSS_VAR_TEXT=Symbol("CSS_VAR_TEXT");function useCssVars(e){const t=getCurrentInstance();if(!t)return void warn("useCssVars is called without current active component instance.");const n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach((e=>setVarsOnNode(e,n)))};t.getCssVars=()=>e(t.proxy);const r=()=>{const r=e(t.proxy);setVarsOnVNode(t.subTree,r),n(r)};onMounted((()=>{watchPostEffect(r);const e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),onUnmounted((()=>e.disconnect()))}))}function setVarsOnVNode(e,t){if(128&e.shapeFlag){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push((()=>{setVarsOnVNode(n.activeBranch,t)}))}for(;e.component;)e=e.component.subTree;if(1&e.shapeFlag&&e.el)setVarsOnNode(e.el,t);else if(e.type===Fragment)e.children.forEach((e=>setVarsOnVNode(e,t)));else if(e.type===Static){let{el:n,anchor:r}=e;for(;n&&(setVarsOnNode(n,t),n!==r);)n=n.nextSibling}}function setVarsOnNode(e,t){if(1===e.nodeType){const n=e.style;let r="";for(const e in t)n.setProperty(`--${e}`,t[e]),r+=`--${e}: ${t[e]};`;n[CSS_VAR_TEXT]=r}}const displayRE=/(^|;)\s*display\s*:/;function patchStyle(e,t,n){const r=e.style,o=isString(n);let s=!1;if(n&&!o){if(t)if(isString(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&setStyle(r,t,"")}else for(const e in t)null==n[e]&&setStyle(r,e,"");for(const e in n)"display"===e&&(s=!0),setStyle(r,e,n[e])}else if(o){if(t!==n){const e=r[CSS_VAR_TEXT];e&&(n+=";"+e),r.cssText=n,s=displayRE.test(n)}}else t&&e.removeAttribute("style");vShowOriginalDisplay in e&&(e[vShowOriginalDisplay]=s?r.display:"",e[vShowHidden]&&(r.display="none"))}const semicolonRE=/[^\\];\s*$/,importantRE=/\s*!important$/;function setStyle(e,t,n){if(isArray(n))n.forEach((n=>setStyle(e,t,n)));else if(null==n&&(n=""),semicolonRE.test(n)&&warn(`Unexpected semicolon at the end of '${t}' style value: '${n}'`),t.startsWith("--"))e.setProperty(t,n);else{const r=autoPrefix(e,t);importantRE.test(n)?e.setProperty(hyphenate(r),n.replace(importantRE,""),"important"):e[r]=n}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(e,t){const n=prefixCache[t];if(n)return n;let r=camelize(t);if("filter"!==r&&r in e)return prefixCache[t]=r;r=capitalize(r);for(let n=0;n<prefixes.length;n++){const o=prefixes[n]+r;if(o in e)return prefixCache[t]=o}return t}const xlinkNS="http://www.w3.org/1999/xlink";function patchAttr(e,t,n,r,o){if(r&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(xlinkNS,t.slice(6,t.length)):e.setAttributeNS(xlinkNS,t,n);else{const r=isSpecialBooleanAttr(t);null==n||r&&!includeBooleanAttr(n)?e.removeAttribute(t):e.setAttribute(t,r?"":n)}}function patchDOMProp(e,t,n,r,o,s,i){if("innerHTML"===t||"textContent"===t)return r&&i(r,o,s),void(e[t]=null==n?"":n);const a=e.tagName;if("value"===t&&"PROGRESS"!==a&&!a.includes("-")){const r=null==n?"":n;return("OPTION"===a?e.getAttribute("value")||"":e.value)===r&&"_value"in e||(e.value=r),null==n&&e.removeAttribute(t),void(e._value=n)}let c=!1;if(""===n||null==n){const r=typeof e[t];"boolean"===r?n=includeBooleanAttr(n):null==n&&"string"===r?(n="",c=!0):"number"===r&&(n=0,c=!0)}try{e[t]=n}catch(e){c||warn(`Failed setting prop "${t}" on <${a.toLowerCase()}>: value ${n} is invalid.`,e)}c&&e.removeAttribute(t)}function addEventListener(e,t,n,r){e.addEventListener(t,n,r)}function removeEventListener(e,t,n,r){e.removeEventListener(t,n,r)}const veiKey=Symbol("_vei");function patchEvent(e,t,n,r,o=null){const s=e[veiKey]||(e[veiKey]={}),i=s[t];if(r&&i)i.value=sanitizeEventValue(r,t);else{const[n,a]=parseName(t);if(r){addEventListener(e,n,s[t]=createInvoker(sanitizeEventValue(r,t),o),a)}else i&&(removeEventListener(e,n,i,a),s[t]=void 0)}}const optionsModifierRE=/(?:Once|Passive|Capture)$/;function parseName(e){let t;if(optionsModifierRE.test(e)){let n;for(t={};n=e.match(optionsModifierRE);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):hyphenate(e.slice(2)),t]}let cachedNow=0;const p=Promise.resolve(),getNow=()=>cachedNow||(p.then((()=>cachedNow=0)),cachedNow=Date.now());function createInvoker(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();callWithAsyncErrorHandling(patchStopImmediatePropagation(e,n.value),t,5,[e])};return n.value=e,n.attached=cachedNow||(p.then((()=>cachedNow=0)),cachedNow=Date.now()),n}function sanitizeEventValue(e,t){return isFunction(e)||isArray(e)?e:(warn(`Wrong type passed as event handler to ${t} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof e}.`),NOOP)}function patchStopImmediatePropagation(e,t){if(isArray(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}const isNativeOn=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,patchProp=(e,t,n,r,o,s,i,a,c)=>{const l="svg"===o;"class"===t?patchClass(e,r,l):"style"===t?patchStyle(e,n,r):isOn(t)?isModelListener(t)||patchEvent(e,t,n,r,i):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):shouldSetAsProp(e,t,r,l))?patchDOMProp(e,t,r,s,i,a,c):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),patchAttr(e,t,r,l))};function shouldSetAsProp(e,t,n,r){if(r)return"innerHTML"===t||"textContent"===t||!!(t in e&&isNativeOn(t)&&isFunction(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!isNativeOn(t)||!isString(n))&&t in e}
/*! #__NO_SIDE_EFFECTS__ */function defineCustomElement(e,t){const n=defineComponent(e);class r extends VueElement{constructor(e){super(n,e,t)}}return r.def=n,r}
/*! #__NO_SIDE_EFFECTS__ */const defineSSRCustomElement=e=>defineCustomElement(e,hydrate),BaseClass="undefined"!=typeof HTMLElement?HTMLElement:class{};class VueElement extends BaseClass{constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this._ob=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):(this.shadowRoot&&warn("Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use `defineSSRCustomElement`."),this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,this._ob&&(this._ob.disconnect(),this._ob=null),nextTick((()=>{this._connected||(render(null,this.shadowRoot),this._instance=null)}))}_resolveDef(){this._resolved=!0;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver((e=>{for(const t of e)this._setAttr(t.attributeName)})),this._ob.observe(this,{attributes:!0});const e=(e,t=!1)=>{const{props:n,styles:r}=e;let o;if(n&&!isArray(n))for(const e in n){const t=n[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=toNumber(this._props[e])),(o||(o=Object.create(null)))[camelize(e)]=!0)}this._numberProps=o,t&&this._resolveProps(e),this._applyStyles(r),this._update()},t=this._def.__asyncLoader;t?t().then((t=>e(t,!0))):e(this._def)}_resolveProps(e){const{props:t}=e,n=isArray(t)?t:Object.keys(t||{});for(const e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e],!0,!1);for(const e of n.map(camelize))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t)}})}_setAttr(e){let t=this.hasAttribute(e)?this.getAttribute(e):void 0;const n=camelize(e);this._numberProps&&this._numberProps[n]&&(t=toNumber(t)),this._setProp(n,t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!0){t!==this._props[e]&&(this._props[e]=t,r&&this._instance&&this._update(),n&&(!0===t?this.setAttribute(hyphenate(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(hyphenate(e),t+""):t||this.removeAttribute(hyphenate(e))))}_update(){render(this._createVNode(),this.shadowRoot)}_createVNode(){const e=createVNode(this._def,extend({},this._props));return this._instance||(e.ce=e=>{this._instance=e,e.isCE=!0,e.ceReload=e=>{this._styles&&(this._styles.forEach((e=>this.shadowRoot.removeChild(e))),this._styles.length=0),this._applyStyles(e),this._instance=null,this._update()};const t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};e.emit=(e,...n)=>{t(e,n),hyphenate(e)!==e&&t(hyphenate(e),n)};let n=this;for(;n=n&&(n.parentNode||n.host);)if(n instanceof VueElement){e.parent=n._instance,e.provides=n._instance.provides;break}}),e}_applyStyles(e){e&&e.forEach((e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t),(this._styles||(this._styles=[])).push(t)}))}}function useCssModule(e="$style"){{const t=getCurrentInstance();if(!t)return warn("useCssModule must be called inside setup()"),EMPTY_OBJ;const n=t.type.__cssModules;if(!n)return warn("Current instance does not have CSS modules injected."),EMPTY_OBJ;const r=n[e];return r||(warn(`Current instance does not have CSS module named "${e}".`),EMPTY_OBJ)}}const positionMap=new WeakMap,newPositionMap=new WeakMap,moveCbKey=Symbol("_moveCb"),enterCbKey=Symbol("_enterCb"),TransitionGroupImpl={name:"TransitionGroup",props:extend({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=getCurrentInstance(),r=useTransitionState();let o,s;return onUpdated((()=>{if(!o.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!hasCSSTransform(o[0].el,n.vnode.el,t))return;o.forEach(callPendingCbs),o.forEach(recordPosition);const r=o.filter(applyTranslation);forceReflow(),r.forEach((e=>{const n=e.el,r=n.style;addTransitionClass(n,t),r.transform=r.webkitTransform=r.transitionDuration="";const o=n[moveCbKey]=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",o),n[moveCbKey]=null,removeTransitionClass(n,t))};n.addEventListener("transitionend",o)}))})),()=>{const i=toRaw(e),a=resolveTransitionProps(i);let c=i.tag||Fragment;if(o=[],s)for(let e=0;e<s.length;e++){const t=s[e];t.el&&t.el instanceof Element&&(o.push(t),setTransitionHooks(t,resolveTransitionHooks(t,a,r,n)),positionMap.set(t,t.el.getBoundingClientRect()))}s=t.default?getTransitionRawChildren(t.default()):[];for(let e=0;e<s.length;e++){const t=s[e];null!=t.key?setTransitionHooks(t,resolveTransitionHooks(t,a,r,n)):warn("<TransitionGroup> children must be keyed.")}return createVNode(c,null,s)}}},removeMode=e=>delete e.mode,TransitionGroup=TransitionGroupImpl;function callPendingCbs(e){const t=e.el;t[moveCbKey]&&t[moveCbKey](),t[enterCbKey]&&t[enterCbKey]()}function recordPosition(e){newPositionMap.set(e,e.el.getBoundingClientRect())}function applyTranslation(e){const t=positionMap.get(e),n=newPositionMap.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const t=e.el.style;return t.transform=t.webkitTransform=`translate(${r}px,${o}px)`,t.transitionDuration="0s",e}}function hasCSSTransform(e,t,n){const r=e.cloneNode(),o=e[vtcKey];o&&o.forEach((e=>{e.split(/\s+/).forEach((e=>e&&r.classList.remove(e)))})),n.split(/\s+/).forEach((e=>e&&r.classList.add(e))),r.style.display="none";const s=1===t.nodeType?t:t.parentNode;s.appendChild(r);const{hasTransform:i}=getTransitionInfo(r);return s.removeChild(r),i}const getModelAssigner=e=>{const t=e.props["onUpdate:modelValue"]||!1;return isArray(t)?e=>invokeArrayFns(t,e):t};function onCompositionStart(e){e.target.composing=!0}function onCompositionEnd(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const assignKey=Symbol("_assign"),vModelText={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e[assignKey]=getModelAssigner(o);const s=r||o.props&&"number"===o.props.type;addEventListener(e,t?"change":"input",(t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),s&&(r=looseToNumber(r)),e[assignKey](r)})),n&&addEventListener(e,"change",(()=>{e.value=e.value.trim()})),t||(addEventListener(e,"compositionstart",onCompositionStart),addEventListener(e,"compositionend",onCompositionEnd),addEventListener(e,"change",onCompositionEnd))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:o}},s){if(e[assignKey]=getModelAssigner(s),e.composing)return;const i=null==t?"":t;if((!o&&"number"!==e.type||/^0\d/.test(e.value)?e.value:looseToNumber(e.value))!==i){if(document.activeElement===e&&"range"!==e.type){if(n)return;if(r&&e.value.trim()===i)return}e.value=i}}},vModelCheckbox={deep:!0,created(e,t,n){e[assignKey]=getModelAssigner(n),addEventListener(e,"change",(()=>{const t=e._modelValue,n=getValue(e),r=e.checked,o=e[assignKey];if(isArray(t)){const e=looseIndexOf(t,n),s=-1!==e;if(r&&!s)o(t.concat(n));else if(!r&&s){const n=[...t];n.splice(e,1),o(n)}}else if(isSet(t)){const e=new Set(t);r?e.add(n):e.delete(n),o(e)}else o(getCheckboxValue(e,r))}))},mounted:setChecked,beforeUpdate(e,t,n){e[assignKey]=getModelAssigner(n),setChecked(e,t,n)}};function setChecked(e,{value:t,oldValue:n},r){e._modelValue=t,isArray(t)?e.checked=looseIndexOf(t,r.props.value)>-1:isSet(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=looseEqual(t,getCheckboxValue(e,!0)))}const vModelRadio={created(e,{value:t},n){e.checked=looseEqual(t,n.props.value),e[assignKey]=getModelAssigner(n),addEventListener(e,"change",(()=>{e[assignKey](getValue(e))}))},beforeUpdate(e,{value:t,oldValue:n},r){e[assignKey]=getModelAssigner(r),t!==n&&(e.checked=looseEqual(t,r.props.value))}},vModelSelect={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const o=isSet(t);addEventListener(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?looseToNumber(getValue(e)):getValue(e)));e[assignKey](e.multiple?o?new Set(t):t:t[0]),e._assigning=!0,nextTick((()=>{e._assigning=!1}))})),e[assignKey]=getModelAssigner(r)},mounted(e,{value:t,modifiers:{number:n}}){setSelected(e,t)},beforeUpdate(e,t,n){e[assignKey]=getModelAssigner(n)},updated(e,{value:t,modifiers:{number:n}}){e._assigning||setSelected(e,t)}};function setSelected(e,t,n){const r=e.multiple,o=isArray(t);if(!r||o||isSet(t)){for(let n=0,s=e.options.length;n<s;n++){const s=e.options[n],i=getValue(s);if(r)if(o){const e=typeof i;s.selected="string"===e||"number"===e?t.some((e=>String(e)===String(i))):looseIndexOf(t,i)>-1}else s.selected=t.has(i);else if(looseEqual(getValue(s),t))return void(e.selectedIndex!==n&&(e.selectedIndex=n))}r||-1===e.selectedIndex||(e.selectedIndex=-1)}else warn(`<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(t).slice(8,-1)}.`)}function getValue(e){return"_value"in e?e._value:e.value}function getCheckboxValue(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const vModelDynamic={created(e,t,n){callModelHook(e,t,n,null,"created")},mounted(e,t,n){callModelHook(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){callModelHook(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){callModelHook(e,t,n,r,"updated")}};function resolveDynamicModel(e,t){switch(e){case"SELECT":return vModelSelect;case"TEXTAREA":return vModelText;default:switch(t){case"checkbox":return vModelCheckbox;case"radio":return vModelRadio;default:return vModelText}}}function callModelHook(e,t,n,r,o){const s=resolveDynamicModel(e.tagName,n.props&&n.props.type)[o];s&&s(e,t,n,r)}const systemModifiers=["ctrl","shift","alt","meta"],modifierGuards={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&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>systemModifiers.some((n=>e[`${n}Key`]&&!t.includes(n)))},withModifiers=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;e<t.length;e++){const r=modifierGuards[t[e]];if(r&&r(n,t))return}return e(n,...r)})},keyNames={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},withKeys=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;const r=hyphenate(n.key);return t.some((e=>e===r||keyNames[e]===r))?e(n):void 0})},rendererOptions=extend({patchProp:patchProp},nodeOps);let renderer,enabledHydration=!1;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}function ensureHydrationRenderer(){return renderer=enabledHydration?renderer:createHydrationRenderer(rendererOptions),enabledHydration=!0,renderer}const render=(...e)=>{ensureRenderer().render(...e)},hydrate=(...e)=>{ensureHydrationRenderer().hydrate(...e)},createApp=(...e)=>{const t=ensureRenderer().createApp(...e);injectNativeTagCheck(t),injectCompilerOptionsCheck(t);const{mount:n}=t;return t.mount=e=>{const r=normalizeContainer(e);if(!r)return;const o=t._component;isFunction(o)||o.render||o.template||(o.template=r.innerHTML),r.innerHTML="";const s=n(r,!1,resolveRootNamespace(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t},createSSRApp=(...e)=>{const t=ensureHydrationRenderer().createApp(...e);injectNativeTagCheck(t),injectCompilerOptionsCheck(t);const{mount:n}=t;return t.mount=e=>{const t=normalizeContainer(e);if(t)return n(t,!0,resolveRootNamespace(t))},t};function resolveRootNamespace(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function injectNativeTagCheck(e){Object.defineProperty(e.config,"isNativeTag",{value:e=>isHTMLTag(e)||isSVGTag(e)||isMathMLTag(e),writable:!1})}function injectCompilerOptionsCheck(e){if(isRuntimeOnly()){const t=e.config.isCustomElement;Object.defineProperty(e.config,"isCustomElement",{get:()=>t,set(){warn("The `isCustomElement` config option is deprecated. Use `compilerOptions.isCustomElement` instead.")}});const n=e.config.compilerOptions,r='The `compilerOptions` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, `compilerOptions` must be passed to `@vue/compiler-dom` in the build setup instead.\n- For vue-loader: pass it via vue-loader\'s `compilerOptions` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc';Object.defineProperty(e.config,"compilerOptions",{get:()=>(warn(r),n),set(){warn(r)}})}}function normalizeContainer(e){if(isString(e)){const t=document.querySelector(e);return t||warn(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&"closed"===e.mode&&warn('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}const initDirectivesForSSR=NOOP;var runtimeDom=Object.freeze({__proto__:null,BaseTransition:BaseTransition,BaseTransitionPropsValidators:BaseTransitionPropsValidators,Comment:Comment,DeprecationTypes:null,EffectScope:EffectScope,ErrorCodes:ErrorCodes,ErrorTypeStrings:ErrorTypeStrings,Fragment:Fragment,KeepAlive:KeepAlive,ReactiveEffect:ReactiveEffect,Static:Static,Suspense:Suspense,Teleport:Teleport,Text:Text,TrackOpTypes:TrackOpTypes,Transition:Transition,TransitionGroup:TransitionGroup,TriggerOpTypes:TriggerOpTypes,VueElement:VueElement,assertNumber:assertNumber,callWithAsyncErrorHandling:callWithAsyncErrorHandling,callWithErrorHandling:callWithErrorHandling,camelize:camelize,capitalize:capitalize,cloneVNode:cloneVNode,compatUtils:null,computed:computed,createApp:createApp,createBlock:createBlock,createCommentVNode:createCommentVNode,createElementBlock:createElementBlock,createElementVNode:createBaseVNode,createHydrationRenderer:createHydrationRenderer,createPropsRestProxy:createPropsRestProxy,createRenderer:createRenderer,createSSRApp:createSSRApp,createSlots:createSlots,createStaticVNode:createStaticVNode,createTextVNode:createTextVNode,createVNode:createVNode,customRef:customRef,defineAsyncComponent:defineAsyncComponent,defineComponent:defineComponent,defineCustomElement:defineCustomElement,defineEmits:defineEmits,defineExpose:defineExpose,defineModel:defineModel,defineOptions:defineOptions,defineProps:defineProps,defineSSRCustomElement:defineSSRCustomElement,defineSlots:defineSlots,devtools:devtools,effect:effect,effectScope:effectScope,getCurrentInstance:getCurrentInstance,getCurrentScope:getCurrentScope,getTransitionRawChildren:getTransitionRawChildren,guardReactiveProps:guardReactiveProps,h:h,handleError:handleError,hasInjectionContext:hasInjectionContext,hydrate:hydrate,initCustomFormatter:initCustomFormatter,initDirectivesForSSR:initDirectivesForSSR,inject:inject,isMemoSame:isMemoSame,isProxy:isProxy,isReactive:isReactive,isReadonly:isReadonly,isRef:isRef,isRuntimeOnly:isRuntimeOnly,isShallow:isShallow,isVNode:isVNode,markRaw:markRaw,mergeDefaults:mergeDefaults,mergeModels:mergeModels,mergeProps:mergeProps,nextTick:nextTick,normalizeClass:normalizeClass,normalizeProps:normalizeProps,normalizeStyle:normalizeStyle,onActivated:onActivated,onBeforeMount:onBeforeMount,onBeforeUnmount:onBeforeUnmount,onBeforeUpdate:onBeforeUpdate,onDeactivated:onDeactivated,onErrorCaptured:onErrorCaptured,onMounted:onMounted,onRenderTracked:onRenderTracked,onRenderTriggered:onRenderTriggered,onScopeDispose:onScopeDispose,onServerPrefetch:onServerPrefetch,onUnmounted:onUnmounted,onUpdated:onUpdated,openBlock:openBlock,popScopeId:popScopeId,provide:provide,proxyRefs:proxyRefs,pushScopeId:pushScopeId,queuePostFlushCb:queuePostFlushCb,reactive:reactive,readonly:readonly,ref:ref,registerRuntimeCompiler:registerRuntimeCompiler,render:render,renderList:renderList,renderSlot:renderSlot,resolveComponent:resolveComponent,resolveDirective:resolveDirective,resolveDynamicComponent:resolveDynamicComponent,resolveFilter:null,resolveTransitionHooks:resolveTransitionHooks,setBlockTracking:setBlockTracking,setDevtoolsHook:setDevtoolsHook,setTransitionHooks:setTransitionHooks,shallowReactive:shallowReactive,shallowReadonly:shallowReadonly,shallowRef:shallowRef,ssrContextKey:ssrContextKey,ssrUtils:null,stop:stop,toDisplayString:toDisplayString,toHandlerKey:toHandlerKey,toHandlers:toHandlers,toRaw:toRaw,toRef:toRef,toRefs:toRefs,toValue:toValue,transformVNodeArgs:transformVNodeArgs,triggerRef:triggerRef,unref:unref,useAttrs:useAttrs,useCssModule:useCssModule,useCssVars:useCssVars,useModel:useModel,useSSRContext:useSSRContext,useSlots:useSlots,useTransitionState:useTransitionState,vModelCheckbox:vModelCheckbox,vModelDynamic:vModelDynamic,vModelRadio:vModelRadio,vModelSelect:vModelSelect,vModelText:vModelText,vShow:vShow,version:version,warn:warn,watch:watch,watchEffect:watchEffect,watchPostEffect:watchPostEffect,watchSyncEffect:watchSyncEffect,withAsyncContext:withAsyncContext,withCtx:withCtx,withDefaults:withDefaults,withDirectives:withDirectives,withKeys:withKeys,withMemo:withMemo,withModifiers:withModifiers,withScopeId:withScopeId});function initDev(){initCustomFormatter()}const FRAGMENT=Symbol("Fragment"),TELEPORT=Symbol("Teleport"),SUSPENSE=Symbol("Suspense"),KEEP_ALIVE=Symbol("KeepAlive"),BASE_TRANSITION=Symbol("BaseTransition"),OPEN_BLOCK=Symbol("openBlock"),CREATE_BLOCK=Symbol("createBlock"),CREATE_ELEMENT_BLOCK=Symbol("createElementBlock"),CREATE_VNODE=Symbol("createVNode"),CREATE_ELEMENT_VNODE=Symbol("createElementVNode"),CREATE_COMMENT=Symbol("createCommentVNode"),CREATE_TEXT=Symbol("createTextVNode"),CREATE_STATIC=Symbol("createStaticVNode"),RESOLVE_COMPONENT=Symbol("resolveComponent"),RESOLVE_DYNAMIC_COMPONENT=Symbol("resolveDynamicComponent"),RESOLVE_DIRECTIVE=Symbol("resolveDirective"),RESOLVE_FILTER=Symbol("resolveFilter"),WITH_DIRECTIVES=Symbol("withDirectives"),RENDER_LIST=Symbol("renderList"),RENDER_SLOT=Symbol("renderSlot"),CREATE_SLOTS=Symbol("createSlots"),TO_DISPLAY_STRING=Symbol("toDisplayString"),MERGE_PROPS=Symbol("mergeProps"),NORMALIZE_CLASS=Symbol("normalizeClass"),NORMALIZE_STYLE=Symbol("normalizeStyle"),NORMALIZE_PROPS=Symbol("normalizeProps"),GUARD_REACTIVE_PROPS=Symbol("guardReactiveProps"),TO_HANDLERS=Symbol("toHandlers"),CAMELIZE=Symbol("camelize"),CAPITALIZE=Symbol("capitalize"),TO_HANDLER_KEY=Symbol("toHandlerKey"),SET_BLOCK_TRACKING=Symbol("setBlockTracking"),PUSH_SCOPE_ID=Symbol("pushScopeId"),POP_SCOPE_ID=Symbol("popScopeId"),WITH_CTX=Symbol("withCtx"),UNREF=Symbol("unref"),IS_REF=Symbol("isRef"),WITH_MEMO=Symbol("withMemo"),IS_MEMO_SAME=Symbol("isMemoSame"),helperNameMap={[FRAGMENT]:"Fragment",[TELEPORT]:"Teleport",[SUSPENSE]:"Suspense",[KEEP_ALIVE]:"KeepAlive",[BASE_TRANSITION]:"BaseTransition",[OPEN_BLOCK]:"openBlock",[CREATE_BLOCK]:"createBlock",[CREATE_ELEMENT_BLOCK]:"createElementBlock",[CREATE_VNODE]:"createVNode",[CREATE_ELEMENT_VNODE]:"createElementVNode",[CREATE_COMMENT]:"createCommentVNode",[CREATE_TEXT]:"createTextVNode",[CREATE_STATIC]:"createStaticVNode",[RESOLVE_COMPONENT]:"resolveComponent",[RESOLVE_DYNAMIC_COMPONENT]:"resolveDynamicComponent",[RESOLVE_DIRECTIVE]:"resolveDirective",[RESOLVE_FILTER]:"resolveFilter",[WITH_DIRECTIVES]:"withDirectives",[RENDER_LIST]:"renderList",[RENDER_SLOT]:"renderSlot",[CREATE_SLOTS]:"createSlots",[TO_DISPLAY_STRING]:"toDisplayString",[MERGE_PROPS]:"mergeProps",[NORMALIZE_CLASS]:"normalizeClass",[NORMALIZE_STYLE]:"normalizeStyle",[NORMALIZE_PROPS]:"normalizeProps",[GUARD_REACTIVE_PROPS]:"guardReactiveProps",[TO_HANDLERS]:"toHandlers",[CAMELIZE]:"camelize",[CAPITALIZE]:"capitalize",[TO_HANDLER_KEY]:"toHandlerKey",[SET_BLOCK_TRACKING]:"setBlockTracking",[PUSH_SCOPE_ID]:"pushScopeId",[POP_SCOPE_ID]:"popScopeId",[WITH_CTX]:"withCtx",[UNREF]:"unref",[IS_REF]:"isRef",[WITH_MEMO]:"withMemo",[IS_MEMO_SAME]:"isMemoSame"};function registerRuntimeHelpers(e){Object.getOwnPropertySymbols(e).forEach((t=>{helperNameMap[t]=e[t]}))}const locStub={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function createRoot(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:locStub}}function createVNodeCall(e,t,n,r,o,s,i,a=!1,c=!1,l=!1,p=locStub){return e&&(a?(e.helper(OPEN_BLOCK),e.helper(getVNodeBlockHelper(e.inSSR,l))):e.helper(getVNodeHelper(e.inSSR,l)),i&&e.helper(WITH_DIRECTIVES)),{type:13,tag:t,props:n,children:r,patchFlag:o,dynamicProps:s,directives:i,isBlock:a,disableTracking:c,isComponent:l,loc:p}}function createArrayExpression(e,t=locStub){return{type:17,loc:t,elements:e}}function createObjectExpression(e,t=locStub){return{type:15,loc:t,properties:e}}function createObjectProperty(e,t){return{type:16,loc:locStub,key:isString(e)?createSimpleExpression(e,!0):e,value:t}}function createSimpleExpression(e,t=!1,n=locStub,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function createCompoundExpression(e,t=locStub){return{type:8,loc:t,children:e}}function createCallExpression(e,t=[],n=locStub){return{type:14,loc:n,callee:e,arguments:t}}function createFunctionExpression(e,t,n=!1,r=!1,o=locStub){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:o}}function createConditionalExpression(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:locStub}}function createCacheExpression(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:locStub}}function createBlockStatement(e){return{type:21,body:e,loc:locStub}}function getVNodeHelper(e,t){return e||t?CREATE_VNODE:CREATE_ELEMENT_VNODE}function getVNodeBlockHelper(e,t){return e||t?CREATE_BLOCK:CREATE_ELEMENT_BLOCK}function convertToBlock(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(getVNodeHelper(r,e.isComponent)),t(OPEN_BLOCK),t(getVNodeBlockHelper(r,e.isComponent)))}const defaultDelimitersOpen=new Uint8Array([123,123]),defaultDelimitersClose=new Uint8Array([125,125]);function isTagStartChar(e){return e>=97&&e<=122||e>=65&&e<=90}function isWhitespace(e){return 32===e||10===e||9===e||12===e||13===e}function isEndOfTagSection(e){return 47===e||62===e||isWhitespace(e)}function toCharCodes(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}const Sequences={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])};class Tokenizer{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=defaultDelimitersOpen,this.delimiterClose=defaultDelimitersClose,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=defaultDelimitersOpen,this.delimiterClose=defaultDelimitersClose}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){const o=this.newlines[r];if(e>o){t=r+2,n=e-o;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){const t=this.sequenceIndex===this.currentSequence.length;if(t?isEndOfTagSection(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||isWhitespace(e)){const t=this.index-this.currentSequence.length;if(this.sectionStart<t){const e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}return this.sectionStart=t+2,this.stateInClosingTagName(e),void(this.inRCDATA=!1)}this.sequenceIndex=0}(32|e)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:0===this.sequenceIndex?this.currentSequence===Sequences.TitleEnd||this.currentSequence===Sequences.TextareaEnd&&!this.inSFCRoot?e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.fastForwardTo(60)&&(this.sequenceIndex=1):this.sequenceIndex=Number(60===e)}stateCDATASequence(e){e===Sequences.Cdata[this.sequenceIndex]?++this.sequenceIndex===Sequences.Cdata.length&&(this.state=28,this.currentSequence=Sequences.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){const t=this.buffer.charCodeAt(this.index);if(10===t&&this.newlines.push(this.index),t===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):0===this.sequenceIndex?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,t){this.enterRCDATA(e,t),this.state=31}enterRCDATA(e,t){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=t}stateBeforeTagName(e){33===e?(this.state=22,this.sectionStart=this.index+1):63===e?(this.state=24,this.sectionStart=this.index+1):isTagStartChar(e)?(this.sectionStart=this.index,0===this.mode?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:this.state=116===e?30:115===e?29:6):47===e?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){isEndOfTagSection(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(isEndOfTagSection(e)){const t=this.buffer.slice(this.sectionStart,this.index);"template"!==t&&this.enterRCDATA(toCharCodes("</"+t),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){isWhitespace(e)||(62===e?(this.cbs.onerr(14,this.index),this.state=1,this.sectionStart=this.index+1):(this.state=isTagStartChar(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(62===e||isWhitespace(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){62===e&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){62===e?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):47===e?(this.state=7,62!==this.peek()&&this.cbs.onerr(22,this.index)):60===e&&47===this.peek()?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):isWhitespace(e)||(61===e&&this.cbs.onerr(19,this.index),this.handleAttrStart(e))}handleAttrStart(e){118===e&&45===this.peek()?(this.state=13,this.sectionStart=this.index):46===e||58===e||64===e||35===e?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){62===e?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):isWhitespace(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){61===e||isEndOfTagSection(e)?(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):34!==e&&39!==e&&60!==e||this.cbs.onerr(17,this.index)}stateInDirName(e){61===e||isEndOfTagSection(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):58===e?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):46===e&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){61===e||isEndOfTagSection(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):91===e?this.state=15:46===e&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){93===e?this.state=14:(61===e||isEndOfTagSection(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e),this.cbs.onerr(27,this.index))}stateInDirModifier(e){61===e||isEndOfTagSection(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):46===e&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){61===e?this.state=18:47===e||62===e?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):isWhitespace(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){34===e?(this.state=19,this.sectionStart=this.index+1):39===e?(this.state=20,this.sectionStart=this.index+1):isWhitespace(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,t){(e===t||this.fastForwardTo(t))&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(34===t?3:2,this.index+1),this.state=11)}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){isWhitespace(e)||62===e?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):34!==e&&39!==e&&60!==e&&61!==e&&96!==e||this.cbs.onerr(18,this.index)}stateBeforeDeclaration(e){91===e?(this.state=26,this.sequenceIndex=0):this.state=45===e?25:23}stateInDeclaration(e){(62===e||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(62===e||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){45===e?(this.state=28,this.currentSequence=Sequences.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(62===e||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===Sequences.ScriptEnd[3]?this.startSpecial(Sequences.ScriptEnd,4):e===Sequences.StyleEnd[3]?this.startSpecial(Sequences.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===Sequences.TitleEnd[3]?this.startSpecial(Sequences.TitleEnd,4):e===Sequences.TextareaEnd[3]?this.startSpecial(Sequences.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){}stateInEntity(){}parse(e){for(this.buffer=e;this.index<this.buffer.length;){const e=this.buffer.charCodeAt(this.index);switch(10===e&&this.newlines.push(this.index),this.state){case 1:this.stateText(e);break;case 2:this.stateInterpolationOpen(e);break;case 3:this.stateInterpolation(e);break;case 4:this.stateInterpolationClose(e);break;case 31:this.stateSpecialStartSequence(e);break;case 32:this.stateInRCDATA(e);break;case 26:this.stateCDATASequence(e);break;case 19:this.stateInAttrValueDoubleQuotes(e);break;case 12:this.stateInAttrName(e);break;case 13:this.stateInDirName(e);break;case 14:this.stateInDirArg(e);break;case 15:this.stateInDynamicDirArg(e);break;case 16:this.stateInDirModifier(e);break;case 28:this.stateInCommentLike(e);break;case 27:this.stateInSpecialComment(e);break;case 11:this.stateBeforeAttrName(e);break;case 6:this.stateInTagName(e);break;case 34:this.stateInSFCRootTagName(e);break;case 9:this.stateInClosingTagName(e);break;case 5:this.stateBeforeTagName(e);break;case 17:this.stateAfterAttrName(e);break;case 20:this.stateInAttrValueSingleQuotes(e);break;case 18:this.stateBeforeAttrValue(e);break;case 8:this.stateBeforeClosingTagName(e);break;case 10:this.stateAfterClosingTagName(e);break;case 29:this.stateBeforeSpecialS(e);break;case 30:this.stateBeforeSpecialT(e);break;case 21:this.stateInAttrValueNoQuotes(e);break;case 7:this.stateInSelfClosingTag(e);break;case 23:this.stateInDeclaration(e);break;case 22:this.stateBeforeDeclaration(e);break;case 25:this.stateBeforeComment(e);break;case 24:this.stateInProcessingInstruction(e);break;case 33:this.stateInEntity();break}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(1===this.state||32===this.state&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):19!==this.state&&20!==this.state&&21!==this.state||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){const e=this.buffer.length;this.sectionStart>=e||(28===this.state?this.currentSequence===Sequences.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}function defaultOnError(e){throw e}function defaultOnWarn(e){}function createCompilerError(e,t,n,r){const o=(n||errorMessages)[e]+(r||""),s=new SyntaxError(String(o));return s.code=e,s.loc=t,s}const errorMessages={0:"Illegal comment.",1:"CDATA section is allowed only in XML context.",2:"Duplicate attribute.",3:"End tag cannot have attributes.",4:"Illegal '/' in tags.",5:"Unexpected EOF in tag.",6:"Unexpected EOF in CDATA section.",7:"Unexpected EOF in comment.",8:"Unexpected EOF in script.",9:"Unexpected EOF in tag.",10:"Incorrectly closed comment.",11:"Incorrectly opened comment.",12:"Illegal tag name. Use '&lt;' to print '<'.",13:"Attribute value was expected.",14:"End tag name was expected.",15:"Whitespace was expected.",16:"Unexpected '\x3c!--' in comment.",17:"Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).",18:"Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).",19:"Attribute name cannot start with '='.",21:"'<?' is allowed only in XML context.",20:"Unexpected null character.",22:"Illegal '/' in tags.",23:"Invalid end tag.",24:"Element is missing end tag.",25:"Interpolation end sign was not found.",27:"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.",26:"Legal directive name was expected.",28:"v-if/v-else-if is missing expression.",29:"v-if/else branches must use unique keys.",30:"v-else/v-else-if has no adjacent v-if or v-else-if.",31:"v-for is missing expression.",32:"v-for has invalid expression.",33:"<template v-for> key should be placed on the <template> tag.",34:"v-bind is missing expression.",52:"v-bind with same-name shorthand only allows static argument.",35:"v-on is missing expression.",36:"Unexpected custom directive on <slot> outlet.",37:"Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.",38:"Duplicate slot names found. ",39:"Extraneous children found when component already has explicitly named default slot. These children will be ignored.",40:"v-slot can only be used on components or <template> tags.",41:"v-model is missing expression.",42:"v-model value must be a valid JavaScript member expression.",43:"v-model cannot be used on v-for or v-slot scope variables because they are not writable.",44:"v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.",45:"Error parsing JavaScript expression: ",46:"<KeepAlive> expects exactly one child component.",51:"@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.",47:'"prefixIdentifiers" option is not supported in this build of compiler.',48:"ES module mode is not supported in this build of compiler.",49:'"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.',50:'"scopeId" option is only supported in module mode.',53:""},isStaticExp=e=>4===e.type&&e.isStatic;function isCoreComponent(e){switch(e){case"Teleport":case"teleport":return TELEPORT;case"Suspense":case"suspense":return SUSPENSE;case"KeepAlive":case"keep-alive":return KEEP_ALIVE;case"BaseTransition":case"base-transition":return BASE_TRANSITION}}const nonIdentifierRE=/^\d|[^\$\w]/,isSimpleIdentifier=e=>!nonIdentifierRE.test(e),validFirstIdentCharRE=/[A-Za-z_$\xA0-\uFFFF]/,validIdentCharRE=/[\.\?\w$\xA0-\uFFFF]/,whitespaceRE=/\s+[.[]\s*|\s*[.[]\s+/g,isMemberExpressionBrowser=e=>{e=e.trim().replace(whitespaceRE,(e=>e.trim()));let t=0,n=[],r=0,o=0,s=null;for(let i=0;i<e.length;i++){const a=e.charAt(i);switch(t){case 0:if("["===a)n.push(t),t=1,r++;else if("("===a)n.push(t),t=2,o++;else if(!(0===i?validFirstIdentCharRE:validIdentCharRE).test(a))return!1;break;case 1:"'"===a||'"'===a||"`"===a?(n.push(t),t=3,s=a):"["===a?r++:"]"===a&&(--r||(t=n.pop()));break;case 2:if("'"===a||'"'===a||"`"===a)n.push(t),t=3,s=a;else if("("===a)o++;else if(")"===a){if(i===e.length-1)return!1;--o||(t=n.pop())}break;case 3:a===s&&(t=n.pop(),s=null);break}}return!r&&!o},isMemberExpression=isMemberExpressionBrowser;function assert(e,t){if(!e)throw new Error(t||"unexpected compiler condition")}function findDir(e,t,n=!1){for(let r=0;r<e.props.length;r++){const o=e.props[r];if(7===o.type&&(n||o.exp)&&(isString(t)?o.name===t:t.test(o.name)))return o}}function findProp(e,t,n=!1,r=!1){for(let o=0;o<e.props.length;o++){const s=e.props[o];if(6===s.type){if(n)continue;if(s.name===t&&(s.value||r))return s}else if("bind"===s.name&&(s.exp||r)&&isStaticArgOf(s.arg,t))return s}}function isStaticArgOf(e,t){return!(!e||!isStaticExp(e)||e.content!==t)}function hasDynamicKeyVBind(e){return e.props.some((e=>!(7!==e.type||"bind"!==e.name||e.arg&&4===e.arg.type&&e.arg.isStatic)))}function isText$1(e){return 5===e.type||2===e.type}function isVSlot(e){return 7===e.type&&"slot"===e.name}function isTemplateNode(e){return 1===e.type&&3===e.tagType}function isSlotOutlet(e){return 1===e.type&&2===e.tagType}const propsHelperSet=new Set([NORMALIZE_PROPS,GUARD_REACTIVE_PROPS]);function getUnnormalizedProps(e,t=[]){if(e&&!isString(e)&&14===e.type){const n=e.callee;if(!isString(n)&&propsHelperSet.has(n))return getUnnormalizedProps(e.arguments[0],t.concat(e))}return[e,t]}function injectProp(e,t,n){let r,o,s=13===e.type?e.props:e.arguments[2],i=[];if(s&&!isString(s)&&14===s.type){const e=getUnnormalizedProps(s);s=e[0],i=e[1],o=i[i.length-1]}if(null==s||isString(s))r=createObjectExpression([t]);else if(14===s.type){const e=s.arguments[0];isString(e)||15!==e.type?s.callee===TO_HANDLERS?r=createCallExpression(n.helper(MERGE_PROPS),[createObjectExpression([t]),s]):s.arguments.unshift(createObjectExpression([t])):hasProp(t,e)||e.properties.unshift(t),!r&&(r=s)}else 15===s.type?(hasProp(t,s)||s.properties.unshift(t),r=s):(r=createCallExpression(n.helper(MERGE_PROPS),[createObjectExpression([t]),s]),o&&o.callee===GUARD_REACTIVE_PROPS&&(o=i[i.length-2]));13===e.type?o?o.arguments[0]=r:e.props=r:o?o.arguments[0]=r:e.arguments[2]=r}function hasProp(e,t){let n=!1;if(4===e.key.type){const r=e.key.content;n=t.properties.some((e=>4===e.key.type&&e.key.content===r))}return n}function toValidAssetId(e,t){return`_${t}_${e.replace(/[^\w]/g,((t,n)=>"-"===t?"_":e.charCodeAt(n).toString()))}`}function getMemoedVNodeCall(e){return 14===e.type&&e.callee===WITH_MEMO?e.arguments[1].returns:e}const forAliasRE=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,defaultParserOptions={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:NO,isPreTag:NO,isCustomElement:NO,onError:defaultOnError,onWarn:defaultOnWarn,comments:!0,prefixIdentifiers:!1};let currentOptions=defaultParserOptions,currentRoot=null,currentInput="",currentOpenTag=null,currentProp=null,currentAttrValue="",currentAttrStartIndex=-1,currentAttrEndIndex=-1,inPre=0,inVPre=!1,currentVPreBoundary=null;const stack=[],tokenizer=new Tokenizer(stack,{onerr:emitError,ontext(e,t){onText(getSlice(e,t),e,t)},ontextentity(e,t,n){onText(e,t,n)},oninterpolation(e,t){if(inVPre)return onText(getSlice(e,t),e,t);let n=e+tokenizer.delimiterOpen.length,r=t-tokenizer.delimiterClose.length;for(;isWhitespace(currentInput.charCodeAt(n));)n++;for(;isWhitespace(currentInput.charCodeAt(r-1));)r--;let o=getSlice(n,r);o.includes("&")&&(o=currentOptions.decodeEntities(o,!1)),addNode({type:5,content:createExp(o,!1,getLoc(n,r)),loc:getLoc(e,t)})},onopentagname(e,t){const n=getSlice(e,t);currentOpenTag={type:1,tag:n,ns:currentOptions.getNamespace(n,stack[0],currentOptions.ns),tagType:0,props:[],children:[],loc:getLoc(e-1,t),codegenNode:void 0}},onopentagend(e){endOpenTag(e)},onclosetag(e,t){const n=getSlice(e,t);if(!currentOptions.isVoidTag(n)){let r=!1;for(let e=0;e<stack.length;e++){if(stack[e].tag.toLowerCase()===n.toLowerCase()){r=!0,e>0&&emitError(24,stack[0].loc.start.offset);for(let n=0;n<=e;n++){onCloseTag(stack.shift(),t,n<e)}break}}r||emitError(23,backTrack(e,60))}},onselfclosingtag(e){const t=currentOpenTag.tag;currentOpenTag.isSelfClosing=!0,endOpenTag(e),stack[0]&&stack[0].tag===t&&onCloseTag(stack.shift(),e)},onattribname(e,t){currentProp={type:6,name:getSlice(e,t),nameLoc:getLoc(e,t),value:void 0,loc:getLoc(e)}},ondirname(e,t){const n=getSlice(e,t),r="."===n||":"===n?"bind":"@"===n?"on":"#"===n?"slot":n.slice(2);if(inVPre||""!==r||emitError(26,e),inVPre||""===r)currentProp={type:6,name:n,nameLoc:getLoc(e,t),value:void 0,loc:getLoc(e)};else if(currentProp={type:7,name:r,rawName:n,exp:void 0,arg:void 0,modifiers:"."===n?["prop"]:[],loc:getLoc(e)},"pre"===r){inVPre=tokenizer.inVPre=!0,currentVPreBoundary=currentOpenTag;const e=currentOpenTag.props;for(let t=0;t<e.length;t++)7===e[t].type&&(e[t]=dirToAttr(e[t]))}},ondirarg(e,t){if(e===t)return;const n=getSlice(e,t);if(inVPre)currentProp.name+=n,setLocEnd(currentProp.nameLoc,t);else{const r="["!==n[0];currentProp.arg=createExp(r?n:n.slice(1,-1),r,getLoc(e,t),r?3:0)}},ondirmodifier(e,t){const n=getSlice(e,t);if(inVPre)currentProp.name+="."+n,setLocEnd(currentProp.nameLoc,t);else if("slot"===currentProp.name){const e=currentProp.arg;e&&(e.content+="."+n,setLocEnd(e.loc,t))}else currentProp.modifiers.push(n)},onattribdata(e,t){currentAttrValue+=getSlice(e,t),currentAttrStartIndex<0&&(currentAttrStartIndex=e),currentAttrEndIndex=t},onattribentity(e,t,n){currentAttrValue+=e,currentAttrStartIndex<0&&(currentAttrStartIndex=t),currentAttrEndIndex=n},onattribnameend(e){const t=currentProp.loc.start.offset,n=getSlice(t,e);7===currentProp.type&&(currentProp.rawName=n),currentOpenTag.props.some((e=>(7===e.type?e.rawName:e.name)===n))&&emitError(2,t)},onattribend(e,t){if(currentOpenTag&&currentProp){if(setLocEnd(currentProp.loc,t),0!==e)if(currentAttrValue.includes("&")&&(currentAttrValue=currentOptions.decodeEntities(currentAttrValue,!0)),6===currentProp.type)"class"===currentProp.name&&(currentAttrValue=condense(currentAttrValue).trim()),1!==e||currentAttrValue||emitError(13,t),currentProp.value={type:2,content:currentAttrValue,loc:1===e?getLoc(currentAttrStartIndex,currentAttrEndIndex):getLoc(currentAttrStartIndex-1,currentAttrEndIndex+1)},tokenizer.inSFCRoot&&"template"===currentOpenTag.tag&&"lang"===currentProp.name&&currentAttrValue&&"html"!==currentAttrValue&&tokenizer.enterRCDATA(toCharCodes("</template"),0);else{let e=0;currentProp.exp=createExp(currentAttrValue,!1,getLoc(currentAttrStartIndex,currentAttrEndIndex),0,e),"for"===currentProp.name&&(currentProp.forParseResult=parseForExpression(currentProp.exp))}7===currentProp.type&&"pre"===currentProp.name||currentOpenTag.props.push(currentProp)}currentAttrValue="",currentAttrStartIndex=currentAttrEndIndex=-1},oncomment(e,t){currentOptions.comments&&addNode({type:3,content:getSlice(e,t),loc:getLoc(e-4,t+3)})},onend(){const e=currentInput.length;if(1!==tokenizer.state)switch(tokenizer.state){case 5:case 8:emitError(5,e);break;case 3:case 4:emitError(25,tokenizer.sectionStart);break;case 28:tokenizer.currentSequence===Sequences.CdataEnd?emitError(6,e):emitError(7,e);break;case 6:case 7:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:emitError(9,e);break}for(let t=0;t<stack.length;t++)onCloseTag(stack[t],e-1),emitError(24,stack[t].loc.start.offset)},oncdata(e,t){0!==stack[0].ns?onText(getSlice(e,t),e,t):emitError(1,e-9)},onprocessinginstruction(e){0===(stack[0]?stack[0].ns:currentOptions.ns)&&emitError(21,e-1)}}),forIteratorRE=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,stripParensRE=/^\(|\)$/g;function parseForExpression(e){const t=e.loc,n=e.content,r=n.match(forAliasRE);if(!r)return;const[,o,s]=r,i=(e,n,r=!1)=>{const o=t.start.offset+n;return createExp(e,!1,getLoc(o,o+e.length),0,r?1:0)},a={source:i(s.trim(),n.indexOf(s,o.length)),value:void 0,key:void 0,index:void 0,finalized:!1};let c=o.trim().replace(stripParensRE,"").trim();const l=o.indexOf(c),p=c.match(forIteratorRE);if(p){c=c.replace(forIteratorRE,"").trim();const e=p[1].trim();let t;if(e&&(t=n.indexOf(e,l+c.length),a.key=i(e,t,!0)),p[2]){const r=p[2].trim();r&&(a.index=i(r,n.indexOf(r,a.key?t+e.length:l+c.length),!0))}}return c&&(a.value=i(c,l,!0)),a}function getSlice(e,t){return currentInput.slice(e,t)}function endOpenTag(e){tokenizer.inSFCRoot&&(currentOpenTag.innerLoc=getLoc(e+1,e+1)),addNode(currentOpenTag);const{tag:t,ns:n}=currentOpenTag;0===n&&currentOptions.isPreTag(t)&&inPre++,currentOptions.isVoidTag(t)?onCloseTag(currentOpenTag,e):(stack.unshift(currentOpenTag),1!==n&&2!==n||(tokenizer.inXML=!0)),currentOpenTag=null}function onText(e,t,n){{const t=stack[0]&&stack[0].tag;"script"!==t&&"style"!==t&&e.includes("&")&&(e=currentOptions.decodeEntities(e,!1))}const r=stack[0]||currentRoot,o=r.children[r.children.length-1];o&&2===o.type?(o.content+=e,setLocEnd(o.loc,n)):r.children.push({type:2,content:e,loc:getLoc(t,n)})}function onCloseTag(e,t,n=!1){setLocEnd(e.loc,n?backTrack(t,60):lookAhead(t,62)+1),tokenizer.inSFCRoot&&(e.children.length?e.innerLoc.end=extend({},e.children[e.children.length-1].loc.end):e.innerLoc.end=extend({},e.innerLoc.start),e.innerLoc.source=getSlice(e.innerLoc.start.offset,e.innerLoc.end.offset));const{tag:r,ns:o}=e;inVPre||("slot"===r?e.tagType=2:isFragmentTemplate(e)?e.tagType=3:isComponent(e)&&(e.tagType=1)),tokenizer.inRCDATA||(e.children=condenseWhitespace(e.children,e.tag)),0===o&&currentOptions.isPreTag(r)&&inPre--,currentVPreBoundary===e&&(inVPre=tokenizer.inVPre=!1,currentVPreBoundary=null),tokenizer.inXML&&0===(stack[0]?stack[0].ns:currentOptions.ns)&&(tokenizer.inXML=!1)}function lookAhead(e,t){let n=e;for(;currentInput.charCodeAt(n)!==t&&n<currentInput.length-1;)n++;return n}function backTrack(e,t){let n=e;for(;currentInput.charCodeAt(n)!==t&&n>=0;)n--;return n}const specialTemplateDir=new Set(["if","else","else-if","for","slot"]);function isFragmentTemplate({tag:e,props:t}){if("template"===e)for(let e=0;e<t.length;e++)if(7===t[e].type&&specialTemplateDir.has(t[e].name))return!0;return!1}function isComponent({tag:e,props:t}){if(currentOptions.isCustomElement(e))return!1;if("component"===e||isUpperCase(e.charCodeAt(0))||isCoreComponent(e)||currentOptions.isBuiltInComponent&&currentOptions.isBuiltInComponent(e)||currentOptions.isNativeTag&&!currentOptions.isNativeTag(e))return!0;for(let e=0;e<t.length;e++){const n=t[e];if(6===n.type&&"is"===n.name&&n.value&&n.value.content.startsWith("vue:"))return!0}return!1}function isUpperCase(e){return e>64&&e<91}const windowsNewlineRE=/\r\n/g;function condenseWhitespace(e,t){const n="preserve"!==currentOptions.whitespace;let r=!1;for(let t=0;t<e.length;t++){const o=e[t];if(2===o.type)if(inPre)o.content=o.content.replace(windowsNewlineRE,"\n");else if(isAllWhitespace(o.content)){const s=e[t-1]&&e[t-1].type,i=e[t+1]&&e[t+1].type;!s||!i||n&&(3===s&&(3===i||1===i)||1===s&&(3===i||1===i&&hasNewlineChar(o.content)))?(r=!0,e[t]=null):o.content=" "}else n&&(o.content=condense(o.content))}if(inPre&&t&&currentOptions.isPreTag(t)){const t=e[0];t&&2===t.type&&(t.content=t.content.replace(/^\r?\n/,""))}return r?e.filter(Boolean):e}function isAllWhitespace(e){for(let t=0;t<e.length;t++)if(!isWhitespace(e.charCodeAt(t)))return!1;return!0}function hasNewlineChar(e){for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(10===n||13===n)return!0}return!1}function condense(e){let t="",n=!1;for(let r=0;r<e.length;r++)isWhitespace(e.charCodeAt(r))?n||(t+=" ",n=!0):(t+=e[r],n=!1);return t}function addNode(e){(stack[0]||currentRoot).children.push(e)}function getLoc(e,t){return{start:tokenizer.getPos(e),end:null==t?t:tokenizer.getPos(t),source:null==t?t:getSlice(e,t)}}function setLocEnd(e,t){e.end=tokenizer.getPos(t),e.source=getSlice(e.start.offset,t)}function dirToAttr(e){const t={type:6,name:e.rawName,nameLoc:getLoc(e.loc.start.offset,e.loc.start.offset+e.rawName.length),value:void 0,loc:e.loc};if(e.exp){const n=e.exp.loc;n.end.offset<e.loc.end.offset&&(n.start.offset--,n.start.column--,n.end.offset++,n.end.column++),t.value={type:2,content:e.exp.content,loc:n}}return t}function createExp(e,t=!1,n,r=0,o=0){return createSimpleExpression(e,t,n,r)}function emitError(e,t,n){currentOptions.onError(createCompilerError(e,getLoc(t,t),void 0,n))}function reset(){tokenizer.reset(),currentOpenTag=null,currentProp=null,currentAttrValue="",currentAttrStartIndex=-1,currentAttrEndIndex=-1,stack.length=0}function baseParse(e,t){if(reset(),currentInput=e,currentOptions=extend({},defaultParserOptions),t){let e;for(e in t)null!=t[e]&&(currentOptions[e]=t[e])}if(!currentOptions.decodeEntities)throw new Error("[@vue/compiler-core] decodeEntities option is required in browser builds.");tokenizer.mode="html"===currentOptions.parseMode?1:"sfc"===currentOptions.parseMode?2:0,tokenizer.inXML=1===currentOptions.ns||2===currentOptions.ns;const n=t&&t.delimiters;n&&(tokenizer.delimiterOpen=toCharCodes(n[0]),tokenizer.delimiterClose=toCharCodes(n[1]));const r=currentRoot=createRoot([],e);return tokenizer.parse(currentInput),r.loc=getLoc(0,e.length),r.children=condenseWhitespace(r.children),currentRoot=null,r}function hoistStatic(e,t){walk(e,t,isSingleElementRoot(e,e.children[0]))}function isSingleElementRoot(e,t){const{children:n}=e;return 1===n.length&&1===t.type&&!isSlotOutlet(t)}function walk(e,t,n=!1){const{children:r}=e,o=r.length;let s=0;for(let e=0;e<r.length;e++){const o=r[e];if(1===o.type&&0===o.tagType){const e=n?0:getConstantType(o,t);if(e>0){if(e>=2){o.codegenNode.patchFlag="-1 /* HOISTED */",o.codegenNode=t.hoist(o.codegenNode),s++;continue}}else{const e=o.codegenNode;if(13===e.type){const n=getPatchFlag(e);if((!n||512===n||1===n)&&getGeneratedPropsConstantType(o,t)>=2){const n=getNodeProps(o);n&&(e.props=t.hoist(n))}e.dynamicProps&&(e.dynamicProps=t.hoist(e.dynamicProps))}}}if(1===o.type){const e=1===o.tagType;e&&t.scopes.vSlot++,walk(o,t),e&&t.scopes.vSlot--}else if(11===o.type)walk(o,t,1===o.children.length);else if(9===o.type)for(let e=0;e<o.branches.length;e++)walk(o.branches[e],t,1===o.branches[e].children.length)}if(s&&t.transformHoist&&t.transformHoist(r,t,e),s&&s===o&&1===e.type&&0===e.tagType&&e.codegenNode&&13===e.codegenNode.type&&isArray(e.codegenNode.children)){const n=t.hoist(createArrayExpression(e.codegenNode.children));t.hmr&&(n.content=`[...${n.content}]`),e.codegenNode.children=n}}function getConstantType(e,t){const{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;const r=n.get(e);if(void 0!==r)return r;const o=e.codegenNode;if(13!==o.type)return 0;if(o.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag)return 0;if(getPatchFlag(o))return n.set(e,0),0;{let r=3;const s=getGeneratedPropsConstantType(e,t);if(0===s)return n.set(e,0),0;s<r&&(r=s);for(let o=0;o<e.children.length;o++){const s=getConstantType(e.children[o],t);if(0===s)return n.set(e,0),0;s<r&&(r=s)}if(r>1)for(let o=0;o<e.props.length;o++){const s=e.props[o];if(7===s.type&&"bind"===s.name&&s.exp){const o=getConstantType(s.exp,t);if(0===o)return n.set(e,0),0;o<r&&(r=o)}}if(o.isBlock){for(let t=0;t<e.props.length;t++){if(7===e.props[t].type)return n.set(e,0),0}t.removeHelper(OPEN_BLOCK),t.removeHelper(getVNodeBlockHelper(t.inSSR,o.isComponent)),o.isBlock=!1,t.helper(getVNodeHelper(t.inSSR,o.isComponent))}return n.set(e,r),r}case 2:case 3:return 3;case 9:case 11:case 10:return 0;case 5:case 12:return getConstantType(e.content,t);case 4:return e.constType;case 8:let s=3;for(let n=0;n<e.children.length;n++){const r=e.children[n];if(isString(r)||isSymbol(r))continue;const o=getConstantType(r,t);if(0===o)return 0;o<s&&(s=o)}return s;default:return 0}}const allowHoistedHelperSet=new Set([NORMALIZE_CLASS,NORMALIZE_STYLE,NORMALIZE_PROPS,GUARD_REACTIVE_PROPS]);function getConstantTypeOfHelperCall(e,t){if(14===e.type&&!isString(e.callee)&&allowHoistedHelperSet.has(e.callee)){const n=e.arguments[0];if(4===n.type)return getConstantType(n,t);if(14===n.type)return getConstantTypeOfHelperCall(n,t)}return 0}function getGeneratedPropsConstantType(e,t){let n=3;const r=getNodeProps(e);if(r&&15===r.type){const{properties:e}=r;for(let r=0;r<e.length;r++){const{key:o,value:s}=e[r],i=getConstantType(o,t);if(0===i)return i;let a;if(i<n&&(n=i),a=4===s.type?getConstantType(s,t):14===s.type?getConstantTypeOfHelperCall(s,t):0,0===a)return a;a<n&&(n=a)}}return n}function getNodeProps(e){const t=e.codegenNode;if(13===t.type)return t.props}function getPatchFlag(e){const t=e.patchFlag;return t?parseInt(t,10):void 0}function createTransformContext(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:o=!1,cacheHandlers:s=!1,nodeTransforms:i=[],directiveTransforms:a={},transformHoist:c=null,isBuiltInComponent:l=NOOP,isCustomElement:p=NOOP,expressionPlugins:d=[],scopeId:u=null,slotted:h=!0,ssr:f=!1,inSSR:m=!1,ssrCssVars:g="",bindingMetadata:y=EMPTY_OBJ,inline:v=!1,isTS:S=!1,onError:E=defaultOnError,onWarn:C=defaultOnWarn,compatConfig:b}){const T=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),x={filename:t,selfName:T&&capitalize(camelize(T[1])),prefixIdentifiers:n,hoistStatic:r,hmr:o,cacheHandlers:s,nodeTransforms:i,directiveTransforms:a,transformHoist:c,isBuiltInComponent:l,isCustomElement:p,expressionPlugins:d,scopeId:u,slotted:h,ssr:f,inSSR:m,ssrCssVars:g,bindingMetadata:y,inline:v,isTS:S,onError:E,onWarn:C,compatConfig:b,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],constantCache:new WeakMap,temps:0,cached:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){const t=x.helpers.get(e)||0;return x.helpers.set(e,t+1),e},removeHelper(e){const t=x.helpers.get(e);if(t){const n=t-1;n?x.helpers.set(e,n):x.helpers.delete(e)}},helperString:e=>`_${helperNameMap[x.helper(e)]}`,replaceNode(e){if(!x.currentNode)throw new Error("Node being replaced is already removed.");if(!x.parent)throw new Error("Cannot replace root node.");x.parent.children[x.childIndex]=x.currentNode=e},removeNode(e){if(!x.parent)throw new Error("Cannot remove root node.");const t=x.parent.children,n=e?t.indexOf(e):x.currentNode?x.childIndex:-1;if(n<0)throw new Error("node being removed is not a child of current parent");e&&e!==x.currentNode?x.childIndex>n&&(x.childIndex--,x.onNodeRemoved()):(x.currentNode=null,x.onNodeRemoved()),x.parent.children.splice(n,1)},onNodeRemoved:NOOP,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){isString(e)&&(e=createSimpleExpression(e)),x.hoists.push(e);const t=createSimpleExpression(`_hoisted_${x.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache:(e,t=!1)=>createCacheExpression(x.cached++,e,t)};return x}function transform(e,t){const n=createTransformContext(e,t);traverseNode(e,n),t.hoistStatic&&hoistStatic(e,n),t.ssr||createRootCodegen(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.transformed=!0}function createRootCodegen(e,t){const{helper:n}=t,{children:r}=e;if(1===r.length){const n=r[0];if(isSingleElementRoot(e,n)&&n.codegenNode){const r=n.codegenNode;13===r.type&&convertToBlock(r,t),e.codegenNode=r}else e.codegenNode=n}else if(r.length>1){let o=64,s=PatchFlagNames[64];1===r.filter((e=>3!==e.type)).length&&(o|=2048,s+=`, ${PatchFlagNames[2048]}`),e.codegenNode=createVNodeCall(t,n(FRAGMENT),void 0,e.children,o+` /* ${s} */`,void 0,void 0,!0,void 0,!1)}}function traverseChildren(e,t){let n=0;const r=()=>{n--};for(;n<e.children.length;n++){const o=e.children[n];isString(o)||(t.grandParent=t.parent,t.parent=e,t.childIndex=n,t.onNodeRemoved=r,traverseNode(o,t))}}function traverseNode(e,t){t.currentNode=e;const{nodeTransforms:n}=t,r=[];for(let o=0;o<n.length;o++){const s=n[o](e,t);if(s&&(isArray(s)?r.push(...s):r.push(s)),!t.currentNode)return;e=t.currentNode}switch(e.type){case 3:t.ssr||t.helper(CREATE_COMMENT);break;case 5:t.ssr||t.helper(TO_DISPLAY_STRING);break;case 9:for(let n=0;n<e.branches.length;n++)traverseNode(e.branches[n],t);break;case 10:case 11:case 1:case 0:traverseChildren(e,t);break}t.currentNode=e;let o=r.length;for(;o--;)r[o]()}function createStructuralDirectiveTransform(e,t){const n=isString(e)?t=>t===e:t=>e.test(t);return(e,r)=>{if(1===e.type){const{props:o}=e;if(3===e.tagType&&o.some(isVSlot))return;const s=[];for(let i=0;i<o.length;i++){const a=o[i];if(7===a.type&&n(a.name)){o.splice(i,1),i--;const n=t(e,a,r);n&&s.push(n)}}return s}}}const PURE_ANNOTATION="/*#__PURE__*/",aliasHelper=e=>`${helperNameMap[e]}: _${helperNameMap[e]}`;function createCodegenContext(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:o="template.vue.html",scopeId:s=null,optimizeImports:i=!1,runtimeGlobalName:a="Vue",runtimeModuleName:c="vue",ssrRuntimeModuleName:l="vue/server-renderer",ssr:p=!1,isTS:d=!1,inSSR:u=!1}){const h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:o,scopeId:s,optimizeImports:i,runtimeGlobalName:a,runtimeModuleName:c,ssrRuntimeModuleName:l,ssr:p,isTS:d,inSSR:u,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${helperNameMap[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push("\n"+" ".repeat(e),0)}return h}function generate(e,t={}){const n=createCodegenContext(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:r,push:o,prefixIdentifiers:s,indent:i,deindent:a,newline:c,scopeId:l,ssr:p}=n,d=Array.from(e.helpers),u=d.length>0,h=!s&&"module"!==r;genFunctionPreamble(e,n);if(o(`function ${p?"ssrRender":"render"}(${(p?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ")}) {`),i(),h&&(o("with (_ctx) {"),i(),u&&(o(`const { ${d.map(aliasHelper).join(", ")} } = _Vue\n`,-1),c())),e.components.length&&(genAssets(e.components,"component",n),(e.directives.length||e.temps>0)&&c()),e.directives.length&&(genAssets(e.directives,"directive",n),e.temps>0&&c()),e.temps>0){o("let ");for(let t=0;t<e.temps;t++)o(`${t>0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(o("\n",0),c()),p||o("return "),e.codegenNode?genNode(e.codegenNode,n):o("null"),h&&(a(),o("}")),a(),o("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function genFunctionPreamble(e,t){const{ssr:n,prefixIdentifiers:r,push:o,newline:s,runtimeModuleName:i,runtimeGlobalName:a,ssrRuntimeModuleName:c}=t,l=a,p=Array.from(e.helpers);if(p.length>0&&(o(`const _Vue = ${l}\n`,-1),e.hoists.length)){o(`const { ${[CREATE_VNODE,CREATE_ELEMENT_VNODE,CREATE_COMMENT,CREATE_TEXT,CREATE_STATIC].filter((e=>p.includes(e))).map(aliasHelper).join(", ")} } = _Vue\n`,-1)}genHoists(e.hoists,t),s(),o("return ")}function genAssets(e,t,{helper:n,push:r,newline:o,isTS:s}){const i=n("component"===t?RESOLVE_COMPONENT:RESOLVE_DIRECTIVE);for(let n=0;n<e.length;n++){let a=e[n];const c=a.endsWith("__self");c&&(a=a.slice(0,-6)),r(`const ${toValidAssetId(a,t)} = ${i}(${JSON.stringify(a)}${c?", true":""})${s?"!":""}`),n<e.length-1&&o()}}function genHoists(e,t){if(!e.length)return;t.pure=!0;const{push:n,newline:r,helper:o,scopeId:s,mode:i}=t;r();for(let o=0;o<e.length;o++){const s=e[o];s&&(n(`const _hoisted_${o+1} = `),genNode(s,t),r())}t.pure=!1}function isText(e){return isString(e)||4===e.type||2===e.type||5===e.type||8===e.type}function genNodeListAsArray(e,t){const n=e.length>3||e.some((e=>isArray(e)||!isText(e)));t.push("["),n&&t.indent(),genNodeList(e,t,n),n&&t.deindent(),t.push("]")}function genNodeList(e,t,n=!1,r=!0){const{push:o,newline:s}=t;for(let i=0;i<e.length;i++){const a=e[i];isString(a)?o(a,-3):isArray(a)?genNodeListAsArray(a,t):genNode(a,t),i<e.length-1&&(n?(r&&o(","),s()):r&&o(", "))}}function genNode(e,t){if(isString(e))t.push(e,-3);else if(isSymbol(e))t.push(t.helper(e));else switch(e.type){case 1:case 9:case 11:assert(null!=e.codegenNode,"Codegen node is missing for element/if/for node. Apply appropriate transforms first."),genNode(e.codegenNode,t);break;case 2:genText(e,t);break;case 4:genExpression(e,t);break;case 5:genInterpolation(e,t);break;case 12:genNode(e.codegenNode,t);break;case 8:genCompoundExpression(e,t);break;case 3:genComment(e,t);break;case 13:genVNodeCall(e,t);break;case 14:genCallExpression(e,t);break;case 15:genObjectExpression(e,t);break;case 17:genArrayExpression(e,t);break;case 18:genFunctionExpression(e,t);break;case 19:genConditionalExpression(e,t);break;case 20:genCacheExpression(e,t);break;case 21:genNodeList(e.body,t,!0,!1);break;case 22:break;case 23:break;case 24:break;case 25:break;case 26:break;case 10:break;default:assert(!1,`unhandled codegen node type: ${e.type}`);return e}}function genText(e,t){t.push(JSON.stringify(e.content),-3,e)}function genExpression(e,t){const{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function genInterpolation(e,t){const{push:n,helper:r,pure:o}=t;o&&n("/*#__PURE__*/"),n(`${r(TO_DISPLAY_STRING)}(`),genNode(e.content,t),n(")")}function genCompoundExpression(e,t){for(let n=0;n<e.children.length;n++){const r=e.children[n];isString(r)?t.push(r,-3):genNode(r,t)}}function genExpressionAsPropertyKey(e,t){const{push:n}=t;if(8===e.type)n("["),genCompoundExpression(e,t),n("]");else if(e.isStatic){n(isSimpleIdentifier(e.content)?e.content:JSON.stringify(e.content),-2,e)}else n(`[${e.content}]`,-3,e)}function genComment(e,t){const{push:n,helper:r,pure:o}=t;o&&n("/*#__PURE__*/"),n(`${r(CREATE_COMMENT)}(${JSON.stringify(e.content)})`,-3,e)}function genVNodeCall(e,t){const{push:n,helper:r,pure:o}=t,{tag:s,props:i,children:a,patchFlag:c,dynamicProps:l,directives:p,isBlock:d,disableTracking:u,isComponent:h}=e;p&&n(r(WITH_DIRECTIVES)+"("),d&&n(`(${r(OPEN_BLOCK)}(${u?"true":""}), `),o&&n("/*#__PURE__*/");n(r(d?getVNodeBlockHelper(t.inSSR,h):getVNodeHelper(t.inSSR,h))+"(",-2,e),genNodeList(genNullableArgs([s,i,a,c,l]),t),n(")"),d&&n(")"),p&&(n(", "),genNode(p,t),n(")"))}function genNullableArgs(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map((e=>e||"null"))}function genCallExpression(e,t){const{push:n,helper:r,pure:o}=t,s=isString(e.callee)?e.callee:r(e.callee);o&&n("/*#__PURE__*/"),n(s+"(",-2,e),genNodeList(e.arguments,t),n(")")}function genObjectExpression(e,t){const{push:n,indent:r,deindent:o,newline:s}=t,{properties:i}=e;if(!i.length)return void n("{}",-2,e);const a=i.length>1||i.some((e=>4!==e.value.type));n(a?"{":"{ "),a&&r();for(let e=0;e<i.length;e++){const{key:r,value:o}=i[e];genExpressionAsPropertyKey(r,t),n(": "),genNode(o,t),e<i.length-1&&(n(","),s())}a&&o(),n(a?"}":" }")}function genArrayExpression(e,t){genNodeListAsArray(e.elements,t)}function genFunctionExpression(e,t){const{push:n,indent:r,deindent:o}=t,{params:s,returns:i,body:a,newline:c,isSlot:l}=e;l&&n(`_${helperNameMap[WITH_CTX]}(`),n("(",-2,e),isArray(s)?genNodeList(s,t):s&&genNode(s,t),n(") => "),(c||a)&&(n("{"),r()),i?(c&&n("return "),isArray(i)?genNodeListAsArray(i,t):genNode(i,t)):a&&genNode(a,t),(c||a)&&(o(),n("}")),l&&n(")")}function genConditionalExpression(e,t){const{test:n,consequent:r,alternate:o,newline:s}=e,{push:i,indent:a,deindent:c,newline:l}=t;if(4===n.type){const e=!isSimpleIdentifier(n.content);e&&i("("),genExpression(n,t),e&&i(")")}else i("("),genNode(n,t),i(")");s&&a(),t.indentLevel++,s||i(" "),i("? "),genNode(r,t),t.indentLevel--,s&&l(),s||i(" "),i(": ");const p=19===o.type;p||t.indentLevel++,genNode(o,t),p||t.indentLevel--,s&&c(!0)}function genCacheExpression(e,t){const{push:n,helper:r,indent:o,deindent:s,newline:i}=t;n(`_cache[${e.index}] || (`),e.isVNode&&(o(),n(`${r(SET_BLOCK_TRACKING)}(-1),`),i()),n(`_cache[${e.index}] = `),genNode(e.value,t),e.isVNode&&(n(","),i(),n(`${r(SET_BLOCK_TRACKING)}(1),`),i(),n(`_cache[${e.index}]`),s()),n(")")}const prohibitedKeywordRE=new RegExp("\\b"+"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b")+"\\b"),stripStringRE=/'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;function validateBrowserExpression(e,t,n=!1,r=!1){const o=e.content;if(o.trim())try{new Function(r?` ${o} `:"return "+(n?`(${o}) => {}`:`(${o})`))}catch(n){let r=n.message;const s=o.replace(stripStringRE,"").match(prohibitedKeywordRE);s&&(r=`avoid using JavaScript keyword as property name: "${s[0]}"`),t.onError(createCompilerError(45,e.loc,void 0,r))}}const transformExpression=(e,t)=>{if(5===e.type)e.content=processExpression(e.content,t);else if(1===e.type)for(let n=0;n<e.props.length;n++){const r=e.props[n];if(7===r.type&&"for"!==r.name){const e=r.exp,n=r.arg;!e||4!==e.type||"on"===r.name&&n||(r.exp=processExpression(e,t,"slot"===r.name)),n&&4===n.type&&!n.isStatic&&(r.arg=processExpression(n,t))}}};function processExpression(e,t,n=!1,r=!1,o=Object.create(t.identifiers)){return validateBrowserExpression(e,t,n,r),e}const transformIf=createStructuralDirectiveTransform(/^(if|else|else-if)$/,((e,t,n)=>processIf(e,t,n,((e,t,r)=>{const o=n.parent.children;let s=o.indexOf(e),i=0;for(;s-- >=0;){const e=o[s];e&&9===e.type&&(i+=e.branches.length)}return()=>{if(r)e.codegenNode=createCodegenNodeForBranch(t,i,n);else{getParentCondition(e.codegenNode).alternate=createCodegenNodeForBranch(t,i+e.branches.length-1,n)}}}))));function processIf(e,t,n,r){if(!("else"===t.name||t.exp&&t.exp.content.trim())){const r=t.exp?t.exp.loc:e.loc;n.onError(createCompilerError(28,t.loc)),t.exp=createSimpleExpression("true",!1,r)}if(t.exp&&validateBrowserExpression(t.exp,n),"if"===t.name){const o=createIfBranch(e,t),s={type:9,loc:e.loc,branches:[o]};if(n.replaceNode(s),r)return r(s,o,!0)}else{const o=n.parent.children,s=[];let i=o.indexOf(e);for(;i-- >=-1;){const a=o[i];if(a&&3===a.type)n.removeNode(a),s.unshift(a);else{if(!a||2!==a.type||a.content.trim().length){if(a&&9===a.type){"else-if"===t.name&&void 0===a.branches[a.branches.length-1].condition&&n.onError(createCompilerError(30,e.loc)),n.removeNode();const o=createIfBranch(e,t);s.length&&(!n.parent||1!==n.parent.type||"transition"!==n.parent.tag&&"Transition"!==n.parent.tag)&&(o.children=[...s,...o.children]);{const e=o.userKey;e&&a.branches.forEach((({userKey:t})=>{isSameKey(t,e)&&n.onError(createCompilerError(29,o.userKey.loc))}))}a.branches.push(o);const i=r&&r(a,o,!1);traverseNode(o,n),i&&i(),n.currentNode=null}else n.onError(createCompilerError(30,e.loc));break}n.removeNode(a)}}}}function createIfBranch(e,t){const n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!findDir(e,"for")?e.children:[e],userKey:findProp(e,"key"),isTemplateIf:n}}function createCodegenNodeForBranch(e,t,n){return e.condition?createConditionalExpression(e.condition,createChildrenCodegenNode(e,t,n),createCallExpression(n.helper(CREATE_COMMENT),['"v-if"',"true"])):createChildrenCodegenNode(e,t,n)}function createChildrenCodegenNode(e,t,n){const{helper:r}=n,o=createObjectProperty("key",createSimpleExpression(`${t}`,!1,locStub,2)),{children:s}=e,i=s[0];if(1!==s.length||1!==i.type){if(1===s.length&&11===i.type){const e=i.codegenNode;return injectProp(e,o,n),e}{let t=64,i=PatchFlagNames[64];return e.isTemplateIf||1!==s.filter((e=>3!==e.type)).length||(t|=2048,i+=`, ${PatchFlagNames[2048]}`),createVNodeCall(n,r(FRAGMENT),createObjectExpression([o]),s,t+` /* ${i} */`,void 0,void 0,!0,!1,!1,e.loc)}}{const e=i.codegenNode,t=getMemoedVNodeCall(e);return 13===t.type&&convertToBlock(t,n),injectProp(t,o,n),e}}function isSameKey(e,t){if(!e||e.type!==t.type)return!1;if(6===e.type){if(e.value.content!==t.value.content)return!1}else{const n=e.exp,r=t.exp;if(n.type!==r.type)return!1;if(4!==n.type||n.isStatic!==r.isStatic||n.content!==r.content)return!1}return!0}function getParentCondition(e){for(;;)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}const transformFor=createStructuralDirectiveTransform("for",((e,t,n)=>{const{helper:r,removeHelper:o}=n;return processFor(e,t,n,(t=>{const s=createCallExpression(r(RENDER_LIST),[t.source]),i=isTemplateNode(e),a=findDir(e,"memo"),c=findProp(e,"key"),l=c&&(6===c.type?createSimpleExpression(c.value.content,!0):c.exp),p=c?createObjectProperty("key",l):null,d=4===t.source.type&&t.source.constType>0,u=d?64:c?128:256;return t.codegenNode=createVNodeCall(n,r(FRAGMENT),void 0,s,u+` /* ${PatchFlagNames[u]} */`,void 0,void 0,!0,!d,!1,e.loc),()=>{let c;const{children:u}=t;i&&e.children.some((e=>{if(1===e.type){const t=findProp(e,"key");if(t)return n.onError(createCompilerError(33,t.loc)),!0}}));const h=1!==u.length||1!==u[0].type,f=isSlotOutlet(e)?e:i&&1===e.children.length&&isSlotOutlet(e.children[0])?e.children[0]:null;if(f?(c=f.codegenNode,i&&p&&injectProp(c,p,n)):h?c=createVNodeCall(n,r(FRAGMENT),p?createObjectExpression([p]):void 0,e.children,`64 /* ${PatchFlagNames[64]} */`,void 0,void 0,!0,void 0,!1):(c=u[0].codegenNode,i&&p&&injectProp(c,p,n),c.isBlock!==!d&&(c.isBlock?(o(OPEN_BLOCK),o(getVNodeBlockHelper(n.inSSR,c.isComponent))):o(getVNodeHelper(n.inSSR,c.isComponent))),c.isBlock=!d,c.isBlock?(r(OPEN_BLOCK),r(getVNodeBlockHelper(n.inSSR,c.isComponent))):r(getVNodeHelper(n.inSSR,c.isComponent))),a){const e=createFunctionExpression(createForLoopParams(t.parseResult,[createSimpleExpression("_cached")]));e.body=createBlockStatement([createCompoundExpression(["const _memo = (",a.exp,")"]),createCompoundExpression(["if (_cached",...l?[" && _cached.key === ",l]:[],` && ${n.helperString(IS_MEMO_SAME)}(_cached, _memo)) return _cached`]),createCompoundExpression(["const _item = ",c]),createSimpleExpression("_item.memo = _memo"),createSimpleExpression("return _item")]),s.arguments.push(e,createSimpleExpression("_cache"),createSimpleExpression(String(n.cached++)))}else s.arguments.push(createFunctionExpression(createForLoopParams(t.parseResult),c,!0))}}))}));function processFor(e,t,n,r){if(!t.exp)return void n.onError(createCompilerError(31,t.loc));const o=t.forParseResult;if(!o)return void n.onError(createCompilerError(32,t.loc));finalizeForParseResult(o,n);const{addIdentifiers:s,removeIdentifiers:i,scopes:a}=n,{source:c,value:l,key:p,index:d}=o,u={type:11,loc:t.loc,source:c,valueAlias:l,keyAlias:p,objectIndexAlias:d,parseResult:o,children:isTemplateNode(e)?e.children:[e]};n.replaceNode(u),a.vFor++;const h=r&&r(u);return()=>{a.vFor--,h&&h()}}function finalizeForParseResult(e,t){e.finalized||(validateBrowserExpression(e.source,t),e.key&&validateBrowserExpression(e.key,t,!0),e.index&&validateBrowserExpression(e.index,t,!0),e.value&&validateBrowserExpression(e.value,t,!0),e.finalized=!0)}function createForLoopParams({value:e,key:t,index:n},r=[]){return createParamsList([e,t,n,...r])}function createParamsList(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map(((e,t)=>e||createSimpleExpression("_".repeat(t+1),!1)))}const defaultFallback=createSimpleExpression("undefined",!1),trackSlotScopes=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){const n=findDir(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},buildClientSlotFn=(e,t,n,r)=>createFunctionExpression(e,n,!1,!0,n.length?n[0].loc:r);function buildSlots(e,t,n=buildClientSlotFn){t.helper(WITH_CTX);const{children:r,loc:o}=e,s=[],i=[];let a=t.scopes.vSlot>0||t.scopes.vFor>0;const c=findDir(e,"slot",!0);if(c){const{arg:e,exp:t}=c;e&&!isStaticExp(e)&&(a=!0),s.push(createObjectProperty(e||createSimpleExpression("default",!0),n(t,void 0,r,o)))}let l=!1,p=!1;const d=[],u=new Set;let h=0;for(let e=0;e<r.length;e++){const o=r[e];let f;if(!isTemplateNode(o)||!(f=findDir(o,"slot",!0))){3!==o.type&&d.push(o);continue}if(c){t.onError(createCompilerError(37,f.loc));break}l=!0;const{children:m,loc:g}=o,{arg:y=createSimpleExpression("default",!0),exp:v,loc:S}=f;let E;isStaticExp(y)?E=y?y.content:"default":a=!0;const C=findDir(o,"for"),b=n(v,C,m,g);let T,x;if(T=findDir(o,"if"))a=!0,i.push(createConditionalExpression(T.exp,buildDynamicSlot(y,b,h++),defaultFallback));else if(x=findDir(o,/^else(-if)?$/,!0)){let n,o=e;for(;o--&&(n=r[o],3===n.type););if(n&&isTemplateNode(n)&&findDir(n,"if")){r.splice(e,1),e--;let t=i[i.length-1];for(;19===t.alternate.type;)t=t.alternate;t.alternate=x.exp?createConditionalExpression(x.exp,buildDynamicSlot(y,b,h++),defaultFallback):buildDynamicSlot(y,b,h++)}else t.onError(createCompilerError(30,x.loc))}else if(C){a=!0;const e=C.forParseResult;e?(finalizeForParseResult(e,t),i.push(createCallExpression(t.helper(RENDER_LIST),[e.source,createFunctionExpression(createForLoopParams(e),buildDynamicSlot(y,b),!0)]))):t.onError(createCompilerError(32,C.loc))}else{if(E){if(u.has(E)){t.onError(createCompilerError(38,S));continue}u.add(E),"default"===E&&(p=!0)}s.push(createObjectProperty(y,b))}}if(!c){const e=(e,t)=>createObjectProperty("default",n(e,void 0,t,o));l?d.length&&d.some((e=>isNonWhitespaceContent(e)))&&(p?t.onError(createCompilerError(39,d[0].loc)):s.push(e(void 0,d))):s.push(e(void 0,r))}const f=a?2:hasForwardedSlots(e.children)?3:1;let m=createObjectExpression(s.concat(createObjectProperty("_",createSimpleExpression(f+` /* ${slotFlagsText[f]} */`,!1))),o);return i.length&&(m=createCallExpression(t.helper(CREATE_SLOTS),[m,createArrayExpression(i)])),{slots:m,hasDynamicSlots:a}}function buildDynamicSlot(e,t,n){const r=[createObjectProperty("name",e),createObjectProperty("fn",t)];return null!=n&&r.push(createObjectProperty("key",createSimpleExpression(String(n),!0))),createObjectExpression(r)}function hasForwardedSlots(e){for(let t=0;t<e.length;t++){const n=e[t];switch(n.type){case 1:if(2===n.tagType||hasForwardedSlots(n.children))return!0;break;case 9:if(hasForwardedSlots(n.branches))return!0;break;case 10:case 11:if(hasForwardedSlots(n.children))return!0;break}}return!1}function isNonWhitespaceContent(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():isNonWhitespaceContent(e.content))}const directiveImportMap=new WeakMap,transformElement=(e,t)=>function(){if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;const{tag:n,props:r}=e,o=1===e.tagType;let s=o?resolveComponentType(e,t):`"${n}"`;const i=isObject(s)&&s.callee===RESOLVE_DYNAMIC_COMPONENT;let a,c,l,p,d,u,h=0,f=i||s===TELEPORT||s===SUSPENSE||!o&&("svg"===n||"foreignObject"===n);if(r.length>0){const n=buildProps(e,t,void 0,o,i);a=n.props,h=n.patchFlag,d=n.dynamicPropNames;const r=n.directives;u=r&&r.length?createArrayExpression(r.map((e=>buildDirectiveArgs(e,t)))):void 0,n.shouldUseBlock&&(f=!0)}if(e.children.length>0){s===KEEP_ALIVE&&(f=!0,h|=1024,e.children.length>1&&t.onError(createCompilerError(46,{start:e.children[0].loc.start,end:e.children[e.children.length-1].loc.end,source:""})));if(o&&s!==TELEPORT&&s!==KEEP_ALIVE){const{slots:n,hasDynamicSlots:r}=buildSlots(e,t);c=n,r&&(h|=1024)}else if(1===e.children.length&&s!==TELEPORT){const n=e.children[0],r=n.type,o=5===r||8===r;o&&0===getConstantType(n,t)&&(h|=1),c=o||2===r?n:e.children}else c=e.children}if(0!==h){if(h<0)l=h+` /* ${PatchFlagNames[h]} */`;else{const e=Object.keys(PatchFlagNames).map(Number).filter((e=>e>0&&h&e)).map((e=>PatchFlagNames[e])).join(", ");l=h+` /* ${e} */`}d&&d.length&&(p=stringifyDynamicPropNames(d))}e.codegenNode=createVNodeCall(t,s,a,c,l,p,u,!!f,!1,o,e.loc)};function resolveComponentType(e,t,n=!1){let{tag:r}=e;const o=isComponentTag(r),s=findProp(e,"is",!1,!0);if(s)if(o){let e;if(6===s.type?e=s.value&&createSimpleExpression(s.value.content,!0):(e=s.exp,e||(e=createSimpleExpression("is",!1,s.loc))),e)return createCallExpression(t.helper(RESOLVE_DYNAMIC_COMPONENT),[e])}else 6===s.type&&s.value.content.startsWith("vue:")&&(r=s.value.content.slice(4));const i=isCoreComponent(r)||t.isBuiltInComponent(r);return i?(n||t.helper(i),i):(t.helper(RESOLVE_COMPONENT),t.components.add(r),toValidAssetId(r,"component"))}function buildProps(e,t,n=e.props,r,o,s=!1){const{tag:i,loc:a,children:c}=e;let l=[];const p=[],d=[],u=c.length>0;let h=!1,f=0,m=!1,g=!1,y=!1,v=!1,S=!1,E=!1;const C=[],b=e=>{l.length&&(p.push(createObjectExpression(dedupeProperties(l),a)),l=[]),e&&p.push(e)},T=()=>{t.scopes.vFor>0&&l.push(createObjectProperty(createSimpleExpression("ref_for",!0),createSimpleExpression("true")))},x=({key:e,value:n})=>{if(isStaticExp(e)){const s=e.content,i=isOn(s);if(!i||r&&!o||"onclick"===s.toLowerCase()||"onUpdate:modelValue"===s||isReservedProp(s)||(v=!0),i&&isReservedProp(s)&&(E=!0),i&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&getConstantType(n,t)>0)return;"ref"===s?m=!0:"class"===s?g=!0:"style"===s?y=!0:"key"===s||C.includes(s)||C.push(s),!r||"class"!==s&&"style"!==s||C.includes(s)||C.push(s)}else S=!0};for(let o=0;o<n.length;o++){const c=n[o];if(6===c.type){const{loc:e,name:t,nameLoc:n,value:r}=c;let o=!0;if("ref"===t&&(m=!0,T()),"is"===t&&(isComponentTag(i)||r&&r.content.startsWith("vue:")))continue;l.push(createObjectProperty(createSimpleExpression(t,!0,n),createSimpleExpression(r?r.content:"",o,r?r.loc:e)))}else{const{name:n,arg:o,exp:m,loc:g,modifiers:y}=c,v="bind"===n,E="on"===n;if("slot"===n){r||t.onError(createCompilerError(40,g));continue}if("once"===n||"memo"===n)continue;if("is"===n||v&&isStaticArgOf(o,"is")&&isComponentTag(i))continue;if(E&&s)continue;if((v&&isStaticArgOf(o,"key")||E&&u&&isStaticArgOf(o,"vue:before-update"))&&(h=!0),v&&isStaticArgOf(o,"ref")&&T(),!o&&(v||E)){S=!0,m?v?(T(),b(),p.push(m)):b({type:14,loc:g,callee:t.helper(TO_HANDLERS),arguments:r?[m]:[m,"true"]}):t.onError(createCompilerError(v?34:35,g));continue}v&&y.includes("prop")&&(f|=32);const C=t.directiveTransforms[n];if(C){const{props:n,needRuntime:r}=C(c,e,t);!s&&n.forEach(x),E&&o&&!isStaticExp(o)?b(createObjectExpression(n,a)):l.push(...n),r&&(d.push(c),isSymbol(r)&&directiveImportMap.set(c,r))}else isBuiltInDirective(n)||(d.push(c),u&&(h=!0))}}let _;if(p.length?(b(),_=p.length>1?createCallExpression(t.helper(MERGE_PROPS),p,a):p[0]):l.length&&(_=createObjectExpression(dedupeProperties(l),a)),S?f|=16:(g&&!r&&(f|=2),y&&!r&&(f|=4),C.length&&(f|=8),v&&(f|=32)),h||0!==f&&32!==f||!(m||E||d.length>0)||(f|=512),!t.inSSR&&_)switch(_.type){case 15:let e=-1,n=-1,r=!1;for(let t=0;t<_.properties.length;t++){const o=_.properties[t].key;isStaticExp(o)?"class"===o.content?e=t:"style"===o.content&&(n=t):o.isHandlerKey||(r=!0)}const o=_.properties[e],s=_.properties[n];r?_=createCallExpression(t.helper(NORMALIZE_PROPS),[_]):(o&&!isStaticExp(o.value)&&(o.value=createCallExpression(t.helper(NORMALIZE_CLASS),[o.value])),s&&(y||4===s.value.type&&"["===s.value.content.trim()[0]||17===s.value.type)&&(s.value=createCallExpression(t.helper(NORMALIZE_STYLE),[s.value])));break;case 14:break;default:_=createCallExpression(t.helper(NORMALIZE_PROPS),[createCallExpression(t.helper(GUARD_REACTIVE_PROPS),[_])]);break}return{props:_,directives:d,patchFlag:f,dynamicPropNames:C,shouldUseBlock:h}}function dedupeProperties(e){const t=new Map,n=[];for(let r=0;r<e.length;r++){const o=e[r];if(8===o.key.type||!o.key.isStatic){n.push(o);continue}const s=o.key.content,i=t.get(s);i?("style"===s||"class"===s||isOn(s))&&mergeAsArray(i,o):(t.set(s,o),n.push(o))}return n}function mergeAsArray(e,t){17===e.value.type?e.value.elements.push(t.value):e.value=createArrayExpression([e.value,t.value],e.loc)}function buildDirectiveArgs(e,t){const n=[],r=directiveImportMap.get(e);r?n.push(t.helperString(r)):(t.helper(RESOLVE_DIRECTIVE),t.directives.add(e.name),n.push(toValidAssetId(e.name,"directive")));const{loc:o}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));const t=createSimpleExpression("true",!1,o);n.push(createObjectExpression(e.modifiers.map((e=>createObjectProperty(e,t))),o))}return createArrayExpression(n,e.loc)}function stringifyDynamicPropNames(e){let t="[";for(let n=0,r=e.length;n<r;n++)t+=JSON.stringify(e[n]),n<r-1&&(t+=", ");return t+"]"}function isComponentTag(e){return"component"===e||"Component"===e}const transformSlotOutlet=(e,t)=>{if(isSlotOutlet(e)){const{children:n,loc:r}=e,{slotName:o,slotProps:s}=processSlotOutlet(e,t),i=[t.prefixIdentifiers?"_ctx.$slots":"$slots",o,"{}","undefined","true"];let a=2;s&&(i[2]=s,a=3),n.length&&(i[3]=createFunctionExpression([],n,!1,!1,r),a=4),t.scopeId&&!t.slotted&&(a=5),i.splice(a),e.codegenNode=createCallExpression(t.helper(RENDER_SLOT),i,r)}};function processSlotOutlet(e,t){let n,r='"default"';const o=[];for(let t=0;t<e.props.length;t++){const n=e.props[t];if(6===n.type)n.value&&("name"===n.name?r=JSON.stringify(n.value.content):(n.name=camelize(n.name),o.push(n)));else if("bind"===n.name&&isStaticArgOf(n.arg,"name")){if(n.exp)r=n.exp;else if(n.arg&&4===n.arg.type){const e=camelize(n.arg.content);r=n.exp=createSimpleExpression(e,!1,n.arg.loc)}}else"bind"===n.name&&n.arg&&isStaticExp(n.arg)&&(n.arg.content=camelize(n.arg.content)),o.push(n)}if(o.length>0){const{props:r,directives:s}=buildProps(e,t,o,!1,!1);n=r,s.length&&t.onError(createCompilerError(36,s[0].loc))}return{slotName:r,slotProps:n}}const fnExpRE=/^\s*(async\s*)?(\([^)]*?\)|[\w$_]+)\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,transformOn$1=(e,t,n,r)=>{const{loc:o,modifiers:s,arg:i}=e;let a;if(e.exp||s.length||n.onError(createCompilerError(35,o)),4===i.type)if(i.isStatic){let e=i.content;e.startsWith("vnode")&&n.onError(createCompilerError(51,i.loc)),e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`);a=createSimpleExpression(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?toHandlerKey(camelize(e)):`on:${e}`,!0,i.loc)}else a=createCompoundExpression([`${n.helperString(TO_HANDLER_KEY)}(`,i,")"]);else a=i,a.children.unshift(`${n.helperString(TO_HANDLER_KEY)}(`),a.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let l=n.cacheHandlers&&!c&&!n.inVOnce;if(c){const e=isMemberExpression(c.content),t=!(e||fnExpRE.test(c.content)),r=c.content.includes(";");validateBrowserExpression(c,n,!1,r),(t||l&&e)&&(c=createCompoundExpression([`${t?"$event":"(...args)"} => ${r?"{":"("}`,c,r?"}":")"]))}let p={props:[createObjectProperty(a,c||createSimpleExpression("() => {}",!1,o))]};return r&&(p=r(p)),l&&(p.props[0].value=n.cache(p.props[0].value)),p.props.forEach((e=>e.key.isHandlerKey=!0)),p},transformBind=(e,t,n)=>{const{modifiers:r,loc:o}=e,s=e.arg;let{exp:i}=e;if(i&&4===i.type&&!i.content.trim()&&(i=void 0),!i){if(4!==s.type||!s.isStatic)return n.onError(createCompilerError(52,s.loc)),{props:[createObjectProperty(s,createSimpleExpression("",!0,o))]};const t=camelize(s.content);i=e.exp=createSimpleExpression(t,!1,s.loc)}return 4!==s.type?(s.children.unshift("("),s.children.push(') || ""')):s.isStatic||(s.content=`${s.content} || ""`),r.includes("camel")&&(4===s.type?s.isStatic?s.content=camelize(s.content):s.content=`${n.helperString(CAMELIZE)}(${s.content})`:(s.children.unshift(`${n.helperString(CAMELIZE)}(`),s.children.push(")"))),n.inSSR||(r.includes("prop")&&injectPrefix(s,"."),r.includes("attr")&&injectPrefix(s,"^")),{props:[createObjectProperty(s,i)]}},injectPrefix=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},transformText=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{const n=e.children;let r,o=!1;for(let e=0;e<n.length;e++){const t=n[e];if(isText$1(t)){o=!0;for(let o=e+1;o<n.length;o++){const s=n[o];if(!isText$1(s)){r=void 0;break}r||(r=n[e]=createCompoundExpression([t],t.loc)),r.children.push(" + ",s),n.splice(o,1),o--}}}if(o&&(1!==n.length||0!==e.type&&(1!==e.type||0!==e.tagType||e.props.find((e=>7===e.type&&!t.directiveTransforms[e.name])))))for(let e=0;e<n.length;e++){const r=n[e];if(isText$1(r)||8===r.type){const o=[];2===r.type&&" "===r.content||o.push(r),t.ssr||0!==getConstantType(r,t)||o.push(`1 /* ${PatchFlagNames[1]} */`),n[e]={type:12,content:r,loc:r.loc,codegenNode:createCallExpression(t.helper(CREATE_TEXT),o)}}}}},seen$1=new WeakSet,transformOnce=(e,t)=>{if(1===e.type&&findDir(e,"once",!0)){if(seen$1.has(e)||t.inVOnce||t.inSSR)return;return seen$1.add(e),t.inVOnce=!0,t.helper(SET_BLOCK_TRACKING),()=>{t.inVOnce=!1;const e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0))}}},transformModel$1=(e,t,n)=>{const{exp:r,arg:o}=e;if(!r)return n.onError(createCompilerError(41,e.loc)),createTransformProps();const s=r.loc.source,i=4===r.type?r.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a)return n.onError(createCompilerError(44,r.loc)),createTransformProps();if(!i.trim()||!isMemberExpression(i))return n.onError(createCompilerError(42,r.loc)),createTransformProps();const c=o||createSimpleExpression("modelValue",!0),l=o?isStaticExp(o)?`onUpdate:${camelize(o.content)}`:createCompoundExpression(['"onUpdate:" + ',o]):"onUpdate:modelValue";let p;p=createCompoundExpression([`${n.isTS?"($event: any)":"$event"} => ((`,r,") = $event)"]);const d=[createObjectProperty(c,e.exp),createObjectProperty(l,p)];if(e.modifiers.length&&1===t.tagType){const t=e.modifiers.map((e=>(isSimpleIdentifier(e)?e:JSON.stringify(e))+": true")).join(", "),n=o?isStaticExp(o)?`${o.content}Modifiers`:createCompoundExpression([o,' + "Modifiers"']):"modelModifiers";d.push(createObjectProperty(n,createSimpleExpression(`{ ${t} }`,!1,e.loc,2)))}return createTransformProps(d)};function createTransformProps(e=[]){return{props:e}}const seen=new WeakSet,transformMemo=(e,t)=>{if(1===e.type){const n=findDir(e,"memo");if(!n||seen.has(e))return;return seen.add(e),()=>{const r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&convertToBlock(r,t),e.codegenNode=createCallExpression(t.helper(WITH_MEMO),[n.exp,createFunctionExpression(void 0,r),"_cache",String(t.cached++)]))}}};function getBaseTransformPreset(e){return[[transformOnce,transformIf,transformMemo,transformFor,transformExpression,transformSlotOutlet,transformElement,trackSlotScopes,transformText],{on:transformOn$1,bind:transformBind,model:transformModel$1}]}function baseCompile(e,t={}){const n=t.onError||defaultOnError,r="module"===t.mode;!0===t.prefixIdentifiers?n(createCompilerError(47)):r&&n(createCompilerError(48));t.cacheHandlers&&n(createCompilerError(49)),t.scopeId&&!r&&n(createCompilerError(50));const o=extend({},t,{prefixIdentifiers:!1}),s=isString(e)?baseParse(e,o):e,[i,a]=getBaseTransformPreset();return transform(s,extend({},o,{nodeTransforms:[...i,...t.nodeTransforms||[]],directiveTransforms:extend({},a,t.directiveTransforms||{})})),generate(s,o)}const noopDirectiveTransform=()=>({props:[]}),V_MODEL_RADIO=Symbol("vModelRadio"),V_MODEL_CHECKBOX=Symbol("vModelCheckbox"),V_MODEL_TEXT=Symbol("vModelText"),V_MODEL_SELECT=Symbol("vModelSelect"),V_MODEL_DYNAMIC=Symbol("vModelDynamic"),V_ON_WITH_MODIFIERS=Symbol("vOnModifiersGuard"),V_ON_WITH_KEYS=Symbol("vOnKeysGuard"),V_SHOW=Symbol("vShow"),TRANSITION=Symbol("Transition"),TRANSITION_GROUP=Symbol("TransitionGroup");let decoder;function decodeHtmlBrowser(e,t=!1){return decoder||(decoder=document.createElement("div")),t?(decoder.innerHTML=`<div foo="${e.replace(/"/g,"&quot;")}">`,decoder.children[0].getAttribute("foo")):(decoder.innerHTML=e,decoder.textContent)}registerRuntimeHelpers({[V_MODEL_RADIO]:"vModelRadio",[V_MODEL_CHECKBOX]:"vModelCheckbox",[V_MODEL_TEXT]:"vModelText",[V_MODEL_SELECT]:"vModelSelect",[V_MODEL_DYNAMIC]:"vModelDynamic",[V_ON_WITH_MODIFIERS]:"withModifiers",[V_ON_WITH_KEYS]:"withKeys",[V_SHOW]:"vShow",[TRANSITION]:"Transition",[TRANSITION_GROUP]:"TransitionGroup"});const parserOptions={parseMode:"html",isVoidTag:isVoidTag,isNativeTag:e=>isHTMLTag(e)||isSVGTag(e)||isMathMLTag(e),isPreTag:e=>"pre"===e,decodeEntities:decodeHtmlBrowser,isBuiltInComponent:e=>"Transition"===e||"transition"===e?TRANSITION:"TransitionGroup"===e||"transition-group"===e?TRANSITION_GROUP:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some((e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content)))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"!==t.tag&&"desc"!==t.tag&&"title"!==t.tag||(r=0));if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},transformStyle=e=>{1===e.type&&e.props.forEach(((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:createSimpleExpression("style",!0,t.loc),exp:parseInlineCSS(t.value.content,t.loc),modifiers:[],loc:t.loc})}))},parseInlineCSS=(e,t)=>{const n=parseStringStyle(e);return createSimpleExpression(JSON.stringify(n),!1,t,3)};function createDOMCompilerError(e,t){return createCompilerError(e,t,DOMErrorMessages)}const DOMErrorMessages={53:"v-html is missing expression.",54:"v-html will override element children.",55:"v-text is missing expression.",56:"v-text will override element children.",57:"v-model can only be used on <input>, <textarea> and <select> elements.",58:"v-model argument is not supported on plain elements.",59:"v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.",60:"Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.",61:"v-show is missing expression.",62:"<Transition> expects exactly one child element or component.",63:"Tags with side effect (<script> and <style>) are ignored in client component templates."},transformVHtml=(e,t,n)=>{const{exp:r,loc:o}=e;return r||n.onError(createDOMCompilerError(53,o)),t.children.length&&(n.onError(createDOMCompilerError(54,o)),t.children.length=0),{props:[createObjectProperty(createSimpleExpression("innerHTML",!0,o),r||createSimpleExpression("",!0))]}},transformVText=(e,t,n)=>{const{exp:r,loc:o}=e;return r||n.onError(createDOMCompilerError(55,o)),t.children.length&&(n.onError(createDOMCompilerError(56,o)),t.children.length=0),{props:[createObjectProperty(createSimpleExpression("textContent",!0),r?getConstantType(r,n)>0?r:createCallExpression(n.helperString(TO_DISPLAY_STRING),[r],o):createSimpleExpression("",!0))]}},transformModel=(e,t,n)=>{const r=transformModel$1(e,t,n);if(!r.props.length||1===t.tagType)return r;function o(){const e=findDir(t,"bind");e&&isStaticArgOf(e.arg,"value")&&n.onError(createDOMCompilerError(60,e.loc))}e.arg&&n.onError(createDOMCompilerError(58,e.arg.loc));const{tag:s}=t,i=n.isCustomElement(s);if("input"===s||"textarea"===s||"select"===s||i){let a=V_MODEL_TEXT,c=!1;if("input"===s||i){const r=findProp(t,"type");if(r){if(7===r.type)a=V_MODEL_DYNAMIC;else if(r.value)switch(r.value.content){case"radio":a=V_MODEL_RADIO;break;case"checkbox":a=V_MODEL_CHECKBOX;break;case"file":c=!0,n.onError(createDOMCompilerError(59,e.loc));break;default:o();break}}else hasDynamicKeyVBind(t)?a=V_MODEL_DYNAMIC:o()}else"select"===s?a=V_MODEL_SELECT:o();c||(r.needRuntime=n.helper(a))}else n.onError(createDOMCompilerError(57,e.loc));return r.props=r.props.filter((e=>!(4===e.key.type&&"modelValue"===e.key.content))),r},isEventOptionModifier=makeMap("passive,once,capture"),isNonKeyModifier=makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),maybeKeyModifier=makeMap("left,right"),isKeyboardEvent=makeMap("onkeyup,onkeydown,onkeypress",!0),resolveModifiers=(e,t,n,r)=>{const o=[],s=[],i=[];for(let n=0;n<t.length;n++){const r=t[n];isEventOptionModifier(r)?i.push(r):maybeKeyModifier(r)?isStaticExp(e)?isKeyboardEvent(e.content)?o.push(r):s.push(r):(o.push(r),s.push(r)):isNonKeyModifier(r)?s.push(r):o.push(r)}return{keyModifiers:o,nonKeyModifiers:s,eventOptionModifiers:i}},transformClick=(e,t)=>isStaticExp(e)&&"onclick"===e.content.toLowerCase()?createSimpleExpression(t,!0):4!==e.type?createCompoundExpression(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,transformOn=(e,t,n)=>transformOn$1(e,t,n,(t=>{const{modifiers:r}=e;if(!r.length)return t;let{key:o,value:s}=t.props[0];const{keyModifiers:i,nonKeyModifiers:a,eventOptionModifiers:c}=resolveModifiers(o,r,0,e.loc);if(a.includes("right")&&(o=transformClick(o,"onContextmenu")),a.includes("middle")&&(o=transformClick(o,"onMouseup")),a.length&&(s=createCallExpression(n.helper(V_ON_WITH_MODIFIERS),[s,JSON.stringify(a)])),!i.length||isStaticExp(o)&&!isKeyboardEvent(o.content)||(s=createCallExpression(n.helper(V_ON_WITH_KEYS),[s,JSON.stringify(i)])),c.length){const e=c.map(capitalize).join("");o=isStaticExp(o)?createSimpleExpression(`${o.content}${e}`,!0):createCompoundExpression(["(",o,`) + "${e}"`])}return{props:[createObjectProperty(o,s)]}})),transformShow=(e,t,n)=>{const{exp:r,loc:o}=e;return r||n.onError(createDOMCompilerError(61,o)),{props:[],needRuntime:n.helper(V_SHOW)}},transformTransition=(e,t)=>{if(1===e.type&&1===e.tagType){if(t.isBuiltInComponent(e.tag)===TRANSITION)return()=>{if(!e.children.length)return;hasMultipleChildren(e)&&t.onError(createDOMCompilerError(62,{start:e.children[0].loc.start,end:e.children[e.children.length-1].loc.end,source:""}));const n=e.children[0];if(1===n.type)for(const t of n.props)7===t.type&&"show"===t.name&&e.props.push({type:6,name:"persisted",nameLoc:e.loc,value:void 0,loc:e.loc})}}};function hasMultipleChildren(e){const t=e.children=e.children.filter((e=>3!==e.type&&!(2===e.type&&!e.content.trim()))),n=t[0];return 1!==t.length||11===n.type||9===n.type&&n.branches.some(hasMultipleChildren)}const ignoreSideEffectTags=(e,t)=>{1!==e.type||0!==e.tagType||"script"!==e.tag&&"style"!==e.tag||(t.onError(createDOMCompilerError(63,e.loc)),t.removeNode())},DOMNodeTransforms=[transformStyle,transformTransition],DOMDirectiveTransforms={cloak:noopDirectiveTransform,html:transformVHtml,text:transformVText,model:transformModel,on:transformOn,show:transformShow};function compile(e,t={}){return baseCompile(e,extend({},parserOptions,t,{nodeTransforms:[ignoreSideEffectTags,...DOMNodeTransforms,...t.nodeTransforms||[]],directiveTransforms:extend({},DOMDirectiveTransforms,t.directiveTransforms||{}),transformHoist:null}))}initDev();const compileCache=new WeakMap;function getCache(e){let t=compileCache.get(null!=e?e:EMPTY_OBJ);return t||(t=Object.create(null),compileCache.set(null!=e?e:EMPTY_OBJ,t)),t}function compileToFunction(e,t){if(!isString(e)){if(!e.nodeType)return warn("invalid template option: ",e),NOOP;e=e.innerHTML}const n=e,r=getCache(t),o=r[n];if(o)return o;if("#"===e[0]){const t=document.querySelector(e);t||warn(`Template element not found or is empty: ${e}`),e=t?t.innerHTML:""}const s=extend({hoistStatic:!0,onError:a,onWarn:e=>a(e,!0)},t);s.isCustomElement||"undefined"==typeof customElements||(s.isCustomElement=e=>!!customElements.get(e));const{code:i}=compile(e,s);function a(t,n=!1){const r=n?t.message:`Template compilation error: ${t.message}`,o=t.loc&&generateCodeFrame(e,t.loc.start.offset,t.loc.end.offset);warn(o?`${r}\n${o}`:r)}const c=new Function("Vue",i)(runtimeDom);return c._rc=!0,r[n]=c}registerRuntimeCompiler(compileToFunction);export{BaseTransition,BaseTransitionPropsValidators,Comment,DeprecationTypes,EffectScope,ErrorCodes,ErrorTypeStrings,Fragment,KeepAlive,ReactiveEffect,Static,Suspense,Teleport,Text,TrackOpTypes,Transition,TransitionGroup,TriggerOpTypes,VueElement,assertNumber,callWithAsyncErrorHandling,callWithErrorHandling,camelize,capitalize,cloneVNode,compatUtils,compileToFunction as compile,computed,createApp,createBlock,createCommentVNode,createElementBlock,createBaseVNode as createElementVNode,createHydrationRenderer,createPropsRestProxy,createRenderer,createSSRApp,createSlots,createStaticVNode,createTextVNode,createVNode,customRef,defineAsyncComponent,defineComponent,defineCustomElement,defineEmits,defineExpose,defineModel,defineOptions,defineProps,defineSSRCustomElement,defineSlots,devtools,effect,effectScope,getCurrentInstance,getCurrentScope,getTransitionRawChildren,guardReactiveProps,h,handleError,hasInjectionContext,hydrate,initCustomFormatter,initDirectivesForSSR,inject,isMemoSame,isProxy,isReactive,isReadonly,isRef,isRuntimeOnly,isShallow,isVNode,markRaw,mergeDefaults,mergeModels,mergeProps,nextTick,normalizeClass,normalizeProps,normalizeStyle,onActivated,onBeforeMount,onBeforeUnmount,onBeforeUpdate,onDeactivated,onErrorCaptured,onMounted,onRenderTracked,onRenderTriggered,onScopeDispose,onServerPrefetch,onUnmounted,onUpdated,openBlock,popScopeId,provide,proxyRefs,pushScopeId,queuePostFlushCb,reactive,readonly,ref,registerRuntimeCompiler,render,renderList,renderSlot,resolveComponent,resolveDirective,resolveDynamicComponent,resolveFilter,resolveTransitionHooks,setBlockTracking,setDevtoolsHook,setTransitionHooks,shallowReactive,shallowReadonly,shallowRef,ssrContextKey,ssrUtils,stop,toDisplayString,toHandlerKey,toHandlers,toRaw,toRef,toRefs,toValue,transformVNodeArgs,triggerRef,unref,useAttrs,useCssModule,useCssVars,useModel,useSSRContext,useSlots,useTransitionState,vModelCheckbox,vModelDynamic,vModelRadio,vModelSelect,vModelText,vShow,version,warn,watch,watchEffect,watchPostEffect,watchSyncEffect,withAsyncContext,withCtx,withDefaults,withDirectives,withKeys,withMemo,withModifiers,withScopeId};

在文件目录下定义pojo.User实体类用于封装用户信息:

1
2
3
4
5
6
7
8
9
10
11
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private String name;
private Integer age;
private LocalDateTime updateTime;
}

为了接收前端发起的请求,需要定义一个请求处理类controller.UserController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@RestController
public class UserController {

@RequestMapping("/list")
public List<User> list() throws Exception {
//1. 加载并读取user.txt文件,获取用户数据
InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");
ArrayList<String> lines = IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList<>());

//2. 解析用户信息,封装为User对象,并将User对象封装到list集合当中
List<User> userList = lines.stream().map(line -> {
String[] parts = line.split(",");
Integer id = Integer.parseInt(parts[0]);
String username = parts[1];
String password = parts[2];
String name = parts[3];
Integer age = Integer.parseInt(parts[4]);
LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return new User(id, username, password, name, age, updateTime);
}).toList();

//3. 给前端返回数据(json格式)
return userList;
}
}

注:这里为了快速读取txt文件中的信息,利用了hutool工具类。可以在pom.xml文件中引入该依赖:

1
2
3
4
5
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.22</version>
</dependency>

这里的IoUtil类使用的就是hutool包中提供的:

至此,便可以将整个项目启动。打开浏览器访问:http://localhost:8080/user.html, 便可以成功看到前端展示页面。

SpringBoot分层解耦

按照上述案例中的写法,将数据加载,数据解析,响应数据三个部分全部写在一起(UserController)虽然可以实现功能,但是一旦项目比较庞大,将来的复用性和扩展性会比较差,维护起来也比较困难。

而在实际的开发过程中,需要遵循单一职责原则(尽量让每一个部分的职责更加单一),以便于后期的拓展维护等操作。

三层架构

  • Controller:控制层。接收前端发送的请求,对请求进行处理,并响应数据。
  • Service:业务逻辑层。处理具体的业务逻辑。
  • DAO(Data Access Object):数据访问层(持久层)。负责数据访问操作,包括数据的增、删、改、查。

接下来就按照三层架构的思想对上述SpringBootWeb案例进行改造优化。

分别在项目目录下依照上图创建ServiceDao的接口及其实现类。

UserDao接口中定义findAll()方法:

1
2
3
public interface UserDao {
public List<String> findAll();
}

并在其实现类(UserDaoImpl)中实现该方法(即之前在Controller中读取user.txt文件获取用户数据的逻辑):

1
2
3
4
5
6
7
8
9
public class UserDaoImpl implements UserDao {

@Override
public List<String> findAll() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");
ArrayList<String> lines = IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList<>());
return lines;
}
}

UserService接口中定义findAll()方法:

1
2
3
public interface UserService {
public List<User> findAll();
}

并在其实现类(UserServiceImpl)中实现该方法(即之前在Controller中数据处理的逻辑):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class UserServiceImpl implements UserService {

private UserDao userDao = new UserDaoImpl();

@Override
public List<User> findAll() {

List<String> lines = userDao.findAll();

List<User> userList = lines.stream().map(line -> {
String[] parts = line.split(",");
Integer id = Integer.parseInt(parts[0]);
String username = parts[1];
String password = parts[2];
String name = parts[3];
Integer age = Integer.parseInt(parts[4]);
LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return new User(id, username, password, name, age, updateTime);
}).toList();

return userList;
}
}

首先声明一个UserDao对象,再通过该对象中的findAll()方法获取到用户数据,并赋值给lines,最后将逻辑处理过后的数据进行返回(return userList;)。

最后需要回到Controller中去调用UserServiceImpl,获取逻辑处理之后的数据,并进行响应。

1
2
3
4
5
6
7
8
9
10
11
12
13
@RestController
public class UserController {

private UserService userService = new UserServiceImpl();

@RequestMapping("/list")
public List<User> list() throws Exception {

List<User> userList = userService.findAll();

return userList;
}
}

改造完毕,启动服务。打开浏览器访问:http://localhost:8080/user.html, 依然可以成功看到前端展示页面。

设计原则

有了三层架构的设计思想,我们便可以遵循这一思想进行业务开发。但是这里会遇到一个问题:尽管分模块进行代码编写,但免不了要进行模块与模块之间(层与层)的数据交互。

举个最简单的例子,Controller层要想拿到Service层处理过后的数据并返回给前端,最起码也要创建一个Service层的对象。假设最初的业务逻辑用的是A方案,那么在Controller层就需要创建一个ServiceA对象,但是后面需求有改变,要求使用业务逻辑的B方案,那么Controller层就需要改变创建ServiceB对象。

private Service service = new ServiceA() —> private Service service = new ServiceB()

很明显,目前的方式在改动Service层代码的同时需要额外修改Controller层的代码(Service层和DAO层亦是如此),称层与层之间存在耦合。自然我们是希望尽量降低这种耦合,以避免改动一个模块的同时影响另一个模块,这就引出了软件设计原则:高内聚低耦合

高内聚低耦合

  • 内聚:软件中各个功能模块内部的功能联系。
  • 耦合:衡量软件中各个层/模块之间的依赖、关联的程度。
  • 软件设计原则:高内聚低耦合

那接下来就要实现层与层之间的解耦。

Springboot为解耦提供了一个很好的解决思路:它提供了一个容器,该容器可以存储对象。比如可以将UserServiceImpl对象交给容器去管理,接下来Controller层想使用UserService类型的对象,这时它就可以去容器中查找该类型的对象,容器一旦查找到有该类型的对象,便会自动提供。(这样的好处在于即便Service层发生了改变(实现类的类名发生改变 or 切换了一个新的实现类),Controller层是“无感知的”(即Controller层完全不需要修改任何代码))

具体对象如何交由容器存储,容器又如何在运行时提供正确的依赖对象。Springboot提供了一个解决方案,即控制反转依赖注入

IOC(控制反转)&DI(依赖注入)

  • 控制反转(Inversion Of Control,IOC):对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。
  • 依赖注入(Dependency Injection,DI):容器为应用程序提供运行时所需要的依赖资源,称为依赖注入。
  • Bean对象:IOC容器中创建、管理的对象,称之为Bean

注解实现

  • @Component用于实现IOC操作。表示将当前类交给IOC容器管理,成为IOC容器中的Bean。

    Spring框架为了更好地标识Web应用开发中Bean对象到底归属于哪一层,又提供了@Component的三个衍生注解:

    注解 说明 位置
    @Component 声明Bean的基础注解 不属于以下三类时(比如一些工具类、配置类…),用此注解
    @Controller @Component的衍生注解 标注在控制器类上(Controller)(一般用@RestController替代
    @Service @Component的衍生注解 标注在业务类上(Service)
    @Repository @Component的衍生注解 标注在数据访问类上(DAO)(由于与MyBatis整合,很少使用)

    当然可以只使用@Component注解代替其他三个注解,但是在实际开发中并不推荐,不符合开发规范。

  • @Autowired用于实现DI操作。运行时,IOC容器会提供该类型的Bean对象,并赋值给该变量。

    注:在以下案例中不会单独解释,默认已添加。

了解了IOCDI的思想后,接下来继续对代码进行改进。

  1. UserDaoImpl实现类上添加@Repository注解(或@Component注解):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //@Component
    @Repository
    public class UserDaoImpl implements UserDao {

    @Override
    public List<String> findAll() {
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");
    ArrayList<String> lines = IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList<>());
    return lines;
    }
    }

    实际上点击@Repository注解,可以发现它的底层就已经使用到了@Component注解。

  2. UserServiceImpl实现类上添加@Service注解(或@Component注解):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //@Component
    @Service
    public class UserServiceImpl implements UserService {

    @Autowired //实现DI操作
    private UserDao userDao;

    @Override
    public List<User> findAll() {

    List<String> lines = userDao.findAll();

    List<User> userList = lines.stream().map(line -> {
    String[] parts = line.split(",");
    Integer id = Integer.parseInt(parts[0]);
    String username = parts[1];
    String password = parts[2];
    String name = parts[3];
    Integer age = Integer.parseInt(parts[4]);
    LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    return new User(id, username, password, name, age, updateTime);
    }).toList();

    return userList;
    }
    }

    实际上点击@Service注解,可以发现它的底层就已经使用到了@Component注解。

  3. UserController上添加@Controller(或@RestController注解):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //@Controller
    @RestController
    public class UserController {

    @Autowired //实现DI操作
    private UserService userService;

    @RequestMapping("/list")
    public List<User> list() throws Exception {

    List<User> userList = userService.findAll();

    return userList;
    }
    }

    其实在最开始就已经在该类上添加过@RestController注解,而它的底层就已经使用了@Controller注解。

DI详解(可略过)

@Autowired注解默认是按照类型进行注入的。那么如果一个接口的实现类有多个,那么就会发生冲突。

比如在service.impl目录下新建了一个新的实现类UserServiceImpl2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//@Component
@Service
public class UserServiceImpl2 implements UserService {

@Autowired
private UserDao userDao;

@Override
public List<User> findAll() {

List<String> lines = userDao.findAll();

List<User> userList = lines.stream().map(line -> {
String[] parts = line.split(",");
Integer id = Integer.parseInt(parts[0]);
String username = parts[1];
String password = parts[2];
String name = parts[3];
Integer age = Integer.parseInt(parts[4]);
LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// 返回的User对象在原有的id值的基础上增加200
return new User(id + 200, username, password, name, age, updateTime);
}).toList();

return userList;
}
}

注:该实现类在返回的User对象中,在原有的id值的基础上增加200。

此时启动服务后会发现报错。(错误信息提示:userService需要一个单独的bean,而此时却发现了两个(分别为userServiceImpl以及userServiceImpl2))

对于以上的问题,有三种解决方案:

  1. 方案一:@Primary注解

    可以直接在需要的实现类上添加@Primary注解。(以UserServiceImpl2为例)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    //@Component
    @Service
    @Primary
    public class UserServiceImpl2 implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public List<User> findAll() {

    List<String> lines = userDao.findAll();

    List<User> userList = lines.stream().map(line -> {
    String[] parts = line.split(",");
    Integer id = Integer.parseInt(parts[0]);
    String username = parts[1];
    String password = parts[2];
    String name = parts[3];
    Integer age = Integer.parseInt(parts[4]);
    LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    return new User(id + 200, username, password, name, age, updateTime);
    }).toList();

    return userList;
    }
    }

    启动服务,可以看到所有的用户ID值都增加了200。

  2. 方案二:@Qualifier注解(需要配合@Autowired注解使用)

    UserController类上使用@Qualifier注解:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    @RestController
    //@Controller
    public class UserController {

    @Qualifier("userServiceImpl2")
    @Autowired
    private UserService userService;

    @RequestMapping("/list")
    public List<User> list() throws Exception {

    List<User> userList = userService.findAll();

    return userList;
    }
    }

    注意:需要在括号内写入需要注入的Bean(实现类)的名称,要求首字母小写!!!!

    启动服务,可以看到所有的用户ID值都增加了200。

  3. 方案三:@Resource注解

    可以将@Qualifier@Autowired替换为一个注解:@Resource

    需要指定name属性,该属性为需要注入的Bean(实现类)的名称。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @RestController
    //@Controller
    public class UserController {

    @Resource(name = "userServiceImpl2")
    private UserService userService;

    @RequestMapping("/list")
    public List<User> list() throws Exception {

    List<User> userList = userService.findAll();

    return userList;
    }
    }

    注意:需要在name属性后写入需要注入的Bean(实现类)的名称,要求首字母小写!!!!

    启动服务,可以看到所有的用户ID值都增加了200。

    关于@Resource以及@Autowired的区别:

    • @Autowired是Spring框架提供的注解,而@Resource是JavaEE规范提供的。
    • @Autowired默认是按照类型注入,而@Resource默认是按照名称注入。

后记

通过一个简单的案例深刻理解了SpringBoot三层架构的设计思想。(以后就看这一篇)