diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..9d08a1a8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.eslintignore b/.eslintignore index 77738287..6c702425 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1,8 @@ -dist/ \ No newline at end of file +/dist +/src-capacitor +/src-cordova +/.quasar +/node_modules +.eslintrc.js +/src-ssr +/quasar.config.*.temporary.compiled* diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..340274e6 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,105 @@ +module.exports = { + // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy + // This option interrupts the configuration hierarchy at this file + // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) + root: true, + + // https://eslint.vuejs.org/user-guide/#how-to-use-a-custom-parser + // Must use parserOptions instead of "parser" to allow vue-eslint-parser to keep working + // `parser: 'vue-eslint-parser'` is already included with any 'plugin:vue/**' config and should be omitted + parserOptions: { + parser: require.resolve('@typescript-eslint/parser'), + extraFileExtensions: ['.vue'] + }, + + env: { + browser: true, + es2021: true, + node: true, + 'vue/setup-compiler-macros': true + }, + + // Rules order is important, please avoid shuffling them + extends: [ + // Base ESLint recommended rules + // 'eslint:recommended', + + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#usage + // ESLint typescript rules + 'plugin:@typescript-eslint/recommended', + + // Uncomment any of the lines below to choose desired strictness, + // but leave only one uncommented! + // See https://eslint.vuejs.org/rules/#available-rules + 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention) + // 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) + // 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) + + 'standard' + + ], + + plugins: [ + // required to apply rules which need type information + '@typescript-eslint', + + // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files + // required to lint *.vue files + 'vue' + + ], + + globals: { + ga: 'readonly', // Google Analytics + cordova: 'readonly', + __statics: 'readonly', + __QUASAR_SSR__: 'readonly', + __QUASAR_SSR_SERVER__: 'readonly', + __QUASAR_SSR_CLIENT__: 'readonly', + __QUASAR_SSR_PWA__: 'readonly', + process: 'readonly', + Capacitor: 'readonly', + chrome: 'readonly' + }, + + // add your custom rules here + rules: { + 'space-before-function-paren': 'off', + // allow async-await + 'generator-star-spacing': 'off', + // allow paren-less arrow functions + 'arrow-parens': 'off', + 'one-var': 'off', + 'no-void': 'off', + 'multiline-ternary': 'off', + + 'import/first': 'off', + 'import/namespace': 'error', + 'import/default': 'error', + 'import/export': 'error', + 'import/extensions': 'off', + 'import/no-unresolved': 'off', + 'import/no-extraneous-dependencies': 'off', + + // The core 'import/named' rules + // does not work with type definitions + 'import/named': 'off', + + 'prefer-promise-reject-errors': 'off', + + quotes: ['warn', 'single', { avoidEscape: true }], + + // this rule, if on, would require explicit return type on the `render` function + '@typescript-eslint/explicit-function-return-type': 'off', + + // in plain CommonJS modules, you can't use `import foo = require('foo')` to pass this rule, so it has to be disabled + '@typescript-eslint/no-var-requires': 'off', + + // The core 'no-unused-vars' rules (in the eslint:recommended ruleset) + // does not work with type definitions + 'no-unused-vars': 'off', + + // allow debugger during development only + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + } +} diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 6648ec3b..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - node: true, - "vue/setup-compiler-macros": true - }, - extends: [ - 'eslint:recommended', - 'plugin:vue/vue3-recommended', - 'plugin:@typescript-eslint/recommended', - ], - parser: 'vue-eslint-parser', - parserOptions: { - ecmaVersion: 'latest', - parser: '@typescript-eslint/parser', - sourceType: 'module', - }, - plugins: ['vue', '@typescript-eslint'], - rules: { - 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', - 'vue/multi-word-component-names': 'off' - }, -}; diff --git a/.gitignore b/.gitignore index 17be38db..7c3908e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,31 +1,38 @@ -# Logs -logs -*.log +.DS_Store +.thumbs.db +node_modules + +# Quasar core related directories +.quasar +/dist +/quasar.config.*.temporary.compiled* + +# Cordova related directories and files +/src-cordova/node_modules +/src-cordova/platforms +/src-cordova/plugins +/src-cordova/www + +# Capacitor related directories and files +/src-capacitor/www +/src-capacitor/node_modules + +# BEX related directories and files +/src-bex/www +/src-bex/js/core + +# Log files npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local # Editor directories and files -.vscode/* -!.vscode/extensions.json .idea -.DS_Store *.suo *.ntvs* *.njsproj *.sln -*.sw? -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions + +# local .env files +.env.local* +.yarn/install-state.gz diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..32bd84d2 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +# pnpm-related options +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..518f8c8c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,14 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "editorconfig.editorconfig", + "vue.volar", + "wayou.vscode-todo-highlight" + ], + "unwantedRecommendations": [ + "octref.vetur", + "hookyqr.beautify", + "dbaeumer.jshint", + "ms-vscode.vscode-typescript-tslint-plugin" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..6ff0621a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "editor.bracketPairColorization.enabled": true, + "editor.guides.bracketPairs": true, + "editor.formatOnSave": true, + "editor.codeActionsOnSave": [ + "source.fixAll.eslint" + ], + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "vue" + ], + "typescript.tsdk": "node_modules/typescript/lib", + "eslint.format.enable": true +} \ No newline at end of file diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 00000000..223cd653 Binary files /dev/null and b/.yarn/install-state.gz differ diff --git a/.yarn/releases/yarn-3.5.0.cjs b/.yarn/releases/yarn-3.5.0.cjs deleted file mode 100755 index 093e64a9..00000000 --- a/.yarn/releases/yarn-3.5.0.cjs +++ /dev/null @@ -1,873 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var Qge=Object.create;var AS=Object.defineProperty;var bge=Object.getOwnPropertyDescriptor;var Sge=Object.getOwnPropertyNames;var vge=Object.getPrototypeOf,xge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Pge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)AS(r,t,{get:e[t],enumerable:!0})},Dge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Sge(e))!xge.call(r,n)&&n!==t&&AS(r,n,{get:()=>e[n],enumerable:!(i=bge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Qge(vge(r)):{},Dge(e||!r||!r.__esModule?AS(t,"default",{value:r,enumerable:!0}):t,r));var QK=w((GXe,BK)=>{BK.exports=wK;wK.sync=Zge;var IK=J("fs");function Xge(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{xK.exports=SK;SK.sync=_ge;var bK=J("fs");function SK(r,e,t){bK.stat(r,function(i,n){t(i,i?!1:vK(n,e))})}function _ge(r,e){return vK(bK.statSync(r),e)}function vK(r,e){return r.isFile()&&$ge(r,e)}function $ge(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var kK=w((qXe,DK)=>{var jXe=J("fs"),sI;process.platform==="win32"||global.TESTING_WINDOWS?sI=QK():sI=PK();DK.exports=SS;SS.sync=efe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}sI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function efe(r,e){try{return sI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var MK=w((JXe,OK)=>{var vg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",RK=J("path"),tfe=vg?";":":",FK=kK(),NK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),LK=(r,e)=>{let t=e.colon||tfe,i=r.match(/\//)||vg&&r.match(/\\/)?[""]:[...vg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=vg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=vg?n.split(t):[""];return vg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},TK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=LK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(NK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=RK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];FK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},rfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=LK(r,e),s=[];for(let o=0;o{"use strict";var KK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=KK;vS.exports.default=KK});var jK=w((zXe,YK)=>{"use strict";var HK=J("path"),ife=MK(),nfe=UK();function GK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=ife.sync(r.command,{path:t[nfe({env:t})],pathExt:e?HK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=HK.resolve(n?r.options.cwd:"",o)),o}function sfe(r){return GK(r)||GK(r,!0)}YK.exports=sfe});var qK=w((VXe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function ofe(r){return r=r.replace(xS,"^$1"),r}function afe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=ofe;PS.exports.argument=afe});var WK=w((XXe,JK)=>{"use strict";JK.exports=/^#!(.*)/});var VK=w((ZXe,zK)=>{"use strict";var Afe=WK();zK.exports=(r="")=>{let e=r.match(Afe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var ZK=w((_Xe,XK)=>{"use strict";var DS=J("fs"),lfe=VK();function cfe(r){let t=Buffer.alloc(150),i;try{i=DS.openSync(r,"r"),DS.readSync(i,t,0,150,0),DS.closeSync(i)}catch{}return lfe(t.toString())}XK.exports=cfe});var tU=w(($Xe,eU)=>{"use strict";var ufe=J("path"),_K=jK(),$K=qK(),gfe=ZK(),ffe=process.platform==="win32",hfe=/\.(?:com|exe)$/i,pfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function dfe(r){r.file=_K(r);let e=r.file&&gfe(r.file);return e?(r.args.unshift(r.file),r.command=e,_K(r)):r.file}function Cfe(r){if(!ffe)return r;let e=dfe(r),t=!hfe.test(e);if(r.options.forceShell||t){let i=pfe.test(e);r.command=ufe.normalize(r.command),r.command=$K.command(r.command),r.args=r.args.map(s=>$K.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function mfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Cfe(i)}eU.exports=mfe});var nU=w((eZe,iU)=>{"use strict";var kS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Efe(r,e){if(!kS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=rU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function rU(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Ife(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}iU.exports={hookChildProcess:Efe,verifyENOENT:rU,verifyENOENTSync:Ife,notFoundError:RS}});var LS=w((tZe,xg)=>{"use strict";var sU=J("child_process"),FS=tU(),NS=nU();function oU(r,e,t){let i=FS(r,e,t),n=sU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function yfe(r,e,t){let i=FS(r,e,t),n=sU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}xg.exports=oU;xg.exports.spawn=oU;xg.exports.sync=yfe;xg.exports._parse=FS;xg.exports._enoent=NS});var AU=w((rZe,aU)=>{"use strict";function wfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Wl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Wl)}wfe(Wl,Error);Wl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",_e=me(">&",!1),Pt=">",It=me(">",!1),Or="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Os=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ii="$'",es=me("$'",!1),ua="'",pA=me("'",!1),ag=function(m){return[{type:"text",text:m}]},ts='""',dA=me('""',!1),ga=function(){return{type:"text",text:""}},yp='"',CA=me('"',!1),mA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},kl=function(m){return{type:"shell",shell:m,quoted:!0}},Ag=function(m){return{type:"variable",...m,quoted:!0}},Io=function(m){return{type:"text",text:m}},lg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},wp=function(m){return{type:"shell",shell:m,quoted:!1}},Bp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,yo=Je(["'"],!0,!1),kn=function(m){return m.join("")},cg=/^[^$"]/,Qt=Je(["$",'"'],!0,!1),Rl=`\\ -`,Rn=me(`\\ -`,!1),rs=function(){return""},is="\\",gt=me("\\",!1),wo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),an=function(m){return m},S="\\a",Tt=me("\\a",!1),ug=function(){return"a"},Fl="\\b",Qp=me("\\b",!1),bp=function(){return"\b"},Sp=/^[Ee]/,vp=Je(["E","e"],!1,!1),xp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),EA=function(){return"\f"},Ji="\\n",Nl=me("\\n",!1),Xe=function(){return` -`},fa="\\r",gg=me("\\r",!1),FE=function(){return"\r"},Pp="\\t",NE=me("\\t",!1),ar=function(){return" "},Fn="\\v",Ll=me("\\v",!1),Dp=function(){return"\v"},Ms=/^[\\'"?]/,ha=Je(["\\","'",'"',"?"],!1,!1),An=function(m){return String.fromCharCode(parseInt(m,16))},Te="\\x",fg=me("\\x",!1),Tl="\\u",Ks=me("\\u",!1),Ol="\\U",IA=me("\\U",!1),hg=function(m){return String.fromCodePoint(parseInt(m,16))},pg=/^[0-7]/,pa=Je([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),yA="-",Ml=me("-",!1),Us="+",Kl=me("+",!1),LE=".",kp=me(".",!1),dg=function(m,b,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(b.join("")+"."+N.join(""))}},Rp=function(m,b){return{type:"number",value:(m==="-"?-1:1)*parseInt(b.join(""))}},TE=function(m){return{type:"variable",...m}},Ul=function(m){return{type:"variable",name:m}},OE=function(m){return m},Cg="*",wA=me("*",!1),Rr="/",ME=me("/",!1),Hs=function(m,b,N){return{type:b==="*"?"multiplication":"division",right:N}},Gs=function(m,b){return b.reduce((N,U)=>({left:N,...U}),m)},mg=function(m,b,N){return{type:b==="+"?"addition":"subtraction",right:N}},BA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Nn=me("${",!1),qb=":-",S1=me(":-",!1),v1=function(m,b){return{name:m,defaultValue:b}},Jb=":-}",x1=me(":-}",!1),P1=function(m){return{name:m,defaultValue:[]}},Wb=":+",D1=me(":+",!1),k1=function(m,b){return{name:m,alternativeValue:b}},zb=":+}",R1=me(":+}",!1),F1=function(m){return{name:m,alternativeValue:[]}},Vb=function(m){return{name:m}},N1="$",L1=me("$",!1),T1=function(m){return e.isGlobPattern(m)},O1=function(m){return m},Xb=/^[a-zA-Z0-9_]/,Zb=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),_b=function(){return T()},$b=/^[$@*?#a-zA-Z0-9_\-]/,eS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),M1=/^[(){}<>$|&; \t"']/,Eg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),tS=/^[<>&; \t"']/,rS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),KE=/^[ \t]/,UE=Je([" "," "],!1,!1),Q=0,Me=0,QA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function T(){return r.substring(Me,Q)}function Z(){return Et(Me,Q)}function te(m,b){throw b=b!==void 0?b:Et(Me,Q),Ri([lt(m)],r.substring(Me,Q),b)}function Be(m,b){throw b=b!==void 0?b:Et(Me,Q),Ln(m,b)}function me(m,b){return{type:"literal",text:m,ignoreCase:b}}function Je(m,b,N){return{type:"class",parts:m,inverted:b,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var b=QA[m],N;if(b)return b;for(N=m-1;!QA[N];)N--;for(b=QA[N],b={line:b.line,column:b.column};Nd&&(d=Q,E=[]),E.push(m))}function Ln(m,b){return new Wl(m,null,null,b)}function Ri(m,b,N){return new Wl(Wl.buildMessage(m,b),m,b,N)}function bA(){var m,b;return m=Q,b=Mr(),b===t&&(b=null),b!==t&&(Me=m,b=s(b)),m=b,m}function Mr(){var m,b,N,U,ce;if(m=Q,b=Kr(),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ca(),U!==t?(ce=ns(),ce===t&&(ce=null),ce!==t?(Me=m,b=o(b,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;if(m===t)if(m=Q,b=Kr(),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ca(),U===t&&(U=null),U!==t?(Me=m,b=a(b,U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function ns(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Mr(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=l(N),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function Ca(){var m;return r.charCodeAt(Q)===59?(m=c,Q++):(m=t,I===0&&Qe(u)),m===t&&(r.charCodeAt(Q)===38?(m=g,Q++):(m=t,I===0&&Qe(f))),m}function Kr(){var m,b,N;return m=Q,b=K1(),b!==t?(N=age(),N===t&&(N=null),N!==t?(Me=m,b=h(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function age(){var m,b,N,U,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Age(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=p(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function Age(){var m;return r.substr(Q,2)===C?(m=C,Q+=2):(m=t,I===0&&Qe(y)),m===t&&(r.substr(Q,2)===B?(m=B,Q+=2):(m=t,I===0&&Qe(v))),m}function K1(){var m,b,N;return m=Q,b=uge(),b!==t?(N=lge(),N===t&&(N=null),N!==t?(Me=m,b=D(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function lge(){var m,b,N,U,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=cge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=K1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=L(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function cge(){var m;return r.substr(Q,2)===H?(m=H,Q+=2):(m=t,I===0&&Qe(j)),m===t&&(r.charCodeAt(Q)===124?(m=$,Q++):(m=t,I===0&&Qe(V))),m}function HE(){var m,b,N,U,ce,Se;if(m=Q,b=Z1(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(_)),N!==t)if(U=G1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Me=m,b=A(b,U),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;else Q=m,m=t;if(m===t)if(m=Q,b=Z1(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(_)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=ae(b),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function uge(){var m,b,N,U,ce,Se,ht,Bt,Jr,hi,ss;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===40?(N=ge,Q++):(N=t,I===0&&Qe(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===41?(ht=O,Q++):(ht=t,I===0&&Qe(F)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Fp();hi!==t;)Jr.push(hi),hi=Fp();if(Jr!==t){for(hi=[],ss=He();ss!==t;)hi.push(ss),ss=He();hi!==t?(Me=m,b=ue(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===123?(N=he,Q++):(N=t,I===0&&Qe(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===125?(ht=Fe,Q++):(ht=t,I===0&&Qe(Ne)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Fp();hi!==t;)Jr.push(hi),hi=Fp();if(Jr!==t){for(hi=[],ss=He();ss!==t;)hi.push(ss),ss=He();hi!==t?(Me=m,b=oe(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){for(N=[],U=HE();U!==t;)N.push(U),U=HE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=H1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=H1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=le(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],U=HE(),U!==t)for(;U!==t;)N.push(U),U=HE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=we(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}}}return m}function U1(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],U=GE(),U!==t)for(;U!==t;)N.push(U),U=GE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=fe(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t;return m}function H1(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t?(N=Fp(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();b!==t?(N=GE(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t)}return m}function Fp(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(qe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(ne)),N===t&&(N=null),N!==t?(U=gge(),U!==t?(ce=GE(),ce!==t?(Me=m,b=Y(N,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function gge(){var m;return r.substr(Q,2)===pe?(m=pe,Q+=2):(m=t,I===0&&Qe(ie)),m===t&&(r.substr(Q,2)===de?(m=de,Q+=2):(m=t,I===0&&Qe(_e)),m===t&&(r.charCodeAt(Q)===62?(m=Pt,Q++):(m=t,I===0&&Qe(It)),m===t&&(r.substr(Q,3)===Or?(m=Or,Q+=3):(m=t,I===0&&Qe(ii)),m===t&&(r.substr(Q,2)===gi?(m=gi,Q+=2):(m=t,I===0&&Qe(hr)),m===t&&(r.charCodeAt(Q)===60?(m=fi,Q++):(m=t,I===0&&Qe(ni))))))),m}function GE(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(N=G1(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function G1(){var m,b,N;if(m=Q,b=[],N=Y1(),N!==t)for(;N!==t;)b.push(N),N=Y1();else b=t;return b!==t&&(Me=m,b=Os(b)),m=b,m}function Y1(){var m,b;return m=Q,b=fge(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=hge(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=pge(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=dge(),b!==t&&(Me=m,b=pr(b)),m=b))),m}function fge(){var m,b,N,U;return m=Q,r.substr(Q,2)===Ii?(b=Ii,Q+=2):(b=t,I===0&&Qe(es)),b!==t?(N=Ege(),N!==t?(r.charCodeAt(Q)===39?(U=ua,Q++):(U=t,I===0&&Qe(pA)),U!==t?(Me=m,b=ag(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function hge(){var m,b,N,U;return m=Q,r.charCodeAt(Q)===39?(b=ua,Q++):(b=t,I===0&&Qe(pA)),b!==t?(N=Cge(),N!==t?(r.charCodeAt(Q)===39?(U=ua,Q++):(U=t,I===0&&Qe(pA)),U!==t?(Me=m,b=ag(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function pge(){var m,b,N,U;if(m=Q,r.substr(Q,2)===ts?(b=ts,Q+=2):(b=t,I===0&&Qe(dA)),b!==t&&(Me=m,b=ga()),m=b,m===t)if(m=Q,r.charCodeAt(Q)===34?(b=yp,Q++):(b=t,I===0&&Qe(CA)),b!==t){for(N=[],U=j1();U!==t;)N.push(U),U=j1();N!==t?(r.charCodeAt(Q)===34?(U=yp,Q++):(U=t,I===0&&Qe(CA)),U!==t?(Me=m,b=mA(N),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function dge(){var m,b,N;if(m=Q,b=[],N=q1(),N!==t)for(;N!==t;)b.push(N),N=q1();else b=t;return b!==t&&(Me=m,b=mA(b)),m=b,m}function j1(){var m,b;return m=Q,b=V1(),b!==t&&(Me=m,b=wr(b)),m=b,m===t&&(m=Q,b=X1(),b!==t&&(Me=m,b=kl(b)),m=b,m===t&&(m=Q,b=oS(),b!==t&&(Me=m,b=Ag(b)),m=b,m===t&&(m=Q,b=mge(),b!==t&&(Me=m,b=Io(b)),m=b))),m}function q1(){var m,b;return m=Q,b=V1(),b!==t&&(Me=m,b=lg(b)),m=b,m===t&&(m=Q,b=X1(),b!==t&&(Me=m,b=wp(b)),m=b,m===t&&(m=Q,b=oS(),b!==t&&(Me=m,b=Bp(b)),m=b,m===t&&(m=Q,b=wge(),b!==t&&(Me=m,b=vr(b)),m=b,m===t&&(m=Q,b=yge(),b!==t&&(Me=m,b=Io(b)),m=b)))),m}function Cge(){var m,b,N;for(m=Q,b=[],se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo));N!==t;)b.push(N),se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo));return b!==t&&(Me=m,b=kn(b)),m=b,m}function mge(){var m,b,N;if(m=Q,b=[],N=J1(),N===t&&(cg.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt))),N!==t)for(;N!==t;)b.push(N),N=J1(),N===t&&(cg.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt)));else b=t;return b!==t&&(Me=m,b=kn(b)),m=b,m}function J1(){var m,b,N;return m=Q,r.substr(Q,2)===Rl?(b=Rl,Q+=2):(b=t,I===0&&Qe(Rn)),b!==t&&(Me=m,b=rs()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=is,Q++):(b=t,I===0&&Qe(gt)),b!==t?(wo.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(At)),N!==t?(Me=m,b=an(N),m=b):(Q=m,m=t)):(Q=m,m=t)),m}function Ege(){var m,b,N;for(m=Q,b=[],N=W1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo)));N!==t;)b.push(N),N=W1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(yo)));return b!==t&&(Me=m,b=kn(b)),m=b,m}function W1(){var m,b,N;return m=Q,r.substr(Q,2)===S?(b=S,Q+=2):(b=t,I===0&&Qe(Tt)),b!==t&&(Me=m,b=ug()),m=b,m===t&&(m=Q,r.substr(Q,2)===Fl?(b=Fl,Q+=2):(b=t,I===0&&Qe(Qp)),b!==t&&(Me=m,b=bp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=is,Q++):(b=t,I===0&&Qe(gt)),b!==t?(Sp.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(vp)),N!==t?(Me=m,b=xp(),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===G?(b=G,Q+=2):(b=t,I===0&&Qe(yt)),b!==t&&(Me=m,b=EA()),m=b,m===t&&(m=Q,r.substr(Q,2)===Ji?(b=Ji,Q+=2):(b=t,I===0&&Qe(Nl)),b!==t&&(Me=m,b=Xe()),m=b,m===t&&(m=Q,r.substr(Q,2)===fa?(b=fa,Q+=2):(b=t,I===0&&Qe(gg)),b!==t&&(Me=m,b=FE()),m=b,m===t&&(m=Q,r.substr(Q,2)===Pp?(b=Pp,Q+=2):(b=t,I===0&&Qe(NE)),b!==t&&(Me=m,b=ar()),m=b,m===t&&(m=Q,r.substr(Q,2)===Fn?(b=Fn,Q+=2):(b=t,I===0&&Qe(Ll)),b!==t&&(Me=m,b=Dp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=is,Q++):(b=t,I===0&&Qe(gt)),b!==t?(Ms.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(ha)),N!==t?(Me=m,b=an(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Ige()))))))))),m}function Ige(){var m,b,N,U,ce,Se,ht,Bt,Jr,hi,ss,aS;return m=Q,r.charCodeAt(Q)===92?(b=is,Q++):(b=t,I===0&&Qe(gt)),b!==t?(N=iS(),N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Te?(b=Te,Q+=2):(b=t,I===0&&Qe(fg)),b!==t?(N=Q,U=Q,ce=iS(),ce!==t?(Se=Tn(),Se!==t?(ce=[ce,Se],U=ce):(Q=U,U=t)):(Q=U,U=t),U===t&&(U=iS()),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Tl?(b=Tl,Q+=2):(b=t,I===0&&Qe(Ks)),b!==t?(N=Q,U=Q,ce=Tn(),ce!==t?(Se=Tn(),Se!==t?(ht=Tn(),ht!==t?(Bt=Tn(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ol?(b=Ol,Q+=2):(b=t,I===0&&Qe(IA)),b!==t?(N=Q,U=Q,ce=Tn(),ce!==t?(Se=Tn(),Se!==t?(ht=Tn(),ht!==t?(Bt=Tn(),Bt!==t?(Jr=Tn(),Jr!==t?(hi=Tn(),hi!==t?(ss=Tn(),ss!==t?(aS=Tn(),aS!==t?(ce=[ce,Se,ht,Bt,Jr,hi,ss,aS],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=hg(N),m=b):(Q=m,m=t)):(Q=m,m=t)))),m}function iS(){var m;return pg.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(pa)),m}function Tn(){var m;return da.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(rt)),m}function yge(){var m,b,N,U,ce;if(m=Q,b=[],N=Q,r.charCodeAt(Q)===92?(U=is,Q++):(U=t,I===0&&Qe(gt)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=_1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t)),N!==t)for(;N!==t;)b.push(N),N=Q,r.charCodeAt(Q)===92?(U=is,Q++):(U=t,I===0&&Qe(gt)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=_1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t));else b=t;return b!==t&&(Me=m,b=kn(b)),m=b,m}function nS(){var m,b,N,U,ce,Se;if(m=Q,r.charCodeAt(Q)===45?(b=yA,Q++):(b=t,I===0&&Qe(Ml)),b===t&&(r.charCodeAt(Q)===43?(b=Us,Q++):(b=t,I===0&&Qe(Kl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne));else N=t;if(N!==t)if(r.charCodeAt(Q)===46?(U=LE,Q++):(U=t,I===0&&Qe(kp)),U!==t){if(ce=[],qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne));else ce=t;ce!==t?(Me=m,b=dg(b,N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;if(m===t){if(m=Q,r.charCodeAt(Q)===45?(b=yA,Q++):(b=t,I===0&&Qe(Ml)),b===t&&(r.charCodeAt(Q)===43?(b=Us,Q++):(b=t,I===0&&Qe(Kl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne));else N=t;N!==t?(Me=m,b=Rp(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;if(m===t&&(m=Q,b=oS(),b!==t&&(Me=m,b=TE(b)),m=b,m===t&&(m=Q,b=Hl(),b!==t&&(Me=m,b=Ul(b)),m=b,m===t)))if(m=Q,r.charCodeAt(Q)===40?(b=ge,Q++):(b=t,I===0&&Qe(re)),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=z1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(Q)===41?(Se=O,Q++):(Se=t,I===0&&Qe(F)),Se!==t?(Me=m,b=OE(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t}return m}function sS(){var m,b,N,U,ce,Se,ht,Bt;if(m=Q,b=nS(),b!==t){for(N=[],U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=Cg,Q++):(Se=t,I===0&&Qe(wA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(ME))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=nS(),Bt!==t?(Me=U,ce=Hs(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=Cg,Q++):(Se=t,I===0&&Qe(wA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(ME))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=nS(),Bt!==t?(Me=U,ce=Hs(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Me=m,b=Gs(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function z1(){var m,b,N,U,ce,Se,ht,Bt;if(m=Q,b=sS(),b!==t){for(N=[],U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Us,Q++):(Se=t,I===0&&Qe(Kl)),Se===t&&(r.charCodeAt(Q)===45?(Se=yA,Q++):(Se=t,I===0&&Qe(Ml))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Me=U,ce=mg(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Us,Q++):(Se=t,I===0&&Qe(Kl)),Se===t&&(r.charCodeAt(Q)===45?(Se=yA,Q++):(Se=t,I===0&&Qe(Ml))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Me=U,ce=mg(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Me=m,b=Gs(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function V1(){var m,b,N,U,ce,Se;if(m=Q,r.substr(Q,3)===BA?(b=BA,Q+=3):(b=t,I===0&&Qe(R)),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=z1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(Q,2)===q?(Se=q,Q+=2):(Se=t,I===0&&Qe(Ce)),Se!==t?(Me=m,b=Ke(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;return m}function X1(){var m,b,N,U;return m=Q,r.substr(Q,2)===Re?(b=Re,Q+=2):(b=t,I===0&&Qe(ze)),b!==t?(N=Mr(),N!==t?(r.charCodeAt(Q)===41?(U=O,Q++):(U=t,I===0&&Qe(F)),U!==t?(Me=m,b=dt(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function oS(){var m,b,N,U,ce,Se;return m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Nn)),b!==t?(N=Hl(),N!==t?(r.substr(Q,2)===qb?(U=qb,Q+=2):(U=t,I===0&&Qe(S1)),U!==t?(ce=U1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=v1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Nn)),b!==t?(N=Hl(),N!==t?(r.substr(Q,3)===Jb?(U=Jb,Q+=3):(U=t,I===0&&Qe(x1)),U!==t?(Me=m,b=P1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Nn)),b!==t?(N=Hl(),N!==t?(r.substr(Q,2)===Wb?(U=Wb,Q+=2):(U=t,I===0&&Qe(D1)),U!==t?(ce=U1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=k1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Nn)),b!==t?(N=Hl(),N!==t?(r.substr(Q,3)===zb?(U=zb,Q+=3):(U=t,I===0&&Qe(R1)),U!==t?(Me=m,b=F1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Nn)),b!==t?(N=Hl(),N!==t?(r.charCodeAt(Q)===125?(U=Fe,Q++):(U=t,I===0&&Qe(Ne)),U!==t?(Me=m,b=Vb(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.charCodeAt(Q)===36?(b=N1,Q++):(b=t,I===0&&Qe(L1)),b!==t?(N=Hl(),N!==t?(Me=m,b=Vb(N),m=b):(Q=m,m=t)):(Q=m,m=t)))))),m}function wge(){var m,b,N;return m=Q,b=Bge(),b!==t?(Me=Q,N=T1(b),N?N=void 0:N=t,N!==t?(Me=m,b=O1(b),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Bge(){var m,b,N,U,ce;if(m=Q,b=[],N=Q,U=Q,I++,ce=$1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N!==t)for(;N!==t;)b.push(N),N=Q,U=Q,I++,ce=$1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Bo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t);else b=t;return b!==t&&(Me=m,b=kn(b)),m=b,m}function Z1(){var m,b,N;if(m=Q,b=[],Xb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Zb)),N!==t)for(;N!==t;)b.push(N),Xb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Zb));else b=t;return b!==t&&(Me=m,b=_b()),m=b,m}function Hl(){var m,b,N;if(m=Q,b=[],$b.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(eS)),N!==t)for(;N!==t;)b.push(N),$b.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(eS));else b=t;return b!==t&&(Me=m,b=_b()),m=b,m}function _1(){var m;return M1.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(Eg)),m}function $1(){var m;return tS.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(rS)),m}function He(){var m,b;if(m=[],KE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(UE)),b!==t)for(;b!==t;)m.push(b),KE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(UE));else m=t;return m}if(k=n(),k!==t&&Q===r.length)return k;throw k!==t&&Q{"use strict";function Qfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Vl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Vl)}Qfe(Vl,Error);Vl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new Vl(ne,null,null,Y)}function oe(ne,Y,pe){return new Vl(Vl.buildMessage(ne,Y),ne,Y,pe)}function le(){var ne,Y,pe,ie;return ne=v,Y=we(),Y!==t?(r.charCodeAt(v)===47?(pe=s,v++):(pe=t,$===0&&Fe(o)),pe!==t?(ie=we(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=we(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function we(){var ne,Y,pe,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(pe=c,v++):(pe=t,$===0&&Fe(u)),pe!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,pe,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(pe=Ae(),pe!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=Ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function Ae(){var ne,Y,pe;if(ne=v,Y=[],p.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(C)),pe!==t)for(;pe!==t;)Y.push(pe),p.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,pe;if(ne=v,Y=[],y.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(B)),pe!==t)for(;pe!==t;)Y.push(pe),y.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function fU(r){return typeof r>"u"||r===null}function Sfe(r){return typeof r=="object"&&r!==null}function vfe(r){return Array.isArray(r)?r:fU(r)?[]:[r]}function xfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Wp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Wp.prototype=Object.create(Error.prototype);Wp.prototype.constructor=Wp;Wp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};hU.exports=Wp});var CU=w((IZe,dU)=>{"use strict";var pU=Zl();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),pU.repeat(" ",e)+i+a+s+` -`+pU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};dU.exports=HS});var si=w((yZe,EU)=>{"use strict";var mU=kg(),kfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Rfe=["scalar","sequence","mapping"];function Ffe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Nfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(kfe.indexOf(t)===-1)throw new mU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Ffe(e.styleAliases||null),Rfe.indexOf(this.kind)===-1)throw new mU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}EU.exports=Nfe});var _l=w((wZe,yU)=>{"use strict";var IU=Zl(),gI=kg(),Lfe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Tfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Ofe=si();wU.exports=new Ofe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var bU=w((QZe,QU)=>{"use strict";var Mfe=si();QU.exports=new Mfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var vU=w((bZe,SU)=>{"use strict";var Kfe=si();SU.exports=new Kfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var fI=w((SZe,xU)=>{"use strict";var Ufe=_l();xU.exports=new Ufe({explicit:[BU(),bU(),vU()]})});var DU=w((vZe,PU)=>{"use strict";var Hfe=si();function Gfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Yfe(){return null}function jfe(r){return r===null}PU.exports=new Hfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Gfe,construct:Yfe,predicate:jfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var RU=w((xZe,kU)=>{"use strict";var qfe=si();function Jfe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function Wfe(r){return r==="true"||r==="True"||r==="TRUE"}function zfe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}kU.exports=new qfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Jfe,construct:Wfe,predicate:zfe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var NU=w((PZe,FU)=>{"use strict";var Vfe=Zl(),Xfe=si();function Zfe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function _fe(r){return 48<=r&&r<=55}function $fe(r){return 48<=r&&r<=57}function ehe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var OU=w((DZe,TU)=>{"use strict";var LU=Zl(),ihe=si(),nhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function she(r){return!(r===null||!nhe.test(r)||r[r.length-1]==="_")}function ohe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var ahe=/^[-+]?[0-9]+e/;function Ahe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(LU.isNegativeZero(r))return"-0.0";return t=r.toString(10),ahe.test(t)?t.replace("e",".e"):t}function lhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||LU.isNegativeZero(r))}TU.exports=new ihe("tag:yaml.org,2002:float",{kind:"scalar",resolve:she,construct:ohe,predicate:lhe,represent:Ahe,defaultStyle:"lowercase"})});var YS=w((kZe,MU)=>{"use strict";var che=_l();MU.exports=new che({include:[fI()],implicit:[DU(),RU(),NU(),OU()]})});var jS=w((RZe,KU)=>{"use strict";var uhe=_l();KU.exports=new uhe({include:[YS()]})});var YU=w((FZe,GU)=>{"use strict";var ghe=si(),UU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),HU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function fhe(r){return r===null?!1:UU.exec(r)!==null||HU.exec(r)!==null}function hhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=UU.exec(r),e===null&&(e=HU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function phe(r){return r.toISOString()}GU.exports=new ghe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:fhe,construct:hhe,instanceOf:Date,represent:phe})});var qU=w((NZe,jU)=>{"use strict";var dhe=si();function Che(r){return r==="<<"||r===null}jU.exports=new dhe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Che})});var zU=w((LZe,WU)=>{"use strict";var $l;try{JU=J,$l=JU("buffer").Buffer}catch{}var JU,mhe=si(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Ehe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Ihe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),$l?$l.from?$l.from(a):new $l(a):a}function yhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function whe(r){return $l&&$l.isBuffer(r)}WU.exports=new mhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:whe,represent:yhe})});var XU=w((TZe,VU)=>{"use strict";var Bhe=si(),Qhe=Object.prototype.hasOwnProperty,bhe=Object.prototype.toString;function She(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var xhe=si(),Phe=Object.prototype.toString;function Dhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Rhe=si(),Fhe=Object.prototype.hasOwnProperty;function Nhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Fhe.call(t,e)&&t[e]!==null)return!1;return!0}function Lhe(r){return r!==null?r:{}}$U.exports=new Rhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Nhe,construct:Lhe})});var Fg=w((KZe,t2)=>{"use strict";var The=_l();t2.exports=new The({include:[jS()],implicit:[YU(),qU()],explicit:[zU(),XU(),_U(),e2()]})});var i2=w((UZe,r2)=>{"use strict";var Ohe=si();function Mhe(){return!0}function Khe(){}function Uhe(){return""}function Hhe(r){return typeof r>"u"}r2.exports=new Ohe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Mhe,construct:Khe,predicate:Hhe,represent:Uhe})});var s2=w((HZe,n2)=>{"use strict";var Ghe=si();function Yhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function jhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function qhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function Jhe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}n2.exports=new Ghe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Yhe,construct:jhe,predicate:Jhe,represent:qhe})});var A2=w((GZe,a2)=>{"use strict";var hI;try{o2=J,hI=o2("esprima")}catch{typeof window<"u"&&(hI=window.esprima)}var o2,Whe=si();function zhe(r){if(r===null)return!1;try{var e="("+r+")",t=hI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Vhe(r){var e="("+r+")",t=hI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Xhe(r){return r.toString()}function Zhe(r){return Object.prototype.toString.call(r)==="[object Function]"}a2.exports=new Whe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:zhe,construct:Vhe,predicate:Zhe,represent:Xhe})});var zp=w((YZe,c2)=>{"use strict";var l2=_l();c2.exports=l2.DEFAULT=new l2({include:[Fg()],explicit:[i2(),s2(),A2()]})});var P2=w((jZe,Vp)=>{"use strict";var ya=Zl(),C2=kg(),_he=CU(),m2=Fg(),$he=zp(),DA=Object.prototype.hasOwnProperty,pI=1,E2=2,I2=3,dI=4,JS=1,epe=2,u2=3,tpe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,rpe=/[\x85\u2028\u2029]/,ipe=/[,\[\]\{\}]/,y2=/^(?:!|!!|![a-z\-]+!)$/i,w2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function g2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function tc(r){return r===9||r===32}function un(r){return r===9||r===32||r===10||r===13}function Ng(r){return r===44||r===91||r===93||r===123||r===125}function npe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function spe(r){return r===120?2:r===117?4:r===85?8:0}function ope(r){return 48<=r&&r<=57?r-48:-1}function f2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ape(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var B2=new Array(256),Q2=new Array(256);for(ec=0;ec<256;ec++)B2[ec]=f2(ec)?1:0,Q2[ec]=f2(ec);var ec;function Ape(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||$he,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function b2(r,e){return new C2(e,new _he(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw b2(r,e)}function CI(r,e){r.onWarning&&r.onWarning.call(null,b2(r,e))}var h2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&CI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],y2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),DA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),w2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=ya.repeat(` -`,e-1))}function lpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),un(h)||Ng(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),un(n)||t&&Ng(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),un(n)||t&&Ng(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),un(i))break}else{if(r.position===r.lineStart&&mI(r)||t&&Ng(h))break;if(vo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),tc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function cpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&mI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function upe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))zr(r,!1,e);else if(a<256&&B2[a])r.result+=Q2[a],r.position++;else if((o=spe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=npe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=ape(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&mI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function gpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),un(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Tg(r,e,pI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Tg(r,e,pI,!1,!0),C=r.result),g?Lg(r,s,f,p,h,C):c?s.push(Lg(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function fpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?u2:epe:ft(r,"repeat of a chomping mode identifier");else if((u=ope(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(tc(g)){do g=r.input.charCodeAt(++r.position);while(tc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Tg(r,e,dI,!0,n)&&(p?f=r.result:h=r.result),p||(Lg(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function mpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!un(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;tc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!un(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),DA.call(h2,i)?h2[i](r,i,n):CI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Tg(r,r.lineIndent-1,dI,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&rpe.test(r.input.slice(e,r.position))&&CI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&mI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=S2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),v2(r,e,ya.extend({schema:m2},t))}function Ipe(r,e){return x2(r,ya.extend({schema:m2},e))}Vp.exports.loadAll=v2;Vp.exports.load=x2;Vp.exports.safeLoadAll=Epe;Vp.exports.safeLoad=Ipe});var _2=w((qZe,_S)=>{"use strict";var Zp=Zl(),_p=kg(),ype=zp(),wpe=Fg(),O2=Object.prototype.toString,M2=Object.prototype.hasOwnProperty,Bpe=9,Xp=10,Qpe=13,bpe=32,Spe=33,vpe=34,K2=35,xpe=37,Ppe=38,Dpe=39,kpe=42,U2=44,Rpe=45,H2=58,Fpe=61,Npe=62,Lpe=63,Tpe=64,G2=91,Y2=93,Ope=96,j2=123,Mpe=124,q2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var Kpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Upe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&R2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Og(o))return EI;a=s>0?r.charCodeAt(s-1):null,f=f&&R2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?W2:z2:t>9&&J2(r)?EI:c?X2:V2}function Jpe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Kpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Gpe(r,l)}switch(qpe(e,o,r.indent,s,a)){case W2:return e;case z2:return"'"+e.replace(/'/g,"''")+"'";case V2:return"|"+F2(e,r.indent)+N2(k2(e,n));case X2:return">"+F2(e,r.indent)+N2(k2(Wpe(e,s),n));case EI:return'"'+zpe(e,s)+'"';default:throw new _p("impossible error: invalid scalar style")}}()}function F2(r,e){var t=J2(r)?String(e):"",i=r[r.length-1]===` -`,n=i&&(r[r.length-2]===` -`||r===` -`),s=n?"+":i?"":"-";return t+s+` -`}function N2(r){return r[r.length-1]===` -`?r.slice(0,-1):r}function Wpe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,L2(r.slice(0,c),e)}(),n=r[0]===` -`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+L2(l,e),n=s}return i}function L2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+r.slice(n,s),n=s+1),o=a;return l+=` -`,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function zpe(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=D2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Og(t)?r[s]:n||D2(t)}return e}function Vpe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),rc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function _pe(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new _p("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&Xp===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),rc(r,e+1,u,!0,g)&&(r.dump&&Xp===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function T2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function rc(r,e,t,i,n,s){r.tag=null,r.dump=t,T2(r,t,!1)||T2(r,t,!0);var o=O2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(_pe(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Zpe(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(Xpe(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Vpe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&Jpe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new _p("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function $pe(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var II=P2(),$2=_2();function yI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=_l();Fr.exports.FAILSAFE_SCHEMA=fI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Fg();Fr.exports.DEFAULT_FULL_SCHEMA=zp();Fr.exports.load=II.load;Fr.exports.loadAll=II.loadAll;Fr.exports.safeLoad=II.safeLoad;Fr.exports.safeLoadAll=II.safeLoadAll;Fr.exports.dump=$2.dump;Fr.exports.safeDump=$2.safeDump;Fr.exports.YAMLException=kg();Fr.exports.MINIMAL_SCHEMA=fI();Fr.exports.SAFE_SCHEMA=Fg();Fr.exports.DEFAULT_SCHEMA=zp();Fr.exports.scan=yI("scan");Fr.exports.parse=yI("parse");Fr.exports.compose=yI("compose");Fr.exports.addConstructor=yI("addConstructor")});var rH=w((WZe,tH)=>{"use strict";var tde=eH();tH.exports=tde});var nH=w((zZe,iH)=>{"use strict";function rde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ic(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ic)}rde(ic,Error);ic.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Ms("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===BA*mg},A=function(R){return R.length===(BA+1)*mg},ae=function(){return BA++,!0},ge=function(){return BA--,!0},re=function(){return gg()},O=Ms("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Fn(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,ke=Fn(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return gg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,we=Fn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,Ae=Fn(["\r",` -`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},pe="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Or=Ms("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Os=/^[^"\\\0-\x1F\x7F]/,pr=Fn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',es=ar('\\"',!1),ua=function(){return'"'},pA="\\\\",ag=ar("\\\\",!1),ts=function(){return"\\"},dA="\\/",ga=ar("\\/",!1),yp=function(){return"/"},CA="\\b",mA=ar("\\b",!1),wr=function(){return"\b"},kl="\\f",Ag=ar("\\f",!1),Io=function(){return"\f"},lg="\\n",wp=ar("\\n",!1),Bp=function(){return` -`},vr="\\r",se=ar("\\r",!1),yo=function(){return"\r"},kn="\\t",cg=ar("\\t",!1),Qt=function(){return" "},Rl="\\u",Rn=ar("\\u",!1),rs=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},is=/^[0-9a-fA-F]/,gt=Fn([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ms("blank space"),At=/^[ \t]/,an=Fn([" "," "],!1,!1),S=Ms("white space"),Tt=/^[ \t\n\r]/,ug=Fn([" "," ",` -`,"\r"],!1,!1),Fl=`\r -`,Qp=ar(`\r -`,!1),bp=` -`,Sp=ar(` -`,!1),vp="\r",xp=ar("\r",!1),G=0,yt=0,EA=[{line:1,column:1}],Ji=0,Nl=[],Xe=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function gg(){return r.substring(yt,G)}function FE(){return An(yt,G)}function Pp(R,q){throw q=q!==void 0?q:An(yt,G),Tl([Ms(R)],r.substring(yt,G),q)}function NE(R,q){throw q=q!==void 0?q:An(yt,G),fg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Fn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Ll(){return{type:"any"}}function Dp(){return{type:"end"}}function Ms(R){return{type:"other",description:R}}function ha(R){var q=EA[R],Ce;if(q)return q;for(Ce=R-1;!EA[Ce];)Ce--;for(q=EA[Ce],q={line:q.line,column:q.column};CeJi&&(Ji=G,Nl=[]),Nl.push(R))}function fg(R,q){return new ic(R,null,null,q)}function Tl(R,q,Ce){return new ic(ic.buildMessage(R,q),R,q,Ce)}function Ks(){var R;return R=hg(),R}function Ol(){var R,q,Ce;for(R=G,q=[],Ce=IA();Ce!==t;)q.push(Ce),Ce=IA();return q!==t&&(yt=R,q=s(q)),R=q,R}function IA(){var R,q,Ce,Ke,Re;return R=G,q=da(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Te(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=pa(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function hg(){var R,q,Ce;for(R=G,q=[],Ce=pg();Ce!==t;)q.push(Ce),Ce=pg();return q!==t&&(yt=R,q=c(q)),R=q,R}function pg(){var R,q,Ce,Ke,Re,ze,dt,Ft,Nn;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Te(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=Gs(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=Gs(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Hs(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Hs();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=da(),q!==t?(Ce=Ml(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=pa(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=da(),q!==t?(Ce=Us(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=pa(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=da(),q!==t)if(Ce=Us(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=LE(),Re!==t){if(ze=[],dt=Hs(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Hs();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=da(),q!==t)if(Ce=Us(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Us(),Nn!==t?(yt=Re,ze=D(Ce,Nn),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Us(),Nn!==t?(yt=Re,ze=D(Ce,Nn),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Te(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=pa(),Ft!==t?(yt=R,q=L(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function pa(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=Gs(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Te(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Hs(),Ce!==t?(Ke=Bo(),Ke!==t?(Re=Ol(),Re!==t?(ze=yA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Gs(),q!==t?(Ce=Bo(),Ce!==t?(Ke=hg(),Ke!==t?(Re=yA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Kl(),q!==t){if(Ce=[],Ke=Hs(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Hs();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function da(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Te($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function Bo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function yA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Ml(){var R;return R=Ul(),R===t&&(R=kp()),R}function Us(){var R,q,Ce;if(R=Ul(),R===t){if(R=G,q=[],Ce=dg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=dg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Kl(){var R;return R=Rp(),R===t&&(R=TE(),R===t&&(R=Ul(),R===t&&(R=kp()))),R}function LE(){var R;return R=Rp(),R===t&&(R=Ul(),R===t&&(R=dg())),R}function kp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(he.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(he.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(O)),R}function dg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Te(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Te(we)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(Ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(Ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function Rp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Te(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function TE(){var R,q;return R=G,r.substr(G,4)===pe?(q=pe,G+=4):(q=t,Xe===0&&Te(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===_e?(q=_e,G+=5):(q=t,Xe===0&&Te(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function Ul(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Te(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(Ce=OE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Te(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Te(Or)),R}function OE(){var R,q,Ce;if(R=G,q=[],Ce=Cg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Cg();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function Cg(){var R,q,Ce,Ke,Re,ze;return Os.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(pr)),R===t&&(R=G,r.substr(G,2)===Ii?(q=Ii,G+=2):(q=t,Xe===0&&Te(es)),q!==t&&(yt=R,q=ua()),R=q,R===t&&(R=G,r.substr(G,2)===pA?(q=pA,G+=2):(q=t,Xe===0&&Te(ag)),q!==t&&(yt=R,q=ts()),R=q,R===t&&(R=G,r.substr(G,2)===dA?(q=dA,G+=2):(q=t,Xe===0&&Te(ga)),q!==t&&(yt=R,q=yp()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,Xe===0&&Te(mA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===kl?(q=kl,G+=2):(q=t,Xe===0&&Te(Ag)),q!==t&&(yt=R,q=Io()),R=q,R===t&&(R=G,r.substr(G,2)===lg?(q=lg,G+=2):(q=t,Xe===0&&Te(wp)),q!==t&&(yt=R,q=Bp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Te(se)),q!==t&&(yt=R,q=yo()),R=q,R===t&&(R=G,r.substr(G,2)===kn?(q=kn,G+=2):(q=t,Xe===0&&Te(cg)),q!==t&&(yt=R,q=Qt()),R=q,R===t&&(R=G,r.substr(G,2)===Rl?(q=Rl,G+=2):(q=t,Xe===0&&Te(Rn)),q!==t?(Ce=wA(),Ce!==t?(Ke=wA(),Ke!==t?(Re=wA(),Re!==t?(ze=wA(),ze!==t?(yt=R,q=rs(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function wA(){var R;return is.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(an)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(an));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(wo)),R}function ME(){var R,q;if(Xe++,R=[],Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ug)),q!==t)for(;q!==t;)R.push(q),Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ug));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(S)),R}function Hs(){var R,q,Ce,Ke,Re,ze;if(R=G,q=Gs(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=Gs(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=Gs(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function Gs(){var R;return r.substr(G,2)===Fl?(R=Fl,G+=2):(R=t,Xe===0&&Te(Qp)),R===t&&(r.charCodeAt(G)===10?(R=bp,G++):(R=t,Xe===0&&Te(Sp)),R===t&&(r.charCodeAt(G)===13?(R=vp,G++):(R=t,Xe===0&&Te(xp)))),R}let mg=2,BA=0;if(fa=n(),fa!==t&&G===r.length)return fa;throw fa!==t&&G{"use strict";var Ade=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=Ade(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=lH;ev.exports.default=lH});var uH=w((e_e,lde)=>{lde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var nc=w(Mn=>{"use strict";var fH=uH(),xo=process.env;Object.defineProperty(Mn,"_vendors",{value:fH.map(function(r){return r.constant})});Mn.name=null;Mn.isPR=null;fH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return gH(i)});if(Mn[r.constant]=t,t)switch(Mn.name=r.name,typeof r.pr){case"string":Mn.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Mn.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Mn.isPR=r.pr.any.some(function(i){return!!xo[i]}):Mn.isPR=gH(r.pr);break;default:Mn.isPR=null}});Mn.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Mn.name);function gH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var gn={};ut(gn,{KeyRelationship:()=>sc,applyCascade:()=>nd,base64RegExp:()=>mH,colorStringAlphaRegExp:()=>CH,colorStringRegExp:()=>dH,computeKey:()=>kA,getPrintable:()=>Vr,hasExactLength:()=>BH,hasForbiddenKeys:()=>Hde,hasKeyRelationship:()=>av,hasMaxLength:()=>Qde,hasMinLength:()=>Bde,hasMutuallyExclusiveKeys:()=>Gde,hasRequiredKeys:()=>Ude,hasUniqueItems:()=>bde,isArray:()=>pde,isAtLeast:()=>xde,isAtMost:()=>Pde,isBase64:()=>Mde,isBoolean:()=>gde,isDate:()=>hde,isDict:()=>Cde,isEnum:()=>Vi,isHexColor:()=>Ode,isISO8601:()=>Tde,isInExclusiveRange:()=>kde,isInInclusiveRange:()=>Dde,isInstanceOf:()=>Ede,isInteger:()=>Rde,isJSON:()=>Kde,isLiteral:()=>cde,isLowerCase:()=>Fde,isNegative:()=>Sde,isNullable:()=>wde,isNumber:()=>fde,isObject:()=>mde,isOneOf:()=>Ide,isOptional:()=>yde,isPositive:()=>vde,isString:()=>id,isTuple:()=>dde,isUUID4:()=>Lde,isUnknown:()=>wH,isUpperCase:()=>Nde,iso8601RegExp:()=>ov,makeCoercionFn:()=>oc,makeSetter:()=>yH,makeTrait:()=>IH,makeValidator:()=>bt,matchesRegExp:()=>sd,plural:()=>vI,pushError:()=>pt,simpleKeyRegExp:()=>pH,uuid4RegExp:()=>EH});function bt({test:r}){return IH(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function kA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:pH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function oc(r,e){return t=>{let i=r[e];return r[e]=t,oc(r,e).bind(null,i)}}function yH(r,e){return t=>{r[e]=t}}function vI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function cde(r){return bt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Vi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return bt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var pH,dH,CH,mH,EH,ov,IH,wH,id,ude,gde,fde,hde,pde,dde,Cde,mde,Ede,Ide,nd,yde,wde,Bde,Qde,BH,bde,Sde,vde,xde,Pde,Dde,kde,Rde,sd,Fde,Nde,Lde,Tde,Ode,Mde,Kde,Ude,Hde,Gde,sc,Yde,av,as=Pge(()=>{pH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,dH=/^#[0-9a-f]{6}$/i,CH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,mH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,EH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,IH=r=>()=>r;wH=()=>bt({test:(r,e)=>!0});id=()=>bt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});ude=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),gde=()=>bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=ude.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),fde=()=>bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),hde=()=>bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),pde=(r,{delimiter:e}={})=>bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=BH(r.length);return bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;abt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return bt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:kA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:kA(n,l),coercion:oc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:kA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:yH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Ede=r=>bt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),Ide=(r,{exclusive:e=!1}={})=>bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),nd=(r,e)=>bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?oc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),yde=r=>bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),wde=r=>bt({test:(e,t)=>e===null?!0:r(e,t)}),Bde=r=>bt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Qde=r=>bt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),BH=r=>bt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),bde=({map:r}={})=>bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sbt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),vde=()=>bt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),xde=r=>bt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Pde=r=>bt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),Dde=(r,e)=>bt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),kde=(r,e)=>bt({test:(t,i)=>t>=r&&tbt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),sd=r=>bt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Fde=()=>bt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),Nde=()=>bt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Lde=()=>bt({test:(r,e)=>EH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Tde=()=>bt({test:(r,e)=>ov.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),Ode=({alpha:r=!1})=>bt({test:(e,t)=>(r?dH.test(e):CH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),Mde=()=>bt({test:(r,e)=>mH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),Kde=(r=wH())=>bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),Ude=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${vI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Hde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${vI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Gde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(sc||(sc={}));Yde={[sc.Forbids]:{expect:!1,message:"forbids using"},[sc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Yde[e];return bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${vI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var UH=w((e$e,KH)=>{"use strict";KH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Yg=w((t$e,pv)=>{"use strict";var oCe=UH(),HH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=oCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=HH;pv.exports.default=HH});var cd=w((i$e,GH)=>{var aCe="2.0.0",ACe=Number.MAX_SAFE_INTEGER||9007199254740991,lCe=16;GH.exports={SEMVER_SPEC_VERSION:aCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:ACe,MAX_SAFE_COMPONENT_LENGTH:lCe}});var ud=w((n$e,YH)=>{var cCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};YH.exports=cCe});var ac=w((FA,jH)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=cd(),uCe=ud();FA=jH.exports={};var gCe=FA.re=[],et=FA.src=[],tt=FA.t={},fCe=0,St=(r,e,t)=>{let i=fCe++;uCe(i,e),tt[r]=i,et[i]=e,gCe[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${et[tt.NUMERICIDENTIFIER]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NUMERICIDENTIFIERLOOSE]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);St("FULL",`^${et[tt.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);St("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);St("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);St("COERCERTL",et[tt.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";St("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";St("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var gd=w((s$e,qH)=>{var hCe=["includePrerelease","loose","rtl"],pCe=r=>r?typeof r!="object"?{loose:!0}:hCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};qH.exports=pCe});var FI=w((o$e,zH)=>{var JH=/^[0-9]+$/,WH=(r,e)=>{let t=JH.test(r),i=JH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rWH(e,r);zH.exports={compareIdentifiers:WH,rcompareIdentifiers:dCe}});var Ti=w((a$e,_H)=>{var NI=ud(),{MAX_LENGTH:VH,MAX_SAFE_INTEGER:LI}=cd(),{re:XH,t:ZH}=ac(),CCe=gd(),{compareIdentifiers:fd}=FI(),Hn=class{constructor(e,t){if(t=CCe(t),e instanceof Hn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>VH)throw new TypeError(`version is longer than ${VH} characters`);NI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?XH[ZH.LOOSE]:XH[ZH.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>LI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>LI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>LI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};_H.exports=Hn});var Ac=w((A$e,rG)=>{var{MAX_LENGTH:mCe}=cd(),{re:$H,t:eG}=ac(),tG=Ti(),ECe=gd(),ICe=(r,e)=>{if(e=ECe(e),r instanceof tG)return r;if(typeof r!="string"||r.length>mCe||!(e.loose?$H[eG.LOOSE]:$H[eG.FULL]).test(r))return null;try{return new tG(r,e)}catch{return null}};rG.exports=ICe});var nG=w((l$e,iG)=>{var yCe=Ac(),wCe=(r,e)=>{let t=yCe(r,e);return t?t.version:null};iG.exports=wCe});var oG=w((c$e,sG)=>{var BCe=Ac(),QCe=(r,e)=>{let t=BCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};sG.exports=QCe});var AG=w((u$e,aG)=>{var bCe=Ti(),SCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new bCe(r,t).inc(e,i).version}catch{return null}};aG.exports=SCe});var As=w((g$e,cG)=>{var lG=Ti(),vCe=(r,e,t)=>new lG(r,t).compare(new lG(e,t));cG.exports=vCe});var TI=w((f$e,uG)=>{var xCe=As(),PCe=(r,e,t)=>xCe(r,e,t)===0;uG.exports=PCe});var hG=w((h$e,fG)=>{var gG=Ac(),DCe=TI(),kCe=(r,e)=>{if(DCe(r,e))return null;{let t=gG(r),i=gG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};fG.exports=kCe});var dG=w((p$e,pG)=>{var RCe=Ti(),FCe=(r,e)=>new RCe(r,e).major;pG.exports=FCe});var mG=w((d$e,CG)=>{var NCe=Ti(),LCe=(r,e)=>new NCe(r,e).minor;CG.exports=LCe});var IG=w((C$e,EG)=>{var TCe=Ti(),OCe=(r,e)=>new TCe(r,e).patch;EG.exports=OCe});var wG=w((m$e,yG)=>{var MCe=Ac(),KCe=(r,e)=>{let t=MCe(r,e);return t&&t.prerelease.length?t.prerelease:null};yG.exports=KCe});var QG=w((E$e,BG)=>{var UCe=As(),HCe=(r,e,t)=>UCe(e,r,t);BG.exports=HCe});var SG=w((I$e,bG)=>{var GCe=As(),YCe=(r,e)=>GCe(r,e,!0);bG.exports=YCe});var OI=w((y$e,xG)=>{var vG=Ti(),jCe=(r,e,t)=>{let i=new vG(r,t),n=new vG(e,t);return i.compare(n)||i.compareBuild(n)};xG.exports=jCe});var DG=w((w$e,PG)=>{var qCe=OI(),JCe=(r,e)=>r.sort((t,i)=>qCe(t,i,e));PG.exports=JCe});var RG=w((B$e,kG)=>{var WCe=OI(),zCe=(r,e)=>r.sort((t,i)=>WCe(i,t,e));kG.exports=zCe});var hd=w((Q$e,FG)=>{var VCe=As(),XCe=(r,e,t)=>VCe(r,e,t)>0;FG.exports=XCe});var MI=w((b$e,NG)=>{var ZCe=As(),_Ce=(r,e,t)=>ZCe(r,e,t)<0;NG.exports=_Ce});var Cv=w((S$e,LG)=>{var $Ce=As(),eme=(r,e,t)=>$Ce(r,e,t)!==0;LG.exports=eme});var KI=w((v$e,TG)=>{var tme=As(),rme=(r,e,t)=>tme(r,e,t)>=0;TG.exports=rme});var UI=w((x$e,OG)=>{var ime=As(),nme=(r,e,t)=>ime(r,e,t)<=0;OG.exports=nme});var mv=w((P$e,MG)=>{var sme=TI(),ome=Cv(),ame=hd(),Ame=KI(),lme=MI(),cme=UI(),ume=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return sme(r,t,i);case"!=":return ome(r,t,i);case">":return ame(r,t,i);case">=":return Ame(r,t,i);case"<":return lme(r,t,i);case"<=":return cme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};MG.exports=ume});var UG=w((D$e,KG)=>{var gme=Ti(),fme=Ac(),{re:HI,t:GI}=ac(),hme=(r,e)=>{if(r instanceof gme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(HI[GI.COERCE]);else{let i;for(;(i=HI[GI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),HI[GI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;HI[GI.COERCERTL].lastIndex=-1}return t===null?null:fme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};KG.exports=hme});var GG=w((k$e,HG)=>{"use strict";HG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var YI=w((R$e,YG)=>{"use strict";YG.exports=Ht;Ht.Node=lc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var mme=YI(),cc=Symbol("max"),ba=Symbol("length"),jg=Symbol("lengthCalculator"),dd=Symbol("allowStale"),uc=Symbol("maxAge"),Qa=Symbol("dispose"),jG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Vs=Symbol("cache"),JG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[cc]=e.max||1/0,i=e.length||Ev;if(this[jg]=typeof i!="function"?Ev:i,this[dd]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[uc]=e.maxAge||0,this[Qa]=e.dispose,this[jG]=e.noDisposeOnSet||!1,this[JG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[cc]=e||1/0,pd(this)}get max(){return this[cc]}set allowStale(e){this[dd]=!!e}get allowStale(){return this[dd]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[uc]=e,pd(this)}get maxAge(){return this[uc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[jg]&&(this[jg]=e,this[ba]=0,this[di].forEach(t=>{t.length=this[jg](t.value,t.key),this[ba]+=t.length})),pd(this)}get lengthCalculator(){return this[jg]}get length(){return this[ba]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;qG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;qG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Qa]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Qa](e.key,e.value)),this[Vs]=new Map,this[di]=new mme,this[ba]=0}dump(){return this[di].map(e=>jI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[uc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[jg](t,e);if(this[Vs].has(e)){if(s>this[cc])return qg(this,this[Vs].get(e)),!1;let l=this[Vs].get(e).value;return this[Qa]&&(this[jG]||this[Qa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[ba]+=s-l.length,l.length=s,this.get(e),pd(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[cc]?(this[Qa]&&this[Qa](e,t),!1):(this[ba]+=o.length,this[di].unshift(o),this[Vs].set(e,this[di].head),pd(this),!0)}has(e){if(!this[Vs].has(e))return!1;let t=this[Vs].get(e).value;return!jI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[di].tail;return e?(qg(this,e),e.value):null}del(e){qg(this,this[Vs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Vs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Vs].get(e);if(i){let n=i.value;if(jI(r,n)){if(qg(r,i),!r[dd])return}else t&&(r[JG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},jI=(r,e)=>{if(!e||!e.maxAge&&!r[uc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[uc]&&t>r[uc]},pd=r=>{if(r[ba]>r[cc])for(let e=r[di].tail;r[ba]>r[cc]&&e!==null;){let t=e.prev;qg(r,e),e=t}},qg=(r,e)=>{if(e){let t=e.value;r[Qa]&&r[Qa](t.key,t.value),r[ba]-=t.length,r[Vs].delete(t.key),r[di].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},qG=(r,e,t,i)=>{let n=t.value;jI(r,n)&&(qg(r,t),r[dd]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};WG.exports=yv});var ls=w((N$e,_G)=>{var gc=class{constructor(e,t){if(t=Ime(t),e instanceof gc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new gc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!XG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&bme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=VG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[Qi.HYPHENRANGELOOSE]:Oi[Qi.HYPHENRANGE];e=e.replace(o,Lme(this.options.includePrerelease)),Gr("hyphen replace",e),e=e.replace(Oi[Qi.COMPARATORTRIM],wme),Gr("comparator trim",e,Oi[Qi.COMPARATORTRIM]),e=e.replace(Oi[Qi.TILDETRIM],Bme),e=e.replace(Oi[Qi.CARETTRIM],Qme),e=e.split(/\s+/).join(" ");let a=s?Oi[Qi.COMPARATORLOOSE]:Oi[Qi.COMPARATOR],l=e.split(" ").map(f=>Sme(f,this.options)).join(" ").split(/\s+/).map(f=>Nme(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Bv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(XG(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return VG.set(i,g),g}intersects(e,t){if(!(e instanceof gc))throw new TypeError("a Range is required");return this.set.some(i=>ZG(i,t)&&e.set.some(n=>ZG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new yme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",bme=r=>r.value==="",ZG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Sme=(r,e)=>(Gr("comp",r,e),r=Pme(r,e),Gr("caret",r),r=vme(r,e),Gr("tildes",r),r=kme(r,e),Gr("xrange",r),r=Fme(r,e),Gr("stars",r),r),Zi=r=>!r||r.toLowerCase()==="x"||r==="*",vme=(r,e)=>r.trim().split(/\s+/).map(t=>xme(t,e)).join(" "),xme=(r,e)=>{let t=e.loose?Oi[Qi.TILDELOOSE]:Oi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Gr("tilde",r,i,n,s,o,a);let l;return Zi(n)?l="":Zi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Zi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Gr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Gr("tilde return",l),l})},Pme=(r,e)=>r.trim().split(/\s+/).map(t=>Dme(t,e)).join(" "),Dme=(r,e)=>{Gr("caret",r,e);let t=e.loose?Oi[Qi.CARETLOOSE]:Oi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Gr("caret",r,n,s,o,a,l);let c;return Zi(s)?c="":Zi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Zi(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Gr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Gr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Gr("caret return",c),c})},kme=(r,e)=>(Gr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Rme(t,e)).join(" ")),Rme=(r,e)=>{r=r.trim();let t=e.loose?Oi[Qi.XRANGELOOSE]:Oi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Gr("xRange",r,i,n,s,o,a,l);let c=Zi(s),u=c||Zi(o),g=u||Zi(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Gr("xRange return",i),i})},Fme=(r,e)=>(Gr("replaceStars",r,e),r.trim().replace(Oi[Qi.STAR],"")),Nme=(r,e)=>(Gr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),Lme=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Zi(i)?t="":Zi(n)?t=`>=${i}.0.0${r?"-0":""}`:Zi(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Zi(c)?l="":Zi(u)?l=`<${+c+1}.0.0-0`:Zi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Tme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Cd=w((L$e,iY)=>{var md=Symbol("SemVer ANY"),Jg=class{static get ANY(){return md}constructor(e,t){if(t=Ome(t),e instanceof Jg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===md?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?$G[eY.COMPARATORLOOSE]:$G[eY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new tY(i[2],this.options.loose):this.semver=md}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===md||e===md)return!0;if(typeof e=="string")try{e=new tY(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Jg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new rY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new rY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};iY.exports=Jg;var Ome=gd(),{re:$G,t:eY}=ac(),Qv=mv(),bv=ud(),tY=Ti(),rY=ls()});var Ed=w((T$e,nY)=>{var Mme=ls(),Kme=(r,e,t)=>{try{e=new Mme(e,t)}catch{return!1}return e.test(r)};nY.exports=Kme});var oY=w((O$e,sY)=>{var Ume=ls(),Hme=(r,e)=>new Ume(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));sY.exports=Hme});var AY=w((M$e,aY)=>{var Gme=Ti(),Yme=ls(),jme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Yme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new Gme(i,t))}),i};aY.exports=jme});var cY=w((K$e,lY)=>{var qme=Ti(),Jme=ls(),Wme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Jme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new qme(i,t))}),i};lY.exports=Wme});var fY=w((U$e,gY)=>{var Sv=Ti(),zme=ls(),uY=hd(),Vme=(r,e)=>{r=new zme(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||uY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||uY(t,s))&&(t=s)}return t&&r.test(t)?t:null};gY.exports=Vme});var pY=w((H$e,hY)=>{var Xme=ls(),Zme=(r,e)=>{try{return new Xme(r,e).range||"*"}catch{return null}};hY.exports=Zme});var qI=w((G$e,EY)=>{var _me=Ti(),mY=Cd(),{ANY:$me}=mY,eEe=ls(),tEe=Ed(),dY=hd(),CY=MI(),rEe=UI(),iEe=KI(),nEe=(r,e,t,i)=>{r=new _me(r,i),e=new eEe(e,i);let n,s,o,a,l;switch(t){case">":n=dY,s=rEe,o=CY,a=">",l=">=";break;case"<":n=CY,s=iEe,o=dY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(tEe(r,e,i))return!1;for(let c=0;c{h.semver===$me&&(h=new mY(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};EY.exports=nEe});var yY=w((Y$e,IY)=>{var sEe=qI(),oEe=(r,e,t)=>sEe(r,e,">",t);IY.exports=oEe});var BY=w((j$e,wY)=>{var aEe=qI(),AEe=(r,e,t)=>aEe(r,e,"<",t);wY.exports=AEe});var SY=w((q$e,bY)=>{var QY=ls(),lEe=(r,e,t)=>(r=new QY(r,t),e=new QY(e,t),r.intersects(e));bY.exports=lEe});var xY=w((J$e,vY)=>{var cEe=Ed(),uEe=As();vY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>uEe(u,g,t));for(let u of o)cEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var PY=ls(),JI=Cd(),{ANY:vv}=JI,Id=Ed(),xv=As(),gEe=(r,e,t={})=>{if(r===e)return!0;r=new PY(r,t),e=new PY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=fEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},fEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new JI(">=0.0.0-0")]:r=[new JI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new JI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=DY(n,h,t):h.operator==="<"||h.operator==="<="?s=kY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Id(h,String(n),t)||s&&!Id(h,String(s),t))return null;for(let p of e)if(!Id(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=DY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!Id(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=kY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Id(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},DY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},kY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};RY.exports=gEe});var Xr=w((z$e,NY)=>{var Pv=ac();NY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:cd().SEMVER_SPEC_VERSION,SemVer:Ti(),compareIdentifiers:FI().compareIdentifiers,rcompareIdentifiers:FI().rcompareIdentifiers,parse:Ac(),valid:nG(),clean:oG(),inc:AG(),diff:hG(),major:dG(),minor:mG(),patch:IG(),prerelease:wG(),compare:As(),rcompare:QG(),compareLoose:SG(),compareBuild:OI(),sort:DG(),rsort:RG(),gt:hd(),lt:MI(),eq:TI(),neq:Cv(),gte:KI(),lte:UI(),cmp:mv(),coerce:UG(),Comparator:Cd(),Range:ls(),satisfies:Ed(),toComparators:oY(),maxSatisfying:AY(),minSatisfying:cY(),minVersion:fY(),validRange:pY(),outside:qI(),gtr:yY(),ltr:BY(),intersects:SY(),simplifyRange:xY(),subset:FY()}});var Dv=w(WI=>{"use strict";Object.defineProperty(WI,"__esModule",{value:!0});WI.VERSION=void 0;WI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof zI=="object"&&zI.exports?zI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:LY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` -`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ZI=w(Wg=>{"use strict";Object.defineProperty(Wg,"__esModule",{value:!0});Wg.clearRegExpParserCache=Wg.getRegExpAst=void 0;var hEe=VI(),XI={},pEe=new hEe.RegExpParser;function dEe(r){var e=r.toString();if(XI.hasOwnProperty(e))return XI[e];var t=pEe.pattern(e);return XI[e]=t,t}Wg.getRegExpAst=dEe;function CEe(){XI={}}Wg.clearRegExpParserCache=CEe});var UY=w(pn=>{"use strict";var mEe=pn&&pn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(pn,"__esModule",{value:!0});pn.canMatchCharCode=pn.firstCharOptimizedIndices=pn.getOptimizedStartCodesIndices=pn.failedOptimizationPrefixMsg=void 0;var OY=VI(),cs=Gt(),MY=ZI(),Sa=Rv(),KY="Complement Sets are not supported for first char optimization";pn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function EEe(r,e){e===void 0&&(e=!1);try{var t=(0,MY.getRegExpAst)(r),i=$I(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===KY)e&&(0,cs.PRINT_WARNING)(""+pn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,cs.PRINT_ERROR)(pn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+OY.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}pn.getOptimizedStartCodesIndices=EEe;function $I(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Sa.minOptimizationVal)for(var f=u.from>=Sa.minOptimizationVal?u.from:Sa.minOptimizationVal,h=u.to,p=(0,Sa.charCodeToOptimizedIndex)(f),C=(0,Sa.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":$I(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,cs.values)(e)}pn.firstCharOptimizedIndices=$I;function _I(r,e,t){var i=(0,Sa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&IEe(r,e)}function IEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Sa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Sa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function TY(r,e){return(0,cs.find)(r.value,function(t){if(typeof t=="number")return(0,cs.contains)(e,t);var i=t;return(0,cs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,cs.isArray)(r.value)?(0,cs.every)(r.value,kv):kv(r.value):!1}var yEe=function(r){mEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,cs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?TY(t,this.targetCharCodes)===void 0&&(this.found=!0):TY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(OY.BaseRegExpVisitor);function wEe(r,e){if(e instanceof RegExp){var t=(0,MY.getRegExpAst)(e),i=new yEe(r);return i.visit(t),i.found}else return(0,cs.find)(e,function(n){return(0,cs.contains)(r,n.charCodeAt(0))})!==void 0}pn.canMatchCharCode=wEe});var Rv=w(Ve=>{"use strict";var HY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var GY=VI(),ir=yd(),xe=Gt(),zg=UY(),YY=ZI(),Do="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function BEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=BEe;function QEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=QEe;function bEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){LEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[Do];if((0,xe.isRegExp)(D)){var L=D.source;return L.length===1&&L!=="^"&&L!=="$"&&L!=="."&&!D.ignoreCase?L:L.length===2&&L[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],L[1])?L[1]:e.useSticky?Lv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Lv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var L=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return L}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=ij(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(tj(D,v)===!1)return(0,zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Ov),h=(0,xe.map)(s,ej),p=(0,xe.reduce)(i,function(v,D){var L=D.GROUP;return(0,xe.isString)(L)&&L!==ir.Lexer.SKIPPED&&(v[L]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,L){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Tv(H);Fv(v,j,C[L])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Tv(_);$!==A&&($=A,Fv(v,A,C[L]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,zg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){Fv(v,W,C[L])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+zg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=bEe;function SEe(r,e){var t=[],i=jY(r);t=t.concat(i.errors);var n=qY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(vEe(s)),t=t.concat(ZY(s)),t=t.concat(_Y(s,e)),t=t.concat($Y(s)),t}Ve.validatePatterns=SEe;function vEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[Do])});return e=e.concat(JY(t)),e=e.concat(zY(t)),e=e.concat(VY(t)),e=e.concat(XY(t)),e=e.concat(WY(t)),e}function jY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,Do)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=jY;function qY(r){var e=(0,xe.filter)(r,function(n){var s=n[Do];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=qY;var xEe=/[^\\][\$]/;function JY(r){var e=function(n){HY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(GY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[Do];try{var o=(0,YY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return xEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=JY;function WY(r){var e=(0,xe.filter)(r,function(i){var n=i[Do];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=WY;var PEe=/[^\\[][\^]|^\^/;function zY(r){var e=function(n){HY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(GY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[Do];try{var o=(0,YY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return PEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=zY;function VY(r){var e=(0,xe.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=VY;function XY(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=XY;function ZY(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=ZY;function _Y(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=_Y;function $Y(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&kEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=$Y;function DEe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function kEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Lv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Lv;function REe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition -`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition -`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist -`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=REe;function FEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=ij(t);return e&&(0,xe.forEach)(o,function(l){var c=tj(l,a);if(c!==!1){var u=rj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=FEe;function NEe(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=NEe;function Ov(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=Ov;function ej(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=ej;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=rj;function ij(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ey=[];function Tv(r){return r255?255+~~(r/255):r}}});var Vg=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function TEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=TEe;function OEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=OEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function MEe(r){var e=nj(r);sj(e),aj(e),oj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=MEe;function nj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=nj;function sj(r){(0,Zr.forEach)(r,function(e){Aj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Mv(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),lj(e)||(e.categoryMatches=[]),cj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=sj;function oj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=oj;function aj(r){(0,Zr.forEach)(r,function(e){Kv([],e)})}Nt.assignCategoriesMapProp=aj;function Kv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Kv(i,t)})}Nt.singleAssignCategoriesToksMap=Kv;function Aj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=Aj;function Mv(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Mv;function lj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=lj;function cj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=cj;function KEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=KEe});var Uv=w(ty=>{"use strict";Object.defineProperty(ty,"__esModule",{value:!0});ty.defaultLexerErrorProvider=void 0;ty.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var yd=w(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});fc.Lexer=fc.LexerDefinitionErrorType=void 0;var Xs=Rv(),nr=Gt(),UEe=Vg(),HEe=Uv(),GEe=ZI(),YEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(YEe=fc.LexerDefinitionErrorType||(fc.LexerDefinitionErrorType={}));var wd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:HEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(wd);var jEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=wd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(wd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===wd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Xs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===wd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[Xs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[Xs.DEFAULT_MODE]=Xs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Xs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Xs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Xs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,UEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Xs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Xs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,GEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,L=e,H=L.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,Xs.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,O=this.config.lineTerminatorsPattern,F=0,ue=[],he=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,Xs.charCodeToOptimizedIndex)(pr),es=he[Ii];return es===void 0?Fe:es}var we=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var es=(0,nr.last)(ke);ue=i.patternIdxToConfig[es],he=i.charCodeToPatternIdxToConfig[es],F=ue.length;var ua=i.canModeBeOptimized[es]&&i.config.safeMode===!1;he&&ua?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),he=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;he&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var Ae;jc.length){c=a,u=g,Ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=Ae.group,h!==void 0&&(p=Ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,Ae.tokenType,A,ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),re===!0&&Ae.canLineTerminator===!0){var It=0,Or=void 0,ii=void 0;O.lastIndex=0;do Or=O.test(c),Or===!0&&(ii=O.lastIndex-1,It++);while(Or===!0);It!==0&&(A=A+It,ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,ae,f))}this.handleModes(Ae,we,fe,C)}else{for(var gi=j,hr=A,fi=ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();fc.Lexer=jEe});var NA=w(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.tokenMatcher=bi.createTokenInstance=bi.EOF=bi.createToken=bi.hasTokenLabel=bi.tokenName=bi.tokenLabel=void 0;var Zs=Gt(),qEe=yd(),Hv=Vg();function JEe(r){return Ej(r)?r.LABEL:r.name}bi.tokenLabel=JEe;function WEe(r){return r.name}bi.tokenName=WEe;function Ej(r){return(0,Zs.isString)(r.LABEL)&&r.LABEL!==""}bi.hasTokenLabel=Ej;var zEe="parent",uj="categories",gj="label",fj="group",hj="push_mode",pj="pop_mode",dj="longer_alt",Cj="line_breaks",mj="start_chars_hint";function Ij(r){return VEe(r)}bi.createToken=Ij;function VEe(r){var e=r.pattern,t={};if(t.name=r.name,(0,Zs.isUndefined)(e)||(t.PATTERN=e),(0,Zs.has)(r,zEe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Zs.has)(r,uj)&&(t.CATEGORIES=r[uj]),(0,Hv.augmentTokenTypes)([t]),(0,Zs.has)(r,gj)&&(t.LABEL=r[gj]),(0,Zs.has)(r,fj)&&(t.GROUP=r[fj]),(0,Zs.has)(r,pj)&&(t.POP_MODE=r[pj]),(0,Zs.has)(r,hj)&&(t.PUSH_MODE=r[hj]),(0,Zs.has)(r,dj)&&(t.LONGER_ALT=r[dj]),(0,Zs.has)(r,Cj)&&(t.LINE_BREAKS=r[Cj]),(0,Zs.has)(r,mj)&&(t.START_CHARS_HINT=r[mj]),t}bi.EOF=Ij({name:"EOF",pattern:qEe.Lexer.NA});(0,Hv.augmentTokenTypes)([bi.EOF]);function XEe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}bi.createTokenInstance=XEe;function ZEe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}bi.tokenMatcher=ZEe});var dn=w(zt=>{"use strict";var va=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),_Ee=NA(),ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=ko;var yj=function(r){va(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(ko);zt.NonTerminal=yj;var wj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Rule=wj;var Bj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Alternative=Bj;var Qj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Option=Qj;var bj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionMandatory=bj;var Sj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionMandatoryWithSeparator=Sj;var vj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.Repetition=vj;var xj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(ko);zt.RepetitionWithSeparator=xj;var Pj=function(r){va(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(ko);zt.Alternation=Pj;var ry=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=ry;function $Ee(r){return(0,Ar.map)(r,Bd)}zt.serializeGrammar=$Ee;function Bd(r){function e(s){return(0,Ar.map)(s,Bd)}if(r instanceof yj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Bj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof Qj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof bj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Sj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Bd(new ry({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof xj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Bd(new ry({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof vj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Pj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof ry){var i={type:"Terminal",name:r.terminalType.name,label:(0,_Ee.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof wj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}zt.serializeProduction=Bd});var ny=w(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.RestWalker=void 0;var Gv=Gt(),Cn=dn(),eIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof Cn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof Cn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof Cn.Alternative)i.walkFlat(n,o,t);else if(n instanceof Cn.Option)i.walkOption(n,o,t);else if(n instanceof Cn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof Cn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof Cn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof Cn.Repetition)i.walkMany(n,o,t);else if(n instanceof Cn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new Cn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Dj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new Cn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Dj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new Cn.Alternative({definition:[o]});n.walk(a,s)})},r}();iy.RestWalker=eIe;function Dj(r,e,t){var i=[new Cn.Option({definition:[new Cn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Xg=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.GAstVisitor=void 0;var Ro=dn(),tIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();sy.GAstVisitor=tIe});var bd=w(Mi=>{"use strict";var rIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var Qd=Gt(),Qr=dn(),iIe=Xg();function nIe(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Mi.isSequenceProd=nIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,Qd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof Qr.NonTerminal&&(0,Qd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,Qd.every)(r.definition,function(i){return Yv(i,e)})):!1}Mi.isOptionalProd=Yv;function sIe(r){return r instanceof Qr.Alternation}Mi.isBranchingProd=sIe;function oIe(r){if(r instanceof Qr.NonTerminal)return"SUBRULE";if(r instanceof Qr.Option)return"OPTION";if(r instanceof Qr.Alternation)return"OR";if(r instanceof Qr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Qr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Qr.Repetition)return"MANY";if(r instanceof Qr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=oIe;var kj=function(r){rIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Qd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Qd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(iIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=kj;var oy=new kj;function aIe(r){oy.reset(),r.accept(oy);var e=oy.dslMethods;return oy.reset(),e}Mi.collectMethods=aIe});var qv=w(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var ay=Gt(),Rj=dn(),jv=bd();function Ay(r){if(r instanceof Rj.NonTerminal)return Ay(r.referencedRule);if(r instanceof Rj.Terminal)return Lj(r);if((0,jv.isSequenceProd)(r))return Fj(r);if((0,jv.isBranchingProd)(r))return Nj(r);throw Error("non exhaustive match")}Fo.first=Ay;function Fj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,jv.isOptionalProd)(s),e=e.concat(Ay(s)),i=i+1,n=t.length>i;return(0,ay.uniq)(e)}Fo.firstForSequence=Fj;function Nj(r){var e=(0,ay.map)(r.definition,function(t){return Ay(t)});return(0,ay.uniq)((0,ay.flatten)(e))}Fo.firstForBranching=Nj;function Lj(r){return[r.terminalType]}Fo.firstForTerminal=Lj});var Jv=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.IN=void 0;ly.IN="_~IN~_"});var Uj=w(us=>{"use strict";var AIe=us&&us.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(us,"__esModule",{value:!0});us.buildInProdFollowPrefix=us.buildBetweenProdsFollowPrefix=us.computeAllProdsFollows=us.ResyncFollowsWalker=void 0;var lIe=ny(),cIe=qv(),Tj=Gt(),Oj=Jv(),uIe=dn(),Mj=function(r){AIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Kj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new uIe.Alternative({definition:o}),l=(0,cIe.first)(a);this.follows[s]=l},e}(lIe.RestWalker);us.ResyncFollowsWalker=Mj;function gIe(r){var e={};return(0,Tj.forEach)(r,function(t){var i=new Mj(t).startWalking();(0,Tj.assign)(e,i)}),e}us.computeAllProdsFollows=gIe;function Kj(r,e){return r.name+e+Oj.IN}us.buildBetweenProdsFollowPrefix=Kj;function fIe(r){var e=r.terminalType.name;return e+r.idx+Oj.IN}us.buildInProdFollowPrefix=fIe});var Sd=w(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.defaultGrammarValidatorErrorProvider=xa.defaultGrammarResolverErrorProvider=xa.defaultParserErrorProvider=void 0;var Zg=NA(),hIe=Gt(),_s=Gt(),Wv=dn(),Hj=bd();xa.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,Zg.hasTokenLabel)(e),o=s?"--> "+(0,Zg.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,_s.first)(t).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,_s.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,_s.map)(c,function(h){return"["+(0,_s.map)(h,function(p){return(0,Zg.tokenLabel)(p)}).join(", ")+"]"}),g=(0,_s.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: -`+g.join(` -`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,_s.first)(t).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,_s.map)(e,function(u){return"["+(0,_s.map)(u,function(g){return(0,Zg.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(xa.defaultParserErrorProvider);xa.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};xa.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,_s.first)(e),s=n.idx,o=(0,Hj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,Zg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,Zg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Hj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=hIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var jj=w(LA=>{"use strict";var pIe=LA&&LA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(LA,"__esModule",{value:!0});LA.GastRefResolverVisitor=LA.resolveGrammar=void 0;var dIe=Gn(),Gj=Gt(),CIe=Xg();function mIe(r,e){var t=new Yj(r,e);return t.resolveRefs(),t.errors}LA.resolveGrammar=mIe;var Yj=function(r){pIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Gj.forEach)((0,Gj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:dIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(CIe.GAstVisitor);LA.GastRefResolverVisitor=Yj});var xd=w(Nr=>{"use strict";var hc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var qj=ny(),Kt=Gt(),EIe=qv(),kt=dn(),Jj=function(r){hc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(qj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Jj;var IIe=function(r){hc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,EIe.first)(o),this.found=!0}},e}(Jj);Nr.NextAfterTokenWalker=IIe;var vd=function(r){hc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(qj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=vd;var yIe=function(r){hc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(vd);Nr.NextTerminalAfterManyWalker=yIe;var wIe=function(r){hc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(vd);Nr.NextTerminalAfterManySepWalker=wIe;var BIe=function(r){hc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(vd);Nr.NextTerminalAfterAtLeastOneWalker=BIe;var QIe=function(r){hc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(vd);Nr.NextTerminalAfterAtLeastOneSepWalker=QIe;function Wj(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Wj(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],O={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(SIe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=bIe;function SIe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Pd=w(Zt=>{"use strict";var Xj=Zt&&Zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.areTokenCategoriesNotUsed=Zt.isStrictPrefixOfPath=Zt.containsPath=Zt.getLookaheadPathsForOptionalProd=Zt.getLookaheadPathsForOr=Zt.lookAheadSequenceFromAlternatives=Zt.buildSingleAlternativeLookaheadFunction=Zt.buildAlternativesLookAheadFunc=Zt.buildLookaheadFuncForOptionalProd=Zt.buildLookaheadFuncForOr=Zt.getProdType=Zt.PROD_TYPE=void 0;var sr=Gt(),zj=xd(),vIe=ny(),cy=Vg(),TA=dn(),xIe=Xg(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=Zt.PROD_TYPE||(Zt.PROD_TYPE={}));function PIe(r){if(r instanceof TA.Option)return oi.OPTION;if(r instanceof TA.Repetition)return oi.REPETITION;if(r instanceof TA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof TA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof TA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof TA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}Zt.getProdType=PIe;function DIe(r,e,t,i,n,s){var o=_j(r,e,t),a=Xv(o)?cy.tokenStructuredMatcherNoCategories:cy.tokenStructuredMatcher;return s(o,i,a,n)}Zt.buildLookaheadFuncForOr=DIe;function kIe(r,e,t,i,n,s){var o=$j(r,e,n,t),a=Xv(o)?cy.tokenStructuredMatcherNoCategories:cy.tokenStructuredMatcher;return s(o[0],a,i)}Zt.buildLookaheadFuncForOptionalProd=kIe;function RIe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Zv=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.checkPrefixAlternativesAmbiguities=Vt.validateSomeNonEmptyLookaheadPath=Vt.validateTooManyAlts=Vt.RepetionCollector=Vt.validateAmbiguousAlternationAlternatives=Vt.validateEmptyOrAlternative=Vt.getFirstNoneTerminal=Vt.validateNoLeftRecursion=Vt.validateRuleIsOverridden=Vt.validateRuleDoesNotAlreadyExist=Vt.OccurrenceValidationCollector=Vt.identifyProductionForDuplicates=Vt.validateGrammar=void 0;var er=Gt(),br=Gt(),No=Gn(),_v=bd(),_g=Pd(),OIe=xd(),$s=dn(),$v=Xg();function MIe(r,e,t,i,n){var s=er.map(r,function(h){return KIe(h,i)}),o=er.map(r,function(h){return ex(h,h,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(h){return sq(h,i)}),l=(0,br.map)(r,function(h){return oq(h,e,i)}),c=lq(r,e,i));var u=GIe(r,t,i),g=(0,br.map)(r,function(h){return Aq(h,i)}),f=(0,br.map)(r,function(h){return nq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}Vt.validateGrammar=MIe;function KIe(r,e){var t=new iq;r.accept(t);var i=t.allProductions,n=er.groupBy(i,tq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=rq(l);return f&&(g.parameter=f),g});return o}function tq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+rq(r)}Vt.identifyProductionForDuplicates=tq;function rq(r){return r instanceof $s.Terminal?r.terminalType.name:r instanceof $s.NonTerminal?r.nonTerminalName:""}var iq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.OccurrenceValidationCollector=iq;function nq(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Vt.validateRuleDoesNotAlreadyExist=nq;function UIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Vt.validateRuleIsOverridden=UIe;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Dd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(er.flatten(c))}Vt.validateNoLeftRecursion=ex;function Dd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof $s.NonTerminal)e.push(t.referencedRule);else if(t instanceof $s.Alternative||t instanceof $s.Option||t instanceof $s.RepetitionMandatory||t instanceof $s.RepetitionMandatoryWithSeparator||t instanceof $s.RepetitionWithSeparator||t instanceof $s.Repetition)e=e.concat(Dd(t.definition));else if(t instanceof $s.Alternation)e=er.flatten(er.map(t.definition,function(o){return Dd(o.definition)}));else if(!(t instanceof $s.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(Dd(s))}else return e}Vt.getFirstNoneTerminal=Dd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function sq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,OIe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}Vt.validateEmptyOrAlternative=sq;function oq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,_g.getLookaheadPathsForOr)(l,r,c,a),g=HIe(u,a,r,t),f=cq(u,a,r,t);return o.concat(g,f)},[]);return s}Vt.validateAmbiguousAlternationAlternatives=oq;var aq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.RepetionCollector=aq;function Aq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Vt.validateTooManyAlts=Aq;function lq(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new aq;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,_g.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,_g.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,br.isEmpty)((0,br.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Vt.validateSomeNonEmptyLookaheadPath=lq;function HIe(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(f,h){c!==h&&(0,_g.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,_g.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function cq(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty($g,"__esModule",{value:!0});$g.validateGrammar=$g.resolveGrammar=void 0;var ix=Gt(),YIe=jj(),jIe=rx(),uq=Sd();function qIe(r){r=(0,ix.defaults)(r,{errMsgProvider:uq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,YIe.resolveGrammar)(e,r.errMsgProvider)}$g.resolveGrammar=qIe;function JIe(r){return r=(0,ix.defaults)(r,{errMsgProvider:uq.defaultGrammarValidatorErrorProvider}),(0,jIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}$g.validateGrammar=JIe});var ef=w(mn=>{"use strict";var kd=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.EarlyExitException=mn.NotAllInputParsedException=mn.NoViableAltException=mn.MismatchedTokenException=mn.isRecognitionException=void 0;var WIe=Gt(),fq="MismatchedTokenException",hq="NoViableAltException",pq="EarlyExitException",dq="NotAllInputParsedException",Cq=[fq,hq,pq,dq];Object.freeze(Cq);function zIe(r){return(0,WIe.contains)(Cq,r.name)}mn.isRecognitionException=zIe;var uy=function(r){kd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),VIe=function(r){kd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=fq,s}return e}(uy);mn.MismatchedTokenException=VIe;var XIe=function(r){kd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=hq,s}return e}(uy);mn.NoViableAltException=XIe;var ZIe=function(r){kd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=dq,n}return e}(uy);mn.NotAllInputParsedException=ZIe;var _Ie=function(r){kd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=pq,s}return e}(uy);mn.EarlyExitException=_Ie});var sx=w(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var gy=NA(),gs=Gt(),$Ie=ef(),eye=Jv(),tye=Gn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var rye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,gs.has)(e,"recoveryEnabled")?e.recoveryEnabled:tye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=mq)},r.prototype.getTokenToInsert=function(e){var t=(0,gy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new $Ie.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,gs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,gs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,gs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,gs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,gs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,gs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,gs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,gs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[gy.EOF];var t=e.ruleName+e.idxInCallingRule+eye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,gy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,gs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,gs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,gs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=rye;function mq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=gy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=mq});var fy=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.LooksAhead=void 0;var Pa=Pd(),eo=Gt(),Eq=Gn(),Da=fy(),pc=bd(),nye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,eo.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Eq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,eo.has)(e,"maxLookahead")?e.maxLookahead:Eq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,eo.isES2015MapSupported)()?new Map:[],(0,eo.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,eo.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,pc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,eo.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,pc.getProductionDslName)(g)+f,function(){var h=(0,Pa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Da.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Da.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,eo.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Da.MANY_IDX,Pa.PROD_TYPE.REPETITION,g.maxLookahead,(0,pc.getProductionDslName)(g))}),(0,eo.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Da.OPTION_IDX,Pa.PROD_TYPE.OPTION,g.maxLookahead,(0,pc.getProductionDslName)(g))}),(0,eo.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Da.AT_LEAST_ONE_IDX,Pa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,pc.getProductionDslName)(g))}),(0,eo.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Da.AT_LEAST_ONE_SEP_IDX,Pa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,pc.getProductionDslName)(g))}),(0,eo.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Da.MANY_SEP_IDX,Pa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,pc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Pa.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Da.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Pa.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Pa.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Da.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();hy.LooksAhead=nye});var yq=w(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.addNoneTerminalToCst=Lo.addTerminalToCst=Lo.setNodeLocationFull=Lo.setNodeLocationOnlyOffset=void 0;function sye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var lye=Gt();function cye(r){return Bq(r.constructor)}OA.classNameFromInstance=cye;var wq="name";function Bq(r){var e=r.name;return e||"anonymous"}OA.functionName=Bq;function uye(r,e){var t=Object.getOwnPropertyDescriptor(r,wq);return(0,lye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,wq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=uye});var xq=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateRedundantMethods=Si.validateMissingCstMethods=Si.validateVisitor=Si.CstVisitorDefinitionError=Si.createBaseVisitorConstructorWithDefaults=Si.createBaseSemanticVisitorConstructor=Si.defaultVisit=void 0;var fs=Gt(),Rd=ox();function Qq(r,e){for(var t=(0,fs.keys)(r),i=t.length,n=0;n: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=gye;function fye(r,e,t){var i=function(){};(0,Rd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,fs.forEach)(e,function(s){n[s]=Qq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=fye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function bq(r,e){var t=Sq(r,e),i=vq(r,e);return t.concat(i)}Si.validateVisitor=bq;function Sq(r,e){var t=(0,fs.map)(e,function(i){if(!(0,fs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Rd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,fs.compact)(t)}Si.validateMissingCstMethods=Sq;var hye=["constructor","visit","validateVisitor"];function vq(r,e){var t=[];for(var i in r)(0,fs.isFunction)(r[i])&&!(0,fs.contains)(hye,i)&&!(0,fs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Rd.functionName)(r.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=vq});var Dq=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.TreeBuilder=void 0;var tf=yq(),_r=Gt(),Pq=xq(),pye=Gn(),dye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=tf.setNodeLocationFull,this.setNodeLocationFromNode=tf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=tf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=tf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,tf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,tf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Pq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Pq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();py.TreeBuilder=dye});var Rq=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.LexerAdapter=void 0;var kq=Gn(),Cye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();dy.LexerAdapter=Cye});var Nq=w(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.RecognizerApi=void 0;var Fq=Gt(),mye=ef(),Ax=Gn(),Eye=Sd(),Iye=rx(),yye=dn(),wye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Fq.contains)(this.definedRulesNames,e)){var n=Eye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Iye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,mye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,yye.serializeGrammar)((0,Fq.values)(this.gastProductionsCache))},r}();Cy.RecognizerApi=wye});var Mq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.RecognizerEngine=void 0;var Pr=Gt(),Yn=fy(),my=ef(),Lq=Pd(),rf=xd(),Tq=Gn(),Bye=sx(),Oq=NA(),Fd=Vg(),Qye=ox(),bye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Qye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Fd.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Fd.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Oq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Fd.tokenStructuredMatcherNoCategories:Fd.tokenStructuredMatcher,(0,Fd.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Tq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Tq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Yn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new my.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,my.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new my.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Bye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Oq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();Ey.RecognizerEngine=bye});var Uq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.ErrorHandler=void 0;var lx=ef(),cx=Gt(),Kq=Pd(),Sye=Gn(),vye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Sye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Kq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Kq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();Iy.ErrorHandler=vye});var Yq=w(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.ContentAssist=void 0;var Hq=xd(),Gq=Gt(),xye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Gq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Hq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Gq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Hq.NextAfterTokenWalker(n,e).startWalking();return s},r}();yy.ContentAssist=xye});var Zq=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.GastRecorder=void 0;var En=Gt(),To=dn(),Pye=yd(),Wq=Vg(),zq=NA(),Dye=Gn(),kye=fy(),By={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(By);var jq=!0,qq=Math.pow(2,kye.BITS_FOR_OCCURRENCE_IDX)-1,Vq=(0,zq.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Pye.Lexer.NA});(0,Wq.augmentTokenTypes)([Vq]);var Xq=(0,zq.createTokenInstance)(Vq,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Xq);var Rye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Fye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Dye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new To.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Nd.call(this,To.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Nd.call(this,To.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Nd.call(this,To.RepetitionMandatoryWithSeparator,t,e,jq)},r.prototype.manyInternalRecord=function(e,t){Nd.call(this,To.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Nd.call(this,To.RepetitionWithSeparator,t,e,jq)},r.prototype.orInternalRecord=function(e,t){return Nye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(wy(t),!e||(0,En.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,En.peek)(this.recordingProdStack),o=e.ruleName,a=new To.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Rye:By},r.prototype.consumeInternalRecord=function(e,t,i){if(wy(t),!(0,Wq.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,En.peek)(this.recordingProdStack),o=new To.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),Xq},r}();Qy.GastRecorder=Fye;function Nd(r,e,t,i){i===void 0&&(i=!1),wy(t);var n=(0,En.peek)(this.recordingProdStack),s=(0,En.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,En.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),By}function Nye(r,e){var t=this;wy(e);var i=(0,En.peek)(this.recordingProdStack),n=(0,En.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new To.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,En.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,En.some)(s,function(l){return(0,En.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,En.forEach)(s,function(l){var c=new To.Alternative({definition:[]});o.definition.push(c),(0,En.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,En.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),By}function Jq(r){return r===0?"":""+r}function wy(r){if(r<0||r>qq){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+(qq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var $q=w(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.PerformanceTracer=void 0;var _q=Gt(),Lye=Gn(),Tye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,_q.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Lye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,_q.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();by.PerformanceTracer=Tye});var eJ=w(Sy=>{"use strict";Object.defineProperty(Sy,"__esModule",{value:!0});Sy.applyMixins=void 0;function Oye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Sy.applyMixins=Oye});var Gn=w(dr=>{"use strict";var iJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var _i=Gt(),Mye=Uj(),tJ=NA(),nJ=Sd(),rJ=gq(),Kye=sx(),Uye=Iq(),Hye=Dq(),Gye=Rq(),Yye=Nq(),jye=Mq(),qye=Uq(),Jye=Yq(),Wye=Zq(),zye=$q(),Vye=eJ();dr.END_OF_FILE=(0,tJ.createTokenInstance)(tJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:nJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var Xye;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(Xye=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function Zye(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=Zye;var vy=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,_i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,_i.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,_i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,_i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,rJ.resolveGrammar)({rules:(0,_i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,_i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,rJ.validateGrammar)({rules:(0,_i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,_i.values)(e.tokensMap),errMsgProvider:nJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,_i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,Mye.computeAllProdsFollows)((0,_i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,_i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,_i.isEmpty)(e.definitionErrors))throw t=(0,_i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+t.join(` -------------------------------- -`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=vy;(0,Vye.applyMixins)(vy,[Kye.Recoverable,Uye.LooksAhead,Hye.TreeBuilder,Gye.LexerAdapter,jye.RecognizerEngine,Yye.RecognizerApi,qye.ErrorHandler,Jye.ContentAssist,Wye.GastRecorder,zye.PerformanceTracer]);var _ye=function(r){iJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(vy);dr.CstParser=_ye;var $ye=function(r){iJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(vy);dr.EmbeddedActionsParser=$ye});var oJ=w(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.createSyntaxDiagramsCode=void 0;var sJ=Dv();function ewe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+sJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+sJ.VERSION+"/diagrams/diagrams.css":s,a=` - - - - - -`,l=` - -`,c=` - + + \ No newline at end of file diff --git a/package.json b/package.json index e8ef7fff..4bdf7de9 100644 --- a/package.json +++ b/package.json @@ -1,72 +1,46 @@ { "name": "leafage-ms", "version": "0.0.1", + "description": "A system based on RBAC.", + "productName": "leafage-ms", + "author": "wq.li ", + "private": true, "scripts": { - "dev": "vite", - "build": "vue-tsc --noEmit && vite build", - "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix", - "serve": "vite preview" + "lint": "eslint --ext .js,.ts,.vue ./", + "test": "echo \"No test specified\" && exit 0", + "dev": "quasar dev", + "build": "quasar build" }, "dependencies": { - "@badrap/bar-of-progress": "^0.2.2", - "@intlify/unplugin-vue-i18n": "^0.10.0", - "@tailwindcss/forms": "^0.5.3", - "@tailwindcss/typography": "^0.5.9", - "autoprefixer": "^10.4.14", - "axios": "^1.6.0", - "chart.js": "^4.2.1", - "crypto-js": "^4.1.1", - "postcss": "^8.4.31", - "qiniu-js": "^3.4.1", - "rehype-external-links": "^2.0.1", - "rehype-highlight": "^6.0.0", - "rehype-sanitize": "^5.0.1", - "rehype-stringify": "^9.0.3", - "remark-gfm": "^3.0.1", - "remark-parse": "^10.0.1", - "remark-rehype": "^10.1.0", - "tailwindcss": "^3.3.1", - "vue": "^3.2.47", - "vue-i18n": "^9.2.2", - "vue-router": "^4.1.6", - "xlsx": "^0.18.5" + "@quasar/extras": "^1.16.9", + "axios": "^1.6.3", + "pinia": "^2.1.7", + "quasar": "^2.14.4", + "vue": "^3.4.19", + "vue-i18n": "^9.9.1", + "vue-router": "^4.2.5" }, "devDependencies": { - "@heroicons/vue": "^2.0.17", - "@types/crypto-js": "^4.1.1", - "@types/mockjs": "^1.0.7", - "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.57.0", - "@vitejs/plugin-vue": "^4.1.0", - "eslint": "^8.37.0", - "eslint-plugin-vue": "^9.10.0", - "mockjs": "^1.1.0", - "prettier": "^2.8.7", - "typescript": "^5.0.3", - "vite": "^4.3.9", - "vue-tsc": "^1.4.4" + "@intlify/vite-plugin-vue-i18n": "^7.0.0", + "@quasar/app-vite": "^1.7.3", + "@types/node": "^20.10.6", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", + "autoprefixer": "^10.4.16", + "eslint": "^8.56.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-n": "^16.6.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-vue": "^9.19.2", + "lottie-web": "^5.12.2", + "postcss": "^8.4.34", + "typescript": "^5.3.3" }, - "keywords": [ - "vue3", - "vite", - "leafage", - "tailwindcss", - "xlsx", - "qiniu-js", - "remark", - "vue-i18n", - "vueuse" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/little3201/leafage-ms.git" + "engines": { + "node": "^20 || ^18", + "npm": ">= 6.13.4", + "yarn": ">= 1.21.1" }, - "author": "liwenqiang", - "license": "MIT", - "bugs": { - "url": "https://github.com/little3201/leafage-ms/issues" - }, - "homepage": "https://console.leafage.top", - "packageManager": "yarn@3.5.0" + "packageManager": "yarn@4.0.2" } diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 00000000..94b7b1c8 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,27 @@ +/* eslint-disable */ +// https://github.com/michael-ciniawsky/postcss-load-config + +module.exports = { + plugins: [ + // https://github.com/postcss/autoprefixer + require('autoprefixer')({ + overrideBrowserslist: [ + 'last 4 Chrome versions', + 'last 4 Firefox versions', + 'last 4 Edge versions', + 'last 4 Safari versions', + 'last 4 Android versions', + 'last 4 ChromeAndroid versions', + 'last 4 FirefoxAndroid versions', + 'last 4 iOS versions' + ] + }) + + // https://github.com/elchininet/postcss-rtlcss + // If you want to support RTL css, then + // 1. yarn/npm install postcss-rtlcss + // 2. optionally set quasar.config.js > framework > lang to an RTL language + // 3. uncomment the following line: + // require('postcss-rtlcss') + ] +} diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 33ad091d..00000000 --- a/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/public/images/wechat.jpg b/public/images/wechat.jpg deleted file mode 100644 index 21ce205b..00000000 Binary files a/public/images/wechat.jpg and /dev/null differ diff --git a/public/logo-only.svg b/public/logo-only.svg new file mode 100644 index 00000000..8bf32992 --- /dev/null +++ b/public/logo-only.svg @@ -0,0 +1,53 @@ + + + + diff --git a/public/svg/logo.svg b/public/logo.svg similarity index 98% rename from public/svg/logo.svg rename to public/logo.svg index a050fafd..4a695da7 100644 --- a/public/svg/logo.svg +++ b/public/logo.svg @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/public/svg/background.svg b/public/svg/background.svg deleted file mode 100644 index 48c1564d..00000000 --- a/public/svg/background.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/public/svg/china.svg b/public/svg/china.svg deleted file mode 100644 index b4b52b6c..00000000 --- a/public/svg/china.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/svg/error.svg b/public/svg/error.svg deleted file mode 100644 index a3b3dc39..00000000 --- a/public/svg/error.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/svg/illustration.svg b/public/svg/illustration.svg deleted file mode 100644 index 0203db9b..00000000 --- a/public/svg/illustration.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/svg/layer.svg b/public/svg/layer.svg deleted file mode 100644 index ad30bb24..00000000 --- a/public/svg/layer.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/public/svg/radius.svg b/public/svg/radius.svg deleted file mode 100644 index 9f43e36e..00000000 --- a/public/svg/radius.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/quasar.config.js b/quasar.config.js new file mode 100644 index 00000000..e55cf082 --- /dev/null +++ b/quasar.config.js @@ -0,0 +1,233 @@ +/* eslint-env node */ + +/* + * This file runs in a Node context (it's NOT transpiled by Babel), so use only + * the ES6 features that are supported by your Node version. https://node.green/ + */ + +// Configuration for your app +// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js + +const { configure } = require('quasar/wrappers') +const path = require('path') + +module.exports = configure(function (ctx) { + return { + eslint: { + fix: true, + // include: [], + // exclude: [], + // rawOptions: {}, + warnings: true, + errors: true + }, + + // https://v2.quasar.dev/quasar-cli-vite/prefetch-feature + // preFetch: true, + + // app boot file (/src/boot) + // --> boot files are part of "main.js" + // https://v2.quasar.dev/quasar-cli-vite/boot-files + boot: [ + 'i18n', + 'axios' + ], + + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css + css: [ + 'app.scss' + ], + + // https://github.com/quasarframework/quasar/tree/dev/extras + extras: [ + // 'ionicons-v4', + // 'mdi-v5', + // 'fontawesome-v6', + // 'eva-icons', + // 'themify', + // 'line-awesome', + // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! + + 'roboto-font', // optional, you are not bound to it + 'material-symbols-rounded' // optional, you are not bound to it + ], + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build + build: { + target: { + browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'], + node: 'node16' + }, + + vueRouterMode: 'history', // available values: 'hash', 'history' + // vueRouterBase, + // vueDevtools, + // vueOptionsAPI: false, + + // rebuildCache: true, // rebuilds Vite/linter/etc cache on startup + + // publicPath: '/', + // analyze: true, + + env: { + API: ctx.dev + ? '/api' + : 'https://console.leafage.top/api' + }, + + // rawDefine: {} + // ignorePublicFolder: true, + // minify: false, + // polyfillModulePreload: true, + // distDir + + // extendViteConf (viteConf) {}, + // viteVuePluginOptions: {}, + + vitePlugins: [ + ['@intlify/vite-plugin-vue-i18n', { + // if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false` + // compositionOnly: false, + + // if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}', + // you need to set `runtimeOnly: false` + // runtimeOnly: false, + + // you need to set i18n resource including paths ! + include: path.resolve(__dirname, './src/i18n/**') + }] + ] + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer + devServer: { + // https: true + open: true, // opens browser window automatically + proxy: { + '^/api': { + target: 'http://127.0.0.1:8763', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api/, '') + } + } + }, + + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework + framework: { + config: {}, + + iconSet: 'material-symbols-rounded', // Quasar icon set + lang: 'en-US', // Quasar language pack + + // For special cases outside of where the auto-import strategy can have an impact + // (like functional components as one of the examples), + // you can manually specify Quasar components/directives to be available everywhere: + // + // components: [], + // directives: [], + + // Quasar plugins + plugins: [] + }, + + // animations: 'all', // --- includes all animations + // https://v2.quasar.dev/options/animations + animations: ['slideInRight', 'slideOutRight', 'slideInLeft', 'slideOutLeft'], + + // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#sourcefiles + // sourceFiles: { + // rootComponent: 'src/App.vue', + // router: 'src/router/index', + // store: 'src/store/index', + // registerServiceWorker: 'src-pwa/register-service-worker', + // serviceWorker: 'src-pwa/custom-service-worker', + // pwaManifestFile: 'src-pwa/manifest.json', + // electronMain: 'src-electron/electron-main', + // electronPreload: 'src-electron/electron-preload' + // }, + + // https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr + ssr: { + // ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name! + // will mess up SSR + + // extendSSRWebserverConf (esbuildConf) {}, + // extendPackageJson (json) {}, + + pwa: false, + + // manualStoreHydration: true, + // manualPostHydrationTrigger: true, + + prodPort: 3000, // The default port that the production server should use + // (gets superseded if process.env.PORT is specified at runtime) + + middlewares: [ + 'render' // keep this as last one + ] + }, + + // https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa + pwa: { + workboxMode: 'generateSW', // or 'injectManifest' + injectPwaMetaTags: true, + swFilename: 'sw.js', + manifestFilename: 'manifest.json', + useCredentialsForManifestTag: false + // useFilenameHashes: true, + // extendGenerateSWOptions (cfg) {} + // extendInjectManifestOptions (cfg) {}, + // extendManifestJson (json) {} + // extendPWACustomSWConf (esbuildConf) {} + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova + cordova: { + // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor + capacitor: { + hideSplashscreen: true + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron + electron: { + // extendElectronMainConf (esbuildConf) + // extendElectronPreloadConf (esbuildConf) + + inspectPort: 5858, + + bundler: 'packager', // 'packager' or 'builder' + + packager: { + // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options + + // OS X / Mac App Store + // appBundleId: '', + // appCategoryType: '', + // osxSign: '', + // protocol: 'myapp://path', + + // Windows only + // win32metadata: { ... } + }, + + builder: { + // https://www.electron.build/configuration/configuration + + appId: 'leafage-ms' + } + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex + bex: { + contentScripts: [ + 'my-content-script' + ] + + // extendBexScriptsConf (esbuildConf) {} + // extendBexManifestJson (json) {} + } + } +}) diff --git a/src/App.vue b/src/App.vue index 6d11557a..fe0a2469 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,3 +1,7 @@ \ No newline at end of file + + + + diff --git a/src/api/constant.ts b/src/api/constant.ts deleted file mode 100644 index 8f3d9e75..00000000 --- a/src/api/constant.ts +++ /dev/null @@ -1,24 +0,0 @@ -// 服务匹配前缀 -const SERVER_PRE = { - hypervisor: '/hypervisor', // 系统 - assets: '/assets' // 资源 -} - -// 接口请求路径 -export const SERVER_URL = { - user: SERVER_PRE.hypervisor.concat('/users'), // 用户 - role: SERVER_PRE.hypervisor.concat('/roles'), // 角色 - components: SERVER_PRE.hypervisor.concat('/components'), // 权限 - group: SERVER_PRE.hypervisor.concat('/groups'), // 分组 - messages: SERVER_PRE.hypervisor.concat('/messages'), // 消息通知 - - region: SERVER_PRE.hypervisor.concat('/regions'), // 行政区划 - dictionary: SERVER_PRE.hypervisor.concat('/dictionaries'), // 字典 - accesslog: SERVER_PRE.hypervisor.concat('/access-logs'), // 字典 - - post: SERVER_PRE.assets.concat('/posts'), // 帖子 - category: SERVER_PRE.assets.concat('/categories'), // 类别 - resource: SERVER_PRE.assets.concat('/resources'), // 资源 - statistics: SERVER_PRE.assets.concat('/statistics'), // 统计 - comment: SERVER_PRE.assets.concat('/comments'), // 评论 -} \ No newline at end of file diff --git a/src/api/index.ts b/src/api/index.ts deleted file mode 100644 index 71af9687..00000000 --- a/src/api/index.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { SERVER_URL } from './constant' -import axios, { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios' -import router from '../router' - -const pendingPool = new Map() - -const instance = axios.create({ - withCredentials: true, - // 请求的完整路径就是baseURL中的 - baseURL: '/api' -}) - -// 请求拦截 -instance.interceptors.request.use( - (config: InternalAxiosRequestConfig) => { - const controller = new AbortController() - config.signal = controller.signal - if (config.url) { - pendingPool.set(config.url, controller) - } - return config - }, - (error: AxiosError) => { - return Promise.reject(error) - } -) - -// 响应拦截 -instance.interceptors.response.use( - (res: AxiosResponse) => { - const { config } = res - if (config.url) { - pendingPool.delete(config.url) - } - return res - }, - (error: AxiosError) => { - const { config } = error - if (!axios.isCancel(error) && config && config.url) { - pendingPool.delete(config.url) - } - const { response } = error - if (response) { - // 状态码判断 - switch (response.status) { - // 401: 未登录状态,403:无权限,跳转登录页 - case 401: - case 403: - router.replace('/signin') - // window.location.href="http://localhost:8760" - break - // 404/500请求不存在 - case 404: - case 502: - response.statusText = '网络异常,刷新试试。' - break - default: - response.statusText = '请求可能跑丢了,再试一下。' - } - } else { - if (axios.isCancel(error)) { - throw new axios.Cancel(error.message) - } - } - - // 取消后续请求 - pendingPool.clear() - return Promise.reject(error) - } -) - -export { instance, SERVER_URL } diff --git a/src/api/models.type.ts b/src/api/models.type.ts new file mode 100644 index 00000000..6b57f8bb --- /dev/null +++ b/src/api/models.type.ts @@ -0,0 +1,55 @@ +interface AudtiMetadata { + id?: number; + lastModifiedDate?: Date; +} + +export interface Post extends AudtiMetadata { + cover: string; + tags: Array; + content: string; +} + +export interface Category extends AudtiMetadata { + name: string; + enabled?: boolean; + description?: string; +} + +export interface User extends AudtiMetadata { + username: string; + firstname: string; + lastname: string; + avatar?: string; + accountNonLocked?: boolean; + accountExpiresAt?: Date; + credentialsExpiresAt?: Date; + enabled?: boolean; + description?: string; +} + +export interface Group extends AudtiMetadata { + name: string; + superior_id?: number; + enabled?: boolean; + description?: string; +} + +export interface Role extends AudtiMetadata { + name: string; + enabled?: boolean; + description?: string; +} + +export interface Dictionary extends AudtiMetadata { + name: string; + superior_id?: number; + enabled?: boolean; + description?: string; +} + +export interface Region extends AudtiMetadata { + name: string; + superior_id?: number; + enabled?: boolean; + description?: string; +} diff --git a/src/api/paths.ts b/src/api/paths.ts new file mode 100644 index 00000000..085615bd --- /dev/null +++ b/src/api/paths.ts @@ -0,0 +1,24 @@ +// 服务匹配前缀 +const SERVER_PRE = { + HYPERVISOR: '', // 系统 + ASSETS: '/assets' // 资源 +} + +// 接口请求路径 +export const SERVER_URL = { + USER: SERVER_PRE.HYPERVISOR.concat('/users'), // 用户 + ROLE: SERVER_PRE.HYPERVISOR.concat('/roles'), // 角色 + PRIVILEGE: SERVER_PRE.HYPERVISOR.concat('/privileges'), // 权限 + GROUP: SERVER_PRE.HYPERVISOR.concat('/groups'), // 分组 + + DICTIONARY: SERVER_PRE.HYPERVISOR.concat('/dictionaries'), // 字典 + + MESSAGE: SERVER_PRE.HYPERVISOR.concat('/messages'), // 消息通知 + REGION: SERVER_PRE.HYPERVISOR.concat('/regions'), // 行政区划 + ACCESSLOG: SERVER_PRE.HYPERVISOR.concat('/access-logs'), // 访问日志 + + POST: SERVER_PRE.ASSETS.concat('/posts'), // 帖子 + CATEGORY: SERVER_PRE.ASSETS.concat('/categories'), // 类别 + STATISTICS: SERVER_PRE.ASSETS.concat('/statistics'), // 统计 + COMMENT: SERVER_PRE.ASSETS.concat('/comments') // 评论 +} diff --git a/src/api/request.type.ts b/src/api/request.type.ts deleted file mode 100644 index f791e35f..00000000 --- a/src/api/request.type.ts +++ /dev/null @@ -1,118 +0,0 @@ -export declare interface Pagation { - page: number, - size: number, - totalElements: number, - content: Array -} - -export declare interface Item { - key: string, - label: string -} - -export declare interface User { - username: string, - nickname: string, - avatar: string, - enabled: boolean, - accountExpiresAt: string, - accountLocked: boolean, - credentialsExpiresAt: string -} - -interface Abstract { - id: number, - modifyTime: string -} - -export declare interface Role extends Abstract { - roleName: string, - count: number, - enabled: boolean -} - -export declare interface Group extends Abstract { - groupName: string, - principal: string, - count: number, - enabled: boolean -} - -export declare interface Component extends Abstract { - componentName: string, - type: string, - icon: string, - superior: string, - path: string, - count: number, - enabled: boolean -} - -export declare interface Message extends Abstract { - title: string, - context: string, - receiver: string -} - -export declare interface NodeData { - id: number, - name: string, - superiorId: number, - children: Array, - expand: any | unknown -} - -export declare interface Category extends Abstract { - categoryName: string, - count: number, - description: string -} - -export declare interface Statistics { - viewed: number, - likes: number, - comments: number, - downloads: number -} - -export declare interface Post extends Abstract { - title: string, - cover: string, - category: string, - tags: Array, - context: string -} - -export declare interface Comment extends Abstract { - postId: number, - country: string, - location: string, - context: string -} - -export declare interface Statistics { - viewed: number, - likes: number, - comments: number, - downloads: number -} - -export declare interface Region extends Abstract { - regionName: string, - superior: string, - postalCode: number, - areaCode: number -} - -export declare interface Dictionary extends Abstract { - dictionaryName: string, - superior: string, - enabled: boolean, - description: string -} - -export declare interface AccessLog extends Abstract { - ip: string, - location: string, - context: string -} \ No newline at end of file diff --git a/src/assets/bg.json b/src/assets/bg.json new file mode 100644 index 00000000..ad54c021 --- /dev/null +++ b/src/assets/bg.json @@ -0,0 +1 @@ +{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.20","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":300.00001221925,"w":1080,"h":1080,"nm":"ideoo iceon svg 2","ddd":0,"assets":[{"id":"image_0","w":206,"h":486,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM4AAAHmCAYAAAA7l7ErAAAgAElEQVR4Xu2dCXBcx3nn+80BYADiBkhQF0AcBAhgCIiR5EOkaMeVchIrCeVoF3Sy2dhLO1uV2Bsq8ZboSmpXib1LZjcVJalVOdlQSTbOylQUiXQk2VYUrQhBohVLFo4ZADwAAiCIgwDmBGYwM+/a6gGHBGbem9fvmnnH91wuuzhf9+v+f/1D9+uvDwrBAwqAArIVoGSngASgACiAABxoBKCAAgUAHAWiQRJQwJDg+CYnHxdxTdB74MAlcBsoUGwFigrO1MzMAIWo406Hw+twOOpdLlcNiSA8z/Msy0ZYjp3lWf4nPM/+bVtb27skacEGFNBCgYKDMz0zc9LpcH7V5XI1OxwOlxaVwHlwHMfQDO1nOe5M+759L2qVL+QDCggpUBBwFhcXmzkO/R9EoUe1hEXMpSzLbtIp+gWEuG+2trbOgetBAa0V0BUcDEyKZt5yu92tFEXp+i4hYfCQLplMvoN47tcBIK2bjr3z060xh8Lhi+Uez2OBYEi3d5C4jud5lAYolfpe276WJ0jSgA0oIKWA5o167ubNk+Vlnv/pdDpdPM+hZDIlVQbNfseQiPQ86X/eGsIxX2pvh28gzUS3aUaagjMzNzdcWlLaXywthcAR+rdEKjXYvq/lU8UqJ7zX/ApoAg7+lnGXlEzSNOMppiSk4OAy0jS9zHPsx+Hbp5geM++7VYODYzEVnvLvIoQosaGSHvLIgURs+IaHbgzNwtBNDwdZPE9V4CwsLw8gjv9ukWbMclwjB9yMLZ44SCUTX2hvb4fYj8Ubu5bVUwzO8vLyQHlFxXc3NmKK81BaEalJAJJ8t+cB8JAoBjbbFVDU6PHwzFNapltPQ9JzkNjgisqwg54H2CBWQDY46VUAPJrScwUASWMnsZEDTma6mmOZAzBhQNx+bGsoG5x4PB4KR6JEizGVqioFhdTv298rxxanYxgmvK+luVZp2SGdPRSQBQ5eDVBTXX10afmWZupINWyp39VAIlaJJI7ztO6DOI9mXrZeRsTgrKysDDQ2Np7DElgdHFzHeGLzeCfMtFmvxWtUI2JwgsFQHFHIg3iEEsmkotdL9R5Sv+vRu4h9BzEsu9na0lyuqKKQyPIKEIETDIXO8zx/TO26MykwpH7XA5x8U9upVOpCR3sbLAy1PAbyKygJDp5F271nz0wkEqHsBg6O73Assw9m2eQ3LKunkARndvbGxbKy0qOcyMpjIYGkeg6p3/XoWcSGZFJloVP0YHt7K0wUWJ0EmfXLCw7ubXhEzchdUiPVGKV+NxI4uNeJs8y+bthJKrNpWds8LzjLy7fOczx/TK4EUmBI/W4kcHBZ4FtHbguwvn1ecMLhCB3f3Mx7oIYUBFK/Gw0SIZezHMu0trS4rd8coIakCoiCg+M25eUV56Lr63nzkgJD6nczgIPrkEykjnd2wgpq0oZldTtRcCKRyLDT6erPB44UFFK/FxIasckBKQdn6sDQzGR7e2u3lD38bg8FRMFJpVJ0KkW7MuBIQSD1u5kgyXY9nlDEkwSt+5od9mgWUEspBQTBWVlZOdzY2DgUi8URgIOh2ZIxlUye6ezs+IaUqPC79RUQBCcQCp2tq6k5gcGJRKM5Khipd5FTFqleTypUxbDMckdb617rNwuooZQCguDg75uqqqr+WCyGItHcyQE5jVWOrVRhhfJSmr9wXlIlQGgzzrR0d8PpoNJKWdtCEBy858bj8dQAOLnOZ2j6QkcHrF+zNhbStRMEZ2FxicOrBfBfZdK/6KR20kUS3+6s5B3iizhJSrLThkc8Ptx9s711H6yali+fpVKIgXPnSEzSxkpqR6JevhXLJOmlvmXw71LfM0LvweDgh07SENOR6wiL2eeA45uc/GRddc17W41L+EhZwUYlw1ZKQ6ODw7DMyP62tgel6gG/W1cBIXAer62qfjVfleUAJSWdET74M2XM9CiiZb79x4HnEdPWCktwpHxr5d8BnG3eJQUHJ0mm6DMHIKZjZTby1i0HnMmrVx+/Z09TusdJ0amc2wb07m3kDhHv9BaiNxWQ+1YOOAzDTO/vaG8nzx0sraRADjhXp6cf72htTYOzsRFD4UhEs/qacViWr/KJTQ5iOpq1DnNlBOCI+YtgsoNO0c93dnZ82Vwuh9JqoYAu4BhpVkxy+LU1NiTSMrteOKbT0d4GMR0i9axlJBjHwSuB1QzVTAUOITRi314MnTrS2dkJV8VbiwvJ2gA4KsGhGWawa38HHOYh2dSsZZB3rRrJ5IDVPvjzzdKJ1JXpaG+DbdXW4kKyNoLgRNfXpyp37WoDcHbqJzYETdGpp7q7uv5UUm0wsIwCeffjSIFjpG+Z9DfI7bVkot5ROSwTqy/LstOd+zsgpmMZLKQrkncH6HZwrAqJFvXCkyl0Krmvu7t7TlpysLCCAnnPHEgmU65MAFSLBpbv+0HGrHA6G616F63qxTD0812dnRDTsQIVBHXIe8oN5XD0RyJbW6ftPgkgpSXHceH9He1wIZWUUBb5Pe+5amUez7lweGvJjZw1alK2Mj41NOtZtIc/twWkWPpID8R0LIJG/mrkPckzGA7TG+sb6ZM8pWDY/hopW6uCQzP0he6uTrgWxAbo5AVnLRi8uKu8/CjWIRSO4DOUcySxKyRC31g8zzOdHe0Q07E7OJnz1bAOK6trKJFIADi3FRABB7E0e7y7u/NFG7QdW1dR8n6czIk3K6urKJHIvcLQ6j2O2LBSFByOm+7u3A8xHYtjJQlO5nDCWysYnNwe5+4UM7lSWk0l5/v2kgJaqLRyIRGpMd/Z0Q5H5ZI3B1NaSoKDL5fau3fvLICz07/5wGRZ9vnuLojpmJIIwkJLgoPzwWvX4vHNNrP0OEp6m63eK1c1sd4x3zs4jl0+0NkJR+USNkIzmhGBs7a2dpphuVMZcFRPJ8vJYJuq2gZhtYFEzOksnWqBJThmRIKszETg4KwWlpZpOpW6HdMhyzz9V1xo4aUdwGGZC91dXRDTIW8qprIkBufWyupwaUlJPx7NZFYTZNfUrpAIjfF4nt/s6twP26pNhQN5YYnBycR08HBp7sbNnDeIzpQp6F20Wngp9t0i1hMq/TYSBgchmqWPe7u7IaZD3h5NY0kMDq5RIpGIl5SUeACcLP8K/HHA/8Tx3Eh3VycclWsaHMgLKgscHNOpra4+MXtjXvgNBuxdlMyKicon/9BDvquzA2I65O3RNJaywMExnaampllBcBRAszWUyp0DVjpk0mo6WUNwEMswZ3p6DsD1h6ZBgqygssDBWa6vbyytBgJNuR85ZGeT5UwoWBwcjuOWuw9ATIesOZrHSjY4K2trpzfWN04pqWIxehelvZfYB7+SenMsDTEdJcIZOI1scHBdpq/PpG9sk1svu4LDsOzzvd1dsK1aboMxsL3sxo/rMjs3N1xaWtbPsqzgHh2h+lplilmJL/FRud0HOiGmo0Q8g6ZRBM7KyspAY2PjuXg8jvDiT5LvFrGJACldNFqxLP4a+TNleeYOhL/z8B8NnmOO9PT0wFG5Ug43ye+KwMF1wzEdlmU9AM5dT+frVTmOH+nt6YKYjknAkCqmYnCCodD50pKSY8u3Voh7HKnCGHE6WazMcoeeeFt1T3cXbKuWagQm+V0xOHgJTkVFxZDZwVEYflIUf+I47kwvxHRMgkb+YioGB2e7FggsRSLRnJiO0ingYvQ4BQWHZ6d7u7thW7UF0FEFzupq4GxlZcUJrAM+BScWixFJovsH/9ZMhMAQkqh4RENPOX8cti374Smeg6NylbnBUKlUgYNrwrAs53Q4qNW1NRSNrhNVzsbgII7lnvf2dkNMh6ilGNdINTiZK0GsCo7cSQAhV29faMrzKNzb3QVH5RqXCaKSqQYnE9MRA6cY3y0iIzVBQUiGXCQ26XdKXTOSKRjPQUyHqHka10g1OLhqqVSKDkciLqGhGoCT5XyeRxzPD3p7uuH6Q+NyIVkyTcDBMR2GZo5F13d+46Q/zwlPjiH9q07yxS9npkzqvVK/by+PZI9zu2A8Qkxv9wGI6Ug2T+MaaAIOjukgRA1FBCYHxE68VCSJypkyKQikflcCiVg9eY5/qre3G64/VNQQip9IE3BwNRYWFkPxzURNdpUAHGEn8zw/3dsDMZ3iI6CsBJqBs7i8ctZTWpKO6QRDYcRybLpEcv6K76iChXqXHT3V3aEr39tzALZVK2u3RU+lHTiLi8279+yZwTGdmbkbiGEY5eBosGJZClip37UclomAg1iefb6vtxdiOkXHQH4BNAMHvzoT0wFwxB2x/W8Cz/PL3t5uOCpXfrstegpNwVkNBE421NU9e3127k6PI1lDoSGZyGycUF5SPYfU70Q9i5xputsZiq6OyPqBpfgj/bBPR7KZGM1AU3Bw5XBMZ35h0ZUZqklW2AzfMjqCw/P8hYPeHjgqV7KhGMtAc3AikcjwWjDUbxlwFECzNSmS62iR3o/x9nZDTMdYXEiWRnNwcExnPRYfEgTH6L2L/pAIO4RHx71eOCpXsrUayEBzcHDdrk1fj3Mc58mpJ4Aj6HqO50f6vD2wrdpAYEgVRRdwrs/eOFta4j7BcRyKb25ulcFQU8wii2MU9DikkwASjuC9vd0Q05FqrQb6XRdwMtcfJpMpNHfjxp3qkrZLkpkwEputyTmRE0ZJC7PNWRpBcvvvSFa5KP7Mwd5eOCrXQHDkK4ou4OAX4phOibukDcAR+azJpXD5oLcHYjp2Bwdff7hrV+Wp2bm7PY6QJlI9h9Tv2/M0Te9yu9DZ5cXXHx46dGjOJG3H1sXUrcfBqm5sxOibC4vp6w/FHikwpH6XBEfBkEzsk0xOWXaUSzDIK3AmAuIv9Hu9ENMxAZK6ghMIBIZX14L9AI4gJAKyUJt93h44Ktfu4CyvrAzUVFWfwzpEIlEUDIXySiLnL7pW943q+sEvMiTL+4cE8cf7vV64/tDg8Oja4+C646NyS0tLPYFgCK2urgE40g1ipM/bCzEdaZ2KaqE7OHhbdW1NzTEtwTH7JICEx5k+by8swSkqFtIv1x2cTEwnEAiiFYkeR3DWTec4jJzhoZIPfmkX5FpQFIKYjhLhCphGd3C2Ztc2lhKJZBOAQ+zZ6T5vLxyVSyxX4Q0LAg6O6SBEndIMHBNNMSt1Ket0tBzq7oaYjlIBdU5XEHBwHVZW17i1tUDe92k1U4bfJ2NZv6TEglcwkhw+KJlzXoPn+7ywrVqdhPqlLhg4NxcXp6KR9TaJqdjcn23QuwhrAjEd/Zq9+pwLBs7CwvKAp7wsHdMJBIPCd4cqgMRocRj1LrmbA++gYFu1loJqmFfBwMFlxtuq3W63a/bGPML3h+Y8AE6WJNRgn7cHjsrVsMFrlVVBwcnEdAAcYvdBTIdYqsIaFhQcvK26sbFxCK+YFuxxJOpugQ9++d6l0FN9vb1wVK585XRNUVBwcE1wTGd1LdAE4BD7FWI6xFIVzrDg4ARCobPRSPQEgEPsZJ51OvZBTIdYr4IYFhwcXKvrM7Pc5uam6LutPFOm0KsQ01EonF7JigLOtanpqVQqJRrTAXBy3B3u8/bC9Yd6UaAg36KAMzMzd9Jd4noWAxKNRolmpY24GFOB3oqTQExHsXS6JCwKOJmYjtPpdE1evioAjsjJNAISSAEleUuaLrJqnykP26q1F1VFjkUDJxQOX6yqrDwK4BB7D2I6xFLpb1g0cHBMp76+fmhi8gpxLe3Su4gJwiDm+E95+2FbNXGL0c+waODgKm3EYqGZmbmc6w/Fqmt3cBBCENPRjwVZORcVnNXVwNnlW7fS1x+SPAAO4vu8vXBULklj0dmmqODgbdX19Q2zuI7rGxtoaWk5XV0pQNI2+u+H0Vl6xdlDTEexdNolLCo4uBqZ6w8j0Sian18AcKR9u9zn7YWjcqV10tWi6ODgbdX19fWn5IBj494m3RhgW7WuTBBlXnRwcCnxPp14fNN1Y/5mTqHtDomQFyGmQ9S2dTUyBDj4+kOeR/0ADqmvYVs1qVJ62RkCHBzTKSkpHQJwyN3Mw1G55GLpYGkIcHC9VlfX4ovLy7nXH+pQaYtkCUflFtGRhgFnfn7hbDAcIo7pFFEzo7waYjpF9IRhwMExnTKPJx3TCQZDKCZ0mEcRhTLiq+Go3OJ5xTDgYAnwtuqKioqm+YUFFAqFi6eKed4MMZ0i+cpQ4GRiOgAOeWuAmA65VlpaGgocXDGGZbnFpSUKehxiN8MSHGKptDM0HDg4phNZX+8HcEidDDEdUqW0tDMcOCsrKwOJVOocgEPuZthWTa6VVpaGAwdXbGZuLh6NrkNMh9zLENMh10oTS0OCMzU9fT4W3zymSQ3tkQlsqy6wnw0Jztzc3GGHyzWEtQiHw4jjyA/vKLB+hnkdxHQK6wpDgrM9pjNx+QpiGKawqpjzbbCtuoB+Myw4+KjcupqaEwAOcWuAo3KJpVJvaFhwMjGdK1evUdDjkDmaR+j5frj+kEwslVaGBgdvq56/udAG4BB7GY7KJZZKnaGhwcExndVA8ByAQ+5kiOmQa6XG0tDg4Ir5JyZplmVdaippr7Rw/WEh/G14cHzjE+c5joOYDnlrgJgOuVaKLQ0PzviVK4ddlGOI43nhm6oVV93CCeH6Q92da3hwsALxeDyEEKq5Nn1dd0Es8gKI6ejsSFOAg2M6ntLSEwAOcWuAbdXEUikzNAU4eFt1VVXVzPTMrCnKq8wVmqeCfTqaS3o3Q9M0xLW1tamFpWXR6w911MisWcO2ah09ZxpwFhcXT64Ggs/qqIXlsoaYjn4uNQ04WIJAMEjj6w8jkSgKRyL6qWKRnOGoXP0caSpw8Lbqqqqq/lsrq+jWyop+qlgnZ4jp6ORLU4GDj8ptbGwcAnDIWwMclUuulRxLU4GDK5ZIJOLhSNQDPQ6xm2FbNbFU5IamAwfHdOgUfQLAIXYyxHSIpSI3NB04OKbjcLpmARwZTqbQmYO9vd8gTwGWUgqYDhxcobn5m1PhcBhiOlLevfs7xHTItSKyNCU4M3Nzp6PR9VNENQSjtAJwVK62DcGU4GAJ5m8u0A6Hw4XjObDRTbpRQExHWiM5FqYFJxPTmbp+HcXjm3LqbFNbOCpXS8ebFhy8rbqxsfEcgEPeHCCmQ66VlKVpwcnEdOYXFjzQ40i5+c7vENMhliq/oanBCYZC5wPB4DEAh7g1wBIcYqksDA6O6cQ2N2cBHPLWAEflkmuVz9LUPQ6u2OUr15aSqWSTNnLYIhfYVq2Bm00PzuSVK6dTKRpiOjIaA8R0ZIglYmp6cHC9rl6b4hBC1GYioV4Re+QA26pV+tkS4OCjcss9nrbxycsq5bBLcojpqPW0JcDBMZ26urpzAA55c9hkE0c+3v/Qu+QpwHK7ApYAB1doM5Ggr16bgqNyCdt3kqMHH+l78FOE5mCWpYBlwFkLBs8vLCzCUbnkTRxiOuRa5VhaBpzFlZXDq7dW0tcfwkOoAByVSyhUrpllwMFVW1ldXSorK2va2Iih1bU1xaLYKCHEdBQ621LgZK4/DIXDeNuBQklslQyuP1TobkuBMzw8XOM9eDAYjUYpAIe4RUBMh1iqu4aWAgdXC8d0GIZpA3CIWwNcf0gslYXBWQ0ETjodjmcBHPLWAEflkmuVsbRcj4Mrtrq2Ri8uLUNMh7A9wLZqQqG2mVkSnJs3Fy8GQsGj8uWwbQqI6ch0vSXBmZubOxyOrkNMR0ZjgG3VMsTCK4rlmZvH+sbNhZDb5aqJRqMokUyap+DFKynEdGRob1lwMjGdG/M34UoQsgYBR+WS6ZS2siw4eFv13r17ZwEcGa0BIYjpEMplWXAyMZ1QKNwGl1ARtgaE4KhcQqksDc7a2trpWHzzFIBD2BrgqFxioSwNDlZhdnaOjqyvQ0yHsElATIdMKMuDMz19fXgjHu8nkwOs8NENfd6eclAivwKWB+fK9PThRHwTYjoySICYjrRYlgcHS3B1ajrucDg88Xgc8TwvrQpYwFG5Em3AFuCsBgIvNNTVfQEf5sGyLGAhrQDEdAAchDIxHQBHmpiMBc1zZx46eBCuPxSRzBY9Dq77xsbG0uyN+SboccjgYXlu+dDBg3vJrO1nZRtwcExneWX1FIBD3sjhqFxxrWwDDpbAPzHJsSxrqzqTYyJoCUtw7D5Uw/VfWVkdLi8v708kE2hhcUllm7JDcojpiHnZVn99M9cfxuJxNH19xg4tX3UdYVu1sIS2AgdLkEgk4gzLegAcYqYgpiMgle3AwdcflpSUHANwiMGBbdUADv7OWTlcXlExBOAQg4Pg+sNcrWzX42AJVgOBpcXFJbj+kJwd2FadpZUtwVlcXj67urp2grzd2N4SjsoFcLYUGPX509cf2h4JcgEgprNNK9s2nBvzN6dKS0vbNjY20EYsRt587GsJR+UCOOlJgoHGxsZzy7dW8PUginHA2xRSKRo5nQ7kcll7oynEdO42E9v2OFiCVCpFB4Ihl1xw8Hq3xGYCxeObOcA5HA7kKfeg8nKPYhiNm5Aa7PP2wPWHdh/jBwLBH6Zo+rNywKFpGrndbhSPxVEsFhdt4y6XE9XW1RqXAWUlg5jObd1s3ePgmA7L8UOk4GBoGJpBeA8pnUqlh2j5HqfTierqLQYPXH+YdrmtwcEC4KNyQ6FQjdQfYIZh0t8wa6trSM7u6127KtJDNws9ENMBcBC6Pnvj7Pp6VDKmg79rcA+iBJwyTxmiKMv8jYJt1QAOQtevX29ej8XxUmnRlp3pbXCvIRcch4NC7pISVFVVaaFOB47KtcyfQTWt8urU1JTL5WrDH/wsh+OiO59EIonKykrT/ygXnPR4mKJQQ2O9miIaLa3tj8oFcLbWrp1sqKt79trUNNpMJATASaCysjLF4OCEVdWVqLR0Cz4rPHaP6QA4t1sxjunMzt1w6QWO1aan7X5ULoBzG5xIJDJ8a2W1Xy9w8GsadzdYobPJ1MHWMR0A53YzwDGdcCQ6JAQOjt/EY1urBFKplOLGj1cTVOyqUJzeaAntfFQugLOtNV6+ei2eTCYFgy6rK2uq2y1ejlPfUKc6HwNlYNtt1QDOtlY4cfnKWZqmBWM6kUgUsQyr+ghdDA4GyCKPbWM6AM52cCYmmmmWmxVq1EoDoNl5lZSWoOrqKotwg6fa0ZmDvb22OyoXwMlqwj7/+BSiqDZOIJ6DA6HhUFjWkptsQiCmY42/GQBOlh/xUbnV1dWnJi5fyfEwniSIhCOqwMGZ1tTWILfbOnt37HhULoAj8AcwHo+z16av53yI4E1rgbWAanAgpmP+XgfAEfBhMBganl9YELz+MBgMpScJ1D7WiunY76hcAEeAgOXl5YFbq2vnhODAwzW8vQDv/sRr25Q+ENNRqpwx0gE4In4Y9Y3HEeIFYzp44gBvnc63A1TKvRbc5GarmA6AI9LCZ+fnz1d4PMdwzxKORHZY4V6HTtGqwMEZWiymY6slOACOCDiZ6w+DoRC6ubC4wwrHdJKJpGpwrDZcs1NMB8DJM6bC1x8mU6mmbHBwkthGTPCUG6kh2vbfrTa7hhCyzbZqACdPS8cxHcrhOCUEDh7CYXjUPDgYWl1TlT41xyoPSztaDh3qnrNKfcTqAeBIeHh1LcAtLi3l6IQnCAJrQdXtAwdCcUDUQo8tjsoFcCRa7OLi0tRqINAmZBZOryLg00dGqXkgpqNGveKkBXAkdJ+5cWMgGonmiem40+cQqHnwHh0rnfxph23VAA5Bix/1+fHJg4KLyzhuaxmOmsd6MR3rH5UL4BC0+GtT0+fdJe50TAfHcLY/+DRPvPBT7YNPwbHQ2WuWj+kAOAQtHm+rbmxsHJq7MY8i0eiOFDimEwyECHLJb4LPXSu9fQSV6syMkIHFj8oFcAgbGY7prAWCTdng4ORreKjGo/REgdJnV2UF8njgqFyl+hU6HYBDqHggFDq7Hl0/IQQOHq6VlLjRxkYMbQpc/UH4ClRTW22lmA5/k3bs+5xFYzoADmGrHh4erqmprQtG19dzNMtsq1YLjtW2VSNk3aNyARxCcLDZ1PTMVCweE4zp0DSDksmkqh4Hv8NaMR1k2esPARwZ4Fy+Nn0ymdh8VigJnm1LJlOqwcFLcEpKSmSUytimVo3pADgy212+mM76+kZ6n46aB38rVddUq8nCUGmtelQugCOzmfnGJy46HI6j+MSb7EcJOByfezvCnj27ZZbK0OaWjOkAODLbXCam4x+fQFzW9LOSYKgQOOXl5aiycpfMkhnXPMnyxx/p975o3BLKLxmAI18zFI/HQ9PXZ2qywcFZRcI4QLp1hXu+h0/fJLoz9pOJA+GTPnfvblRQMmMmSXBo+mN9ve3GLJ2yUgE4CnTDMZ3FhcUTQuDgSQKn05V3/RoGJANO5vXpf7vdg+H/xcM1vIbNCk+SQ/wjfb2WOfcX+wTAUdAy8bbqQDA0KwQOjulQlEM1OHgVQS3s01HgncIkAXAU6jzm80/xCAnGdMS+dTI9itB3zfYeJ/0XjaLQ3r1NCktnyGSWuv4QwFHYxubnF06XV3hO4aDnata2AjFwMsBkQ5L9rZMpUmNjIxyVq9A/eicDcFQojK8/TKZSruszOy84wGCsre7co5P+qtn2DZO9IFRogWh1dTWqqChXUUJjJbVSTAfAUdG28PWHDqezPxscnCXeaoC/d7ZPBAjdgJAPJpzPfffdq6KERktqnaNyARwVbQvHdDzl5UNC4GROwVEDDk6L79KpqrLOfTpWuf4QwFEBTrpnCYXi8zcXBDfS4CNyk8nEnZiOVI+zfWo6893jdpegvXv3qCyloZJb4qhcAEdlm5pfXHwhGAh+QSib9KW7+HD2+Nbh7ELfMUIw4XMM7trz6P7774PrD1X6SevkAI5KRa8vLjavB4Ki1x/iPTpqwcHxHCsN16xwVC6AoxIcnHzU519CCAkGXfDZaxlwtg/F7sR0bvcu24vBZy38xMFQKy3BQQiZPqYD4GgAziuX/FyRn2MAABqCSURBVKeXU/yplnKE7vXslDQWiyF8Y/VOMO5OTWeGZfnAwftzLBYMRWa//hDA0QAcnMWRvxvlfmGvg/ps005J8TdMNBpNf9/g753Mt8tWSAcDdKcfuv0b/hbaudUAg3PPPXs1KqlhsjH1UbkAjkbt6MvnR4f373L0Z4ODs8eTBHjF89LSchY4d1++NXTboih7wqC0tNSC4Jg7pgPgaATO733fN1DtRuf0AGfXrl2osbFBo5IaJ5tgkjry6Yd63jVOichLAuCQayVp+dzbvvjhBkowpoNXEeD/4iccjqJEYmuLdWZYllm/hodlDQ31O96FV1vjLdUWfEwb0wFwNGyN3xnynT9YQx0TyjJz9hr+LRAI3rnNLRuc7GEZ3qKNL+u16GPabdUAjoYt8h/eHz/cWcEPiWWJj5DC9+HgWbbNO4d6bE0EZGbXcM/S0LA1LMO9EP7escqGNiFdzBrTAXA0BAdnlS+mk75Lh2GJtgrYAZrb0pvy+kMAR2Nw3v3IfzbBoRO1JQi5RNTd2l7tFFxGswXX1vDMQrcX5FOZZ52OfYe6zXX9IYCjMTg4u8f+bpT7RpeTukfiDHUMCO6BMtPQ+KwCfKGuTYDZrrzpYjoAjg7gfPHlsamB+x1tUuDo8GqzZmm6o3IBHB2aGo7pHG6gzgE45OKOx6gjv/Jx88R0ABxy38qy/OcP/PSeMuHrD2VlZBtjc11/CODo1DAHf+L/YU0J+qxO2VsxW1PFdAAcnZrgc2+PHJ6MOod2uRD6wgMgM5HMJrr+EDxK5FFlRr/84lgoxqCaPzpoqUMslYlBlso0MR0Ah8yhiqyeem307GSEOgHgEMvH93nNcVQugEPsU/mG33p9ovmDKDPzh70O0JlQPp5Dz/f39X6Z0LxoZuBQnaX/2vfGpr7c6hA8KlfnV5s1e1NsqwZwdG5ef/jD0ZO/dK9T8PpDnV9t2uzNcP0hgFOA5pXv+sMCvN50rzDDUbkATgGa1ajPP4wQ6i/Aq6zyCsPHdACcAjS1V94fPzwf54bu9SDUsQskJ5Hc6EflghdJvKiBzS+eG4sfqKQ8vwLBUFI1Db2tGsAhdaNKu995bfSsm3KcAHCIhTR0TAfAIfajOkMc01lH7CyAQ65jlKXOHOnv+QZ5isJZAjiF0xo9+5Zv6qd3UxDTIdfcsDEdAIfciaot/2rQf/qROnRKdUY2ysCoR+UCOAVuhKM+P94rDas+CXU3akwHwCF0oFZmENORq6Qxj8oFcOT6UaX94E98AzGWOldfglCZU2VmNkluxJgOgFOExnfs3Fj8yfsoj7ca5CeU33AxHfAcoee0NPvtfxo7/3AddQzAIVbVcEtwABxi32lniGM6LdXsLIBDrmmJy33mwIFOw8R0ABxy32lqeeFHvqV9uyjB6w81fZF1MjPUtmoAp0gN6/Uf+0/f54GYjhz5jRTTAXDkeE5j21GfH19VAD4g19UwR+WC08idprnlqM8/hRCCJTjEyhonpgPgEDtNe8MRn2+AQtQ57XO2bo5G2VYN4BS5jf3Siz76D7opsRtBilw6I77eGEflAjhFbhu//arv/JdaqGPgCGJHGCKmA/4i9pc+hs/8YPzwsfv4IXCEDH0NcFQu+EuGv/QyHfH5lyiEIKZDLnDRYzoADrmzdLMc8fnPUgid0O0F1su46NcfAjgGaFTDw8M1g0F3sKYEUQ/WGKBA5ihCUWM6AI5BGsmJV3xTDgq1fbUdXELokqJefwheIvSS3ma/933/yZUk/yyAQ660q8R9pKez813yFNpZAjjaaak6p5Ov+ugvtVAu1RnZJAMKURcOenueKEZ1AZxiqC7yzj9603fxZ5uoowYqktGLUrSYDoBjoKbxl2+PH/54Az9koCIZvijF2lYN4BisaYz6/CGEEMytkfulKDEdAIfcQQWxHPX5zyKI6cjRuihH5QI4clxUANu3PppoXk9xs/gUnCp3AV5ojVcUPKYD4Biw4Xz5vH/KW43aPtVowMIZs0gFPyoXwDFgQ/jG6/7TTR50CsAhd44/6mj51Ue758hTqLMEcNTpp1vqv7jopz9RjyCmQ6jwjYTjwi883F2wmA6AQ+iYQpv9/bv+YW81XH9Irntht1UDOOSeKaglvv6wrQJiOnJEL2RMB8CR45kC2476xuMI8Z4Cv9bMryvYUbkAjoGbyeiY/wVEoS8YuIhGK1rBYjoAjtFcv608H01MNDtZbtbARTRc0SgKnTnY26v7UbkAjuFcv7NAv/6Kf+nXHkBNjaUGL6hxileQmA6AYxyHC5bk6df9p39mDzoF4JA76s0VR8vXP6NvTAfAIfdH0Szf+tDPNZTCUbmkDngv7H7+N490fpnUXokdgKNEtQKnGfzIP1zjhpgOuez6x3QAHHJvFM3y3RHfQKUTjsqV4wC9j8oFcOR4o4i2f/72VkznaEMRC2GuV+sa0wFwTNIYfud13/m5GHXsvxwwSYGLX0xdt1UDOMV3MFEJnnlz/LAvxA8BOERypY3WaOrMZw716BLTAXDI/VB0y6de8y99sRmOyiV1RIpD0w/39baT2suxA3DkqFVk22++4T/7i/fAUbky3KDbUbkAjgwvGMEUrj+U7QVdtlUDOLL9UNwEcP2hbP11OSoXwJHth+ImgOsP5euvR0wHwJHvh6KneOVHfrrSjVy7YeEnoS+0v/4QwCGU3khmX3t1/GKtGx395Xt5IxXLyGXRPKYD4BjZ3SJlwzEdjkVDAA6588Y2HF/5tU9048MeNXkAHE1kLHwmf/LWeOgzu3k4KpdQ+qWkY/pnH+rWLKYD4BAKbzSzvxnynz1UAzEdGX7RdFs1gCNDeSOZ/t/3Jpp7q7gZhGCfjgy/aBbTAXBkqG40U4jpyPaIZtuqARzZ2hsnwZjf//s8j75pnBIZvyRaxXQAHOP7Om8JfzLmp50UcoEjyRzJI/5Cv9er+qhc0JtMb8Na/eb3/MNHG1F/V6Vhi2i0gmkS0wFwjOZWmeX51pvjhzsq+CEAh1y4dyLu41873PkieYpcSwBHjXoGSXv+/fF4awUclUvqjh9H3SNfebTzQVJ7ITsAR416Bkn7xgf+s01lENOR4Q7VMR0AR4baRjXF1x82uOGoXDn+UXtULoAjR20D2377Hf9UIIHafmGvgQtprKKpiukAOMZypuLS/N4P/Kd/FKROPXsQVkyTirhBO1oePaTsqFwAh1RlE9j9/HfHudO9PPiU0Fcxlrrwyf4eRTEdEJlQZDOYffVV//BXWuCoXFJfsTy1eehgTzmp/XY7AEeJagZN8wdv+AaO3QNH5cpxD8U7PnfwYPf35aTBtgCOXMUMbg/XH8p2kKKjcgEc2TobO8GIz3eeQtQxY5fSUKVTtAQHwDGUD9UXBq4/lK+hkpgOgCNfZ8OnuPC+f8lBoaZmRZ+9hq+eHgWc7vPKOyoXwNHDDUXO85k3fH++lnJ87SstENMhdcVN2tHyORkxHQCHVFmT2T31+jj3xQcgpkPqtusJ1/NPPNxFfP0hgEOqrMns/vu/+Kc+twe1mazYRSvuGu3Y/MyhbuLBLYBTNFfp++K/GPQNfKIOYjpyVJazrRrAkaOsyWxHfX4aIeQyWbGLWFzyo3IBnCK6Se9XQ0xHtsLEMR0AR7a25kkwMj5+mOL4IfOU2AAlpdBTfb29fypVEgBHSiGT//6vI/4llwM1wTE4xI4kiukAOMR6mtPw6R/4zzaXUycerYOYDqEHeX/Use9XH82/TwfAIVTTrGbfemuiudHNz3y8FmI6pD7814j7+d843Jk3pgPgkKppYrsXLvmneiohpkPqwuEN99oXP9HZmM8ewCFV08R259/3n2ytQM+auAq6Fr2kxI2qKqtQXW0N2kwk0K2VFZRkmCP9PT3vir0YwNHVJcbJHGI6ub6ora1B1ZVVqKoq9xjUuRvz77Y0P3AEwDFOGy5KSb49OH5xIUEdfXwPhzzOohTBEC/1lJWhhoZ6VFVZiZxOYSFSNI0uX7m22ecV31YNPY4h3Kl/IfBRuW+uOob+sItFNW7932ekN2SGYhiYErd05ecXFlAoFEb5luAAOEbysM5l+ffnJ9ZPNHO77AAO7k3wEKyupgZVVFRIKot7mWg0itYCAZRK4ZVKCOW72QDAkZTUOgY4pvPze9AJK4Ozq6IC4W+XfEOxjEdZlkXR9fV077IRiwk5WjQYCuBYhwvJmuCYzpFabtZq4OChWEN9PaqqqiIaisViMRQMh1E0uo4wPHmecJ+3t1bodwBHsrlZy+C9Yf/ULpf5YzqZoVhjfT0qKyuTdBIeiuGeJRQO3RmKSSZCCMAhEMkWJpdG/KcrnOiUWSuLv1uqq6pQbY30TfWZodjaWiAdn1Hy9Hl7BTsX6HGUqGnyNGaL6eAp5PR3C+FQDA/BIuvRdA+j9gFw1CpoofSvvO8fTnFU/4FK4y78xEMx3KvgaD7JUCyRSKBgKIyi61E5QzFJr74ZLW/5+qOtc9mG0ONISmc9AxzTmVinhp7u4AxXua0p5FrBaH52YfFQLBQOp3sWpUMxKQF+GCp96unHOnL25wA4UspZ9PevvjYR/0oz5zFC9TJDMdzDiEXzt5cTD8WC4VB6VkzvB8DRW2GT5f/f3hw//3gTX7SjcuVG8zNDMdzDSEwha+oJAEdTOc2f2f/CMZ3dhb/+MN/CymxVhaL5hVYewCm04iZ436jPv4QQatK7qHKi+bgsuFeJRKMFGYpJ1R3AkVLIhr+P+f2neV6fmA4eitXW1KankUkWVsqI5hfUUwBOQeU2z8tGfX48tabJJJGShZUKovkFFRfAKajc5nnZpWH/sJNC/WUq9uhkovkaLaw0lHj/uFo2+M2fbv9UdqE0+UtjqJpCYWQp8AdvTAy4nOgc3uAm55G7sDITzSdYWCmnGLrbAji6S2zeF/zZxYnkp+q5EqkaKFlYideJaR3Nlyqnlr8DOFqqabG8/va98fMPVonHdORG8/EeFzULK40k74+jrsGvPNoFQzUjOcUoZfmH98cPd1bsPCrXyNH8wuomfBA7fOMU1guGfVsmpoN7l6bdu2UtrCx0NL/AIi73eXv3wuRAgVU3y+tGff6zTqfzRNf+jrzrxQqxsNJgmgluZoMex2BeKmZxlm+t8Ht2Cx9gaaRofoE1AnAKLLjpXjd3Y36pvq62KXMqDF5YuRoIkOzNN11dZRQYwJEhli1N/8e/TAwcqOLPddaWIpZjNd0QZmJBARwTO69gRX/9x+Oh+zy89Ib+gpWo6C/i+7y9DpgcKLofjF2A1z7wnyx3UM9SFI/qpA+9NHZlNCqd0LkDMDmgkbhWyubXL1wOraZQzekDjJWqpbguAI5i6eyVEJ9J8JOI851nOhn4w4oQAnDs1f5V1faZN8ZPP3EPb9rz11RVPisxgKOlmjbIa9Tnn0LI/Kd+qnUVj/jj/V7vi9vzga5YraoWTv/RxESzk+UnEeINcRpO0aQWuMIdwCmaN8zx4r9+d2IgyaHvfrKWs29bAXDM0ViNVsq/endi4JFq7pzRylWw8gA4BZPaci/Ci0ARQifMXDEKUfiyKPlVAHDkawYp7irwn38wMeWt4tv6qhQ0viIK6aC2Av8UtTXa5HgO8Tx5HYRuZrPvuLWIjjTrq//4rYnmpjJ+0ltlrsmCbHCw/ngtHvmTu5kNwCFXDywRQq+8P3642o3e4RGi6t08cpigBTkduUf44B4n/R+ingfAgcavgQL/9Y3J05fCjlPP7KfRLpcGGeqchRA4mVeSDdsAHJ1dZJ/sv/6DyYtPNLFHzQ4O7nEwPPkfAMc+LbsANX1/xB/yOJHhtyAI9Ti35wnuqMRxHOLEh205t0+bYIRagBYAr1CkwEcfTTQ73RxelmPoARsJOFgARvwG6pzNbACOoiYDiTIKjPh8AxSiDBkczUw/Z2bVtnstu8fZmqbmEe55BB4AB5q89gp855L/7MFK4wVHMz2NECRI8B9RepZN4OIqAEf7ZgM5YgWMtpIa9zKZHkcOOOmeB3/v7Ox5ABxo5vooYISV1HhJDYZkC5it/59+RHqXfErgXmdbjIfp8/bu2EgO3zj6tCNb5vrHb185XObg3jlSx+rerjAc6f9mXe0jt3cRcxTOl2GZO/Bkb2bTvYK2bEE2rvQLl8ZP91Tqv3MUQ0P60a+kx0kvCOX5NDz4AXBs3KgLVfXBj8YvJjh0FC/JceccrKSuFNunlrXsXbJLlfk+ohk6DRCAo85vkJpQgf/w6pXQE3uYmgc85KuQSbIuNDi4x8ETBQAOiXfARrUCeCV1dxU/dW8Zrzo4mv6euN293Bme4UkAoVLKnAjI/kbKZJnpcfAqatzjrDOOn/tkX9cP7/yuWiHIABQQUeC7P5oYCNHUOReF0Mdq5Czj35mhA3/POATGfBpDks+R6wz13CO9HV8FcKC5F0SB3//ny2fHNxwnnulIKX4fgKNYOkhoZgW+/sPLU792L9OmtA64txHscSQyFBqGZYZgUmXJtovSCHocKdHgd20VwN87P7Nb+TFTSsBRA83WJ9XOL6goi557pBuGatq2DMhNUoGR8fHDFMe/kw7py3wMAQ6D3nmkp+MofOPIdB6Yq1dgzO8/zfOI+Fhdl4tsQk7r3kWophGGmvtYT3sLgKO+HUAOChT430MTFz9Ww935y50vCwBHgcCQxLoKjPr8IYSkd44WAhzSyYJ1hpp7GHoc6zZKM9TsvY8mmmMcP1Xl4l2e3ANo7lRBCBw1wzJSSLZrmJkjiNIAjhnaluXL+K1/mRi434PO9VeJH5RhKHAYavXh7vbd8I1j+aZp/Aq+9oH/7P1l4jtH3a7cuxTl9BpybO8AITTnR1FonaGYhw603SmQ7KlB47sDSmgmBb5zaWIqwlBtn6hhEV6as/1RA46W0OAyrTMO5qEDrQCOmRqXlcuKg6Njcdfkbz2Q8pRlLUcDcKzseaibagXOvH3l8Kfr6HfKHDuDoyXuEqK8te5dhF4KPQ6RK8Co0Ap8OOY/7aZ2BkeNBM4G6+B+qqv1zhwgfOMUuoXA+0QVGPWNX6QQOpruQSiEXE7ClQMytxfgAsjdPRrnnOjBzn13eAFwoCEbSgH/xOSm0+EsEytUIYZlQu8GcAzVTKAw2QpceP9a9/5qblwMEAAH2gwoIKLAP3048fRY1H3myXvlSyR3CEbas8U5B+rfD0M1+R6BFAVV4PT/mxx84l7XY3Jfqh84TuRPlB38dwebfOlvJLkFA3tQoFAKXPJdjdaVUJVy3qcnOCOx8ue++ODu9LkDAI4cr4BtQRX4k8FJ79WYa6SrknL87O7cY6b0gmQLjJ1o4KHaMIBTUP/Dy1Qo8Nx7155MctRLP190cJzoatz13L/pvxd6HBX+hKQFVOCvP7j5cmcF+3n8ylonjRwIX92r0blqIjGg7B4nyTvQyib33E8fbAVwCuh7eJVKBc6NLM7e4iqaP12xhkqp21sRZAY+Rae4Cb9YUkzqhZ6url+FbxyVzoTkhVXg2x8F6UcrQq5igcOw9NyBzs70uQMwOVBY38PbVCjw92PLXjeixtwUj6qcDLrfncibm1API3bkbXZGQp0ZzQA4KtwHSYupwHdGlp4OcuVnmlxJ1O+JihZFDTTpHkWgSwFwiul5eLdqBb43emMwQZU9BuColhIysJsC3x+bj7Z5kungqB69i5Ce0OPYrZVZsL6DY9PexlJuxOmgHIUCh+U4prOjPb19GiYHLNio7FKlt/3Xn/S4HC9VOTnkonauLFAzCSCmH4Bjl5Zlg3r+0+iNl5vK0OdrnVt3deZ7ZIZ90llt781YlmX2Q48jJTP8bhYF3p2Ynd1TwjVLlRfAkVIIfredAq/5Fmm3g3K1lm7eqbtaUDIZ3bnWkGWZjvats9XgG8d2TcyaFX59bN4b5UvHHqrYuD3Ekl9PwUmGLPpa97VsXUkqP3tIAQoYU4FXRhae9u5Kntn6NpFfRgBHvmaQwiIK/O3wyuAmcj/m9cRQk1v83lESSIQkgR7HIg0FqpGrwAsjS9H7yrjKe9xJUXkAHGg5oECWAv/w4aS3pqRspLWCF7jjfcsYwIFmAwoIKPDGB/4nW2s9L2FAlEKSky1FoWQy9dyBzo6vKviEAj+BAuZQ4H3flZcbyt2fB3DM4S8opYEUeO7i6OzPNVdLBkeFepfsf8PLeBLJJPQ4BvIvFEVHBa5NTdNOJ+FB1JlyCMxnAzg6OgmyNp4CFz6c9HbWlI6VOkXnCnILDeAYz5FQosIr8B9f+fDpPbtKz3yxQ+B8QxFIhEqZTCUvd+3vOACTA4X3IbyxSAp85z3f4KP3VOYeqysDnFQyNdfZ2b617gYeUMAuCvzZoD96b4W7sr+uFDlw6yc8Vy2jD4Bjl5YC9dyhwGN/c8l7I86PvPbZex3lt2/rlbPpLZlKzXV2QI8DzcqGCvzuqx88+aWuhpfK3VuTBQCODRsBVFmZAsdf+uDlihL35/GQ7fH7K3IyEVtdzTBMsr2ttQy+cZTpDqksoMD+v3xv9sH68uYzD9WTg8NyTHtrixvAsUADgCooV+Drr4/Qv9VTl3NLr2iPA+AoFxtSWkeBv7805v3k3qoxh0M4OJq9zo1hWKYNehzrNACoiXIFJi5fe7rcU5reOZr9ADjKdYWUNlDgH388PtjbsOuxMufOr5dscHieRy3NDyjZmW0DFaGKtlTgHd/VaHO1R/LO0eYH7gdwbNlCoNKCClwam/Q2VXpGnM78q0EBHGhAoECWAr/76kdP7t5V9tLxtrsdT/Zw7YH774MeB1oOKJCtwNOvf/Tyb3ob03eOCu0eBXCgzYACIgpcvjY16yktbRYCZz228W8hAApNBxQQUaD52z+izzzc4Hp0j2eHxfrG+n8CcKDZgAIiCuCV1L/RUz/22N6da9kAHGgyoICEAm+NTDzdUV+1IzgK4ECzAQUIFLhybXrQU1b6WOZ7J7oehaEagW5gAgqgqesz0dKSkvQc9fr6xl/BNw40ClCAQIG/HBzzfralJh0c3diIvQHgEIgGJqAAVuDy5WtPlld4XorF4gAONAlQQI4CV6amXuYYrgJ6HDmqgS0ogBD68MqVhv8PmrpxmjP0lPgAAAAASUVORK5CYII=","e":1},{"id":"image_1","w":936,"h":457,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":167,"h":203,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":119,"h":212,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"pen","parent":2,"refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9.609,"s":[10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":18.016,"s":[3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":27.625,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36.033,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44.44,"s":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":49.245,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56.451,"s":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":63.658,"s":[-3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":74.468,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84.076,"s":[10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":92.484,"s":[3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102.093,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":110.5,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":118.909,"s":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":123.713,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130.919,"s":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":138.126,"s":[-3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":145.333,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":152.539,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":162.148,"s":[10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":170.555,"s":[3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":180.164,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":188.571,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":196.979,"s":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":201.784,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":208.99,"s":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":216.196,"s":[-3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":227.006,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":236.615,"s":[10]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":245.023,"s":[3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":254.631,"s":[6]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":263.039,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":271.448,"s":[8]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":276.251,"s":[13]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":283.458,"s":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":290.665,"s":[-3]},{"t":297.871262132545,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[562.294,296.689,0],"to":[0,0,0],"ti":[6,10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.054,"s":[510.294,289.189,0],"to":[-6,-10.5,0],"ti":[9,4.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.303,"s":[485.794,284.189,0],"to":[-9,-4.5,0],"ti":[20,-3,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.893,"s":[468.794,271.189,0],"to":[-20,3,0],"ti":[9,13,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42.968,"s":[435.294,267.189,0],"to":[-9,-13,0],"ti":[-4,10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.736,"s":[417.294,265.189,0],"to":[4,-10.5,0],"ti":[20,-2.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.961,"s":[393.294,256.189,0],"to":[-20,2.5,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":71.994,"s":[371.419,259.064,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.468,"s":[371.419,259.064,0],"to":[0,0,0],"ti":[-20,2.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.5,"s":[393.294,256.189,0],"to":[20,-2.5,0],"ti":[4,-10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.725,"s":[417.294,265.189,0],"to":[-4,10.5,0],"ti":[-9,-13,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.494,"s":[435.294,267.189,0],"to":[9,13,0],"ti":[-20,3,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.569,"s":[468.794,271.189,0],"to":[20,-3,0],"ti":[-9,-4.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.159,"s":[485.794,284.189,0],"to":[9,4.5,0],"ti":[-6,-10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.408,"s":[510.294,289.189,0],"to":[6,10.5,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":146.461,"s":[562.294,296.689,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":152.539,"s":[562.294,296.689,0],"to":[0,0,0],"ti":[6,10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":175.593,"s":[510.294,289.189,0],"to":[-6,-10.5,0],"ti":[9,4.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":181.841,"s":[485.794,284.189,0],"to":[-9,-4.5,0],"ti":[20,-3,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":187.431,"s":[468.794,271.189,0],"to":[-20,3,0],"ti":[9,13,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":195.506,"s":[435.294,267.189,0],"to":[-9,-13,0],"ti":[-4,10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":201.275,"s":[417.294,265.189,0],"to":[4,-10.5,0],"ti":[20,-2.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":210.5,"s":[393.294,256.189,0],"to":[-20,2.5,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":224.533,"s":[371.419,259.064,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":227.006,"s":[371.419,259.064,0],"to":[0,0,0],"ti":[-20,2.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":241.039,"s":[393.294,256.189,0],"to":[20,-2.5,0],"ti":[4,-10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":250.264,"s":[417.294,265.189,0],"to":[-4,10.5,0],"ti":[-9,-13,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":256.033,"s":[435.294,267.189,0],"to":[9,13,0],"ti":[-20,3,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":264.108,"s":[468.794,271.189,0],"to":[20,-3,0],"ti":[-9,-4.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":269.698,"s":[485.794,284.189,0],"to":[9,4.5,0],"ti":[-6,-10.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":275.946,"s":[510.294,289.189,0],"to":[6,10.5,0],"ti":[0,0,0]},{"t":299.00001217852,"s":[562.294,296.689,0]}],"ix":2},"a":{"a":0,"k":[206.09,486.198,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"book","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[601.17,579.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33.223,"s":[601.17,595.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68.659,"s":[601.17,575.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":98.559,"s":[601.17,595.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":133.996,"s":[601.17,575.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":165.004,"s":[601.17,595.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":200.441,"s":[601.17,575.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":232.555,"s":[601.17,595.231,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":267.993,"s":[601.17,575.231,0],"to":[0,0,0],"ti":[0,0,0]},{"t":299.00001217852,"s":[601.17,579.231,0]}],"ix":2},"a":{"a":0,"k":[467.964,228.42,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"bg4","parent":2,"sr":1,"ks":{"o":{"a":0,"k":60,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[752.651,288.788,0],"ix":2},"a":{"a":0,"k":[40.797,27.457,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[37.302,63.843],[-19.881,-35.736]],"o":[[0,0],[19.879,35.734]],"v":[[-40.797,-9.541],[36.873,-12.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.505999995213,0.827000038297,0.964999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.797,27.457],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"bg3","parent":2,"sr":1,"ks":{"o":{"a":0,"k":60,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[694.497,314.414,0],"ix":2},"a":{"a":0,"k":[25.258,28.104,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[60.056,-1.269],[-33.22,0]],"o":[[0,0],[33.22,0]],"v":[[-25.057,28.104],[3.698,-28.104]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.426999978458,0.760999971278,0.545000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.258,28.104],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"bg2","sr":1,"ks":{"o":{"a":0,"k":60,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":130,"s":[38]},{"t":299.00001217852,"s":[0]}],"ix":10},"p":{"a":0,"k":[543.97,584.287,0],"ix":2},"a":{"a":0,"k":[293.367,295.66,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2,"s":[{"i":[[0.565,167.947],[-361.052,144.052],[199,-159.277]],"o":[[-0.565,-167.947],[361.054,-144.052],[-199.923,160.016]],"v":[[-309.405,87.66],[10.205,-265.359],[159.03,222.99]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.379,"s":[{"i":[[0.565,167.947],[-206.779,4.876],[199,-159.277]],"o":[[-0.565,-167.947],[293.825,-6.928],[-199.924,160.016]],"v":[[-327.405,107.66],[58.205,-261.359],[145.03,266.99]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.479,"s":[{"i":[[0.565,167.947],[-206.779,4.876],[199,-159.277]],"o":[[-0.565,-167.947],[293.825,-6.928],[-199.924,160.016]],"v":[[-283.405,61.66],[134.205,-263.359],[191.03,266.99]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":149.899,"s":[{"i":[[0.565,167.947],[-198.556,-57.936],[207,-101.277]],"o":[[-0.565,-167.947],[325.825,95.072],[-230.02,112.54]],"v":[[-261.405,-6.34],[134.205,-263.359],[161.03,226.99]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":203,"s":[{"i":[[0.565,167.947],[-206.779,4.876],[199,-159.277]],"o":[[-0.565,-167.947],[293.825,-6.928],[-199.924,160.016]],"v":[[-327.405,107.66],[58.205,-261.359],[145.03,266.99]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":255.1,"s":[{"i":[[0.565,167.947],[-206.779,4.876],[199,-159.277]],"o":[[-0.565,-167.947],[293.825,-6.928],[-199.924,160.016]],"v":[[-283.405,61.66],[134.205,-263.359],[191.03,266.99]],"c":true}]},{"t":297.000012097058,"s":[{"i":[[0.565,167.947],[-361.052,144.052],[199,-159.277]],"o":[[-0.565,-167.947],[361.054,-144.052],[-199.923,160.016]],"v":[[-309.405,87.66],[10.205,-265.359],[159.03,222.99]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20800000359,0.705999995213,0.905999995213,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[293.367,295.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"bg1","sr":1,"ks":{"o":{"a":0,"k":60,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":135,"s":[-22]},{"t":299.00001217852,"s":[0]}],"ix":10},"p":{"a":0,"k":[236.473,582.509,0],"ix":2},"a":{"a":0,"k":[171.13,163.116,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[26.299,-10.255],[94.547,199.312],[-113.965,-90.172]],"o":[[-26.299,10.255],[-94.547,-199.316],[113.966,90.173]],"v":[[70.827,159.236],[-148.927,2.799],[101.492,-104.526]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42.893,"s":[{"i":[[58.173,-21.335],[-10.353,175.185],[-113.965,-90.172]],"o":[[-90.588,33.223],[13.014,-220.219],[113.966,90.173]],"v":[[70.827,159.236],[-148.927,2.799],[101.492,-104.526]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.785,"s":[{"i":[[58.173,-21.335],[-10.353,175.185],[-113.965,-90.172]],"o":[[-90.588,33.223],[13.014,-220.219],[113.966,90.173]],"v":[[70.827,159.236],[-157.021,27.829],[80.853,-89.626]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130.108,"s":[{"i":[[58.173,-21.335],[-25.703,173.599],[-86.389,-104.461]],"o":[[-90.588,33.223],[28.968,-195.655],[92.615,111.99]],"v":[[70.827,159.236],[-157.021,27.829],[80.853,-89.626]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":173,"s":[{"i":[[58.173,-21.335],[-25.703,173.599],[-86.389,-104.461]],"o":[[-90.588,33.223],[28.968,-195.655],[92.615,111.99]],"v":[[55.05,183.133],[-143.747,15.837],[106.613,-73.121]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":209,"s":[{"i":[[58.173,-21.335],[-10.353,175.185],[-113.965,-90.172]],"o":[[-90.588,33.223],[13.014,-220.219],[113.966,90.173]],"v":[[70.827,159.236],[-148.927,2.799],[101.492,-104.526]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":251.893,"s":[{"i":[[58.173,-21.335],[-10.353,175.185],[-113.965,-90.172]],"o":[[-90.588,33.223],[13.014,-220.219],[113.966,90.173]],"v":[[70.827,159.236],[-157.021,27.829],[80.853,-89.626]],"c":true}]},{"t":299.00001217852,"s":[{"i":[[26.299,-10.255],[94.547,199.312],[-113.965,-90.172]],"o":[[-26.299,10.255],[-94.547,-199.316],[113.966,90.173]],"v":[[70.827,159.236],[-148.927,2.799],[101.492,-104.526]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.426999978458,0.760999971278,0.545000023935,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[171.128,163.116],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"leaf2","parent":2,"refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[290.192,41.478,0],"ix":2},"a":{"a":0,"k":[28.334,171.132,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - rotation","np":4,"mn":"ADBE CM WiggleRotation","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WiggleRotation-0001","ix":1,"v":{"a":0,"k":0.5,"ix":1}},{"ty":0,"nm":"Wiggle Amount (degrees)","mn":"ADBE CM WiggleRotation-0002","ix":2,"v":{"a":0,"k":7,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":14,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = $bm_transform.anchorPoint;"}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = $bm_transform.anchorPoint;"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - rotation')('Wiggle Speed (wigs/sec)'), effect('Wiggle - rotation')('Wiggle Amount (degrees)'));"}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}}]}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"leaf1","parent":2,"refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[276.762,30.27,0],"ix":2},"a":{"a":0,"k":[65.392,203.829,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Wiggle - rotation","np":4,"mn":"ADBE CM WiggleRotation","ix":1,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WiggleRotation-0001","ix":1,"v":{"a":0,"k":0.5,"ix":1}},{"ty":0,"nm":"Wiggle Amount (degrees)","mn":"ADBE CM WiggleRotation-0002","ix":2,"v":{"a":0,"k":7,"ix":2}}]},{"ty":5,"nm":"(Transform)","np":14,"mn":"ADBE Geometry2","ix":2,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = $bm_transform.anchorPoint;"}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = $bm_transform.anchorPoint;"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - rotation')('Wiggle Speed (wigs/sec)'), effect('Wiggle - rotation')('Wiggle Amount (degrees)'));"}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}}]},{"ty":5,"nm":"Wiggle - rotation 2","np":4,"mn":"ADBE CM WiggleRotation","ix":3,"en":1,"ef":[{"ty":0,"nm":"Wiggle Speed (wigs/sec)","mn":"ADBE CM WiggleRotation-0001","ix":1,"v":{"a":0,"k":0.5,"ix":1}},{"ty":0,"nm":"Wiggle Amount (degrees)","mn":"ADBE CM WiggleRotation-0002","ix":2,"v":{"a":0,"k":7,"ix":2}}]},{"ty":5,"nm":"(Transform) 2","np":14,"mn":"ADBE Geometry2","ix":4,"en":1,"ef":[{"ty":3,"nm":"Anchor Point","mn":"ADBE Geometry2-0001","ix":1,"v":{"a":0,"k":[0,0],"ix":1,"x":"var $bm_rt;\n$bm_rt = $bm_transform.anchorPoint;"}},{"ty":3,"nm":"Position","mn":"ADBE Geometry2-0002","ix":2,"v":{"a":0,"k":[0,0],"ix":2,"x":"var $bm_rt;\n$bm_rt = $bm_transform.anchorPoint;"}},{"ty":7,"nm":"Uniform Scale","mn":"ADBE Geometry2-0011","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":0,"nm":"Scale Height","mn":"ADBE Geometry2-0003","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Scale Width","mn":"ADBE Geometry2-0004","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Skew","mn":"ADBE Geometry2-0005","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":0,"nm":"Skew Axis","mn":"ADBE Geometry2-0006","ix":7,"v":{"a":0,"k":0,"ix":7}},{"ty":0,"nm":"Rotation","mn":"ADBE Geometry2-0007","ix":8,"v":{"a":0,"k":0,"ix":8,"x":"var $bm_rt;\n$bm_rt = wiggle(effect('Wiggle - rotation')('Wiggle Speed (wigs/sec)'), effect('Wiggle - rotation')('Wiggle Amount (degrees)'));"}},{"ty":0,"nm":"Opacity","mn":"ADBE Geometry2-0008","ix":9,"v":{"a":0,"k":100,"ix":9}},{"ty":7,"nm":"Use Composition’s Shutter Angle","mn":"ADBE Geometry2-0009","ix":10,"v":{"a":0,"k":1,"ix":10}},{"ty":0,"nm":"Shutter Angle","mn":"ADBE Geometry2-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":7,"nm":"Sampling","mn":"ADBE Geometry2-0012","ix":12,"v":{"a":0,"k":1,"ix":12}}]}],"ip":0,"op":300.00001221925,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/public/images/avatar.jpg b/src/assets/images/avatar.jpg similarity index 100% rename from public/images/avatar.jpg rename to src/assets/images/avatar.jpg diff --git a/src/assets/main.css b/src/assets/main.css deleted file mode 100644 index 389b4689..00000000 --- a/src/assets/main.css +++ /dev/null @@ -1,31 +0,0 @@ -/* purgecss start ignore */ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer utilities { - @media only screen and (min-width: 768px) { - .sm-a-h { - height: calc(100vh - 10.5rem); - } - } - - @media only screen and (min-width: 768px) { - .sm-s-h { - height: calc(100vh - 6rem); - } - } - - @media only screen and (min-width: 768px) { - .sm-t-h { - height: calc(100vh - 11rem); - } - } - - @media only screen and (min-width: 768px) { - .sm-d-h { - height: calc(100vh - 5rem); - } - } - -} \ No newline at end of file diff --git a/src/boot/.gitkeep b/src/boot/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/boot/axios.ts b/src/boot/axios.ts new file mode 100644 index 00000000..468ea0fb --- /dev/null +++ b/src/boot/axios.ts @@ -0,0 +1,26 @@ +import { boot } from 'quasar/wrappers' +import axios, { AxiosInstance } from 'axios' + +declare module '@vue/runtime-core' { + interface ComponentCustomProperties { + $api: AxiosInstance; + } +} + +// Be careful when using SSR for cross-request state pollution +// due to creating a Singleton instance here; +// If any client changes this (global) instance, it might be a +// good idea to move this instance creation inside of the +// "export default () => {}" function below (which runs individually +// for each client) +const api = axios.create({ baseURL: '/api' }) + +export default boot(({ app }) => { + // for use inside Vue files (Options API) through this.$api + + app.config.globalProperties.$api = api + // ^ ^ ^ this will allow you to use this.$api (for Vue Options API form) + // so you can easily perform requests against your app's API +}) + +export { api } diff --git a/src/boot/i18n.ts b/src/boot/i18n.ts new file mode 100644 index 00000000..6d59bc6e --- /dev/null +++ b/src/boot/i18n.ts @@ -0,0 +1,33 @@ +import { boot } from 'quasar/wrappers' +import { createI18n } from 'vue-i18n' + +import messages from 'src/i18n' + +export type MessageLanguages = keyof typeof messages +// Type-define 'en-US' as the master schema for the resource +export type MessageSchema = typeof messages['en-US'] + +// See https://vue-i18n.intlify.dev/guide/advanced/typescript.html#global-resource-schema-type-definition +/* eslint-disable @typescript-eslint/no-empty-interface */ +declare module 'vue-i18n' { + // define the locale messages schema + export interface DefineLocaleMessage extends MessageSchema { } + + // define the datetime format schema + export interface DefineDateTimeFormat { } + + // define the number format schema + export interface DefineNumberFormat { } +} +/* eslint-enable @typescript-eslint/no-empty-interface */ + +export default boot(({ app }) => { + const i18n = createI18n({ + locale: 'en-US', + legacy: false, + messages + }) + + // Set i18n instance on app + app.use(i18n) +}) diff --git a/src/components/Action.vue b/src/components/Action.vue deleted file mode 100644 index 66a90b03..00000000 --- a/src/components/Action.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/src/components/Alert.vue b/src/components/Alert.vue deleted file mode 100644 index c620c3de..00000000 --- a/src/components/Alert.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/Aside.vue b/src/components/Aside.vue deleted file mode 100644 index c9d73fd8..00000000 --- a/src/components/Aside.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/BarChart.vue b/src/components/BarChart.vue deleted file mode 100644 index 43bf4cf6..00000000 --- a/src/components/BarChart.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/Confirm.vue b/src/components/Confirm.vue deleted file mode 100644 index 0ac2ba5e..00000000 --- a/src/components/Confirm.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/DoughnutChart.vue b/src/components/DoughnutChart.vue deleted file mode 100644 index 59b1b3e8..00000000 --- a/src/components/DoughnutChart.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/Drawer.vue b/src/components/Drawer.vue deleted file mode 100644 index c491d283..00000000 --- a/src/components/Drawer.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/EssentialLink.vue b/src/components/EssentialLink.vue new file mode 100644 index 00000000..46ec9de5 --- /dev/null +++ b/src/components/EssentialLink.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/components/LineChart.vue b/src/components/LineChart.vue deleted file mode 100644 index 48cb2dff..00000000 --- a/src/components/LineChart.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/MenuItem.vue b/src/components/MenuItem.vue deleted file mode 100644 index 9985cd5f..00000000 --- a/src/components/MenuItem.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/Modal.vue b/src/components/Modal.vue deleted file mode 100644 index 158ac454..00000000 --- a/src/components/Modal.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/components/Operation.vue b/src/components/Operation.vue deleted file mode 100644 index b44a63f3..00000000 --- a/src/components/Operation.vue +++ /dev/null @@ -1,214 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/Pagation.vue b/src/components/Pagation.vue deleted file mode 100644 index d2c0e0a6..00000000 --- a/src/components/Pagation.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/components/Sign.vue b/src/components/Sign.vue deleted file mode 100644 index 5dc78bf7..00000000 --- a/src/components/Sign.vue +++ /dev/null @@ -1,31 +0,0 @@ - \ No newline at end of file diff --git a/src/components/Toogle.vue b/src/components/Toogle.vue deleted file mode 100644 index 21dad1e7..00000000 --- a/src/components/Toogle.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/TopBar.vue b/src/components/TopBar.vue deleted file mode 100644 index b93a1f3b..00000000 --- a/src/components/TopBar.vue +++ /dev/null @@ -1,358 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/TreeItem.vue b/src/components/TreeItem.vue deleted file mode 100644 index 41dd074d..00000000 --- a/src/components/TreeItem.vue +++ /dev/null @@ -1,118 +0,0 @@ - - - \ No newline at end of file diff --git a/src/composables/chart.ts b/src/composables/chart.ts deleted file mode 100644 index edf0f577..00000000 --- a/src/composables/chart.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { - Chart, - ArcElement, - BarElement, - LineElement, - PointElement, - BarController, - DoughnutController, - LineController, - CategoryScale, - LinearScale, - Filler, - Legend, - Title, - Tooltip -} from 'chart.js'; - -Chart.register( - ArcElement, - BarElement, - LineElement, - PointElement, - BarController, - DoughnutController, - LineController, - CategoryScale, - LinearScale, - Filler, - Legend, - Title, - Tooltip -); - -export default Chart; \ No newline at end of file diff --git a/src/composables/cookies.ts b/src/composables/cookies.ts deleted file mode 100644 index d38afc10..00000000 --- a/src/composables/cookies.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const getCookie = (cname: string) => { - const name = cname + "="; - const decodedCookie = decodeURIComponent(document.cookie); - const ca = decodedCookie.split(';'); - for (let i = 0; i < ca.length; i++) { - let c = ca[i]; - while (c.charAt(0) == ' ') { - c = c.substring(1); - } - if (c.indexOf(name) == 0) { - return c.substring(name.length, c.length); - } - } - return ""; -} - -export const setCookie = (cname: string, cvalue: boolean | number | string, exhours: number) => { - const d = new Date(); - d.setTime(d.getTime() + (exhours * 60 * 60 * 1000)); - const expires = "expires=" + d.toUTCString(); - document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; -} \ No newline at end of file diff --git a/src/composables/markdownToHtml.ts b/src/composables/markdownToHtml.ts deleted file mode 100644 index 61258076..00000000 --- a/src/composables/markdownToHtml.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { unified } from 'unified' -import remarkParse from 'remark-parse' -import remarkGfm from 'remark-gfm' -import remarkRehype from 'remark-rehype' -import rehypeHighlight from 'rehype-highlight' -import rehypeExternalLinks from 'rehype-external-links' -import rehypeSanitize, { defaultSchema } from 'rehype-sanitize' -import rehypeStringify from 'rehype-stringify' - -import bash from 'highlight.js/lib/languages/bash'; -import dockerfile from 'highlight.js/lib/languages/dockerfile'; -import javascript from 'highlight.js/lib/languages/javascript'; -import handlebars from 'highlight.js/lib/languages/handlebars'; -import java from 'highlight.js/lib/languages/java'; -import json from 'highlight.js/lib/languages/json'; -import nginx from 'highlight.js/lib/languages/nginx'; -import shell from 'highlight.js/lib/languages/shell' -import sql from 'highlight.js/lib/languages/sql'; -import typescript from 'highlight.js/lib/languages/typescript'; -import xml from 'highlight.js/lib/languages/xml'; -import yaml from 'highlight.js/lib/languages/yaml'; - -export default async function markdownToHtml(markdown: string) { - const result = await unified() - .use(remarkParse) - .use(remarkGfm) - .use(remarkRehype) - .use(rehypeExternalLinks, { target: '_blank', rel: ['nofollow'] }) - .use(rehypeHighlight, { languages: { bash, dockerfile, javascript, handlebars, java, json, nginx, shell, sql, typescript, xml, yaml } }) - .use(rehypeSanitize, { - ...defaultSchema, - attributes: { - ...defaultSchema.attributes, - span: [ - ...(defaultSchema.attributes?.span || []), - // List of all allowed tokens: - [ - 'className', 'hljs-addition', 'hljs-attr', 'hljs-attribute', 'hljs-built_in', 'hljs-bullet', - 'hljs-char', 'hljs-code', 'hljs-comment', 'hljs-deletion', 'hljs-doctag', 'hljs-emphasis', - 'hljs-formula', 'hljs-keyword', 'hljs-link', 'hljs-literal', 'hljs-meta', 'hljs-name', - 'hljs-number', 'hljs-operator', 'hljs-params', 'hljs-property', 'hljs-punctuation', - 'hljs-quote', 'hljs-regexp', 'hljs-section', 'hljs-selector-attr', 'hljs-selector-class', - 'hljs-selector-id', 'hljs-selector-pseudo', 'hljs-selector-tag', 'hljs-string', 'hljs-strong', - 'hljs-subst', 'hljs-symbol', 'hljs-tag', 'hljs-template-tag', 'hljs-template-variable', - 'hljs-title', 'hljs-type', 'hljs-variable' - ]] - } - } - ) - .use(rehypeStringify) - .process(markdown) - return result.toString() -} diff --git a/src/composables/upload.ts b/src/composables/upload.ts deleted file mode 100644 index 19f4a50d..00000000 --- a/src/composables/upload.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { region, upload } from 'qiniu-js'; -import CryptoJS from 'crypto-js' - -// 请求接口上传图片 -export const uploadFile = (file: File) => { - const uptoken = getToken("accessKey", "secretKey", "bucketName"); - const key = file.name; - const config = { - useCdnDomain: true, - region: region.z2, - forceDirect: true // 是否上传全部采用直传方式 - }; - const putExtra: any = { - fname: file.name, //文件原文件名 - mimeType: ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'] //用来限制上传文件类型,为 null 时表示不对文件类型限制; - }; - return upload(file, key, uptoken, putExtra, config); -} - -const getToken = (access_key: string, secret_key: string, bucketname: string): string => { - // 构造策略 - const putPolicy = { - "scope": bucketname, - "deadline": 3600 + Math.floor(Date.now() / 1000) - } - const encoded = base64Encode(utf16to8(JSON.stringify(putPolicy))); - const hash = CryptoJS.HmacSHA1(encoded, secret_key); - // 构造凭证 - const encodedSign = hash.toString(CryptoJS.enc.Base64).replace(/\//g, '_').replace(/\+/g, '-'); - return access_key + ':' + encodedSign + ':' + encoded; -} - -const utf16to8 = (str: string): string => { - let out = "", i: number, c: number - const len: number = str.length; - for (i = 0; i < len; i++) { - c = str.charCodeAt(i); - if ((c >= 0x0001) && (c <= 0x007F)) { - out += str.charAt(i); - } else if (c > 0x07FF) { - out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F)); - out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F)); - out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); - } else { - out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F)); - out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F)); - } - } - return out; -} - -const base64Encode = (str: string): string => { - let out = "", i = 0 - const len: number = str.length; - let c1: number, c2: number, c3: number; - const base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; - while (i < len) { - c1 = str.charCodeAt(i++) & 0xff; - if (i == len) { - out += base64EncodeChars.charAt(c1 >> 2); - out += base64EncodeChars.charAt((c1 & 0x3) << 4); - out += "=="; - break; - } - c2 = str.charCodeAt(i++); - if (i == len) { - out += base64EncodeChars.charAt(c1 >> 2); - out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); - out += base64EncodeChars.charAt((c2 & 0xF) << 2); - out += "="; - break; - } - c3 = str.charCodeAt(i++); - out += base64EncodeChars.charAt(c1 >> 2); - out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); - out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); - out += base64EncodeChars.charAt(c3 & 0x3F); - } - return out; -} diff --git a/src/css/app.scss b/src/css/app.scss new file mode 100644 index 00000000..5c0ab3f0 --- /dev/null +++ b/src/css/app.scss @@ -0,0 +1 @@ +// app global css in SCSS form \ No newline at end of file diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss new file mode 100644 index 00000000..3996ce1b --- /dev/null +++ b/src/css/quasar.variables.scss @@ -0,0 +1,25 @@ +// Quasar SCSS (& Sass) Variables +// -------------------------------------------------- +// To customize the look and feel of this app, you can override +// the Sass/SCSS variables found in Quasar's source Sass/SCSS files. + +// Check documentation for full list of Quasar variables + +// Your own variables (that are declared here) and Quasar's own +// ones will be available out of the box in your .vue/.scss/.sass files + +// It's highly recommended to change the default colors +// to match your app's branding. +// Tip: Use the "Theme Builder" on Quasar's documentation website. + +$primary : #1976D2; +$secondary : #26A69A; +$accent : #9C27B0; + +$dark : #1D1D1D; +$dark-page : #121212; + +$positive : #21BA45; +$negative : #C10015; +$info : #31CCEC; +$warning : #F2C037; diff --git a/src/env.d.ts b/src/env.d.ts index d92149da..dd757b1c 100644 --- a/src/env.d.ts +++ b/src/env.d.ts @@ -1,8 +1,9 @@ -/// +/* eslint-disable */ -declare module '*.vue' { - import type { DefineComponent } from 'vue' - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types - const component: DefineComponent<{}, {}, any> - export default component -} \ No newline at end of file +declare namespace NodeJS { + interface ProcessEnv { + NODE_ENV: string; + VUE_ROUTER_MODE: 'hash' | 'history' | 'abstract' | undefined; + VUE_ROUTER_BASE: string | undefined; + } +} diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts new file mode 100644 index 00000000..19105c5c --- /dev/null +++ b/src/i18n/en-US/index.ts @@ -0,0 +1,101 @@ +// This is just an example, +// so you can safely delete all default props below + +export default { + application: 'Application', + reload: 'Reload Data', + pagation: 'The records in rows {page} - {size} ,of {total} total.', + deletion: 'Do you want to confirm the deletion?', + note: 'This information will be deleted and will not be recovered once deleted.', + viewMore: 'View More', + unreadTotal: 'unread total', + + search: 'Search...', + select: 'Plesse Select', + profile: 'Profile', + settings: 'Settings', + help: 'Help', + signin: 'Sign In', + signinTo: 'Sign in to your account', + signup: 'Sign Up', + signout: 'Sign Out', + + accesslogs: 'Access Logs', + account: 'Account Settings', + security: 'Account Security', + + no: 'NO.', + name: 'Name', + alias: 'Alias', + id: 'ID', + superior: 'Superior', + description: 'Description', + modifyTime: 'Modify Time', + + username: 'Username', + password: 'Password', + nickname: 'Nickname', + accountLocked: 'Account Locked', + accountExpiresAt: 'User Expires At', + credentialsExpiresAt: 'Credentials Expires At', + + type: 'Type', + path: 'Path', + principal: 'Principal', + ip: 'IP', + location: 'Location', + + areaCode: 'Area Code', + postalCode: 'Postal Code', + userCount: 'User Count', + roleCount: 'Role Count', + postsCount: 'Posts Count', + + unread: 'Unread', + readed: 'Readed', + + title: 'Title', + context: 'Context', + cover: 'Cover', + tags: 'Tags', + category: 'Category', + viewed: 'Viewed', + likes: 'Likes', + comments: 'Comments', + downloads: 'Downloads', + + enabled: 'Is Enabled', + enable: 'Enable', + disable: 'Disable', + + actions: 'Actions', + import: 'Import', + export: 'Export', + confirm: 'Confirm', + commit: 'Commit', + cancle: 'Cancle', + add: 'Add New', + edit: 'Edit', + delete: 'Delete', + unlock: 'Unlock', + grant: 'Grants', + members: 'memberss', + + dashboard: 'Dashboard', + system: 'System', + groups: 'Groups', + roles: 'Roles', + components: 'Components', + users: 'Users', + dictionaries: 'Dictionaries', + posts: 'Posts', + categories: 'Categroies', + regions: 'Regions', + statitics: 'Statitics', + messages: 'Notifications', + status: 'Status', + + welcome: 'Hi! Welcome Back.', + subtitle: 'Please sign in to continue exploring.', + rememberMe: 'Remember me ?' +} diff --git a/src/i18n/index.ts b/src/i18n/index.ts new file mode 100644 index 00000000..26e966bc --- /dev/null +++ b/src/i18n/index.ts @@ -0,0 +1,9 @@ +import zhCN from './zh-CN' +import zhTW from './zh-TW' +import enUS from './en-US' + +export default { + 'zh-CN': zhCN, + 'zh-TW': zhTW, + 'en-US': enUS +} diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts new file mode 100644 index 00000000..a2efd13f --- /dev/null +++ b/src/i18n/zh-CN/index.ts @@ -0,0 +1,100 @@ +// This is just an example, +// so you can safely delete all default props below + +export default { + application: '系统', + reload: '重载数据', + pagation: '第 {page} - {size} 行记录,共 {total} 条记录', + deletion: '是否确认删除?', + note: '将要删除本条信息,一旦删除将不可恢复。', + viewMore: '查看更多', + unreadTotal: '未读消息', + + search: '搜索...', + select: '请选择', + profile: '个人中心', + settings: '设置', + help: '帮助', + signin: '登录', + signinTo: '登录您的帐户', + signup: '注册', + signout: '退出登录', + + accesslogs: '操作日志', + account: '账号设置', + security: '账号安全', + + no: '序号', + name: '名称', + alias: '别名', + id: '主键', + superior: '上级', + description: '描述', + modifyTime: '更新时间', + + username: '账号', + password: '密码', + nickname: '昵称', + accountLocked: '账号锁状态', + accountExpiresAt: '账号失效时间', + credentialsExpiresAt: '密码失效时间', + + type: '类型', + path: '路径', + principal: '负责人', + ip: 'IP', + location: '归属地', + + areaCode: '区号', + postalCode: '邮编', + userCount: '用户数', + roleCount: '角色数', + postsCount: '贴子数', + + unread: '未读', + readed: '已读', + + title: '标题', + cover: '封面', + tags: '标签', + context: '内容', + category: '分类', + viewed: '浏览量', + likes: '点赞数', + comments: '评论数', + downloads: '下载量', + + enabled: '是否启用', + enable: '启用', + disable: '禁用', + + actions: '操作', + import: '导入', + export: '导出', + commit: '提交', + confirm: '确定', + cancle: '取消', + add: '添加', + edit: '修改', + delete: '删除', + unlock: '解锁', + grant: '授权', + members: '成员', + + dashboard: '控制台', + system: '系统管理', + groups: '分组', + roles: '角色', + components: '权限', + users: '用户', + dictionaries: '字典', + posts: '帖子管理', + categories: '类目管理', + regions: '行政区划', + statitics: '数据统计', + messages: '消息通知', + status: '状态', + + welcome: '欢迎', + rememberMe: '记住我 ?' +} diff --git a/src/i18n/zh-TW/index.ts b/src/i18n/zh-TW/index.ts new file mode 100644 index 00000000..e281c9a6 --- /dev/null +++ b/src/i18n/zh-TW/index.ts @@ -0,0 +1,100 @@ +// This is just an example, +// so you can safely delete all default props below + +export default { + application: '系統', + reload: '重載數據', + pagation: '第 {page} - {size} 行記錄,共 {total} 條記錄', + deletion: '是否確認刪除?', + note: '將要刪除本條信息,一旦刪除將不可恢復。', + viewMore: '查看更多', + unreadTotal: '未讀消息', + + search: '搜索...', + select: '請選擇', + profile: '個人中心', + settings: '設置', + help: '幫助', + signin: '登錄', + signinTo: '登錄您的帳戶', + signup: '註冊', + signout: '退出登錄', + + accesslogs: '操作日誌', + account: '賬號設置', + security: '賬號安全', + + no: '序號', + name: '名稱', + alias: '別名', + id: '主鍵', + superior: '上級', + description: '描述', + modifyTime: '更新時間', + + username: '賬號', + password: '密碼', + nickname: '昵稱', + accountLocked: '賬號鎖狀態', + accountExpiresAt: '賬號失效時間', + credentialsExpiresAt: '密碼失效時間', + + type: '類型', + path: '路徑', + principal: '負責人', + ip: 'IP', + location: '歸屬地', + + areaCode: '區號', + postalCode: '郵編', + userCount: '用戶數', + roleCount: '角色數', + postsCount: '貼子數', + + unread: '未讀', + readed: '已讀', + + title: '標題', + cover: '封面', + tags: '標籤', + context: '內容', + category: '分類', + viewed: '瀏覽量', + likes: '點贊數', + comments: '評論數', + downloads: '下載量', + + enabled: '是否啟用', + enable: '啟用', + disable: '禁用', + + actions: '操作', + import: '導入', + export: '導出', + commit: '提交', + confirm: '確定', + cancle: '取消', + add: '添加', + edit: '修改', + delete: '刪除', + unlock: '解鎖', + grant: '授權', + members: '成員', + + dashboard: '控制台', + system: '系統管理', + groups: '分組', + roles: '角色', + components: '權限', + users: '用戶', + dictionaries: '字典', + posts: '帖子管理', + categories: '類目管理', + regions: '行政區劃', + statitics: '數據統計', + messages: '消息通知', + status: '狀態', + + welcome: '歡迎', + rememberMe: '記住我 ?' +} diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue new file mode 100644 index 00000000..ccd95fd7 --- /dev/null +++ b/src/layouts/MainLayout.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/layouts/SideBarLeft.vue b/src/layouts/SideBarLeft.vue new file mode 100644 index 00000000..4574eeab --- /dev/null +++ b/src/layouts/SideBarLeft.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/locales/en-US.json b/src/locales/en-US.json deleted file mode 100644 index 8ffef324..00000000 --- a/src/locales/en-US.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "application": "Application", - "reload": "Reload Data", - "pagation": "The records in rows {page} - {size} ,of {total} total.", - "deletion": "Do you want to confirm the deletion?", - "note": "This information will be deleted and will not be recovered once deleted.", - "viewMore": "View More", - "unreadTotal": "unread total", - - "search": "Search...", - "select": "Plesse Select", - "profile": "Profile", - "settings": "Settings", - "help": "Help", - "signin": "Sign In", - "signup": "Sign Up", - "signout": "Sign Out", - - "accesslogs": "Access Logs", - "account": "Account Settings", - "security": "Account Security", - - "no": "NO.", - "name": "Name", - "alias": "Alias", - "id": "ID", - "superior": "Superior", - "description": "Description", - "modifyTime": "Modify Time", - - "username": "Username", - "nickname": "Nickname", - "accountLocked": "Account Locked", - "accountExpiresAt": "User Expires At", - "credentialsExpiresAt": "Credentials Expires At", - - "type": "Type", - "path": "Path", - "principal":"Principal", - "ip": "IP", - "location": "Location", - - "areaCode": "Area Code", - "postalCode": "Postal Code", - "userCount": "User Count", - "roleCount": "Role Count", - "postsCount": "Posts Count", - - "unread": "Unread", - "readed": "Readed", - - "title": "Title", - "context": "Context", - "cover": "Cover", - "tags": "Tags", - "category": "Category", - "viewed": "Viewed", - "likes": "Likes", - "comments": "Comments", - "downloads": "Downloads", - - "enabled": "Is Enabled", - "enable": "Enable", - "disable": "Disable", - - "actions": "Actions", - "import": "Import", - "export": "Export", - "confirm": "Confirm", - "commit": "Commit", - "cancle": "Cancle", - "add": "Add New", - "edit": "Edit", - "delete": "Delete", - "unlock": "Unlock", - "grant": "Grants", - "members": "memberss", - - "dashboard": "Dashboard", - "system": "System", - "groups": "Groups", - "roles": "Roles", - "components":"Components", - "users": "Users", - "dictionaries": "Dictionaries", - "posts": "Posts", - "categories": "Categroies", - "regions": "Regions", - "statitics": "Statitics", - "messages": "Notifications", - "status": "Status" -} \ No newline at end of file diff --git a/src/locales/index.ts b/src/locales/index.ts deleted file mode 100644 index b6fa96fe..00000000 --- a/src/locales/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { createI18n } from 'vue-i18n' -import enUS from './en-US.json' -import zhCN from './zh-CN.json' - -const defaultLocale = () => { - if (localStorage.getItem('language')) { - const locale = localStorage.getItem('language') - if (locale) { - return locale.toString() - } - } else if (navigator.language) { - return navigator.language - } else { - return 'en-US' - } -} - -//注册i8n实例并引入语言文件 -const i18n = createI18n({ - locale: defaultLocale(), - fallbackLocale: 'en-US', // 默认语言 - allowComposition: true, - messages: { - 'en-US': enUS, - 'zh-CN': zhCN - } -}) - -export default i18n \ No newline at end of file diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json deleted file mode 100644 index 4af44695..00000000 --- a/src/locales/zh-CN.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "application": "系统", - "reload": "重载数据", - "pagation": "第 {page} - {size} 行记录,共 {total} 条记录", - "deletion": "是否确认删除?", - "note": "将要删除本条信息,一旦删除将不可恢复。", - "viewMore": "查看更多", - "unreadTotal": "未读消息", - - "search": "搜索...", - "select": "请选择", - "profile": "个人中心", - "settings": "设置", - "help": "帮助", - "signin": "登录", - "signup": "注册", - "signout": "退出登录", - - "accesslogs": "操作日志", - "account": "账号设置", - "security": "账号安全", - - "no": "序号", - "name": "名称", - "alias": "别名", - "id": "主键", - "superior": "上级", - "description": "描述", - "modifyTime": "更新时间", - - "username": "账号", - "nickname": "昵称", - "accountLocked": "账号锁状态", - "accountExpiresAt": "账号失效时间", - "credentialsExpiresAt": "密码失效时间", - - "type": "类型", - "path": "路径", - "principal":"负责人", - "ip": "IP", - "location": "归属地", - - "areaCode": "区号", - "postalCode": "邮编", - "userCount": "用户数", - "roleCount": "角色数", - "postsCount": "贴子数", - - "unread": "未读", - "readed": "已读", - - "title": "标题", - "cover": "封面", - "tags": "标签", - "context": "内容", - "category": "分类", - "viewed": "浏览量", - "likes": "点赞数", - "comments": "评论数", - "downloads": "下载量", - - "enabled": "是否启用", - "enable": "启用", - "disable": "禁用", - - "actions": "操作", - "import": "导入", - "export": "导出", - "commit": "提交", - "confirm": "确定", - "cancle": "取消", - "add": "添加", - "edit": "修改", - "delete": "删除", - "unlock": "解锁", - "grant": "授权", - "members": "成员", - - "dashboard": "控制台", - "system": "系统管理", - "groups": "分组", - "roles": "角色", - "components":"权限", - "users": "用户", - "dictionaries": "字典", - "posts": "帖子管理", - "categories": "类目管理", - "regions": "行政区划", - "statitics": "数据统计", - "messages": "消息通知", - "status": "状态" -} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index 5c097ce2..00000000 --- a/src/main.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createApp } from 'vue' -import App from './App.vue' -import './assets/main.css' -import router from './router' -import { mockXHR } from '~/mock/index'; - -import i18n from './locales'; - -// dev mock server -if (process.env.NODE_ENV != 'production') { - mockXHR() -} - -createApp(App).use(router).use(i18n).mount('#app') diff --git a/src/mock/assets/categories.ts b/src/mock/assets/categories.ts deleted file mode 100644 index 1037d452..00000000 --- a/src/mock/assets/categories.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Category } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 12; i++) { - datas.push({ - id: Random.increment(), - categoryName: Random.word(), - count: Random.integer(1, 99), - description: Random.csentence(5), - modifyTime: Random.date() - }) -} - -export default [ - { - url: '/api/assets/categories', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } else { - const id = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - } - }, - { - url: '/api/assets/categories', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/assets/categories', - method: 'post', - response: (options: any) => { - let data: Category = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/assets/categories/:id', - method: 'delete', - response: () => { - return { - } - }, - } -] \ No newline at end of file diff --git a/src/mock/assets/comments.ts b/src/mock/assets/comments.ts deleted file mode 100644 index eff9a3d8..00000000 --- a/src/mock/assets/comments.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Comment } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 19; i++) { - datas.push({ - id: Random.increment(), - postId: Random.integer(), - context: Random.cparagraph(2), - country: "china", - location: Random.city(true), - modifyTime: Random.date() - }) -} - -export default [ - { - url: '/api/assets/comments', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } else { - const id = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - } - } -] \ No newline at end of file diff --git a/src/mock/assets/posts.ts b/src/mock/assets/posts.ts deleted file mode 100644 index fb96df5c..00000000 --- a/src/mock/assets/posts.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Post } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 79; i++) { - datas.push({ - id: Random.increment(), - title: Random.ctitle(), - cover: Random.image('198x128'), - category: Random.word(), - tags: ['Test', '测试'], - context: Random.cparagraph(), - modifyTime: Random.date() - }) -} - -export default [ - { - url: '/api/assets/posts', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } else { - const id = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - } - }, - { - url: '/api/assets/posts', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/assets/posts', - method: 'post', - response: (options: any) => { - let data: Post = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/assets/posts', - method: 'delete', - response: () => { - return { - } - }, - } -] \ No newline at end of file diff --git a/src/mock/assets/regions.ts b/src/mock/assets/regions.ts deleted file mode 100644 index 7657898d..00000000 --- a/src/mock/assets/regions.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Region } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 309; i++) { - if (i < 34) { - datas.push({ - id: Random.increment(), - regionName: Random.province(), - superior: Random.region(), - postalCode: parseInt(Random.zip()), - areaCode: parseInt(Random.string('0123456789', 3)), - modifyTime: Random.date() - }) - } else if (i >= 34 && i < 144) { - datas.push({ - id: Random.integer(1000, 9999), - regionName: Random.city(), - superior: Random.province(), - postalCode: parseInt(Random.zip()), - areaCode: parseInt(Random.string('0123456789', 4)), - modifyTime: Random.date() - }) - } else { - datas.push({ - id: Random.integer(100000, 999999), - regionName: Random.county(), - superior: Random.city(), - postalCode: parseInt(Random.zip()), - areaCode: parseInt(Random.string('0123456789', 5)), - modifyTime: Random.date() - }) - } -} -export default [ - { - url: '/api/hypervisor/regions/count', - method: 'get', - response: () => { - return datas.length - }, - }, - { - url: '/api/hypervisor/regions', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === 'lower') { - const superior = parseInt(url.substring(url.lastIndexOf('region') + 7, url.lastIndexOf('/'))) - if (superior > 0 && superior < 99) { - return datas.slice(0, 34) - } else if (superior > 1000 && superior < 9999) { - return datas.slice(35, 144) - } else { - return datas.slice(145, 309) - } - } else { - const id = path - return datas.filter(item => item.id == id)[0] - } - } else if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - pagation.totalElements = datas.length - return pagation; - } - } - }, - { - url: '/api/hypervisor/regions', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/hypervisor/regions', - method: 'post', - response: (options: any) => { - let data: Region = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/hypervisor/regions', - method: 'delete', - response: () => { - return { - } - }, - } -] \ No newline at end of file diff --git a/src/mock/assets/statistics.ts b/src/mock/assets/statistics.ts deleted file mode 100644 index 655126ae..00000000 --- a/src/mock/assets/statistics.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Statistics } from '~/api/request.type' - -const total: Statistics = { - viewed: Random.integer(1, 999999), - likes: Random.integer(1, 999999), - comments: Random.integer(1, 999999), - downloads: Random.integer(1, 999999) -} - -const timeSharingDatas: Array = [] - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 7; i++) { - datas.push({ - viewed: Random.integer(100, 10000), - likes: Random.integer(100, 10000), - comments: Random.integer(100, 10000), - downloads: Random.integer(100, 9999) - }) -} - -for (let i = 0; i < 30; i++) { - timeSharingDatas.push({ - viewed: Random.integer(100, 10000), - likes: Random.integer(100, 10000), - comments: Random.integer(100, 10000), - downloads: Random.integer(100, 9999) - }) -} - -export default [ - { - url: '/api/assets/statistics', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === 'time') { - return timeSharingDatas - } - return total - } else { - pagation.totalElements = datas.length - pagation.content = datas - return pagation - } - }, - }, -] \ No newline at end of file diff --git a/src/mock/index.ts b/src/mock/index.ts deleted file mode 100644 index 6fbbcf50..00000000 --- a/src/mock/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import Mock from 'mockjs' -import { setCookie } from '~/composables/cookies'; - -import roleMock from './system/roles'; -import userMock from './system/users'; -import groupMock from './system/groups'; -import authorityMock from './system/components'; -import notificationMock from './system/messages'; -import dictionaryMock from './system/dictionaries'; -import accesslogMock from './system/accesslogs'; - -import postsMock from './assets/posts'; -import categoryMock from './assets/categories'; -import statisticsMock from './assets/statistics'; -import commentMock from './assets/comments'; -import regionMock from './assets/regions'; - -const mocks = [ - ...roleMock, - ...userMock, - ...groupMock, - ...authorityMock, - ...notificationMock, - ...dictionaryMock, - ...accesslogMock, - - ...postsMock, - ...categoryMock, - ...statisticsMock, - ...commentMock, - ...regionMock, -]; - -export function mockXHR() { - let i: any; - for (i of mocks) { - Mock.mock(new RegExp(i.url), i.method || 'get', i.response); - } - setCookie("username", "admin", 3) -} \ No newline at end of file diff --git a/src/mock/system/accesslogs.ts b/src/mock/system/accesslogs.ts deleted file mode 100644 index 5187f804..00000000 --- a/src/mock/system/accesslogs.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, AccessLog } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 36; i++) { - datas.push({ - id: Random.increment(), - ip: Random.ip(), - location: Random.county(true), - context: Random.csentence(), - modifyTime: Random.date() - }) -} - -export default [ - { - url: '/api/hypervisor/access-logs', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } else { - const id = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - } - } -] \ No newline at end of file diff --git a/src/mock/system/components.ts b/src/mock/system/components.ts deleted file mode 100644 index 63184be7..00000000 --- a/src/mock/system/components.ts +++ /dev/null @@ -1,207 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Component, Role } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} - -const datas: Array = [ - { - id: 1, - modifyTime: Random.date(), - superior: "System", - componentName: "Role", - type: "M", - icon: "pocket", - path: "/roles", - enabled: true, - count: 1 - }, - { - id: 2, - modifyTime: Random.date(), - superior: "System", - componentName: "Components", - type: "M", - icon: "link", - path: "/components", - enabled: true, - count: 1 - }, - { - id: 3, - modifyTime: Random.date(), - superior: "Components", - componentName: "Add", - type: "B", - icon: "plus-circle", - path: "/", - enabled: false, - count: 0 - }, - { - id: 4, - modifyTime: Random.date(), - superior: "System", - componentName: "User", - type: "M", - icon: "user", - enabled: true, - path: "/users", - count: 1 - }, - { - id: 5, - modifyTime: Random.date(), - superior: "", - componentName: "System", - type: "M", - icon: "layers", - enabled: true, - path: "/system", - count: 1 - }, - { - id: 6, - modifyTime: Random.date(), - superior: '', - componentName: "Dashboard", - type: "M", - icon: "home", - path: "/", - enabled: true, - count: 1 - }, - { - id: 7, - modifyTime: Random.date(), - superior: "", - componentName: "Posts", - type: "M", - icon: "book", - path: "/posts", - enabled: true, - count: 1 - }, - { - id: 8, - modifyTime: Random.date(), - superior: "", - componentName: "Resource", - type: "M", - icon: "book", - path: "/resource", - enabled: true, - count: 1 - }, - { - id: 9, - modifyTime: Random.date(), - superior: "", - componentName: "Category", - type: "M", - icon: "tag", - path: "/categories", - enabled: true, - count: 1 - }, - { - id: 10, - modifyTime: Random.date(), - superior: "System", - componentName: "Group", - type: "M", - icon: "users", - path: "/groups", - enabled: true, - count: 1 - } -]; - -const roles: Array = []; - -for (let i = 0; i < 9; i++) { - roles.push({ - id: Random.increment(), - roleName: Random.word(), - count: Random.integer(1, 99), - modifyTime: Random.date(), - enabled: Random.boolean() - }) -} - -export default [ - { - url: '/api/hypervisor/components/tree', - method: 'get', - response: () => { - return []; - }, - }, - { - url: '/api/hypervisor/components', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === "components") { - return datas.slice(0, 6) - } else if (path === "roles") { - return roles - } else { - const id = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - } else if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } - }, - }, - { - url: '/api/hypervisor/components', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/hypervisor/components', - method: 'post', - response: (options: any) => { - let data: Component = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/hypervisor/components', - method: 'patch', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - let data = JSON.parse(options.body) - if (!data) { - return true - } - data = datas.filter(item => item.id === id)[0] - data.enabled = !data.enabled - return data - }, - }, - { - url: '/api/hypervisor/components', - method: 'delete', - response: () => { - return {} - } - } -] \ No newline at end of file diff --git a/src/mock/system/dictionaries.ts b/src/mock/system/dictionaries.ts deleted file mode 100644 index 85ff030c..00000000 --- a/src/mock/system/dictionaries.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Dictionary } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 390; i++) { - datas.push({ - id: Random.increment(), - dictionaryName: Random.cword(), - superior: Random.word(), // 华南、华北 - enabled: Random.boolean(), - description: Random.csentence(5), - modifyTime: Random.date() - }) -} -export default [ - { - url: '/api/hypervisor/dictionaries', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === 'lower') { - return datas.slice(0, 34) - } else if (path === 'superior') { - return datas.slice(0, 12) - } else { - const id = path - return datas.filter(item => item.id == id)[0] - } - } else if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } - } - }, - { - url: '/api/hypervisor/dictionaries', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/hypervisor/dictionaries', - method: 'post', - response: (options: any) => { - let data: Dictionary = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/hypervisor/dictionaries', - method: 'patch', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - let data = JSON.parse(options.body) - if (!data) { - return true - } - data = datas.filter(item => item.id === id)[0] - data.enabled = !data.enabled - return data - }, - }, - { - url: '/api/hypervisor/dictionaries', - method: 'delete', - response: () => { - return { - } - }, - } -] \ No newline at end of file diff --git a/src/mock/system/groups.ts b/src/mock/system/groups.ts deleted file mode 100644 index c4d6efc2..00000000 --- a/src/mock/system/groups.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Group, User } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 39; i++) { - datas.push({ - id: Random.increment(), - groupName: Random.word(), - principal: Random.cname(), - count: Random.integer(0, 99), - modifyTime: Random.date(), - enabled: Random.boolean() - }) -} - -const members: Array = [] - -for (let i = 0; i < 5; i++) { - members.push({ - username: Random.last(), - nickname: Random.cname(), - avatar: Random.image('32x32'), - enabled: Random.boolean(), - accountExpiresAt: Random.date(), - accountLocked: Random.boolean(), - credentialsExpiresAt: Random.date() - }) -} - -export default [ - { - url: '/api/hypervisor/groups/tree', - method: 'get', - response: () => { - return []; - } - }, - { - url: '/api/hypervisor/groups', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === "members") { - return members - } else if (path === 'group') { - return datas.slice(0, 6) - } else { - const id = path - return datas.filter(item => item.id === id)[0] - } - } else if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } - } - }, - { - url: '/api/hypervisor/groups', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/hypervisor/groups', - method: 'post', - response: (options: any) => { - let data: Group = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/hypervisor/groups', - method: 'patch', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - let data = JSON.parse(options.body) - if (!data) { - return true - } - data = datas.filter(item => item.id === id)[0] - data.enabled = !data.enabled - return data - }, - }, - { - url: '/api/hypervisor/groups/:id', - method: 'delete', - response: () => { - return {} - }, - } -] \ No newline at end of file diff --git a/src/mock/system/messages.ts b/src/mock/system/messages.ts deleted file mode 100644 index cf887669..00000000 --- a/src/mock/system/messages.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Message } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 36; i++) { - datas.push({ - id: Random.increment(), - title: Random.ctitle(), - context: Random.cparagraph(), - receiver: Random.cname(), - modifyTime: Random.date() - }) -} - -export default [ - { - url: '/api/hypervisor/messages', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length > 1) { - const params: any = parse(url) - if (params.read && params.read === "true") { - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } else { - pagation.totalElements = datas.length - pagation.content = datas.slice(0, 5) - return pagation - } - } else { - const id = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - } - } -] \ No newline at end of file diff --git a/src/mock/system/roles.ts b/src/mock/system/roles.ts deleted file mode 100644 index 175dbcc6..00000000 --- a/src/mock/system/roles.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Random } from 'mockjs' - -import type { Pagation, Role } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; - -for (let i = 0; i < 39; i++) { - datas.push({ - id: Random.increment(), - roleName: Random.word(), - count: Random.integer(0, 99), - modifyTime: Random.date(), - enabled: Random.boolean() - }) -} - -const treeDatas = [ - { "id": "20C11MJEB", "name": "Supper", "superior": null, "expand": null, "children": [] }, - { "id": "20C281HG2", "name": "Guest", "superior": null, "expand": null, "children": [] }, - { - "id": "20C287LBJ", "name": "Relation", "superior": null, "expand": null, "children": - [{ "id": "20C28YH7X", "name": "Supplier", "superior": "20C287LBJ", "expand": null, "children": [] } - ] - } -] - -const components = ["2122466RP", "21224B8JZ", "21953KO8", "203315P3Q"] - -export default [ - { - url: '/api/hypervisor/roles/tree', - method: 'get', - response: () => { - return treeDatas - } - }, - { - url: '/api/hypervisor/roles', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === 'components') { - return components - } else if (path === 'role') { - return datas.slice(0, 6) - } else { - const id = path - return datas.filter(item => item.id === id)[0] - } - } else if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation - } - } - }, - { - url: '/api/hypervisor/roles', - method: 'put', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.id === id)[0] - } - }, - { - url: '/api/hypervisor/roles', - method: 'post', - response: (options: any) => { - let data: Role = JSON.parse(options.body) - data = { ...data, id: Random.integer() } - return data - } - }, - { - url: '/api/hypervisor/roles', - method: 'patch', - response: (options: any) => { - const id = options.url.substring(options.url.lastIndexOf('/') + 1) - let data = JSON.parse(options.body) - if (!data) { - return true - } - data = datas.filter(item => item.id === id)[0] - data.enabled = !data.enabled - return data - }, - }, - { - url: '/api/hypervisor/roles', - method: 'delete', - response: () => { - return { - } - } - } -] \ No newline at end of file diff --git a/src/mock/system/users.ts b/src/mock/system/users.ts deleted file mode 100644 index ac937fde..00000000 --- a/src/mock/system/users.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Random } from 'mockjs' -import { BookOpenIcon, ClipboardIcon, HomeIcon, LinkIcon, MapPinIcon, ShieldCheckIcon, Square3Stack3DIcon, TagIcon, UsersIcon } from '@heroicons/vue/24/outline' - -import type { NodeData, Pagation, User } from '~/api/request.type' -import { parse } from '~/mock/utils'; - -const pagation: Pagation = { - page: 0, - size: 10, - totalElements: 0, - content: [] -} -const datas: Array = []; -const components: Array = [ - { "id": 1, "name": "Dashboard", "superiorId": 0, "expand": { "path": "/", "icon": HomeIcon }, "children": [] }, - { - "id": 2, "name": "System", "superiorId": 0, "expand": { "path": "/system", "icon": Square3Stack3DIcon }, "children": [ - { "id": 3, "name": "Groups", "superiorId": 2, "expand": { "path": "/groups", "icon": UsersIcon }, "children": [] }, - { - "id": 4, "name": "Roles", "superiorId": 2, "expand": { "path": "/roles", "icon": LinkIcon }, "children": [] - }, - { "id": 5, "name": "Components", "superiorId": 2, "expand": { "path": "/components", "icon": ShieldCheckIcon }, "children": [] }, - { - "id": 6, "name": "Users", "superiorId": 2, "expand": { "path": "/users", "icon": UsersIcon }, "children": [] - }, - { "id": 7, "name": "Dictionaries", "superiorId": 2, "expand": { "path": "/dictionaries", "icon": BookOpenIcon }, "children": [] } - ] - }, - { "id": 8, "name": "Posts", "superiorId": 0, "expand": { "path": "/posts", "icon": ClipboardIcon }, "children": [] }, - { "id": 9, "name": "Categories", "superiorId": 0, "expand": { "path": "/categories", "icon": TagIcon }, "children": [] }, - { "id": 10, "name": "Regions", "superiorId": 0, "expand": { "path": "/regions", "icon": MapPinIcon }, "children": [] } -] - -for (let i = 0; i < 139; i++) { - datas.push({ - username: Random.last(), - nickname: Random.cname(), - avatar: Random.image('32x32'), - enabled: Random.boolean(), - accountExpiresAt: Random.date(), - accountLocked: Random.boolean(), - credentialsExpiresAt: Random.date() - }) -} - -const groups = ["21529WXDL", "21529V1IM"] - -const roles = ["20C281HG2"] - -export default [ - { - url: '/api/hypervisor/users', - method: 'get', - response: (options: any) => { - const url = options.url - if (url.split('?').length == 1) { - const path = url.substring(url.lastIndexOf('/') + 1) - if (path === 'roles') { - return roles - } else if (path === 'groups') { - return groups - } else if (path === 'components') { - return components - } else { - return datas[0] - } - } - if (url.split('?').length > 1) { - const params: any = parse(url) - pagation.totalElements = datas.length - pagation.content = datas.slice(params.get("page") * params.get("size"), (parseInt(params.get("page")) + 1) * params.get("size")) - return pagation; - } else { - const username = url.substring(url.lastIndexOf('/') + 1) - return datas.filter(item => item.username === username)[0] - } - }, - }, - { - url: '/api/hypervisor/users', - method: 'put', - response: (options: any) => { - const username = options.url.substring(options.url.lastIndexOf('/') + 1) - return datas.filter(item => item.username === username)[0] - }, - }, - { - url: '/api/hypervisor/users', - method: 'patch', - response: (options: any) => { - const username = options.url.substring(options.url.lastIndexOf('/') + 1) - let data = JSON.parse(options.body) - if (!data) { - return true - } - data = datas.filter(item => item.username === username)[0] - data.accountLocked = false - return data - }, - }, - { - url: '/api/hypervisor/users', - method: 'delete', - response: () => { - return { - } - }, - } -] \ No newline at end of file diff --git a/src/mock/utils.ts b/src/mock/utils.ts deleted file mode 100644 index c8548ad4..00000000 --- a/src/mock/utils.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * url 参数转json对象 - * @param str url地址 - * @returns json对象 - */ -export function parse(str: string) { - const paramMap = new Map(); - const arr1 = str.split("?"); - const arr2 = arr1[1].split("&"); - for (const item of arr2) { - const res: Array = item.split("="); - paramMap.set(res[0] , res[1]); - } - return paramMap; -} diff --git a/src/pages/DashboardIndex.vue b/src/pages/DashboardIndex.vue new file mode 100644 index 00000000..1c0b7be0 --- /dev/null +++ b/src/pages/DashboardIndex.vue @@ -0,0 +1,8 @@ + + + diff --git a/src/pages/ErrorNotFound.vue b/src/pages/ErrorNotFound.vue new file mode 100644 index 00000000..f4e0bb84 --- /dev/null +++ b/src/pages/ErrorNotFound.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue new file mode 100644 index 00000000..8d98e94a --- /dev/null +++ b/src/pages/IndexPage.vue @@ -0,0 +1,8 @@ + + + diff --git a/src/pages/LoginPage.vue b/src/pages/LoginPage.vue new file mode 100644 index 00000000..39ea5172 --- /dev/null +++ b/src/pages/LoginPage.vue @@ -0,0 +1,183 @@ + + + diff --git a/src/pages/system/dictionary/IndexPage.vue b/src/pages/system/dictionary/IndexPage.vue new file mode 100644 index 00000000..06ed2571 --- /dev/null +++ b/src/pages/system/dictionary/IndexPage.vue @@ -0,0 +1,180 @@ + + + +src/api/paths diff --git a/src/pages/system/group/IndexPage.vue b/src/pages/system/group/IndexPage.vue new file mode 100644 index 00000000..d58e9024 --- /dev/null +++ b/src/pages/system/group/IndexPage.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/pages/system/region/IndexPage.vue b/src/pages/system/region/IndexPage.vue new file mode 100644 index 00000000..e4f4dbbe --- /dev/null +++ b/src/pages/system/region/IndexPage.vue @@ -0,0 +1,181 @@ + + + diff --git a/src/pages/system/role/IndexPage.vue b/src/pages/system/role/IndexPage.vue new file mode 100644 index 00000000..7b37b7ad --- /dev/null +++ b/src/pages/system/role/IndexPage.vue @@ -0,0 +1,189 @@ + + + diff --git a/src/pages/system/user/IndexPage.vue b/src/pages/system/user/IndexPage.vue new file mode 100644 index 00000000..66c96bd3 --- /dev/null +++ b/src/pages/system/user/IndexPage.vue @@ -0,0 +1,232 @@ + + + diff --git a/src/quasar.d.ts b/src/quasar.d.ts new file mode 100644 index 00000000..5937f7a5 --- /dev/null +++ b/src/quasar.d.ts @@ -0,0 +1,9 @@ +/* eslint-disable */ + +// Forces TS to apply `@quasar/app-vite` augmentations of `quasar` package +// Removing this would break `quasar/wrappers` imports as those typings are declared +// into `@quasar/app-vite` +// As a side effect, since `@quasar/app-vite` reference `quasar` to augment it, +// this declaration also apply `quasar` own +// augmentations (eg. adds `$q` into Vue component context) +/// diff --git a/src/router/index.ts b/src/router/index.ts index 3de30c04..a427ac1e 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,22 +1,36 @@ -import { createRouter, createWebHistory, RouteLocationNormalized, NavigationGuardNext } from 'vue-router'; -import routes from './routes'; -import ProgressBar from "@badrap/bar-of-progress"; +import { route } from 'quasar/wrappers' +import { + createMemoryHistory, + createRouter, + createWebHashHistory, + createWebHistory +} from 'vue-router' -const progress = new ProgressBar(); +import routes from './routes' -const router = createRouter({ - history: createWebHistory(), - routes, -}); +/* + * If not building with SSR mode, you can + * directly export the Router instantiation; + * + * The function below can be async too; either use + * async/await or return a Promise which resolves + * with the Router instance. + */ -/* 路由之前 */ -router.beforeEach(async (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => { - progress.start() - next() -}) +export default route(function (/* { store, ssrContext } */) { + const createHistory = process.env.SERVER + ? createMemoryHistory + : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory) -router.afterEach(() => { - progress.finish() -}) + const Router = createRouter({ + scrollBehavior: () => ({ left: 0, top: 0 }), + routes, -export default router; \ No newline at end of file + // Leave this as is and make changes in quasar.conf.js instead! + // quasar.conf.js -> build -> vueRouterMode + // quasar.conf.js -> build -> publicPath + history: createHistory(process.env.VUE_ROUTER_BASE) + }) + + return Router +}) diff --git a/src/router/routes.ts b/src/router/routes.ts index 6b4d8309..0f5a0c36 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,126 +1,35 @@ -import { RouteRecordRaw } from 'vue-router'; -import Index from '~/views/Index.vue' +import { RouteRecordRaw } from 'vue-router' -import NotFound from '~/views/NotFound.vue' - -const routes: Array = [ +const routes: RouteRecordRaw[] = [ { path: '/', - name: 'Application', - component: Index, + component: () => import('layouts/MainLayout.vue'), children: [ - // 为这2个 URL 匹配 - // - / - // - /dashboard - { - path: 'dashboard', - name: 'Dashboard', - alias: '', - component: () => import('~/views/Dashboard.vue') - }, + { path: '', component: () => import('pages/IndexPage.vue') }, + { path: 'dashboard', component: () => import('pages/DashboardIndex.vue') }, { path: 'system', - name: 'System', - component: () => import('~/views/system/Index.vue'), - redirect: '/system/users', + redirect: { path: 'user' }, children: [ - { - path: 'users', - name: 'Users', - component: () => import('~/views/system/User.vue'), - meta: { requiresAuth: true } - }, - { - path: 'groups', - name: 'Groups', - component: () => import('~/views/system/Group.vue'), - meta: { requiresAuth: true } - }, - { - path: 'roles', - name: 'Roles', - component: () => import('~/views/system/Role.vue'), - meta: { requiresAuth: true } - }, - { - path: 'components', - name: 'Components', - component: () => import('~/views/system/Component.vue'), - meta: { requiresAuth: true } - }, - { - path: 'dictionaries', - name: 'Dictionaries', - component: () => import('~/views/system/Dictionary.vue') - } - ] - }, - { - path: 'posts', - name: 'Posts', - component: () => import('~/views/assets/Posts.vue') - }, - { - path: 'categories', - name: 'Categories', - component: () => import('~/views/assets/Category.vue') - }, - { - path: 'regions', - name: 'Regions', - component: () => import('~/views/assets/Region.vue') - }, - { - path: '/settings', - name: 'Settings', - component: () => import('~/views/settings/Index.vue'), - children: [ - { - path: 'account', - name: 'Account', - alias: '', - component: () => import('~/views/settings/Account.vue'), - meta: { requiresAuth: true } - }, - { - path: 'profile', - name: 'Profile', - component: () => import('~/views/settings/Profile.vue'), - meta: { requiresAuth: true } - }, - { - path: 'security', - name: 'Security', - component: () => import('~/views/settings/Security.vue'), - meta: { requiresAuth: true } - }, - { - path: 'messages', - name: 'Messages', - component: () => import('~/views/settings/Message.vue'), - meta: { requiresAuth: true } - }, - { - path: 'accesslogs', - name: 'Accesslogs', - component: () => import('~/views/settings/Accesslog.vue'), - meta: { requiresAuth: true } - } + { path: 'user', component: () => import('pages/system/user/IndexPage.vue') }, + { path: 'group', component: () => import('pages/system/group/IndexPage.vue') }, + { path: 'role', component: () => import('pages/system/role/IndexPage.vue') }, + { path: 'dictionary', component: () => import('pages/system/dictionary/IndexPage.vue') }, + { path: 'region', component: () => import('pages/system/region/IndexPage.vue') } ] } ] }, { - path: '/signin', - name: 'SignIn', - component: () => import('~/views/sign/SignIn.vue'), + path: '/login', + component: () => import('pages/LoginPage.vue') }, + // Always leave this as last one, + // but you can also remove it { - path: '/signup', - name: 'Signup', - component: () => import('~/views/sign/SignUp.vue'), - }, - { path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound } -]; + path: '/:catchAll(.*)*', + component: () => import('pages/ErrorNotFound.vue') + } +] -export default routes; \ No newline at end of file +export default routes diff --git a/src/shims-vue.d.ts b/src/shims-vue.d.ts new file mode 100644 index 00000000..4e6894b2 --- /dev/null +++ b/src/shims-vue.d.ts @@ -0,0 +1,10 @@ +/* eslint-disable */ + +/// + +// Mocks all files ending in `.vue` showing them as plain Vue instances +declare module '*.vue' { + import type { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} diff --git a/src/stores/example-store.ts b/src/stores/example-store.ts new file mode 100644 index 00000000..b1543ca4 --- /dev/null +++ b/src/stores/example-store.ts @@ -0,0 +1,15 @@ +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', { + state: () => ({ + counter: 0 + }), + getters: { + doubleCount: (state) => state.counter * 2 + }, + actions: { + increment() { + this.counter++ + } + } +}) diff --git a/src/stores/index.ts b/src/stores/index.ts new file mode 100644 index 00000000..016f92b9 --- /dev/null +++ b/src/stores/index.ts @@ -0,0 +1,32 @@ +import { store } from 'quasar/wrappers' +import { createPinia } from 'pinia' +import { Router } from 'vue-router' + +/* + * When adding new properties to stores, you should also + * extend the `PiniaCustomProperties` interface. + * @see https://pinia.vuejs.org/core-concepts/plugins.html#typing-new-store-properties + */ +declare module 'pinia' { + export interface PiniaCustomProperties { + readonly router: Router; + } +} + +/* + * If not building with SSR mode, you can + * directly export the Store instantiation; + * + * The function below can be async too; either use + * async/await or return a Promise which resolves + * with the Store instance. + */ + +export default store((/* { ssrContext } */) => { + const pinia = createPinia() + + // You can add Pinia plugins here + // pinia.use(SomePiniaPlugin) + + return pinia +}) diff --git a/src/stores/store-flag.d.ts b/src/stores/store-flag.d.ts new file mode 100644 index 00000000..7677175b --- /dev/null +++ b/src/stores/store-flag.d.ts @@ -0,0 +1,10 @@ +/* eslint-disable */ +// THIS FEATURE-FLAG FILE IS AUTOGENERATED, +// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING +import "quasar/dist/types/feature-flag"; + +declare module "quasar/dist/types/feature-flag" { + interface QuasarFeatureFlags { + store: true; + } +} diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue deleted file mode 100644 index 77f99176..00000000 --- a/src/views/Dashboard.vue +++ /dev/null @@ -1,366 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/Index.vue b/src/views/Index.vue deleted file mode 100644 index 0274577b..00000000 --- a/src/views/Index.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/NotFound.vue b/src/views/NotFound.vue deleted file mode 100644 index 2317e5f1..00000000 --- a/src/views/NotFound.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/assets/Category.vue b/src/views/assets/Category.vue deleted file mode 100644 index 68faa6df..00000000 --- a/src/views/assets/Category.vue +++ /dev/null @@ -1,341 +0,0 @@ -