@stacksjs/search-engine 0.65.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1,36 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../node_modules/@vue/shared/dist/shared.cjs.js", "../../../../../node_modules/entities/lib/generated/decode-data-html.js", "../../../../../node_modules/entities/lib/generated/decode-data-xml.js", "../../../../../node_modules/entities/lib/decode_codepoint.js", "../../../../../node_modules/entities/lib/decode.js", "../../../../../node_modules/@babel/parser/lib/index.js", "../../../../../node_modules/estree-walker/dist/umd/estree-walker.js", "../../../../../node_modules/source-map-js/lib/base64.js", "../../../../../node_modules/source-map-js/lib/base64-vlq.js", "../../../../../node_modules/source-map-js/lib/util.js", "../../../../../node_modules/source-map-js/lib/array-set.js", "../../../../../node_modules/source-map-js/lib/mapping-list.js", "../../../../../node_modules/source-map-js/lib/source-map-generator.js", "../../../../../node_modules/source-map-js/lib/binary-search.js", "../../../../../node_modules/source-map-js/lib/quick-sort.js", "../../../../../node_modules/source-map-js/lib/source-map-consumer.js", "../../../../../node_modules/source-map-js/lib/source-node.js", "../../../../../node_modules/source-map-js/source-map.js", "../../../../../node_modules/@vue/compiler-core/dist/compiler-core.cjs.js", "../../../../../node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js", "../../../../../node_modules/@vue/reactivity/dist/reactivity.cjs.js", "../../../../../node_modules/@vue/runtime-core/dist/runtime-core.cjs.js", "../../../../../node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.js", "../../../../../node_modules/vue/dist/vue.cjs.js", "../src/index.ts", "../../../../../node_modules/vue/index.mjs", "../src/helpers.ts"],
4
- "sourcesContent": [
5
- "/**\n* @vue/shared v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = Object.freeze({}) ;\nconst EMPTY_ARR = Object.freeze([]) ;\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n",
6
- "\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map",
7
- "\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map",
8
- "\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map",
9
- "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map",
10
- "'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nclass Position {\n constructor(line, col, index) {\n this.line = void 0;\n this.column = void 0;\n this.index = void 0;\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\nclass SourceLocation {\n constructor(start, end) {\n this.start = void 0;\n this.end = void 0;\n this.filename = void 0;\n this.identifierName = void 0;\n this.start = start;\n this.end = end;\n }\n}\nfunction createPositionWithColumnOffset(position, columnOffset) {\n const {\n line,\n column,\n index\n } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\nvar ModuleErrors = {\n ImportMetaOutsideModule: {\n message: `import.meta may appear only with 'sourceType: \"module\"'`,\n code\n },\n ImportOutsideModule: {\n message: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n code\n }\n};\nconst NodeDescriptions = {\n ArrayPattern: \"array destructuring pattern\",\n AssignmentExpression: \"assignment expression\",\n AssignmentPattern: \"assignment expression\",\n ArrowFunctionExpression: \"arrow function expression\",\n ConditionalExpression: \"conditional expression\",\n CatchClause: \"catch clause\",\n ForOfStatement: \"for-of statement\",\n ForInStatement: \"for-in statement\",\n ForStatement: \"for-loop\",\n FormalParameters: \"function parameter list\",\n Identifier: \"identifier\",\n ImportSpecifier: \"import specifier\",\n ImportDefaultSpecifier: \"import default specifier\",\n ImportNamespaceSpecifier: \"import namespace specifier\",\n ObjectPattern: \"object destructuring pattern\",\n ParenthesizedExpression: \"parenthesized expression\",\n RestElement: \"rest element\",\n UpdateExpression: {\n true: \"prefix operation\",\n false: \"postfix operation\"\n },\n VariableDeclarator: \"variable declaration\",\n YieldExpression: \"yield expression\"\n};\nconst toNodeDescription = node => node.type === \"UpdateExpression\" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type];\nvar StandardErrors = {\n AccessorIsGenerator: ({\n kind\n }) => `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass: \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext: \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier: \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock: \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter: \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext: \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext: \"'await' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncFunction: \"'await' is only allowed within async functions.\",\n BadGetterArity: \"A 'get' accessor must not have any formal parameters.\",\n BadSetterArity: \"A 'set' accessor must have exactly one formal parameter.\",\n BadSetterRestParameter: \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField: \"Classes may not have a private field named '#constructor'.\",\n ConstructorIsAccessor: \"Class constructor may not be an accessor.\",\n ConstructorIsAsync: \"Constructor can't be an async function.\",\n ConstructorIsGenerator: \"Constructor can't be a generator.\",\n DeclarationMissingInitializer: ({\n kind\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses: \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorBeforeExport: \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\n DecoratorsBeforeAfterExport: \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor: \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass: \"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.\",\n DecoratorSemicolon: \"Decorators must not be followed by a semicolon.\",\n DecoratorStaticBlock: \"Decorators can't be used with a static block.\",\n DeferImportRequiresNamespace: 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport: \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n DuplicateConstructor: \"Duplicate constructor in the same class.\",\n DuplicateDefaultExport: \"Only one default export allowed per module.\",\n DuplicateExport: ({\n exportName\n }) => `\\`${exportName}\\` has already been exported. Exported identifiers must be unique.`,\n DuplicateProto: \"Redefinition of __proto__ property.\",\n DuplicateRegExpFlags: \"Duplicate regular expression flag.\",\n DynamicImportPhaseRequiresImportExpressions: ({\n phase\n }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`,\n ElementAfterRest: \"Rest element must be last element.\",\n EscapedCharNotAnIdentifier: \"Invalid Unicode escape.\",\n ExportBindingIsString: ({\n localName,\n exportName\n }) => `A string literal cannot be used as an exported binding without \\`from\\`.\\n- Did you mean \\`export { '${localName}' as '${exportName}' } from 'some-module'\\`?`,\n ExportDefaultFromAsIdentifier: \"'from' is not allowed as an identifier after 'export default'.\",\n ForInOfLoopInitializer: ({\n type\n }) => `'${type === \"ForInStatement\" ? \"for-in\" : \"for-of\"}' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n ForOfAsync: \"The left-hand side of a for-of loop may not be 'async'.\",\n ForOfLet: \"The left-hand side of a for-of loop may not start with 'let'.\",\n GeneratorInSingleStatementContext: \"Generators can only be declared at the top level or inside a block.\",\n IllegalBreakContinue: ({\n type\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n IllegalLanguageModeDirective: \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportAttributesUseAssert: \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.\",\n ImportBindingIsString: ({\n importName\n }) => `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArgumentTrailingComma: \"Trailing comma is disallowed inside import(...) arguments.\",\n ImportCallArity: ({\n maxArgumentCount\n }) => `\\`import()\\` requires exactly ${maxArgumentCount === 1 ? \"one argument\" : \"one or two arguments\"}.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault: \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding: 'Only `import module x from \"./module\"` is valid.',\n IncompatibleRegExpUVFlags: \"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\",\n InvalidBigIntLiteral: \"Invalid BigIntLiteral.\",\n InvalidCodePoint: \"Code point out of bounds.\",\n InvalidCoverInitializedName: \"Invalid shorthand property initializer.\",\n InvalidDecimal: \"Invalid decimal.\",\n InvalidDigit: ({\n radix\n }) => `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({\n reservedWord\n }) => `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({\n identifierName\n }) => `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({\n ancestor\n }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({\n ancestor\n }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({\n ancestor\n }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent: \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({\n unexpected\n }) => `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRecordProperty: \"Only properties and spread elements are allowed in record definitions.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({\n labelName\n }) => `Label '${labelName}' is already declared.`,\n LetInLexicalBinding: \"'let' is disallowed as a lexically bound name.\",\n LineTerminatorBeforeArrow: \"No line break is allowed before '=>'.\",\n MalformedRegExpFlags: \"Invalid regular expression flag.\",\n MissingClassName: \"A class name is required.\",\n MissingEqInAssignment: \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({\n missingPlugin\n }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(\", \")}.`,\n MissingOneOfPlugins: ({\n missingPlugin\n }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical: \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeDifferentFromType: \"The only accepted module attribute is `type`.\",\n ModuleAttributeInvalidValue: \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({\n key\n }) => `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode\n }) => `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(16)}'.`,\n ModuleExportUndefined: ({\n localName\n }) => `Export '${localName}' is not defined.`,\n MultipleDefaultsInSwitch: \"Multiple default clauses.\",\n NewlineAfterThrow: \"Illegal newline after throw.\",\n NoCatchOrFinally: \"Missing catch or finally clause.\",\n NumberIdentifier: \"Identifier directly after number.\",\n NumericSeparatorInEscapeSequence: \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar: \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew: \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate: \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor: \"'override' modifier cannot appear on a constructor declaration.\",\n ParamDupe: \"Argument name clash.\",\n PatternHasAccessor: \"Object pattern can't contain getter or setter.\",\n PatternHasMethod: \"Object pattern can't contain methods.\",\n PrivateInExpectedIn: ({\n identifierName\n }) => `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({\n identifierName\n }) => `Duplicate private name #${identifierName}.`,\n RecordExpressionBarIncorrectEndSyntaxType: \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType: \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType: \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n RecordNoProto: \"'__proto__' is not allowed in Record expressions.\",\n RestTrailingComma: \"Unexpected trailing comma after rest element.\",\n SloppyFunction: \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB: \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\",\n SourcePhaseImportRequiresDefault: 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperNotAllowed: \"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n SuperPrivateField: \"Private fields can't be accessed on super.\",\n TrailingDecorator: \"Decorators must be attached to a class element.\",\n TupleExpressionBarIncorrectEndSyntaxType: \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType: \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType: \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder.\",\n UnexpectedAwaitAfterPipelineBody: 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport: \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({\n keyword\n }) => `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator: \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration: \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget: \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator: \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({\n reservedWord\n }) => `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected\n }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${expected ? `, expected \"${expected}\"` : \"\"}`,\n UnexpectedTokenUnaryExponentiation: \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration: \"Using declaration cannot appear in the top level when source type is `script`.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport: \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport: \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport: \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName\n }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator: \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator: \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper: \"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\",\n UnterminatedComment: \"Unterminated comment.\",\n UnterminatedRegExp: \"Unterminated regular expression.\",\n UnterminatedString: \"Unterminated string constant.\",\n UnterminatedTemplate: \"Unterminated template.\",\n UsingDeclarationExport: \"Using declaration cannot be exported.\",\n UsingDeclarationHasBindingPattern: \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({\n identifierName\n }) => `Identifier '${identifierName}' has already been declared.`,\n YieldBindingIdentifier: \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n ZeroDigitNumericSeparator: \"Numeric separator can not be used after leading 0.\"\n};\nvar StrictModeErrors = {\n StrictDelete: \"Deleting local variable in strict mode.\",\n StrictEvalArguments: ({\n referenceName\n }) => `Assigning to '${referenceName}' in strict mode.`,\n StrictEvalArgumentsBinding: ({\n bindingName\n }) => `Binding '${bindingName}' in strict mode.`,\n StrictFunction: \"In strict mode code, functions can only be declared at top level or inside a block.\",\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n StrictWith: \"'with' in strict mode.\"\n};\nconst UnparenthesizedPipeBodyDescriptions = new Set([\"ArrowFunctionExpression\", \"AssignmentExpression\", \"ConditionalExpression\", \"YieldExpression\"]);\nvar PipelineOperatorErrors = {\n PipeBodyIsTighter: \"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\",\n PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n PipeTopicUnbound: \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({\n token\n }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"${token}\" }.`,\n PipeTopicUnused: \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({\n type\n }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type\n })}; please wrap it in parentheses.`,\n PipelineBodyNoArrow: 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression: \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression: \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused: \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed: \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.'\n};\nconst _excluded = [\"message\"];\nfunction defineHidden(obj, key, value) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value\n });\n}\nfunction toParseErrorConstructor({\n toMessage,\n code,\n reasonCode,\n syntaxPlugin\n}) {\n const hasMissingPlugin = reasonCode === \"MissingPlugin\" || reasonCode === \"MissingOneOfPlugins\";\n {\n const oldReasonCodes = {\n AccessorCannotDeclareThisParameter: \"AccesorCannotDeclareThisParameter\",\n AccessorCannotHaveTypeParameters: \"AccesorCannotHaveTypeParameters\",\n ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: \"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference\",\n SetAccessorCannotHaveOptionalParameter: \"SetAccesorCannotHaveOptionalParameter\",\n SetAccessorCannotHaveRestParameter: \"SetAccesorCannotHaveRestParameter\",\n SetAccessorCannotHaveReturnType: \"SetAccesorCannotHaveReturnType\"\n };\n if (oldReasonCodes[reasonCode]) {\n reasonCode = oldReasonCodes[reasonCode];\n }\n }\n return function constructor(loc, details) {\n const error = new SyntaxError();\n error.code = code;\n error.reasonCode = reasonCode;\n error.loc = loc;\n error.pos = loc.index;\n error.syntaxPlugin = syntaxPlugin;\n if (hasMissingPlugin) {\n error.missingPlugin = details.missingPlugin;\n }\n defineHidden(error, \"clone\", function clone(overrides = {}) {\n var _overrides$loc;\n const {\n line,\n column,\n index\n } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc;\n return constructor(new Position(line, column, index), Object.assign({}, details, overrides.details));\n });\n defineHidden(error, \"details\", details);\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get() {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value) {\n Object.defineProperty(this, \"message\", {\n value,\n writable: true\n });\n }\n });\n return error;\n };\n}\nfunction ParseErrorEnum(argument, syntaxPlugin) {\n if (Array.isArray(argument)) {\n return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n const ParseErrorConstructors = {};\n for (const reasonCode of Object.keys(argument)) {\n const template = argument[reasonCode];\n const _ref = typeof template === \"string\" ? {\n message: () => template\n } : typeof template === \"function\" ? {\n message: template\n } : template,\n {\n message\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n const toMessage = typeof message === \"string\" ? () => message : message;\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage\n }, syntaxPlugin ? {\n syntaxPlugin\n } : {}, rest));\n }\n return ParseErrorConstructors;\n}\nconst Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors));\nconst {\n defineProperty\n} = Object;\nconst toUnenumerable = (object, key) => {\n if (object) {\n defineProperty(object, key, {\n enumerable: false,\n value: object[key]\n });\n }\n};\nfunction toESTreeLocation(node) {\n toUnenumerable(node.loc.start, \"index\");\n toUnenumerable(node.loc.end, \"index\");\n return node;\n}\nvar estree = superClass => class ESTreeParserMixin extends superClass {\n parse() {\n const file = toESTreeLocation(super.parse());\n if (this.options.tokens) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n return file;\n }\n parseRegExpLiteral({\n pattern,\n flags\n }) {\n let regex = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (_) {}\n const node = this.estreeParseLiteral(regex);\n node.regex = {\n pattern,\n flags\n };\n return node;\n }\n parseBigIntLiteral(value) {\n let bigInt;\n try {\n bigInt = BigInt(value);\n } catch (_unused) {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n return node;\n }\n parseDecimalLiteral(value) {\n const decimal = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n return node;\n }\n estreeParseLiteral(value) {\n return this.parseLiteral(value, \"Literal\");\n }\n parseStringLiteral(value) {\n return this.estreeParseLiteral(value);\n }\n parseNumericLiteral(value) {\n return this.estreeParseLiteral(value);\n }\n parseNullLiteral() {\n return this.estreeParseLiteral(null);\n }\n parseBooleanLiteral(value) {\n return this.estreeParseLiteral(value);\n }\n directiveToStmt(directive) {\n const expression = directive.value;\n delete directive.value;\n expression.type = \"Literal\";\n expression.raw = expression.extra.raw;\n expression.value = expression.extra.expressionValue;\n const stmt = directive;\n stmt.type = \"ExpressionStatement\";\n stmt.expression = expression;\n stmt.directive = expression.extra.rawValue;\n delete expression.extra;\n return stmt;\n }\n initFunction(node, isAsync) {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n checkDeclaration(node) {\n if (node != null && this.isObjectProperty(node)) {\n this.checkDeclaration(node.value);\n } else {\n super.checkDeclaration(node);\n }\n }\n getObjectOrClassMethodParams(method) {\n return method.value.params;\n }\n isValidDirective(stmt) {\n var _stmt$expression$extr;\n return stmt.type === \"ExpressionStatement\" && stmt.expression.type === \"Literal\" && typeof stmt.expression.value === \"string\" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized);\n }\n parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {\n super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse);\n const directiveStatements = node.directives.map(d => this.directiveToStmt(d));\n node.body = directiveStatements.concat(node.body);\n delete node.directives;\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, \"ClassMethod\", true);\n if (method.typeParameters) {\n method.value.typeParameters = method.typeParameters;\n delete method.typeParameters;\n }\n classBody.body.push(method);\n }\n parsePrivateName() {\n const node = super.parsePrivateName();\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n convertPrivateNameToPrivateIdentifier(node) {\n const name = super.getPrivateNameSV(node);\n node = node;\n delete node.id;\n node.name = name;\n node.type = \"PrivateIdentifier\";\n return node;\n }\n isPrivateName(node) {\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n getPrivateNameSV(node) {\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node);\n }\n }\n return node.name;\n }\n parseLiteral(value, type) {\n const node = super.parseLiteral(value, type);\n node.raw = node.extra.raw;\n delete node.extra;\n return node;\n }\n parseFunctionBody(node, allowExpression, isMethod = false) {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {\n let funcNode = this.startNode();\n funcNode.kind = node.kind;\n funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);\n funcNode.type = \"FunctionExpression\";\n delete funcNode.kind;\n node.value = funcNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n return this.finishNode(node, \"MethodDefinition\");\n }\n nameIsConstructor(key) {\n if (key.type === \"Literal\") return key.value === \"constructor\";\n return super.nameIsConstructor(key);\n }\n parseClassProperty(...args) {\n const propertyNode = super.parseClassProperty(...args);\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n return propertyNode;\n }\n parseClassPrivateProperty(...args) {\n const propertyNode = super.parseClassPrivateProperty(...args);\n {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n propertyNode.computed = false;\n return propertyNode;\n }\n parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) {\n const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor);\n if (node) {\n node.type = \"Property\";\n if (node.kind === \"method\") {\n node.kind = \"init\";\n }\n node.shorthand = false;\n }\n return node;\n }\n parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {\n const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);\n if (node) {\n node.kind = \"init\";\n node.type = \"Property\";\n }\n return node;\n }\n isValidLVal(type, isUnparenthesizedInAssign, binding) {\n return type === \"Property\" ? \"value\" : super.isValidLVal(type, isUnparenthesizedInAssign, binding);\n }\n isAssignable(node, isBinding) {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n toAssignable(node, isLHS = false) {\n if (node != null && this.isObjectProperty(node)) {\n const {\n key,\n value\n } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start);\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n toAssignableObjectExpressionProp(prop, isLast, isLHS) {\n if (prop.type === \"Property\" && (prop.kind === \"get\" || prop.kind === \"set\")) {\n this.raise(Errors.PatternHasAccessor, prop.key);\n } else if (prop.type === \"Property\" && prop.method) {\n this.raise(Errors.PatternHasMethod, prop.key);\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n finishCallExpression(unfinished, optional) {\n const node = super.finishCallExpression(unfinished, optional);\n if (node.callee.type === \"Import\") {\n node.type = \"ImportExpression\";\n node.source = node.arguments[0];\n if (this.hasPlugin(\"importAttributes\") || this.hasPlugin(\"importAssertions\")) {\n var _ref, _ref2;\n node.options = (_ref = node.arguments[1]) != null ? _ref : null;\n node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null;\n }\n delete node.arguments;\n delete node.callee;\n }\n return node;\n }\n toReferencedArguments(node) {\n if (node.type === \"ImportExpression\") {\n return;\n }\n super.toReferencedArguments(node);\n }\n parseExport(unfinished, decorators) {\n const exportStartLoc = this.state.lastTokStartLoc;\n const node = super.parseExport(unfinished, decorators);\n switch (node.type) {\n case \"ExportAllDeclaration\":\n node.exported = null;\n break;\n case \"ExportNamedDeclaration\":\n if (node.specifiers.length === 1 && node.specifiers[0].type === \"ExportNamespaceSpecifier\") {\n node.type = \"ExportAllDeclaration\";\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n case \"ExportDefaultDeclaration\":\n {\n var _declaration$decorato;\n const {\n declaration\n } = node;\n if ((declaration == null ? void 0 : declaration.type) === \"ClassDeclaration\" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) {\n this.resetStartLocation(node, exportStartLoc);\n }\n }\n break;\n }\n return node;\n }\n parseSubscript(base, startLoc, noCalls, state) {\n const node = super.parseSubscript(base, startLoc, noCalls, state);\n if (state.optionalChainMember) {\n if (node.type === \"OptionalMemberExpression\" || node.type === \"OptionalCallExpression\") {\n node.type = node.type.substring(8);\n }\n if (state.stop) {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNode(chain, \"ChainExpression\");\n }\n } else if (node.type === \"MemberExpression\" || node.type === \"CallExpression\") {\n node.optional = false;\n }\n return node;\n }\n isOptionalMemberExpression(node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n hasPropertyAsPrivateName(node) {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n isObjectProperty(node) {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n isObjectMethod(node) {\n return node.type === \"Property\" && (node.method || node.kind === \"get\" || node.kind === \"set\");\n }\n finishNodeAt(node, type, endLoc) {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n resetStartLocation(node, startLoc) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n};\nclass TokContext {\n constructor(token, preserveSpace) {\n this.token = void 0;\n this.preserveSpace = void 0;\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n}\nconst types = {\n brace: new TokContext(\"{\"),\n j_oTag: new TokContext(\"<tag\"),\n j_cTag: new TokContext(\"</tag\"),\n j_expr: new TokContext(\"<tag>...</tag>\", true)\n};\n{\n types.template = new TokContext(\"`\", true);\n}\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\nclass ExportedTokenType {\n constructor(label, conf = {}) {\n this.label = void 0;\n this.keyword = void 0;\n this.beforeExpr = void 0;\n this.startsExpr = void 0;\n this.rightAssociative = void 0;\n this.isLoop = void 0;\n this.isAssign = void 0;\n this.prefix = void 0;\n this.postfix = void 0;\n this.binop = void 0;\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.rightAssociative = !!conf.rightAssociative;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop != null ? conf.binop : null;\n {\n this.updateContext = null;\n }\n }\n}\nconst keywords$1 = new Map();\nfunction createKeyword(name, options = {}) {\n options.keyword = name;\n const token = createToken(name, options);\n keywords$1.set(name, token);\n return token;\n}\nfunction createBinop(name, binop) {\n return createToken(name, {\n beforeExpr,\n binop\n });\n}\nlet tokenTypeCounter = -1;\nconst tokenTypes = [];\nconst tokenLabels = [];\nconst tokenBinops = [];\nconst tokenBeforeExprs = [];\nconst tokenStartsExprs = [];\nconst tokenPrefixes = [];\nfunction createToken(name, options = {}) {\n var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix;\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1);\n tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false);\n tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false);\n tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false);\n tokenTypes.push(new ExportedTokenType(name, options));\n return tokenTypeCounter;\n}\nfunction createKeywordLike(name, options = {}) {\n var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2;\n ++tokenTypeCounter;\n keywords$1.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1);\n tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false);\n tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false);\n tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false);\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n return tokenTypeCounter;\n}\nconst tt = {\n bracketL: createToken(\"[\", {\n beforeExpr,\n startsExpr\n }),\n bracketHashL: createToken(\"#[\", {\n beforeExpr,\n startsExpr\n }),\n bracketBarL: createToken(\"[|\", {\n beforeExpr,\n startsExpr\n }),\n bracketR: createToken(\"]\"),\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", {\n beforeExpr,\n startsExpr\n }),\n braceBarL: createToken(\"{|\", {\n beforeExpr,\n startsExpr\n }),\n braceHashL: createToken(\"#{\", {\n beforeExpr,\n startsExpr\n }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", {\n beforeExpr,\n startsExpr\n }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", {\n beforeExpr\n }),\n semi: createToken(\";\", {\n beforeExpr\n }),\n colon: createToken(\":\", {\n beforeExpr\n }),\n doubleColon: createToken(\"::\", {\n beforeExpr\n }),\n dot: createToken(\".\"),\n question: createToken(\"?\", {\n beforeExpr\n }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", {\n beforeExpr\n }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", {\n beforeExpr\n }),\n backQuote: createToken(\"`\", {\n startsExpr\n }),\n dollarBraceL: createToken(\"${\", {\n beforeExpr,\n startsExpr\n }),\n templateTail: createToken(\"...`\", {\n startsExpr\n }),\n templateNonTail: createToken(\"...${\", {\n beforeExpr,\n startsExpr\n }),\n at: createToken(\"@\"),\n hash: createToken(\"#\", {\n startsExpr\n }),\n interpreterDirective: createToken(\"#!...\"),\n eq: createToken(\"=\", {\n beforeExpr,\n isAssign\n }),\n assign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n slashAssign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n xorAssign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n moduloAssign: createToken(\"_=\", {\n beforeExpr,\n isAssign\n }),\n incDec: createToken(\"++/--\", {\n prefix,\n postfix,\n startsExpr\n }),\n bang: createToken(\"!\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n tilde: createToken(\"~\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n doubleCaret: createToken(\"^^\", {\n startsExpr\n }),\n doubleAt: createToken(\"@@\", {\n startsExpr\n }),\n pipeline: createBinop(\"|>\", 0),\n nullishCoalescing: createBinop(\"??\", 1),\n logicalOR: createBinop(\"||\", 1),\n logicalAND: createBinop(\"&&\", 2),\n bitwiseOR: createBinop(\"|\", 3),\n bitwiseXOR: createBinop(\"^\", 4),\n bitwiseAND: createBinop(\"&\", 5),\n equality: createBinop(\"==/!=/===/!==\", 6),\n lt: createBinop(\"</>/<=/>=\", 7),\n gt: createBinop(\"</>/<=/>=\", 7),\n relational: createBinop(\"</>/<=/>=\", 7),\n bitShift: createBinop(\"<</>>/>>>\", 8),\n bitShiftL: createBinop(\"<</>>/>>>\", 8),\n bitShiftR: createBinop(\"<</>>/>>>\", 8),\n plusMin: createToken(\"+/-\", {\n beforeExpr,\n binop: 9,\n prefix,\n startsExpr\n }),\n modulo: createToken(\"%\", {\n binop: 10,\n startsExpr\n }),\n star: createToken(\"*\", {\n binop: 10\n }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true\n }),\n _in: createKeyword(\"in\", {\n beforeExpr,\n binop: 7\n }),\n _instanceof: createKeyword(\"instanceof\", {\n beforeExpr,\n binop: 7\n }),\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", {\n beforeExpr\n }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", {\n beforeExpr\n }),\n _else: createKeyword(\"else\", {\n beforeExpr\n }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", {\n startsExpr\n }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", {\n beforeExpr\n }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", {\n beforeExpr,\n startsExpr\n }),\n _this: createKeyword(\"this\", {\n startsExpr\n }),\n _super: createKeyword(\"super\", {\n startsExpr\n }),\n _class: createKeyword(\"class\", {\n startsExpr\n }),\n _extends: createKeyword(\"extends\", {\n beforeExpr\n }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", {\n startsExpr\n }),\n _null: createKeyword(\"null\", {\n startsExpr\n }),\n _true: createKeyword(\"true\", {\n startsExpr\n }),\n _false: createKeyword(\"false\", {\n startsExpr\n }),\n _typeof: createKeyword(\"typeof\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _void: createKeyword(\"void\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _delete: createKeyword(\"delete\", {\n beforeExpr,\n prefix,\n startsExpr\n }),\n _do: createKeyword(\"do\", {\n isLoop,\n beforeExpr\n }),\n _for: createKeyword(\"for\", {\n isLoop\n }),\n _while: createKeyword(\"while\", {\n isLoop\n }),\n _as: createKeywordLike(\"as\", {\n startsExpr\n }),\n _assert: createKeywordLike(\"assert\", {\n startsExpr\n }),\n _async: createKeywordLike(\"async\", {\n startsExpr\n }),\n _await: createKeywordLike(\"await\", {\n startsExpr\n }),\n _defer: createKeywordLike(\"defer\", {\n startsExpr\n }),\n _from: createKeywordLike(\"from\", {\n startsExpr\n }),\n _get: createKeywordLike(\"get\", {\n startsExpr\n }),\n _let: createKeywordLike(\"let\", {\n startsExpr\n }),\n _meta: createKeywordLike(\"meta\", {\n startsExpr\n }),\n _of: createKeywordLike(\"of\", {\n startsExpr\n }),\n _sent: createKeywordLike(\"sent\", {\n startsExpr\n }),\n _set: createKeywordLike(\"set\", {\n startsExpr\n }),\n _source: createKeywordLike(\"source\", {\n startsExpr\n }),\n _static: createKeywordLike(\"static\", {\n startsExpr\n }),\n _using: createKeywordLike(\"using\", {\n startsExpr\n }),\n _yield: createKeywordLike(\"yield\", {\n startsExpr\n }),\n _asserts: createKeywordLike(\"asserts\", {\n startsExpr\n }),\n _checks: createKeywordLike(\"checks\", {\n startsExpr\n }),\n _exports: createKeywordLike(\"exports\", {\n startsExpr\n }),\n _global: createKeywordLike(\"global\", {\n startsExpr\n }),\n _implements: createKeywordLike(\"implements\", {\n startsExpr\n }),\n _intrinsic: createKeywordLike(\"intrinsic\", {\n startsExpr\n }),\n _infer: createKeywordLike(\"infer\", {\n startsExpr\n }),\n _is: createKeywordLike(\"is\", {\n startsExpr\n }),\n _mixins: createKeywordLike(\"mixins\", {\n startsExpr\n }),\n _proto: createKeywordLike(\"proto\", {\n startsExpr\n }),\n _require: createKeywordLike(\"require\", {\n startsExpr\n }),\n _satisfies: createKeywordLike(\"satisfies\", {\n startsExpr\n }),\n _keyof: createKeywordLike(\"keyof\", {\n startsExpr\n }),\n _readonly: createKeywordLike(\"readonly\", {\n startsExpr\n }),\n _unique: createKeywordLike(\"unique\", {\n startsExpr\n }),\n _abstract: createKeywordLike(\"abstract\", {\n startsExpr\n }),\n _declare: createKeywordLike(\"declare\", {\n startsExpr\n }),\n _enum: createKeywordLike(\"enum\", {\n startsExpr\n }),\n _module: createKeywordLike(\"module\", {\n startsExpr\n }),\n _namespace: createKeywordLike(\"namespace\", {\n startsExpr\n }),\n _interface: createKeywordLike(\"interface\", {\n startsExpr\n }),\n _type: createKeywordLike(\"type\", {\n startsExpr\n }),\n _opaque: createKeywordLike(\"opaque\", {\n startsExpr\n }),\n name: createToken(\"name\", {\n startsExpr\n }),\n string: createToken(\"string\", {\n startsExpr\n }),\n num: createToken(\"num\", {\n startsExpr\n }),\n bigint: createToken(\"bigint\", {\n startsExpr\n }),\n decimal: createToken(\"decimal\", {\n startsExpr\n }),\n regexp: createToken(\"regexp\", {\n startsExpr\n }),\n privateName: createToken(\"#name\", {\n startsExpr\n }),\n eof: createToken(\"eof\"),\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", {\n beforeExpr: true\n }),\n jsxTagStart: createToken(\"jsxTagStart\", {\n startsExpr: true\n }),\n jsxTagEnd: createToken(\"jsxTagEnd\"),\n placeholder: createToken(\"%%\", {\n startsExpr: true\n })\n};\nfunction tokenIsIdentifier(token) {\n return token >= 93 && token <= 132;\n}\nfunction tokenKeywordOrIdentifierIsKeyword(token) {\n return token <= 92;\n}\nfunction tokenIsKeywordOrIdentifier(token) {\n return token >= 58 && token <= 132;\n}\nfunction tokenIsLiteralPropertyName(token) {\n return token >= 58 && token <= 136;\n}\nfunction tokenComesBeforeExpression(token) {\n return tokenBeforeExprs[token];\n}\nfunction tokenCanStartExpression(token) {\n return tokenStartsExprs[token];\n}\nfunction tokenIsAssignment(token) {\n return token >= 29 && token <= 33;\n}\nfunction tokenIsFlowInterfaceOrTypeOrOpaque(token) {\n return token >= 129 && token <= 131;\n}\nfunction tokenIsLoop(token) {\n return token >= 90 && token <= 92;\n}\nfunction tokenIsKeyword(token) {\n return token >= 58 && token <= 92;\n}\nfunction tokenIsOperator(token) {\n return token >= 39 && token <= 59;\n}\nfunction tokenIsPostfix(token) {\n return token === 34;\n}\nfunction tokenIsPrefix(token) {\n return tokenPrefixes[token];\n}\nfunction tokenIsTSTypeOperator(token) {\n return token >= 121 && token <= 123;\n}\nfunction tokenIsTSDeclarationStart(token) {\n return token >= 124 && token <= 130;\n}\nfunction tokenLabelName(token) {\n return tokenLabels[token];\n}\nfunction tokenOperatorPrecedence(token) {\n return tokenBinops[token];\n}\nfunction tokenIsRightAssociative(token) {\n return token === 57;\n}\nfunction tokenIsTemplate(token) {\n return token >= 24 && token <= 25;\n}\nfunction getExportedToken(token) {\n return tokenTypes[token];\n}\n{\n tokenTypes[8].updateContext = context => {\n context.pop();\n };\n tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => {\n context.push(types.brace);\n };\n tokenTypes[22].updateContext = context => {\n if (context[context.length - 1] === types.template) {\n context.pop();\n } else {\n context.push(types.template);\n }\n };\n tokenTypes[142].updateContext = context => {\n context.push(types.j_expr, types.j_oTag);\n };\n}\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7cd\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7dc\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\nconst astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];\nconst astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\nfunction isInAstralSet(code, set) {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\nfunction isIdentifierStart(code) {\n if (code < 65) return code === 36;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\nfunction isIdentifierChar(code) {\n if (code < 48) return code === 36;\n if (code < 58) return true;\n if (code < 65) return false;\n if (code <= 90) return true;\n if (code < 97) return code === 95;\n if (code <= 122) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);\n}\nconst reservedWords = {\n keyword: [\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\"],\n strict: [\"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\"],\n strictBind: [\"eval\", \"arguments\"]\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\nfunction isReservedWord(word, inModule) {\n return inModule && word === \"await\" || word === \"enum\";\n}\nfunction isStrictReservedWord(word, inModule) {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\nfunction isStrictBindOnlyReservedWord(word) {\n return reservedWordsStrictBindSet.has(word);\n}\nfunction isStrictBindReservedWord(word, inModule) {\n return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);\n}\nfunction isKeyword(word) {\n return keywords.has(word);\n}\nfunction isIteratorStart(current, next, next2) {\n return current === 64 && next === 64 && isIdentifierStart(next2);\n}\nconst reservedWordLikeSet = new Set([\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\", \"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\", \"eval\", \"arguments\", \"enum\", \"await\"]);\nfunction canBeReservedWord(word) {\n return reservedWordLikeSet.has(word);\n}\nclass Scope {\n constructor(flags) {\n this.flags = 0;\n this.names = new Map();\n this.firstLexicalName = \"\";\n this.flags = flags;\n }\n}\nclass ScopeHandler {\n constructor(parser, inModule) {\n this.parser = void 0;\n this.scopeStack = [];\n this.inModule = void 0;\n this.undefinedExports = new Map();\n this.parser = parser;\n this.inModule = inModule;\n }\n get inTopLevel() {\n return (this.currentScope().flags & 1) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & 2) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & 16) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & 32) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & 64) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (flags & 64) > 0 && (flags & 2) === 0;\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1;; i--) {\n const {\n flags\n } = this.scopeStack[i];\n if (flags & 128) {\n return true;\n }\n if (flags & (387 | 64)) {\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & 2) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n createScope(flags) {\n return new Scope(flags);\n }\n enter(flags) {\n this.scopeStack.push(this.createScope(flags));\n }\n exit() {\n const scope = this.scopeStack.pop();\n return scope.flags;\n }\n treatFunctionsAsVarInScope(scope) {\n return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1);\n }\n declareName(name, bindingType, loc) {\n let scope = this.currentScope();\n if (bindingType & 8 || bindingType & 16) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n let type = scope.names.get(name) || 0;\n if (bindingType & 16) {\n type = type | 4;\n } else {\n if (!scope.firstLexicalName) {\n scope.firstLexicalName = name;\n }\n type = type | 2;\n }\n scope.names.set(name, type);\n if (bindingType & 8) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & 4) {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n scope = this.scopeStack[i];\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n scope.names.set(name, (scope.names.get(name) || 0) | 1);\n this.maybeExportDefined(scope, name);\n if (scope.flags & 387) break;\n }\n }\n if (this.parser.inModule && scope.flags & 1) {\n this.undefinedExports.delete(name);\n }\n }\n maybeExportDefined(scope, name) {\n if (this.parser.inModule && scope.flags & 1) {\n this.undefinedExports.delete(name);\n }\n }\n checkRedeclarationInScope(scope, name, bindingType, loc) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name\n });\n }\n }\n isRedeclaredInScope(scope, name, bindingType) {\n if (!(bindingType & 1)) return false;\n if (bindingType & 8) {\n return scope.names.has(name);\n }\n const type = scope.names.get(name);\n if (bindingType & 16) {\n return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0;\n }\n return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0;\n }\n checkLocalExport(id) {\n const {\n name\n } = id;\n const topLevelScope = this.scopeStack[0];\n if (!topLevelScope.names.has(name)) {\n this.undefinedExports.set(name, id.loc.start);\n }\n }\n currentScope() {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n currentVarScopeFlags() {\n for (let i = this.scopeStack.length - 1;; i--) {\n const {\n flags\n } = this.scopeStack[i];\n if (flags & 387) {\n return flags;\n }\n }\n }\n currentThisScopeFlags() {\n for (let i = this.scopeStack.length - 1;; i--) {\n const {\n flags\n } = this.scopeStack[i];\n if (flags & (387 | 64) && !(flags & 4)) {\n return flags;\n }\n }\n }\n}\nclass FlowScope extends Scope {\n constructor(...args) {\n super(...args);\n this.declareFunctions = new Set();\n }\n}\nclass FlowScopeHandler extends ScopeHandler {\n createScope(flags) {\n return new FlowScope(flags);\n }\n declareName(name, bindingType, loc) {\n const scope = this.currentScope();\n if (bindingType & 2048) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n super.declareName(name, bindingType, loc);\n }\n isRedeclaredInScope(scope, name, bindingType) {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n if (bindingType & 2048 && !scope.declareFunctions.has(name)) {\n const type = scope.names.get(name);\n return (type & 4) > 0 || (type & 2) > 0;\n }\n return false;\n }\n checkLocalExport(id) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\nclass BaseParser {\n constructor() {\n this.sawUnambiguousESM = false;\n this.ambiguousScriptDifferentAst = false;\n }\n hasPlugin(pluginConfig) {\n if (typeof pluginConfig === \"string\") {\n return this.plugins.has(pluginConfig);\n } else {\n const [pluginName, pluginOptions] = pluginConfig;\n if (!this.hasPlugin(pluginName)) {\n return false;\n }\n const actualOptions = this.plugins.get(pluginName);\n for (const key of Object.keys(pluginOptions)) {\n if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n getPluginOption(plugin, name) {\n var _this$plugins$get;\n return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name];\n }\n}\nfunction setTrailingComments(node, comments) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\nfunction setLeadingComments(node, comments) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\nfunction setInnerComments(node, comments) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\nfunction adjustInnerComments(node, elements, commentWS) {\n let lastElement = null;\n let i = elements.length;\n while (lastElement === null && i > 0) {\n lastElement = elements[--i];\n }\n if (lastElement === null || lastElement.start > commentWS.start) {\n setInnerComments(node, commentWS.comments);\n } else {\n setTrailingComments(lastElement, commentWS.comments);\n }\n}\nclass CommentsParser extends BaseParser {\n addComment(comment) {\n if (this.filename) comment.loc.filename = this.filename;\n const {\n commentsLen\n } = this.state;\n if (this.comments.length !== commentsLen) {\n this.comments.length = commentsLen;\n }\n this.comments.push(comment);\n this.state.commentsLen++;\n }\n processComment(node) {\n const {\n commentStack\n } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n const {\n start: nodeStart\n } = node;\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n commentWS.containingNode = node;\n this.finalizeComment(commentWS);\n commentStack.splice(i, 1);\n } else {\n if (commentEnd === nodeStart) {\n commentWS.trailingNode = node;\n }\n break;\n }\n }\n }\n finalizeComment(commentWS) {\n const {\n comments\n } = commentWS;\n if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) {\n if (commentWS.leadingNode !== null) {\n setTrailingComments(commentWS.leadingNode, comments);\n }\n if (commentWS.trailingNode !== null) {\n setLeadingComments(commentWS.trailingNode, comments);\n }\n } else {\n const {\n containingNode: node,\n start: commentStart\n } = commentWS;\n if (this.input.charCodeAt(commentStart - 1) === 44) {\n switch (node.type) {\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n case \"RecordExpression\":\n adjustInnerComments(node, node.properties, commentWS);\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n adjustInnerComments(node, node.arguments, commentWS);\n break;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ArrowFunctionExpression\":\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n adjustInnerComments(node, node.params, commentWS);\n break;\n case \"ArrayExpression\":\n case \"ArrayPattern\":\n case \"TupleExpression\":\n adjustInnerComments(node, node.elements, commentWS);\n break;\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n adjustInnerComments(node, node.specifiers, commentWS);\n break;\n default:\n {\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n finalizeRemainingComments() {\n const {\n commentStack\n } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n resetPreviousNodeTrailingComments(node) {\n const {\n commentStack\n } = this.state;\n const {\n length\n } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n resetPreviousIdentifierLeadingComments(node) {\n const {\n commentStack\n } = this.state;\n const {\n length\n } = commentStack;\n if (length === 0) return;\n if (commentStack[length - 1].trailingNode === node) {\n commentStack[length - 1].trailingNode = null;\n } else if (length >= 2 && commentStack[length - 2].trailingNode === node) {\n commentStack[length - 2].trailingNode = null;\n }\n }\n takeSurroundingComments(node, start, end) {\n const {\n commentStack\n } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n if (commentStart === end) {\n commentWS.leadingNode = node;\n } else if (commentEnd === start) {\n commentWS.trailingNode = node;\n } else if (commentEnd < start) {\n break;\n }\n }\n }\n}\nconst lineBreak = /\\r\\n|[\\r\\n\\u2028\\u2029]/;\nconst lineBreakG = new RegExp(lineBreak.source, \"g\");\nfunction isNewLine(code) {\n switch (code) {\n case 10:\n case 13:\n case 8232:\n case 8233:\n return true;\n default:\n return false;\n }\n}\nfunction hasNewLine(input, start, end) {\n for (let i = start; i < end; i++) {\n if (isNewLine(input.charCodeAt(i))) {\n return true;\n }\n }\n return false;\n}\nconst skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\nconst skipWhiteSpaceInLine = /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\nfunction isWhitespace(code) {\n switch (code) {\n case 0x0009:\n case 0x000b:\n case 0x000c:\n case 32:\n case 160:\n case 5760:\n case 0x2000:\n case 0x2001:\n case 0x2002:\n case 0x2003:\n case 0x2004:\n case 0x2005:\n case 0x2006:\n case 0x2007:\n case 0x2008:\n case 0x2009:\n case 0x200a:\n case 0x202f:\n case 0x205f:\n case 0x3000:\n case 0xfeff:\n return true;\n default:\n return false;\n }\n}\nclass State {\n constructor() {\n this.flags = 1024;\n this.curLine = void 0;\n this.lineStart = void 0;\n this.startLoc = void 0;\n this.endLoc = void 0;\n this.errors = [];\n this.potentialArrowAt = -1;\n this.noArrowAt = [];\n this.noArrowParamsConversionAt = [];\n this.topicContext = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null\n };\n this.labels = [];\n this.commentsLen = 0;\n this.commentStack = [];\n this.pos = 0;\n this.type = 139;\n this.value = null;\n this.start = 0;\n this.end = 0;\n this.lastTokEndLoc = null;\n this.lastTokStartLoc = null;\n this.context = [types.brace];\n this.firstInvalidTemplateEscapePos = null;\n this.strictErrors = new Map();\n this.tokensLength = 0;\n }\n get strict() {\n return (this.flags & 1) > 0;\n }\n set strict(v) {\n if (v) this.flags |= 1;else this.flags &= -2;\n }\n init({\n strictMode,\n sourceType,\n startLine,\n startColumn\n }) {\n this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === \"module\";\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(startLine, startColumn, 0);\n }\n get maybeInArrowParameters() {\n return (this.flags & 2) > 0;\n }\n set maybeInArrowParameters(v) {\n if (v) this.flags |= 2;else this.flags &= -3;\n }\n get inType() {\n return (this.flags & 4) > 0;\n }\n set inType(v) {\n if (v) this.flags |= 4;else this.flags &= -5;\n }\n get noAnonFunctionType() {\n return (this.flags & 8) > 0;\n }\n set noAnonFunctionType(v) {\n if (v) this.flags |= 8;else this.flags &= -9;\n }\n get hasFlowComment() {\n return (this.flags & 16) > 0;\n }\n set hasFlowComment(v) {\n if (v) this.flags |= 16;else this.flags &= -17;\n }\n get isAmbientContext() {\n return (this.flags & 32) > 0;\n }\n set isAmbientContext(v) {\n if (v) this.flags |= 32;else this.flags &= -33;\n }\n get inAbstractClass() {\n return (this.flags & 64) > 0;\n }\n set inAbstractClass(v) {\n if (v) this.flags |= 64;else this.flags &= -65;\n }\n get inDisallowConditionalTypesContext() {\n return (this.flags & 128) > 0;\n }\n set inDisallowConditionalTypesContext(v) {\n if (v) this.flags |= 128;else this.flags &= -129;\n }\n get soloAwait() {\n return (this.flags & 256) > 0;\n }\n set soloAwait(v) {\n if (v) this.flags |= 256;else this.flags &= -257;\n }\n get inFSharpPipelineDirectBody() {\n return (this.flags & 512) > 0;\n }\n set inFSharpPipelineDirectBody(v) {\n if (v) this.flags |= 512;else this.flags &= -513;\n }\n get canStartJSXElement() {\n return (this.flags & 1024) > 0;\n }\n set canStartJSXElement(v) {\n if (v) this.flags |= 1024;else this.flags &= -1025;\n }\n get containsEsc() {\n return (this.flags & 2048) > 0;\n }\n set containsEsc(v) {\n if (v) this.flags |= 2048;else this.flags &= -2049;\n }\n get hasTopLevelAwait() {\n return (this.flags & 4096) > 0;\n }\n set hasTopLevelAwait(v) {\n if (v) this.flags |= 4096;else this.flags &= -4097;\n }\n curPosition() {\n return new Position(this.curLine, this.pos - this.lineStart, this.pos);\n }\n clone() {\n const state = new State();\n state.flags = this.flags;\n state.curLine = this.curLine;\n state.lineStart = this.lineStart;\n state.startLoc = this.startLoc;\n state.endLoc = this.endLoc;\n state.errors = this.errors.slice();\n state.potentialArrowAt = this.potentialArrowAt;\n state.noArrowAt = this.noArrowAt.slice();\n state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice();\n state.topicContext = this.topicContext;\n state.labels = this.labels.slice();\n state.commentsLen = this.commentsLen;\n state.commentStack = this.commentStack.slice();\n state.pos = this.pos;\n state.type = this.type;\n state.value = this.value;\n state.start = this.start;\n state.end = this.end;\n state.lastTokEndLoc = this.lastTokEndLoc;\n state.lastTokStartLoc = this.lastTokStartLoc;\n state.context = this.context.slice();\n state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos;\n state.strictErrors = this.strictErrors;\n state.tokensLength = this.tokensLength;\n return state;\n }\n}\nvar _isDigit = function isDigit(code) {\n return code >= 48 && code <= 57;\n};\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),\n hex: new Set([46, 88, 95, 120])\n};\nconst isAllowedNumericSeparatorSibling = {\n bin: ch => ch === 48 || ch === 49,\n oct: ch => ch >= 48 && ch <= 55,\n dec: ch => ch >= 48 && ch <= 57,\n hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102\n};\nfunction readStringContents(type, input, pos, lineStart, curLine, errors) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const {\n length\n } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === 92) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(input, pos, lineStart, curLine, type === \"template\", errors);\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = {\n pos,\n lineStart,\n curLine\n };\n } else {\n out += res.ch;\n }\n ({\n pos,\n lineStart,\n curLine\n } = res);\n chunkStart = pos;\n } else if (ch === 8232 || ch === 8233) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === 10 || ch === 13) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (ch === 13 && input.charCodeAt(pos) === 10) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc\n };\n}\nfunction isStringEnd(type, ch, input, pos) {\n if (type === \"template\") {\n return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;\n }\n return ch === (type === \"double\" ? 34 : 39);\n}\nfunction readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {\n const throwOnInvalid = !inTemplate;\n pos++;\n const res = ch => ({\n pos,\n ch,\n lineStart,\n curLine\n });\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case 110:\n return res(\"\\n\");\n case 114:\n return res(\"\\r\");\n case 120:\n {\n let code;\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case 117:\n {\n let code;\n ({\n code,\n pos\n } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case 116:\n return res(\"\\t\");\n case 98:\n return res(\"\\b\");\n case 118:\n return res(\"\\u000b\");\n case 102:\n return res(\"\\f\");\n case 13:\n if (input.charCodeAt(pos) === 10) {\n ++pos;\n }\n case 10:\n lineStart = pos;\n ++curLine;\n case 8232:\n case 8233:\n return res(\"\");\n case 56:\n case 57:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n default:\n if (ch >= 48 && ch <= 55) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n let octalStr = match[0];\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (octalStr !== \"0\" || next === 56 || next === 57) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n return res(String.fromCharCode(octal));\n }\n return res(String.fromCharCode(ch));\n }\n}\nfunction readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {\n const initialPos = pos;\n let n;\n ({\n n,\n pos\n } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return {\n code: n,\n pos\n };\n}\nfunction readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {\n const start = pos;\n const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;\n let invalid = false;\n let total = 0;\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n if (code === 95 && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n if (!allowNumSeparator) {\n if (bailOnError) return {\n n: null,\n pos\n };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {\n if (bailOnError) return {\n n: null,\n pos\n };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n ++pos;\n continue;\n }\n if (code >= 97) {\n val = code - 97 + 10;\n } else if (code >= 65) {\n val = code - 65 + 10;\n } else if (_isDigit(code)) {\n val = code - 48;\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n if (val <= 9 && bailOnError) {\n return {\n n: null,\n pos\n };\n } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || len != null && pos - start !== len || invalid) {\n return {\n n: null,\n pos\n };\n }\n return {\n n: total,\n pos\n };\n}\nfunction readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {\n const ch = input.charCodeAt(pos);\n let code;\n if (ch === 123) {\n ++pos;\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, input.indexOf(\"}\", pos) - pos, true, throwOnInvalid, errors));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return {\n code: null,\n pos\n };\n }\n }\n } else {\n ({\n code,\n pos\n } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));\n }\n return {\n code,\n pos\n };\n}\nfunction buildPosition(pos, lineStart, curLine) {\n return new Position(curLine, pos - lineStart, pos);\n}\nconst VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]);\nclass Token {\n constructor(state) {\n this.type = state.type;\n this.value = state.value;\n this.start = state.start;\n this.end = state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n}\nclass Tokenizer extends CommentsParser {\n constructor(options, input) {\n super();\n this.isLookahead = void 0;\n this.tokens = [];\n this.errorHandlers_readInt = {\n invalidDigit: (pos, lineStart, curLine, radix) => {\n if (!this.options.errorRecovery) return false;\n this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), {\n radix\n });\n return true;\n },\n numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence),\n unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator)\n };\n this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {\n invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence),\n invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint)\n });\n this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {\n strictNumericEscape: (pos, lineStart, curLine) => {\n this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine));\n },\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine));\n }\n });\n this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {\n strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape),\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine));\n }\n });\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.comments = [];\n this.isLookahead = false;\n }\n pushToken(token) {\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n next() {\n this.checkKeywordEscapes();\n if (this.options.tokens) {\n this.pushToken(new Token(this.state));\n }\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n eat(type) {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n match(type) {\n return this.state.type === type;\n }\n createLookaheadState(state) {\n return {\n pos: state.pos,\n value: null,\n type: state.type,\n start: state.start,\n end: state.end,\n context: [this.curContext()],\n inType: state.inType,\n startLoc: state.startLoc,\n lastTokEndLoc: state.lastTokEndLoc,\n curLine: state.curLine,\n lineStart: state.lineStart,\n curPosition: state.curPosition\n };\n }\n lookahead() {\n const old = this.state;\n this.state = this.createLookaheadState(old);\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n const curr = this.state;\n this.state = old;\n return curr;\n }\n nextTokenStart() {\n return this.nextTokenStartSince(this.state.pos);\n }\n nextTokenStartSince(pos) {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n lookaheadCharCode() {\n return this.input.charCodeAt(this.nextTokenStart());\n }\n nextTokenInLineStart() {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n nextTokenInLineStartSince(pos) {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos;\n }\n lookaheadInLineCharCode() {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n codePointAtPos(pos) {\n let cp = this.input.charCodeAt(pos);\n if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) {\n const trail = this.input.charCodeAt(pos);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n return cp;\n }\n setStrict(strict) {\n this.state.strict = strict;\n if (strict) {\n this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at));\n this.state.strictErrors.clear();\n }\n }\n curContext() {\n return this.state.context[this.state.context.length - 1];\n }\n nextToken() {\n this.skipSpace();\n this.state.start = this.state.pos;\n if (!this.isLookahead) this.state.startLoc = this.state.curPosition();\n if (this.state.pos >= this.length) {\n this.finishToken(139);\n return;\n }\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n skipBlockComment(commentEnd) {\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n const start = this.state.pos;\n const end = this.input.indexOf(commentEnd, start + 2);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n this.state.pos = end + commentEnd.length;\n lineBreakG.lastIndex = start + 2;\n while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) {\n ++this.state.curLine;\n this.state.lineStart = lineBreakG.lastIndex;\n }\n if (this.isLookahead) return;\n const comment = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start,\n end: end + commentEnd.length,\n loc: new SourceLocation(startLoc, this.state.curPosition())\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n skipLineComment(startSkip) {\n const start = this.state.pos;\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n let ch = this.input.charCodeAt(this.state.pos += startSkip);\n if (this.state.pos < this.length) {\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n }\n if (this.isLookahead) return;\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n const comment = {\n type: \"CommentLine\",\n value,\n start,\n end,\n loc: new SourceLocation(startLoc, this.state.curPosition())\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n skipSpace() {\n const spaceStart = this.state.pos;\n const comments = [];\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case 32:\n case 160:\n case 9:\n ++this.state.pos;\n break;\n case 13:\n if (this.input.charCodeAt(this.state.pos + 1) === 10) {\n ++this.state.pos;\n }\n case 10:\n case 8232:\n case 8233:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n case 47:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case 42:\n {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n case 47:\n {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n default:\n break loop;\n }\n break;\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (ch === 45 && !this.inModule && this.options.annexB) {\n const pos = this.state.pos;\n if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) {\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (ch === 60 && !this.inModule && this.options.annexB) {\n const pos = this.state.pos;\n if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) {\n const comment = this.skipLineComment(4);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else {\n break loop;\n }\n }\n }\n if (comments.length > 0) {\n const end = this.state.pos;\n const commentWhitespace = {\n start: spaceStart,\n end,\n comments,\n leadingNode: null,\n trailingNode: null,\n containingNode: null\n };\n this.state.commentStack.push(commentWhitespace);\n }\n }\n finishToken(type, val) {\n this.state.end = this.state.pos;\n this.state.endLoc = this.state.curPosition();\n const prevType = this.state.type;\n this.state.type = type;\n this.state.value = val;\n if (!this.isLookahead) {\n this.updateContext(prevType);\n }\n }\n replaceToken(type) {\n this.state.type = type;\n this.updateContext();\n }\n readToken_numberSign() {\n if (this.state.pos === 0 && this.readToken_interpreter()) {\n return;\n }\n const nextPos = this.state.pos + 1;\n const next = this.codePointAtPos(nextPos);\n if (next >= 48 && next <= 57) {\n throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition());\n }\n if (next === 123 || next === 91 && this.hasPlugin(\"recordAndTuple\")) {\n this.expectPlugin(\"recordAndTuple\");\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") === \"bar\") {\n throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n if (next === 123) {\n this.finishToken(7);\n } else {\n this.finishToken(1);\n }\n } else if (isIdentifierStart(next)) {\n ++this.state.pos;\n this.finishToken(138, this.readWord1(next));\n } else if (next === 92) {\n ++this.state.pos;\n this.finishToken(138, this.readWord1());\n } else {\n this.finishOp(27, 1);\n }\n }\n readToken_dot() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next >= 48 && next <= 57) {\n this.readNumber(true);\n return;\n }\n if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) {\n this.state.pos += 3;\n this.finishToken(21);\n } else {\n ++this.state.pos;\n this.finishToken(16);\n }\n }\n readToken_slash() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61) {\n this.finishOp(31, 2);\n } else {\n this.finishOp(56, 1);\n }\n }\n readToken_interpreter() {\n if (this.state.pos !== 0 || this.length < 2) return false;\n let ch = this.input.charCodeAt(this.state.pos + 1);\n if (ch !== 33) return false;\n const start = this.state.pos;\n this.state.pos += 1;\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n const value = this.input.slice(start + 2, this.state.pos);\n this.finishToken(28, value);\n return true;\n }\n readToken_mult_modulo(code) {\n let type = code === 42 ? 55 : 54;\n let width = 1;\n let next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 42 && next === 42) {\n width++;\n next = this.input.charCodeAt(this.state.pos + 2);\n type = 57;\n }\n if (next === 61 && !this.state.inType) {\n width++;\n type = code === 37 ? 33 : 30;\n }\n this.finishOp(type, width);\n }\n readToken_pipe_amp(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === code) {\n if (this.input.charCodeAt(this.state.pos + 2) === 61) {\n this.finishOp(30, 3);\n } else {\n this.finishOp(code === 124 ? 41 : 42, 2);\n }\n return;\n }\n if (code === 124) {\n if (next === 62) {\n this.finishOp(39, 2);\n return;\n }\n if (this.hasPlugin(\"recordAndTuple\") && next === 125) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(9);\n return;\n }\n if (this.hasPlugin(\"recordAndTuple\") && next === 93) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(4);\n return;\n }\n }\n if (next === 61) {\n this.finishOp(30, 2);\n return;\n }\n this.finishOp(code === 124 ? 43 : 45, 1);\n }\n readToken_caret() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61 && !this.state.inType) {\n this.finishOp(32, 2);\n } else if (next === 94 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"hack\",\n topicToken: \"^^\"\n }])) {\n this.finishOp(37, 2);\n const lookaheadCh = this.input.codePointAt(this.state.pos);\n if (lookaheadCh === 94) {\n this.unexpected();\n }\n } else {\n this.finishOp(44, 1);\n }\n }\n readToken_atSign() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 64 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"hack\",\n topicToken: \"@@\"\n }])) {\n this.finishOp(38, 2);\n } else {\n this.finishOp(26, 1);\n }\n }\n readToken_plus_min(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === code) {\n this.finishOp(34, 2);\n return;\n }\n if (next === 61) {\n this.finishOp(30, 2);\n } else {\n this.finishOp(53, 1);\n }\n }\n readToken_lt() {\n const {\n pos\n } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n if (next === 60) {\n if (this.input.charCodeAt(pos + 2) === 61) {\n this.finishOp(30, 3);\n return;\n }\n this.finishOp(51, 2);\n return;\n }\n if (next === 61) {\n this.finishOp(49, 2);\n return;\n }\n this.finishOp(47, 1);\n }\n readToken_gt() {\n const {\n pos\n } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n if (next === 62) {\n const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(pos + size) === 61) {\n this.finishOp(30, size + 1);\n return;\n }\n this.finishOp(52, size);\n return;\n }\n if (next === 61) {\n this.finishOp(49, 2);\n return;\n }\n this.finishOp(48, 1);\n }\n readToken_eq_excl(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 61) {\n this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);\n return;\n }\n if (code === 61 && next === 62) {\n this.state.pos += 2;\n this.finishToken(19);\n return;\n }\n this.finishOp(code === 61 ? 29 : 35, 1);\n }\n readToken_question() {\n const next = this.input.charCodeAt(this.state.pos + 1);\n const next2 = this.input.charCodeAt(this.state.pos + 2);\n if (next === 63) {\n if (next2 === 61) {\n this.finishOp(30, 3);\n } else {\n this.finishOp(40, 2);\n }\n } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) {\n this.state.pos += 2;\n this.finishToken(18);\n } else {\n ++this.state.pos;\n this.finishToken(17);\n }\n }\n getTokenFromCode(code) {\n switch (code) {\n case 46:\n this.readToken_dot();\n return;\n case 40:\n ++this.state.pos;\n this.finishToken(10);\n return;\n case 41:\n ++this.state.pos;\n this.finishToken(11);\n return;\n case 59:\n ++this.state.pos;\n this.finishToken(13);\n return;\n case 44:\n ++this.state.pos;\n this.finishToken(12);\n return;\n case 91:\n if (this.hasPlugin(\"recordAndTuple\") && this.input.charCodeAt(this.state.pos + 1) === 124) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(2);\n } else {\n ++this.state.pos;\n this.finishToken(0);\n }\n return;\n case 93:\n ++this.state.pos;\n this.finishToken(3);\n return;\n case 123:\n if (this.hasPlugin(\"recordAndTuple\") && this.input.charCodeAt(this.state.pos + 1) === 124) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition());\n }\n this.state.pos += 2;\n this.finishToken(6);\n } else {\n ++this.state.pos;\n this.finishToken(5);\n }\n return;\n case 125:\n ++this.state.pos;\n this.finishToken(8);\n return;\n case 58:\n if (this.hasPlugin(\"functionBind\") && this.input.charCodeAt(this.state.pos + 1) === 58) {\n this.finishOp(15, 2);\n } else {\n ++this.state.pos;\n this.finishToken(14);\n }\n return;\n case 63:\n this.readToken_question();\n return;\n case 96:\n this.readTemplateToken();\n return;\n case 48:\n {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === 120 || next === 88) {\n this.readRadixNumber(16);\n return;\n }\n if (next === 111 || next === 79) {\n this.readRadixNumber(8);\n return;\n }\n if (next === 98 || next === 66) {\n this.readRadixNumber(2);\n return;\n }\n }\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57:\n this.readNumber(false);\n return;\n case 34:\n case 39:\n this.readString(code);\n return;\n case 47:\n this.readToken_slash();\n return;\n case 37:\n case 42:\n this.readToken_mult_modulo(code);\n return;\n case 124:\n case 38:\n this.readToken_pipe_amp(code);\n return;\n case 94:\n this.readToken_caret();\n return;\n case 43:\n case 45:\n this.readToken_plus_min(code);\n return;\n case 60:\n this.readToken_lt();\n return;\n case 62:\n this.readToken_gt();\n return;\n case 61:\n case 33:\n this.readToken_eq_excl(code);\n return;\n case 126:\n this.finishOp(36, 1);\n return;\n case 64:\n this.readToken_atSign();\n return;\n case 35:\n this.readToken_numberSign();\n return;\n case 92:\n this.readWord();\n return;\n default:\n if (isIdentifierStart(code)) {\n this.readWord(code);\n return;\n }\n }\n throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), {\n unexpected: String.fromCodePoint(code)\n });\n }\n finishOp(type, size) {\n const str = this.input.slice(this.state.pos, this.state.pos + size);\n this.state.pos += size;\n this.finishToken(type, str);\n }\n readRegexp() {\n const startLoc = this.state.startLoc;\n const start = this.state.start + 1;\n let escaped, inClass;\n let {\n pos\n } = this.state;\n for (;; ++pos) {\n if (pos >= this.length) {\n throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1));\n }\n const ch = this.input.charCodeAt(pos);\n if (isNewLine(ch)) {\n throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1));\n }\n if (escaped) {\n escaped = false;\n } else {\n if (ch === 91) {\n inClass = true;\n } else if (ch === 93 && inClass) {\n inClass = false;\n } else if (ch === 47 && !inClass) {\n break;\n }\n escaped = ch === 92;\n }\n }\n const content = this.input.slice(start, pos);\n ++pos;\n let mods = \"\";\n const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start);\n while (pos < this.length) {\n const cp = this.codePointAtPos(pos);\n const char = String.fromCharCode(cp);\n if (VALID_REGEX_FLAGS.has(cp)) {\n if (cp === 118) {\n if (mods.includes(\"u\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, nextPos());\n }\n } else if (cp === 117) {\n if (mods.includes(\"v\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, nextPos());\n }\n }\n if (mods.includes(char)) {\n this.raise(Errors.DuplicateRegExpFlags, nextPos());\n }\n } else if (isIdentifierChar(cp) || cp === 92) {\n this.raise(Errors.MalformedRegExpFlags, nextPos());\n } else {\n break;\n }\n ++pos;\n mods += char;\n }\n this.state.pos = pos;\n this.finishToken(137, {\n pattern: content,\n flags: mods\n });\n }\n readInt(radix, len, forceLen = false, allowNumSeparator = true) {\n const {\n n,\n pos\n } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false);\n this.state.pos = pos;\n return n;\n }\n readRadixNumber(radix) {\n const startLoc = this.state.curPosition();\n let isBigInt = false;\n this.state.pos += 2;\n const val = this.readInt(radix);\n if (val == null) {\n this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), {\n radix\n });\n }\n const next = this.input.charCodeAt(this.state.pos);\n if (next === 110) {\n ++this.state.pos;\n isBigInt = true;\n } else if (next === 109) {\n throw this.raise(Errors.InvalidDecimal, startLoc);\n }\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, this.state.curPosition());\n }\n if (isBigInt) {\n const str = this.input.slice(startLoc.index, this.state.pos).replace(/[_n]/g, \"\");\n this.finishToken(135, str);\n return;\n }\n this.finishToken(134, val);\n }\n readNumber(startsWithDot) {\n const start = this.state.pos;\n const startLoc = this.state.curPosition();\n let isFloat = false;\n let isBigInt = false;\n let hasExponent = false;\n let isOctal = false;\n if (!startsWithDot && this.readInt(10) === null) {\n this.raise(Errors.InvalidNumber, this.state.curPosition());\n }\n const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (hasLeadingZero) {\n const integer = this.input.slice(start, this.state.pos);\n this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc);\n if (!this.state.strict) {\n const underscorePos = integer.indexOf(\"_\");\n if (underscorePos > 0) {\n this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos));\n }\n }\n isOctal = hasLeadingZero && !/[89]/.test(integer);\n }\n let next = this.input.charCodeAt(this.state.pos);\n if (next === 46 && !isOctal) {\n ++this.state.pos;\n this.readInt(10);\n isFloat = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n if ((next === 69 || next === 101) && !isOctal) {\n next = this.input.charCodeAt(++this.state.pos);\n if (next === 43 || next === 45) {\n ++this.state.pos;\n }\n if (this.readInt(10) === null) {\n this.raise(Errors.InvalidOrMissingExponent, startLoc);\n }\n isFloat = true;\n hasExponent = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n if (next === 110) {\n if (isFloat || hasLeadingZero) {\n this.raise(Errors.InvalidBigIntLiteral, startLoc);\n }\n ++this.state.pos;\n isBigInt = true;\n }\n if (next === 109) {\n this.expectPlugin(\"decimal\", this.state.curPosition());\n if (hasExponent || hasLeadingZero) {\n this.raise(Errors.InvalidDecimal, startLoc);\n }\n ++this.state.pos;\n var isDecimal = true;\n }\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, this.state.curPosition());\n }\n const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, \"\");\n if (isBigInt) {\n this.finishToken(135, str);\n return;\n }\n if (isDecimal) {\n this.finishToken(136, str);\n return;\n }\n const val = isOctal ? parseInt(str, 8) : parseFloat(str);\n this.finishToken(134, val);\n }\n readCodePoint(throwOnInvalid) {\n const {\n code,\n pos\n } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint);\n this.state.pos = pos;\n return code;\n }\n readString(quote) {\n const {\n str,\n pos,\n curLine,\n lineStart\n } = readStringContents(quote === 34 ? \"double\" : \"single\", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);\n this.state.pos = pos + 1;\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n this.finishToken(133, str);\n }\n readTemplateContinuation() {\n if (!this.match(8)) {\n this.unexpected(null, 8);\n }\n this.state.pos--;\n this.readTemplateToken();\n }\n readTemplateToken() {\n const opening = this.input[this.state.pos];\n const {\n str,\n firstInvalidLoc,\n pos,\n curLine,\n lineStart\n } = readStringContents(\"template\", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);\n this.state.pos = pos + 1;\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n if (firstInvalidLoc) {\n this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, firstInvalidLoc.pos);\n }\n if (this.input.codePointAt(pos) === 96) {\n this.finishToken(24, firstInvalidLoc ? null : opening + str + \"`\");\n } else {\n this.state.pos++;\n this.finishToken(25, firstInvalidLoc ? null : opening + str + \"${\");\n }\n }\n recordStrictModeErrors(toParseError, at) {\n const index = at.index;\n if (this.state.strict && !this.state.strictErrors.has(index)) {\n this.raise(toParseError, at);\n } else {\n this.state.strictErrors.set(index, [toParseError, at]);\n }\n }\n readWord1(firstCode) {\n this.state.containsEsc = false;\n let word = \"\";\n const start = this.state.pos;\n let chunkStart = this.state.pos;\n if (firstCode !== undefined) {\n this.state.pos += firstCode <= 0xffff ? 1 : 2;\n }\n while (this.state.pos < this.length) {\n const ch = this.codePointAtPos(this.state.pos);\n if (isIdentifierChar(ch)) {\n this.state.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) {\n this.state.containsEsc = true;\n word += this.input.slice(chunkStart, this.state.pos);\n const escStart = this.state.curPosition();\n const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n if (this.input.charCodeAt(++this.state.pos) !== 117) {\n this.raise(Errors.MissingUnicodeEscape, this.state.curPosition());\n chunkStart = this.state.pos - 1;\n continue;\n }\n ++this.state.pos;\n const esc = this.readCodePoint(true);\n if (esc !== null) {\n if (!identifierCheck(esc)) {\n this.raise(Errors.EscapedCharNotAnIdentifier, escStart);\n }\n word += String.fromCodePoint(esc);\n }\n chunkStart = this.state.pos;\n } else {\n break;\n }\n }\n return word + this.input.slice(chunkStart, this.state.pos);\n }\n readWord(firstCode) {\n const word = this.readWord1(firstCode);\n const type = keywords$1.get(word);\n if (type !== undefined) {\n this.finishToken(type, tokenLabelName(type));\n } else {\n this.finishToken(132, word);\n }\n }\n checkKeywordEscapes() {\n const {\n type\n } = this.state;\n if (tokenIsKeyword(type) && this.state.containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, {\n reservedWord: tokenLabelName(type)\n });\n }\n }\n raise(toParseError, at, details = {}) {\n const loc = at instanceof Position ? at : at.loc.start;\n const error = toParseError(loc, details);\n if (!this.options.errorRecovery) throw error;\n if (!this.isLookahead) this.state.errors.push(error);\n return error;\n }\n raiseOverwrite(toParseError, at, details = {}) {\n const loc = at instanceof Position ? at : at.loc.start;\n const pos = loc.index;\n const errors = this.state.errors;\n for (let i = errors.length - 1; i >= 0; i--) {\n const error = errors[i];\n if (error.loc.index === pos) {\n return errors[i] = toParseError(loc, details);\n }\n if (error.loc.index < pos) break;\n }\n return this.raise(toParseError, at, details);\n }\n updateContext(prevType) {}\n unexpected(loc, type) {\n throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, {\n expected: type ? tokenLabelName(type) : null\n });\n }\n expectPlugin(pluginName, loc) {\n if (this.hasPlugin(pluginName)) {\n return true;\n }\n throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, {\n missingPlugin: [pluginName]\n });\n }\n expectOnePlugin(pluginNames) {\n if (!pluginNames.some(name => this.hasPlugin(name))) {\n throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, {\n missingPlugin: pluginNames\n });\n }\n }\n errorBuilder(error) {\n return (pos, lineStart, curLine) => {\n this.raise(error, buildPosition(pos, lineStart, curLine));\n };\n }\n}\nclass ClassScope {\n constructor() {\n this.privateNames = new Set();\n this.loneAccessors = new Map();\n this.undefinedPrivateNames = new Map();\n }\n}\nclass ClassScopeHandler {\n constructor(parser) {\n this.parser = void 0;\n this.stack = [];\n this.undefinedPrivateNames = new Map();\n this.parser = parser;\n }\n current() {\n return this.stack[this.stack.length - 1];\n }\n enter() {\n this.stack.push(new ClassScope());\n }\n exit() {\n const oldClassScope = this.stack.pop();\n const current = this.current();\n for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) {\n if (current) {\n if (!current.undefinedPrivateNames.has(name)) {\n current.undefinedPrivateNames.set(name, loc);\n }\n } else {\n this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, {\n identifierName: name\n });\n }\n }\n }\n declarePrivateName(name, elementType, loc) {\n const {\n privateNames,\n loneAccessors,\n undefinedPrivateNames\n } = this.current();\n let redefined = privateNames.has(name);\n if (elementType & 3) {\n const accessor = redefined && loneAccessors.get(name);\n if (accessor) {\n const oldStatic = accessor & 4;\n const newStatic = elementType & 4;\n const oldKind = accessor & 3;\n const newKind = elementType & 3;\n redefined = oldKind === newKind || oldStatic !== newStatic;\n if (!redefined) loneAccessors.delete(name);\n } else if (!redefined) {\n loneAccessors.set(name, elementType);\n }\n }\n if (redefined) {\n this.parser.raise(Errors.PrivateNameRedeclaration, loc, {\n identifierName: name\n });\n }\n privateNames.add(name);\n undefinedPrivateNames.delete(name);\n }\n usePrivateName(name, loc) {\n let classScope;\n for (classScope of this.stack) {\n if (classScope.privateNames.has(name)) return;\n }\n if (classScope) {\n classScope.undefinedPrivateNames.set(name, loc);\n } else {\n this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, {\n identifierName: name\n });\n }\n }\n}\nclass ExpressionScope {\n constructor(type = 0) {\n this.type = type;\n }\n canBeArrowParameterDeclaration() {\n return this.type === 2 || this.type === 1;\n }\n isCertainlyParameterDeclaration() {\n return this.type === 3;\n }\n}\nclass ArrowHeadParsingScope extends ExpressionScope {\n constructor(type) {\n super(type);\n this.declarationErrors = new Map();\n }\n recordDeclarationError(ParsingErrorClass, at) {\n const index = at.index;\n this.declarationErrors.set(index, [ParsingErrorClass, at]);\n }\n clearDeclarationError(index) {\n this.declarationErrors.delete(index);\n }\n iterateErrors(iterator) {\n this.declarationErrors.forEach(iterator);\n }\n}\nclass ExpressionScopeHandler {\n constructor(parser) {\n this.parser = void 0;\n this.stack = [new ExpressionScope()];\n this.parser = parser;\n }\n enter(scope) {\n this.stack.push(scope);\n }\n exit() {\n this.stack.pop();\n }\n recordParameterInitializerError(toParseError, node) {\n const origin = node.loc.start;\n const {\n stack\n } = this;\n let i = stack.length - 1;\n let scope = stack[i];\n while (!scope.isCertainlyParameterDeclaration()) {\n if (scope.canBeArrowParameterDeclaration()) {\n scope.recordDeclarationError(toParseError, origin);\n } else {\n return;\n }\n scope = stack[--i];\n }\n this.parser.raise(toParseError, origin);\n }\n recordArrowParameterBindingError(error, node) {\n const {\n stack\n } = this;\n const scope = stack[stack.length - 1];\n const origin = node.loc.start;\n if (scope.isCertainlyParameterDeclaration()) {\n this.parser.raise(error, origin);\n } else if (scope.canBeArrowParameterDeclaration()) {\n scope.recordDeclarationError(error, origin);\n } else {\n return;\n }\n }\n recordAsyncArrowParametersError(at) {\n const {\n stack\n } = this;\n let i = stack.length - 1;\n let scope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n if (scope.type === 2) {\n scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at);\n }\n scope = stack[--i];\n }\n }\n validateAsPattern() {\n const {\n stack\n } = this;\n const currentScope = stack[stack.length - 1];\n if (!currentScope.canBeArrowParameterDeclaration()) return;\n currentScope.iterateErrors(([toParseError, loc]) => {\n this.parser.raise(toParseError, loc);\n let i = stack.length - 2;\n let scope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n scope.clearDeclarationError(loc.index);\n scope = stack[--i];\n }\n });\n }\n}\nfunction newParameterDeclarationScope() {\n return new ExpressionScope(3);\n}\nfunction newArrowHeadScope() {\n return new ArrowHeadParsingScope(1);\n}\nfunction newAsyncArrowScope() {\n return new ArrowHeadParsingScope(2);\n}\nfunction newExpressionScope() {\n return new ExpressionScope();\n}\nclass ProductionParameterHandler {\n constructor() {\n this.stacks = [];\n }\n enter(flags) {\n this.stacks.push(flags);\n }\n exit() {\n this.stacks.pop();\n }\n currentFlags() {\n return this.stacks[this.stacks.length - 1];\n }\n get hasAwait() {\n return (this.currentFlags() & 2) > 0;\n }\n get hasYield() {\n return (this.currentFlags() & 1) > 0;\n }\n get hasReturn() {\n return (this.currentFlags() & 4) > 0;\n }\n get hasIn() {\n return (this.currentFlags() & 8) > 0;\n }\n}\nfunction functionFlags(isAsync, isGenerator) {\n return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0);\n}\nclass UtilParser extends Tokenizer {\n addExtra(node, key, value, enumerable = true) {\n if (!node) return;\n let {\n extra\n } = node;\n if (extra == null) {\n extra = {};\n node.extra = extra;\n }\n if (enumerable) {\n extra[key] = value;\n } else {\n Object.defineProperty(extra, key, {\n enumerable,\n value\n });\n }\n }\n isContextual(token) {\n return this.state.type === token && !this.state.containsEsc;\n }\n isUnparsedContextual(nameStart, name) {\n const nameEnd = nameStart + name.length;\n if (this.input.slice(nameStart, nameEnd) === name) {\n const nextCh = this.input.charCodeAt(nameEnd);\n return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800);\n }\n return false;\n }\n isLookaheadContextual(name) {\n const next = this.nextTokenStart();\n return this.isUnparsedContextual(next, name);\n }\n eatContextual(token) {\n if (this.isContextual(token)) {\n this.next();\n return true;\n }\n return false;\n }\n expectContextual(token, toParseError) {\n if (!this.eatContextual(token)) {\n if (toParseError != null) {\n throw this.raise(toParseError, this.state.startLoc);\n }\n this.unexpected(null, token);\n }\n }\n canInsertSemicolon() {\n return this.match(139) || this.match(8) || this.hasPrecedingLineBreak();\n }\n hasPrecedingLineBreak() {\n return hasNewLine(this.input, this.state.lastTokEndLoc.index, this.state.start);\n }\n hasFollowingLineBreak() {\n return hasNewLine(this.input, this.state.end, this.nextTokenStart());\n }\n isLineTerminator() {\n return this.eat(13) || this.canInsertSemicolon();\n }\n semicolon(allowAsi = true) {\n if (allowAsi ? this.isLineTerminator() : this.eat(13)) return;\n this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc);\n }\n expect(type, loc) {\n if (!this.eat(type)) {\n this.unexpected(loc, type);\n }\n }\n tryParse(fn, oldState = this.state.clone()) {\n const abortSignal = {\n node: null\n };\n try {\n const node = fn((node = null) => {\n abortSignal.node = node;\n throw abortSignal;\n });\n if (this.state.errors.length > oldState.errors.length) {\n const failState = this.state;\n this.state = oldState;\n this.state.tokensLength = failState.tokensLength;\n return {\n node,\n error: failState.errors[oldState.errors.length],\n thrown: false,\n aborted: false,\n failState\n };\n }\n return {\n node,\n error: null,\n thrown: false,\n aborted: false,\n failState: null\n };\n } catch (error) {\n const failState = this.state;\n this.state = oldState;\n if (error instanceof SyntaxError) {\n return {\n node: null,\n error,\n thrown: true,\n aborted: false,\n failState\n };\n }\n if (error === abortSignal) {\n return {\n node: abortSignal.node,\n error: null,\n thrown: false,\n aborted: true,\n failState\n };\n }\n throw error;\n }\n }\n checkExpressionErrors(refExpressionErrors, andThrow) {\n if (!refExpressionErrors) return false;\n const {\n shorthandAssignLoc,\n doubleProtoLoc,\n privateKeyLoc,\n optionalParametersLoc\n } = refExpressionErrors;\n const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc;\n if (!andThrow) {\n return hasErrors;\n }\n if (shorthandAssignLoc != null) {\n this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc);\n }\n if (doubleProtoLoc != null) {\n this.raise(Errors.DuplicateProto, doubleProtoLoc);\n }\n if (privateKeyLoc != null) {\n this.raise(Errors.UnexpectedPrivateField, privateKeyLoc);\n }\n if (optionalParametersLoc != null) {\n this.unexpected(optionalParametersLoc);\n }\n }\n isLiteralPropertyName() {\n return tokenIsLiteralPropertyName(this.state.type);\n }\n isPrivateName(node) {\n return node.type === \"PrivateName\";\n }\n getPrivateNameSV(node) {\n return node.id.name;\n }\n hasPropertyAsPrivateName(node) {\n return (node.type === \"MemberExpression\" || node.type === \"OptionalMemberExpression\") && this.isPrivateName(node.property);\n }\n isObjectProperty(node) {\n return node.type === \"ObjectProperty\";\n }\n isObjectMethod(node) {\n return node.type === \"ObjectMethod\";\n }\n initializeScopes(inModule = this.options.sourceType === \"module\") {\n const oldLabels = this.state.labels;\n this.state.labels = [];\n const oldExportedIdentifiers = this.exportedIdentifiers;\n this.exportedIdentifiers = new Set();\n const oldInModule = this.inModule;\n this.inModule = inModule;\n const oldScope = this.scope;\n const ScopeHandler = this.getScopeHandler();\n this.scope = new ScopeHandler(this, inModule);\n const oldProdParam = this.prodParam;\n this.prodParam = new ProductionParameterHandler();\n const oldClassScope = this.classScope;\n this.classScope = new ClassScopeHandler(this);\n const oldExpressionScope = this.expressionScope;\n this.expressionScope = new ExpressionScopeHandler(this);\n return () => {\n this.state.labels = oldLabels;\n this.exportedIdentifiers = oldExportedIdentifiers;\n this.inModule = oldInModule;\n this.scope = oldScope;\n this.prodParam = oldProdParam;\n this.classScope = oldClassScope;\n this.expressionScope = oldExpressionScope;\n };\n }\n enterInitialScopes() {\n let paramFlags = 0;\n if (this.inModule) {\n paramFlags |= 2;\n }\n this.scope.enter(1);\n this.prodParam.enter(paramFlags);\n }\n checkDestructuringPrivate(refExpressionErrors) {\n const {\n privateKeyLoc\n } = refExpressionErrors;\n if (privateKeyLoc !== null) {\n this.expectPlugin(\"destructuringPrivate\", privateKeyLoc);\n }\n }\n}\nclass ExpressionErrors {\n constructor() {\n this.shorthandAssignLoc = null;\n this.doubleProtoLoc = null;\n this.privateKeyLoc = null;\n this.optionalParametersLoc = null;\n }\n}\nclass Node {\n constructor(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n this.loc = new SourceLocation(loc);\n if (parser != null && parser.options.ranges) this.range = [pos, 0];\n if (parser != null && parser.filename) this.loc.filename = parser.filename;\n }\n}\nconst NodePrototype = Node.prototype;\n{\n NodePrototype.__clone = function () {\n const newNode = new Node(undefined, this.start, this.loc.start);\n const keys = Object.keys(this);\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n if (key !== \"leadingComments\" && key !== \"trailingComments\" && key !== \"innerComments\") {\n newNode[key] = this[key];\n }\n }\n return newNode;\n };\n}\nfunction clonePlaceholder(node) {\n return cloneIdentifier(node);\n}\nfunction cloneIdentifier(node) {\n const {\n type,\n start,\n end,\n loc,\n range,\n extra,\n name\n } = node;\n const cloned = Object.create(NodePrototype);\n cloned.type = type;\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n cloned.extra = extra;\n cloned.name = name;\n if (type === \"Placeholder\") {\n cloned.expectedNode = node.expectedNode;\n }\n return cloned;\n}\nfunction cloneStringLiteral(node) {\n const {\n type,\n start,\n end,\n loc,\n range,\n extra\n } = node;\n if (type === \"Placeholder\") {\n return clonePlaceholder(node);\n }\n const cloned = Object.create(NodePrototype);\n cloned.type = type;\n cloned.start = start;\n cloned.end = end;\n cloned.loc = loc;\n cloned.range = range;\n if (node.raw !== undefined) {\n cloned.raw = node.raw;\n } else {\n cloned.extra = extra;\n }\n cloned.value = node.value;\n return cloned;\n}\nclass NodeUtils extends UtilParser {\n startNode() {\n const loc = this.state.startLoc;\n return new Node(this, loc.index, loc);\n }\n startNodeAt(loc) {\n return new Node(this, loc.index, loc);\n }\n startNodeAtNode(type) {\n return this.startNodeAt(type.loc.start);\n }\n finishNode(node, type) {\n return this.finishNodeAt(node, type, this.state.lastTokEndLoc);\n }\n finishNodeAt(node, type, endLoc) {\n node.type = type;\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.options.ranges) node.range[1] = endLoc.index;\n if (this.options.attachComment) this.processComment(node);\n return node;\n }\n resetStartLocation(node, startLoc) {\n node.start = startLoc.index;\n node.loc.start = startLoc;\n if (this.options.ranges) node.range[0] = startLoc.index;\n }\n resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.options.ranges) node.range[1] = endLoc.index;\n }\n resetStartLocationFromNode(node, locationNode) {\n this.resetStartLocation(node, locationNode.loc.start);\n }\n}\nconst reservedTypes = new Set([\"_\", \"any\", \"bool\", \"boolean\", \"empty\", \"extends\", \"false\", \"interface\", \"mixed\", \"null\", \"number\", \"static\", \"string\", \"true\", \"typeof\", \"void\"]);\nconst FlowErrors = ParseErrorEnum`flow`({\n AmbiguousConditionalArrow: \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind: \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.\",\n AssignReservedType: ({\n reservedType\n }) => `Cannot overwrite reserved type ${reservedType}.`,\n DeclareClassElement: \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer: \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement.\",\n EnumBooleanMemberNotInitialized: ({\n memberName,\n enumName\n }) => `Boolean enum members need to be initialized. Use either \\`${memberName} = true,\\` or \\`${memberName} = false,\\` in enum \\`${enumName}\\`.`,\n EnumDuplicateMemberName: ({\n memberName,\n enumName\n }) => `Enum member names need to be unique, but the name \\`${memberName}\\` has already been used before in enum \\`${enumName}\\`.`,\n EnumInconsistentMemberValues: ({\n enumName\n }) => `Enum \\`${enumName}\\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,\n EnumInvalidExplicitType: ({\n invalidEnumType,\n enumName\n }) => `Enum type \\`${invalidEnumType}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidExplicitTypeUnknownSupplied: ({\n enumName\n }) => `Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerPrimaryType: ({\n enumName,\n memberName,\n explicitType\n }) => `Enum \\`${enumName}\\` has type \\`${explicitType}\\`, so the initializer of \\`${memberName}\\` needs to be a ${explicitType} literal.`,\n EnumInvalidMemberInitializerSymbolType: ({\n enumName,\n memberName\n }) => `Symbol enum members cannot be initialized. Use \\`${memberName},\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerUnknownType: ({\n enumName,\n memberName\n }) => `The enum member initializer for \\`${memberName}\\` needs to be a literal (either a boolean, number, or string) in enum \\`${enumName}\\`.`,\n EnumInvalidMemberName: ({\n enumName,\n memberName,\n suggestion\n }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \\`${memberName}\\`, consider using \\`${suggestion}\\`, in enum \\`${enumName}\\`.`,\n EnumNumberMemberNotInitialized: ({\n enumName,\n memberName\n }) => `Number enum members need to be initialized, e.g. \\`${memberName} = 1\\` in enum \\`${enumName}\\`.`,\n EnumStringMemberInconsistentlyInitialized: ({\n enumName\n }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \\`${enumName}\\`.`,\n GetterMayNotHaveThisParam: \"A getter cannot have a `this` parameter.\",\n ImportReflectionHasImportType: \"An `import module` declaration can not use `type` or `typeof` keyword.\",\n ImportTypeShorthandOnlyInPureImport: \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.\",\n InexactInsideExact: \"Explicit inexact syntax cannot appear inside an explicit exact object type.\",\n InexactInsideNonObject: \"Explicit inexact syntax cannot appear in class or interface definitions.\",\n InexactVariance: \"Explicit inexact syntax cannot have variance.\",\n InvalidNonTypeImportInDeclareModule: \"Imports within a `declare module` body must always be `import type` or `import typeof`.\",\n MissingTypeParamDefault: \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule: \"`declare module` cannot be used inside another `declare module`.\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment.\",\n PatternIsOptional: Object.assign({\n message: \"A binding pattern parameter cannot be optional in an implementation signature.\"\n }, {\n reasonCode: \"OptionalBindingPattern\"\n }),\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance.\",\n ThisParamAnnotationRequired: \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor: \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst: \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer: \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeCastInPattern: \"The type cast expression is expected to be wrapped with parenthesis.\",\n UnexpectedExplicitInexactInObject: \"Explicit inexact syntax must appear at the end of an inexact object.\",\n UnexpectedReservedType: ({\n reservedType\n }) => `Unexpected reserved type ${reservedType}.`,\n UnexpectedReservedUnderscore: \"`_` is only allowed as a type argument to call or new.\",\n UnexpectedSpaceBetweenModuloChecks: \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType: \"Spread operator cannot appear in class or interface definitions.\",\n UnexpectedSubtractionOperand: 'Unexpected token, expected \"number\" or \"bigint\".',\n UnexpectedTokenAfterTypeParameter: \"Expected an arrow function after this type parameter declaration.\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction: \"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.\",\n UnsupportedDeclareExportKind: ({\n unsupportedExportKind,\n suggestion\n }) => `\\`declare export ${unsupportedExportKind}\\` is not supported. Use \\`${suggestion}\\` instead.`,\n UnsupportedStatementInDeclareModule: \"Only declares and type imports are allowed inside declare module.\",\n UnterminatedFlowComment: \"Unterminated flow-comment.\"\n});\nfunction isEsModuleType(bodyElement) {\n return bodyElement.type === \"DeclareExportAllDeclaration\" || bodyElement.type === \"DeclareExportDeclaration\" && (!bodyElement.declaration || bodyElement.declaration.type !== \"TypeAlias\" && bodyElement.declaration.type !== \"InterfaceDeclaration\");\n}\nfunction hasTypeImportKind(node) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\"\n};\nfunction partition(list, test) {\n const list1 = [];\n const list2 = [];\n for (let i = 0; i < list.length; i++) {\n (test(list[i], i, list) ? list1 : list2).push(list[i]);\n }\n return [list1, list2];\n}\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\nvar flow = superClass => class FlowParserMixin extends superClass {\n constructor(...args) {\n super(...args);\n this.flowPragma = undefined;\n }\n getScopeHandler() {\n return FlowScopeHandler;\n }\n shouldParseTypes() {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n finishToken(type, val) {\n if (type !== 133 && type !== 13 && type !== 28) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n super.finishToken(type, val);\n }\n addComment(comment) {\n if (this.flowPragma === undefined) {\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) ;else if (matches[1] === \"flow\") {\n this.flowPragma = \"flow\";\n } else if (matches[1] === \"noflow\") {\n this.flowPragma = \"noflow\";\n } else {\n throw new Error(\"Unexpected flow pragma\");\n }\n }\n super.addComment(comment);\n }\n flowParseTypeInitialiser(tok) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || 14);\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n flowParsePredicate() {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n this.next();\n this.expectContextual(110);\n if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc);\n }\n if (this.eat(10)) {\n node.value = super.parseExpression();\n this.expect(11);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n flowParseTypeAndPredicateInitialiser() {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(14);\n let type = null;\n let predicate = null;\n if (this.match(54)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(54)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n flowParseDeclareClass(node) {\n this.next();\n this.flowParseInterfaceish(node, true);\n return this.finishNode(node, \"DeclareClass\");\n }\n flowParseDeclareFunction(node) {\n this.next();\n const id = node.id = this.parseIdentifier();\n const typeNode = this.startNode();\n const typeContainer = this.startNode();\n if (this.match(47)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n this.expect(10);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(11);\n [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser();\n typeContainer.typeAnnotation = this.finishNode(typeNode, \"FunctionTypeAnnotation\");\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n this.resetEndLocation(id);\n this.semicolon();\n this.scope.declareName(node.id.name, 2048, node.id.loc.start);\n return this.finishNode(node, \"DeclareFunction\");\n }\n flowParseDeclare(node, insideModule) {\n if (this.match(80)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(68)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(74)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(127)) {\n if (this.match(16)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc);\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(130)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(131)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(129)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(82)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n } else {\n this.unexpected();\n }\n }\n flowParseDeclareVariable(node) {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier(true);\n this.scope.declareName(node.id.name, 5, node.id.loc.start);\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n flowParseDeclareModule(node) {\n this.scope.enter(0);\n if (this.match(133)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n const bodyNode = node.body = this.startNode();\n const body = bodyNode.body = [];\n this.expect(5);\n while (!this.match(8)) {\n let bodyNode = this.startNode();\n if (this.match(83)) {\n this.next();\n if (!this.isContextual(130) && !this.match(87)) {\n this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc);\n }\n super.parseImport(bodyNode);\n } else {\n this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule);\n bodyNode = this.flowParseDeclare(bodyNode, true);\n }\n body.push(bodyNode);\n }\n this.scope.exit();\n this.expect(8);\n this.finishNode(bodyNode, \"BlockStatement\");\n let kind = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement);\n }\n if (kind === \"ES\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement);\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n flowParseDeclareExportDeclaration(node, insideModule) {\n this.expect(82);\n if (this.eat(65)) {\n if (this.match(68) || this.match(80)) {\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) {\n const label = this.state.value;\n throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, {\n unsupportedExportKind: label,\n suggestion: exportSuggestions[label]\n });\n }\n if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) {\n node = this.parseExport(node, null);\n if (node.type === \"ExportNamedDeclaration\") {\n node.type = \"ExportDeclaration\";\n node.default = false;\n delete node.exportKind;\n }\n node.type = \"Declare\" + node.type;\n return node;\n }\n }\n this.unexpected();\n }\n flowParseDeclareModuleExports(node) {\n this.next();\n this.expectContextual(111);\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n flowParseDeclareTypeAlias(node) {\n this.next();\n const finished = this.flowParseTypeAlias(node);\n finished.type = \"DeclareTypeAlias\";\n return finished;\n }\n flowParseDeclareOpaqueType(node) {\n this.next();\n const finished = this.flowParseOpaqueType(node, true);\n finished.type = \"DeclareOpaqueType\";\n return finished;\n }\n flowParseDeclareInterface(node) {\n this.next();\n this.flowParseInterfaceish(node, false);\n return this.finishNode(node, \"DeclareInterface\");\n }\n flowParseInterfaceish(node, isClass) {\n node.id = this.flowParseRestrictedIdentifier(!isClass, true);\n this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.extends = [];\n if (this.eat(81)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(12));\n }\n if (isClass) {\n node.implements = [];\n node.mixins = [];\n if (this.eatContextual(117)) {\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(12));\n }\n if (this.eatContextual(113)) {\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(12));\n }\n }\n node.body = this.flowParseObjectType({\n allowStatic: isClass,\n allowExact: false,\n allowSpread: false,\n allowProto: isClass,\n allowInexact: false\n });\n }\n flowParseInterfaceExtends() {\n const node = this.startNode();\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n return this.finishNode(node, \"InterfaceExtends\");\n }\n flowParseInterface(node) {\n this.flowParseInterfaceish(node, false);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n checkNotUnderscore(word) {\n if (word === \"_\") {\n this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc);\n }\n }\n checkReservedType(word, startLoc, declaration) {\n if (!reservedTypes.has(word)) return;\n this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, {\n reservedType: word\n });\n }\n flowParseRestrictedIdentifier(liberal, declaration) {\n this.checkReservedType(this.state.value, this.state.startLoc, declaration);\n return this.parseIdentifier(liberal);\n }\n flowParseTypeAlias(node) {\n node.id = this.flowParseRestrictedIdentifier(false, true);\n this.scope.declareName(node.id.name, 8201, node.id.loc.start);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.right = this.flowParseTypeInitialiser(29);\n this.semicolon();\n return this.finishNode(node, \"TypeAlias\");\n }\n flowParseOpaqueType(node, declare) {\n this.expectContextual(130);\n node.id = this.flowParseRestrictedIdentifier(true, true);\n this.scope.declareName(node.id.name, 8201, node.id.loc.start);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n node.supertype = null;\n if (this.match(14)) {\n node.supertype = this.flowParseTypeInitialiser(14);\n }\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(29);\n }\n this.semicolon();\n return this.finishNode(node, \"OpaqueType\");\n }\n flowParseTypeParameter(requireDefault = false) {\n const nodeStartLoc = this.state.startLoc;\n const node = this.startNode();\n const variance = this.flowParseVariance();\n const ident = this.flowParseTypeAnnotatableIdentifier();\n node.name = ident.name;\n node.variance = variance;\n node.bound = ident.typeAnnotation;\n if (this.match(29)) {\n this.eat(29);\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc);\n }\n }\n return this.finishNode(node, \"TypeParameter\");\n }\n flowParseTypeParameterDeclaration() {\n const oldInType = this.state.inType;\n const node = this.startNode();\n node.params = [];\n this.state.inType = true;\n if (this.match(47) || this.match(142)) {\n this.next();\n } else {\n this.unexpected();\n }\n let defaultRequired = false;\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n node.params.push(typeParameter);\n if (typeParameter.default) {\n defaultRequired = true;\n }\n if (!this.match(48)) {\n this.expect(12);\n }\n } while (!this.match(48));\n this.expect(48);\n this.state.inType = oldInType;\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n flowParseTypeParameterInstantiation() {\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n this.state.inType = true;\n this.expect(47);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(48)) {\n node.params.push(this.flowParseType());\n if (!this.match(48)) {\n this.expect(12);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n this.expect(48);\n this.state.inType = oldInType;\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n flowParseTypeParameterInstantiationCallOrNew() {\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n this.state.inType = true;\n this.expect(47);\n while (!this.match(48)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(48)) {\n this.expect(12);\n }\n }\n this.expect(48);\n this.state.inType = oldInType;\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n flowParseInterfaceType() {\n const node = this.startNode();\n this.expectContextual(129);\n node.extends = [];\n if (this.eat(81)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(12));\n }\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false\n });\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n flowParseObjectPropertyKey() {\n return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(true);\n }\n flowParseObjectTypeIndexer(node, isStatic, variance) {\n node.static = isStatic;\n if (this.lookahead().type === 14) {\n node.id = this.flowParseObjectPropertyKey();\n node.key = this.flowParseTypeInitialiser();\n } else {\n node.id = null;\n node.key = this.flowParseType();\n }\n this.expect(3);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n flowParseObjectTypeInternalSlot(node, isStatic) {\n node.static = isStatic;\n node.id = this.flowParseObjectPropertyKey();\n this.expect(3);\n this.expect(3);\n if (this.match(47) || this.match(10)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start));\n } else {\n node.method = false;\n if (this.eat(17)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n flowParseObjectTypeMethodish(node) {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n this.expect(10);\n if (this.match(78)) {\n node.this = this.flowParseFunctionTypeParam(true);\n node.this.name = null;\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n while (!this.match(11) && !this.match(21)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n if (this.eat(21)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(11);\n node.returnType = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n flowParseObjectTypeCallProperty(node, isStatic) {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact\n }) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const nodeStart = this.startNode();\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(6)) {\n this.expect(6);\n endDelim = 9;\n exact = true;\n } else {\n this.expect(5);\n endDelim = 8;\n exact = false;\n }\n nodeStart.exact = exact;\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStartLoc = null;\n let inexactStartLoc = null;\n const node = this.startNode();\n if (allowProto && this.isContextual(118)) {\n const lookahead = this.lookahead();\n if (lookahead.type !== 14 && lookahead.type !== 17) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n if (allowStatic && this.isContextual(106)) {\n const lookahead = this.lookahead();\n if (lookahead.type !== 14 && lookahead.type !== 17) {\n this.next();\n isStatic = true;\n }\n }\n const variance = this.flowParseVariance();\n if (this.eat(0)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (this.eat(0)) {\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic));\n } else {\n nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance));\n }\n } else if (this.match(10) || this.match(47)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic));\n } else {\n let kind = \"init\";\n if (this.isContextual(99) || this.isContextual(104)) {\n const lookahead = this.lookahead();\n if (tokenIsLiteralPropertyName(lookahead.type)) {\n kind = this.state.value;\n this.next();\n }\n }\n const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact);\n if (propOrInexact === null) {\n inexact = true;\n inexactStartLoc = this.state.lastTokStartLoc;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n this.flowObjectTypeSemicolon();\n if (inexactStartLoc && !this.match(8) && !this.match(9)) {\n this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc);\n }\n }\n this.expect(endDelim);\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n this.state.inType = oldInType;\n return out;\n }\n flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) {\n if (this.eat(21)) {\n const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9);\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc);\n } else if (!allowInexact) {\n this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.InexactVariance, variance);\n }\n return null;\n }\n if (!allowSpread) {\n this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc);\n }\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.SpreadVariance, variance);\n }\n node.argument = this.flowParseType();\n return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n } else {\n node.key = this.flowParseObjectPropertyKey();\n node.static = isStatic;\n node.proto = protoStartLoc != null;\n node.kind = kind;\n let optional = false;\n if (this.match(47) || this.match(10)) {\n node.method = true;\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start));\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n if (!allowSpread && node.key.name === \"constructor\" && node.value.this) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this);\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n node.method = false;\n if (this.eat(17)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n node.optional = optional;\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n flowCheckGetterSetterParams(property) {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const length = property.value.params.length + (property.value.rest ? 1 : 0);\n if (property.value.this) {\n this.raise(property.kind === \"get\" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this);\n }\n if (length !== paramCount) {\n this.raise(property.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity, property);\n }\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(Errors.BadSetterRestParameter, property);\n }\n }\n flowObjectTypeSemicolon() {\n if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) {\n this.unexpected();\n }\n }\n flowParseQualifiedTypeIdentifier(startLoc, id) {\n var _startLoc;\n (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc;\n let node = id || this.flowParseRestrictedIdentifier(true);\n while (this.eat(16)) {\n const node2 = this.startNodeAt(startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n return node;\n }\n flowParseGenericType(startLoc, id) {\n const node = this.startNodeAt(startLoc);\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n flowParseTypeofType() {\n const node = this.startNode();\n this.expect(87);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n flowParseTupleType() {\n const node = this.startNode();\n node.types = [];\n this.expect(0);\n while (this.state.pos < this.length && !this.match(3)) {\n node.types.push(this.flowParseType());\n if (this.match(3)) break;\n this.expect(12);\n }\n this.expect(3);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n flowParseFunctionTypeParam(first) {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode();\n const lh = this.lookahead();\n const isThis = this.state.type === 78;\n if (lh.type === 14 || lh.type === 17) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node);\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(17)) {\n optional = true;\n if (isThis) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, node);\n }\n }\n typeAnnotation = this.flowParseTypeInitialiser();\n } else {\n typeAnnotation = this.flowParseType();\n }\n node.name = name;\n node.optional = optional;\n node.typeAnnotation = typeAnnotation;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n reinterpretTypeAsFunctionTypeParam(type) {\n const node = this.startNodeAt(type.loc.start);\n node.name = null;\n node.optional = false;\n node.typeAnnotation = type;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n flowParseFunctionTypeParams(params = []) {\n let rest = null;\n let _this = null;\n if (this.match(78)) {\n _this = this.flowParseFunctionTypeParam(true);\n _this.name = null;\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n while (!this.match(11) && !this.match(21)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(11)) {\n this.expect(12);\n }\n }\n if (this.eat(21)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return {\n params,\n rest,\n _this\n };\n }\n flowIdentToTypeAnnotation(startLoc, node, id) {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startLoc, id);\n }\n }\n flowParsePrimaryType() {\n const startLoc = this.state.startLoc;\n const node = this.startNode();\n let tmp;\n let type;\n let isGroupedType = false;\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n switch (this.state.type) {\n case 5:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true\n });\n case 6:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false\n });\n case 0:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n case 47:\n {\n const node = this.startNode();\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(10);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(11);\n this.expect(19);\n node.returnType = this.flowParseType();\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n case 10:\n {\n const node = this.startNode();\n this.next();\n if (!this.match(11) && !this.match(21)) {\n if (tokenIsIdentifier(this.state.type) || this.match(78)) {\n const token = this.lookahead().type;\n isGroupedType = token !== 17 && token !== 14;\n } else {\n isGroupedType = true;\n }\n }\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) {\n this.expect(11);\n return type;\n } else {\n this.eat(12);\n }\n }\n if (type) {\n tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(11);\n this.expect(19);\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n case 133:\n return this.parseLiteral(this.state.value, \"StringLiteralTypeAnnotation\");\n case 85:\n case 86:\n node.value = this.match(85);\n this.next();\n return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n case 53:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(134)) {\n return this.parseLiteralAtNode(-this.state.value, \"NumberLiteralTypeAnnotation\", node);\n }\n if (this.match(135)) {\n return this.parseLiteralAtNode(-this.state.value, \"BigIntLiteralTypeAnnotation\", node);\n }\n throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc);\n }\n this.unexpected();\n return;\n case 134:\n return this.parseLiteral(this.state.value, \"NumberLiteralTypeAnnotation\");\n case 135:\n return this.parseLiteral(this.state.value, \"BigIntLiteralTypeAnnotation\");\n case 88:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n case 84:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n case 78:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n case 55:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n case 87:\n return this.flowParseTypeofType();\n default:\n if (tokenIsKeyword(this.state.type)) {\n const label = tokenLabelName(this.state.type);\n this.next();\n return super.createIdentifier(node, label);\n } else if (tokenIsIdentifier(this.state.type)) {\n if (this.isContextual(129)) {\n return this.flowParseInterfaceType();\n }\n return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier());\n }\n }\n this.unexpected();\n }\n flowParsePostfixType() {\n const startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n let seenOptionalIndexedAccess = false;\n while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(18);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(0);\n if (!optional && this.match(3)) {\n node.elementType = type;\n this.next();\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n } else {\n node.objectType = type;\n node.indexType = this.flowParseType();\n this.expect(3);\n if (seenOptionalIndexedAccess) {\n node.optional = optional;\n type = this.finishNode(node, \"OptionalIndexedAccessType\");\n } else {\n type = this.finishNode(node, \"IndexedAccessType\");\n }\n }\n }\n return type;\n }\n flowParsePrefixType() {\n const node = this.startNode();\n if (this.eat(17)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n flowParseAnonFunctionWithoutParens() {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(19)) {\n const node = this.startNodeAt(param.loc.start);\n node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n node.rest = null;\n node.this = null;\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n return param;\n }\n flowParseIntersectionType() {\n const node = this.startNode();\n this.eat(45);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(45)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1 ? type : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n flowParseUnionType() {\n const node = this.startNode();\n this.eat(43);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(43)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1 ? type : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n flowParseType() {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const type = this.flowParseUnionType();\n this.state.inType = oldInType;\n return type;\n }\n flowParseTypeOrImplicitInstantiation() {\n if (this.state.type === 132 && this.state.value === \"_\") {\n const startLoc = this.state.startLoc;\n const node = this.parseIdentifier();\n return this.flowParseGenericType(startLoc, node);\n } else {\n return this.flowParseType();\n }\n }\n flowParseTypeAnnotation() {\n const node = this.startNode();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) {\n const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();\n if (this.match(14)) {\n ident.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(ident);\n }\n return ident;\n }\n typeCastToParameter(node) {\n node.expression.typeAnnotation = node.typeAnnotation;\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n return node.expression;\n }\n flowParseVariance() {\n let variance = null;\n if (this.match(53)) {\n variance = this.startNode();\n if (this.state.value === \"+\") {\n variance.kind = \"plus\";\n } else {\n variance.kind = \"minus\";\n }\n this.next();\n return this.finishNode(variance, \"Variance\");\n }\n return variance;\n }\n parseFunctionBody(node, allowExpressionBody, isMethod = false) {\n if (allowExpressionBody) {\n this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod));\n return;\n }\n super.parseFunctionBody(node, false, isMethod);\n }\n parseFunctionBodyAndFinish(node, type, isMethod = false) {\n if (this.match(14)) {\n const typeNode = this.startNode();\n [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();\n node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, \"TypeAnnotation\") : null;\n }\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n parseStatementLike(flags) {\n if (this.state.strict && this.isContextual(129)) {\n const lookahead = this.lookahead();\n if (tokenIsKeywordOrIdentifier(lookahead.type)) {\n const node = this.startNode();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.plugins.get(\"flow\").enums && this.isContextual(126)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatementLike(flags);\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n parseExpressionStatement(node, expr, decorators) {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) {\n return this.flowParseDeclare(node);\n }\n } else if (tokenIsIdentifier(this.state.type)) {\n if (expr.name === \"interface\") {\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n return super.parseExpressionStatement(node, expr, decorators);\n }\n shouldParseExportDeclaration() {\n const {\n type\n } = this.state;\n if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.plugins.get(\"flow\").enums && type === 126) {\n return !this.state.containsEsc;\n }\n return super.shouldParseExportDeclaration();\n }\n isExportDefaultSpecifier() {\n const {\n type\n } = this.state;\n if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.plugins.get(\"flow\").enums && type === 126) {\n return this.state.containsEsc;\n }\n return super.isExportDefaultSpecifier();\n }\n parseExportDefaultExpression() {\n if (this.plugins.get(\"flow\").enums && this.isContextual(126)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (!this.match(17)) return expr;\n if (this.state.maybeInArrowParameters) {\n const nextCh = this.lookaheadCharCode();\n if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) {\n this.setOptionalParametersError(refExpressionErrors);\n return expr;\n }\n }\n this.expect(17);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startLoc);\n let {\n consequent,\n failed\n } = this.tryParseConditionalConsequent();\n let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n ({\n consequent,\n failed\n } = this.tryParseConditionalConsequent());\n [valid, invalid] = this.getArrowLikeExpressions(consequent);\n }\n if (failed && valid.length > 1) {\n this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc);\n }\n if (failed && valid.length === 1) {\n this.state = state;\n noArrowAt.push(valid[0].start);\n this.state.noArrowAt = noArrowAt;\n ({\n consequent,\n failed\n } = this.tryParseConditionalConsequent());\n }\n }\n this.getArrowLikeExpressions(consequent, true);\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(14);\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined));\n return this.finishNode(node, \"ConditionalExpression\");\n }\n tryParseConditionalConsequent() {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(14);\n this.state.noArrowParamsConversionAt.pop();\n return {\n consequent,\n failed\n };\n }\n getArrowLikeExpressions(node, disallowInvalid) {\n const stack = [node];\n const arrows = [];\n while (stack.length !== 0) {\n const node = stack.pop();\n if (node.type === \"ArrowFunctionExpression\" && node.body.type !== \"BlockStatement\") {\n if (node.typeParameters || !node.returnType) {\n this.finishArrowValidation(node);\n } else {\n arrows.push(node);\n }\n stack.push(node.body);\n } else if (node.type === \"ConditionalExpression\") {\n stack.push(node.consequent);\n stack.push(node.alternate);\n }\n }\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n return partition(arrows, node => node.params.every(param => this.isAssignable(param, true)));\n }\n finishArrowValidation(node) {\n var _node$extra;\n this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false);\n this.scope.enter(2 | 4);\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n forwardNoArrowParamsConversionAt(node, parse) {\n let result;\n if (this.state.noArrowParamsConversionAt.includes(node.start)) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n return result;\n }\n parseParenItem(node, startLoc) {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(17)) {\n newNode.optional = true;\n this.resetEndLocation(node);\n }\n if (this.match(14)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = newNode;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n return newNode;\n }\n assertModuleNodeAllowed(node) {\n if (node.type === \"ImportDeclaration\" && (node.importKind === \"type\" || node.importKind === \"typeof\") || node.type === \"ExportNamedDeclaration\" && node.exportKind === \"type\" || node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\") {\n return;\n }\n super.assertModuleNodeAllowed(node);\n }\n parseExportDeclaration(node) {\n if (this.isContextual(130)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n if (this.match(5)) {\n node.specifiers = this.parseExportSpecifiers(true);\n super.parseExportFrom(node);\n return null;\n } else {\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(131)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(129)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseInterface(declarationNode);\n } else if (this.plugins.get(\"flow\").enums && this.isContextual(126)) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n eatExportStar(node) {\n if (super.eatExportStar(node)) return true;\n if (this.isContextual(130) && this.lookahead().type === 55) {\n node.exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n return false;\n }\n maybeParseExportNamespaceSpecifier(node) {\n const {\n startLoc\n } = this.state;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(startLoc);\n }\n return hasNamespace;\n }\n parseClassId(node, isStatement, optionalId) {\n super.parseClassId(node, isStatement, optionalId);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n parseClassMember(classBody, member, state) {\n const {\n startLoc\n } = this.state;\n if (this.isContextual(125)) {\n if (super.parseClassMemberFromModifier(classBody, member)) {\n return;\n }\n member.declare = true;\n }\n super.parseClassMember(classBody, member, state);\n if (member.declare) {\n if (member.type !== \"ClassProperty\" && member.type !== \"ClassPrivateProperty\" && member.type !== \"PropertyDefinition\") {\n this.raise(FlowErrors.DeclareClassElement, startLoc);\n } else if (member.value) {\n this.raise(FlowErrors.DeclareClassFieldInitializer, member.value);\n }\n }\n }\n isIterator(word) {\n return word === \"iterator\" || word === \"asyncIterator\";\n }\n readIterator() {\n const word = super.readWord1();\n const fullWord = \"@@\" + word;\n if (!this.isIterator(word) || !this.state.inType) {\n this.raise(Errors.InvalidIdentifier, this.state.curPosition(), {\n identifierName: fullWord\n });\n }\n this.finishToken(132, fullWord);\n }\n getTokenFromCode(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 123 && next === 124) {\n this.finishOp(6, 2);\n } else if (this.state.inType && (code === 62 || code === 60)) {\n this.finishOp(code === 62 ? 48 : 47, 1);\n } else if (this.state.inType && code === 63) {\n if (next === 46) {\n this.finishOp(18, 2);\n } else {\n this.finishOp(17, 1);\n }\n } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) {\n this.state.pos += 2;\n this.readIterator();\n } else {\n super.getTokenFromCode(code);\n }\n }\n isAssignable(node, isBinding) {\n if (node.type === \"TypeCastExpression\") {\n return this.isAssignable(node.expression, isBinding);\n } else {\n return super.isAssignable(node, isBinding);\n }\n }\n toAssignable(node, isLHS = false) {\n if (!isLHS && node.type === \"AssignmentExpression\" && node.left.type === \"TypeCastExpression\") {\n node.left = this.typeCastToParameter(node.left);\n }\n super.toAssignable(node, isLHS);\n }\n toAssignableList(exprList, trailingCommaLoc, isLHS) {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if ((expr == null ? void 0 : expr.type) === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n toReferencedList(exprList, isParenthesizedExpr) {\n for (let i = 0; i < exprList.length; i++) {\n var _expr$extra;\n const expr = exprList[i];\n if (expr && expr.type === \"TypeCastExpression\" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) {\n this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation);\n }\n }\n return exprList;\n }\n parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {\n const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);\n if (canBePattern && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n return node;\n }\n isValidLVal(type, isParenthesized, binding) {\n return type === \"TypeCastExpression\" || super.isValidLVal(type, isParenthesized, binding);\n }\n parseClassProperty(node) {\n if (this.match(14)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n parseClassPrivateProperty(node) {\n if (this.match(14)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n isClassMethod() {\n return this.match(47) || super.isClassMethod();\n }\n isClassProperty() {\n return this.match(14) || super.isClassProperty();\n }\n isNonstaticConstructor(method) {\n return !this.match(14) && super.isNonstaticConstructor(method);\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n if (method.variance) {\n this.unexpected(method.variance.loc.start);\n }\n delete method.variance;\n if (this.match(47)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n } else if (method.type === \"MethodDefinition\" && isConstructor && method.value.params) {\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, method);\n }\n }\n }\n pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {\n if (method.variance) {\n this.unexpected(method.variance.loc.start);\n }\n delete method.variance;\n if (this.match(47)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n parseClassSuper(node) {\n super.parseClassSuper(node);\n if (node.superClass && this.match(47)) {\n node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n }\n if (this.isContextual(113)) {\n this.next();\n const implemented = node.implements = [];\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(true);\n if (this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(12));\n }\n }\n checkGetterSetterParams(method) {\n super.checkGetterSetterParams(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length > 0) {\n const param = params[0];\n if (this.isThisParam(param) && method.kind === \"get\") {\n this.raise(FlowErrors.GetterMayNotHaveThisParam, param);\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.SetterMayNotHaveThisParam, param);\n }\n }\n }\n parsePropertyNamePrefixOperator(node) {\n node.variance = this.flowParseVariance();\n }\n parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {\n if (prop.variance) {\n this.unexpected(prop.variance.loc.start);\n }\n delete prop.variance;\n let typeParameters;\n if (this.match(47) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(10)) this.unexpected();\n }\n const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors);\n if (typeParameters) {\n (result.value || result).typeParameters = typeParameters;\n }\n return result;\n }\n parseFunctionParamType(param) {\n if (this.eat(17)) {\n if (param.type !== \"Identifier\") {\n this.raise(FlowErrors.PatternIsOptional, param);\n }\n if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, param);\n }\n param.optional = true;\n }\n if (this.match(14)) {\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, param);\n }\n if (this.match(29) && this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamNoDefault, param);\n }\n this.resetEndLocation(param);\n return param;\n }\n parseMaybeDefault(startLoc, left) {\n const node = super.parseMaybeDefault(startLoc, left);\n if (node.type === \"AssignmentPattern\" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {\n this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation);\n }\n return node;\n }\n checkImportReflection(node) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start);\n }\n }\n parseImportSpecifierLocal(node, specifier, type) {\n specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier();\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n isPotentialImportPhase(isExport) {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(130)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === 123 || ch === 42;\n }\n return !isExport && this.isContextual(87);\n }\n applyImportPhase(node, isExport, phase, loc) {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(65)) {\n return;\n }\n node.exportKind = phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(55)) this.unexpected();\n node.importKind = phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {\n const firstIdent = specifier.imported;\n let specifierTypeKind = null;\n if (firstIdent.type === \"Identifier\") {\n if (firstIdent.name === \"type\") {\n specifierTypeKind = \"type\";\n } else if (firstIdent.name === \"typeof\") {\n specifierTypeKind = \"typeof\";\n }\n }\n let isBinding = false;\n if (this.isContextual(93) && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) {\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = cloneIdentifier(as_ident);\n } else {\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else {\n if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) {\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n } else {\n if (importedIsString) {\n throw this.raise(Errors.ImportBindingIsString, specifier, {\n importName: firstIdent.value\n });\n }\n specifier.imported = firstIdent;\n specifier.importKind = null;\n }\n if (this.eatContextual(93)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = cloneIdentifier(specifier.imported);\n }\n }\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n if (isInTypeOnlyImport && specifierIsTypeImport) {\n this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier);\n }\n if (isInTypeOnlyImport || specifierIsTypeImport) {\n this.checkReservedType(specifier.local.name, specifier.local.loc.start, true);\n }\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true);\n }\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n parseBindingAtom() {\n switch (this.state.type) {\n case 78:\n return this.parseIdentifier(true);\n default:\n return super.parseBindingAtom();\n }\n }\n parseFunctionParams(node, isConstructor) {\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.match(47)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, isConstructor);\n }\n parseVarId(decl, kind) {\n super.parseVarId(decl, kind);\n if (this.match(14)) {\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id);\n }\n }\n parseAsyncArrowFromCallExpression(node, call) {\n if (this.match(14)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n shouldParseAsyncArrow() {\n return this.match(14) || super.shouldParseAsyncArrow();\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n var _jsx;\n let state = null;\n let jsx;\n if (this.hasPlugin(\"jsx\") && (this.match(142) || this.match(47))) {\n state = this.state.clone();\n jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);\n if (!jsx.error) return jsx.node;\n const {\n context\n } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === types.j_oTag || currentContext === types.j_expr) {\n context.pop();\n }\n }\n if ((_jsx = jsx) != null && _jsx.error || this.match(47)) {\n var _jsx2, _jsx3;\n state = state || this.state.clone();\n let typeParameters;\n const arrow = this.tryParse(abort => {\n var _arrowExpression$extr;\n typeParameters = this.flowParseTypeParameterDeclaration();\n const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => {\n const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n this.resetStartLocationFromNode(result, typeParameters);\n return result;\n });\n if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort();\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n if (expr.type !== \"ArrowFunctionExpression\") abort();\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n return arrowExpression;\n }, state);\n let arrowExpression = null;\n if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === \"ArrowFunctionExpression\") {\n if (!arrow.error && !arrow.aborted) {\n if (arrow.node.async) {\n this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters);\n }\n return arrow.node;\n }\n arrowExpression = arrow.node;\n }\n if ((_jsx2 = jsx) != null && _jsx2.node) {\n this.state = jsx.failState;\n return jsx.node;\n }\n if (arrowExpression) {\n this.state = arrow.failState;\n return arrowExpression;\n }\n if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters);\n }\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n parseArrow(node) {\n if (this.match(14)) {\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n const typeNode = this.startNode();\n [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(19)) this.unexpected();\n return typeNode;\n });\n if (result.thrown) return null;\n if (result.error) this.state = result.failState;\n node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, \"TypeAnnotation\") : null;\n }\n return super.parseArrow(node);\n }\n shouldParseArrow(params) {\n return this.match(14) || super.shouldParseArrow(params);\n }\n setArrowFunctionParameters(node, params) {\n if (this.state.noArrowParamsConversionAt.includes(node.start)) {\n node.params = params;\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {\n if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(node.start)) {\n return;\n }\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]);\n }\n }\n super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged);\n }\n parseParenAndDistinguishExpression(canBeArrow) {\n return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.state.start));\n }\n parseSubscripts(base, startLoc, noCalls) {\n if (base.type === \"Identifier\" && base.name === \"async\" && this.state.noArrowAt.includes(startLoc.index)) {\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = super.parseCallExpressionArguments(11, false);\n base = this.finishNode(node, \"CallExpression\");\n } else if (base.type === \"Identifier\" && base.name === \"async\" && this.match(47)) {\n const state = this.state.clone();\n const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state);\n if (!arrow.error && !arrow.aborted) return arrow.node;\n const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state);\n if (result.node && !result.error) return result.node;\n if (arrow.node) {\n this.state = arrow.failState;\n return arrow.node;\n }\n if (result.node) {\n this.state = result.failState;\n return result.node;\n }\n throw arrow.error || result.error;\n }\n return super.parseSubscripts(base, startLoc, noCalls);\n }\n parseSubscript(base, startLoc, noCalls, subscriptState) {\n if (this.match(18) && this.isLookaheadToken_lt()) {\n subscriptState.optionalChainMember = true;\n if (noCalls) {\n subscriptState.stop = true;\n return base;\n }\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.typeArguments = this.flowParseTypeParameterInstantiation();\n this.expect(10);\n node.arguments = this.parseCallExpressionArguments(11, false);\n node.optional = true;\n return this.finishCallExpression(node, true);\n } else if (!noCalls && this.shouldParseTypes() && this.match(47)) {\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n const result = this.tryParse(() => {\n node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(10);\n node.arguments = super.parseCallExpressionArguments(11, false);\n if (subscriptState.optionalChainMember) {\n node.optional = false;\n }\n return this.finishCallExpression(node, subscriptState.optionalChainMember);\n });\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n return super.parseSubscript(base, startLoc, noCalls, subscriptState);\n }\n parseNewCallee(node) {\n super.parseNewCallee(node);\n let targs = null;\n if (this.shouldParseTypes() && this.match(47)) {\n targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node;\n }\n node.typeArguments = targs;\n }\n parseAsyncArrowWithTypeParameters(startLoc) {\n const node = this.startNodeAt(startLoc);\n this.parseFunctionParams(node, false);\n if (!this.parseArrow(node)) return;\n return super.parseArrowExpression(node, undefined, true);\n }\n readToken_mult_modulo(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 42 && next === 47 && this.state.hasFlowComment) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n super.readToken_mult_modulo(code);\n }\n readToken_pipe_amp(code) {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === 124 && next === 125) {\n this.finishOp(9, 2);\n return;\n }\n super.readToken_pipe_amp(code);\n }\n parseTopLevel(file, program) {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition());\n }\n return fileNode;\n }\n skipBlockComment() {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc);\n }\n this.hasFlowCommentCompletion();\n const commentSkip = this.skipFlowComment();\n if (commentSkip) {\n this.state.pos += commentSkip;\n this.state.hasFlowComment = true;\n }\n return;\n }\n return super.skipBlockComment(this.state.hasFlowComment ? \"*-/\" : \"*/\");\n }\n skipFlowComment() {\n const {\n pos\n } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) {\n shiftToFirstNonWhiteSpace++;\n }\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n if (ch2 === 58 && ch3 === 58) {\n return shiftToFirstNonWhiteSpace + 2;\n }\n if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === \"flow-include\") {\n return shiftToFirstNonWhiteSpace + 12;\n }\n if (ch2 === 58 && ch3 !== 58) {\n return shiftToFirstNonWhiteSpace;\n }\n return false;\n }\n hasFlowCommentCompletion() {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n }\n flowEnumErrorBooleanMemberNotInitialized(loc, {\n enumName,\n memberName\n }) {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, {\n memberName,\n enumName\n });\n }\n flowEnumErrorInvalidMemberInitializer(loc, enumContext) {\n return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === \"symbol\" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext);\n }\n flowEnumErrorNumberMemberNotInitialized(loc, details) {\n this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details);\n }\n flowEnumErrorStringMemberInconsistentlyInitialized(node, details) {\n this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details);\n }\n flowEnumMemberInit() {\n const startLoc = this.state.startLoc;\n const endOfInit = () => this.match(12) || this.match(8);\n switch (this.state.type) {\n case 134:\n {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return {\n type: \"number\",\n loc: literal.loc.start,\n value: literal\n };\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n case 133:\n {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return {\n type: \"string\",\n loc: literal.loc.start,\n value: literal\n };\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n case 85:\n case 86:\n {\n const literal = this.parseBooleanLiteral(this.match(85));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.loc.start,\n value: literal\n };\n }\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n default:\n return {\n type: \"invalid\",\n loc: startLoc\n };\n }\n }\n flowEnumMemberRaw() {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(29) ? this.flowEnumMemberInit() : {\n type: \"none\",\n loc\n };\n return {\n id,\n init\n };\n }\n flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) {\n const {\n explicitType\n } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(loc, context);\n }\n }\n flowEnumMembers({\n enumName,\n explicitType\n }) {\n const seenNames = new Set();\n const members = {\n booleanMembers: [],\n numberMembers: [],\n stringMembers: [],\n defaultedMembers: []\n };\n let hasUnknownMembers = false;\n while (!this.match(8)) {\n if (this.eat(21)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const {\n id,\n init\n } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.raise(FlowErrors.EnumInvalidMemberName, id, {\n memberName,\n suggestion: memberName[0].toUpperCase() + memberName.slice(1),\n enumName\n });\n }\n if (seenNames.has(memberName)) {\n this.raise(FlowErrors.EnumDuplicateMemberName, id, {\n memberName,\n enumName\n });\n }\n seenNames.add(memberName);\n const context = {\n enumName,\n explicitType,\n memberName\n };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\":\n {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"boolean\");\n memberNode.init = init.value;\n members.booleanMembers.push(this.finishNode(memberNode, \"EnumBooleanMember\"));\n break;\n }\n case \"number\":\n {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(this.finishNode(memberNode, \"EnumNumberMember\"));\n break;\n }\n case \"string\":\n {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(this.finishNode(memberNode, \"EnumStringMember\"));\n break;\n }\n case \"invalid\":\n {\n throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);\n }\n case \"none\":\n {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context);\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);\n break;\n default:\n members.defaultedMembers.push(this.finishNode(memberNode, \"EnumDefaultedMember\"));\n }\n }\n }\n if (!this.match(8)) {\n this.expect(12);\n }\n }\n return {\n members,\n hasUnknownMembers\n };\n }\n flowEnumStringMembers(initializedMembers, defaultedMembers, {\n enumName\n }) {\n if (initializedMembers.length === 0) {\n return defaultedMembers;\n } else if (defaultedMembers.length === 0) {\n return initializedMembers;\n } else if (defaultedMembers.length > initializedMembers.length) {\n for (const member of initializedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName\n });\n }\n return defaultedMembers;\n } else {\n for (const member of defaultedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {\n enumName\n });\n }\n return initializedMembers;\n }\n }\n flowEnumParseExplicitType({\n enumName\n }) {\n if (!this.eatContextual(102)) return null;\n if (!tokenIsIdentifier(this.state.type)) {\n throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, {\n enumName\n });\n }\n const {\n value\n } = this.state;\n this.next();\n if (value !== \"boolean\" && value !== \"number\" && value !== \"string\" && value !== \"symbol\") {\n this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, {\n enumName,\n invalidEnumType: value\n });\n }\n return value;\n }\n flowEnumBody(node, id) {\n const enumName = id.name;\n const nameLoc = id.loc.start;\n const explicitType = this.flowEnumParseExplicitType({\n enumName\n });\n this.expect(5);\n const {\n members,\n hasUnknownMembers\n } = this.flowEnumMembers({\n enumName,\n explicitType\n });\n node.hasUnknownMembers = hasUnknownMembers;\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {\n enumName\n });\n this.expect(8);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumSymbolBody\");\n default:\n {\n const empty = () => {\n node.members = [];\n this.expect(8);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n const boolsLen = members.booleanMembers.length;\n const numsLen = members.numberMembers.length;\n const strsLen = members.stringMembers.length;\n const defaultedLen = members.defaultedMembers.length;\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {\n enumName\n });\n this.expect(8);\n return this.finishNode(node, \"EnumStringBody\");\n } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name\n });\n }\n node.members = members.booleanMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumBooleanBody\");\n } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, {\n enumName,\n memberName: member.id.name\n });\n }\n node.members = members.numberMembers;\n this.expect(8);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, {\n enumName\n });\n return empty();\n }\n }\n }\n }\n flowParseEnumDeclaration(node) {\n const id = this.parseIdentifier();\n node.id = id;\n node.body = this.flowEnumBody(this.startNode(), id);\n return this.finishNode(node, \"EnumDeclaration\");\n }\n isLookaheadToken_lt() {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === 60) {\n const afterNext = this.input.charCodeAt(next + 1);\n return afterNext !== 60 && afterNext !== 61;\n }\n return false;\n }\n maybeUnwrapTypeCastExpression(node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n};\nconst entities = {\n __proto__: null,\n quot: \"\\u0022\",\n amp: \"&\",\n apos: \"\\u0027\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\u00A0\",\n iexcl: \"\\u00A1\",\n cent: \"\\u00A2\",\n pound: \"\\u00A3\",\n curren: \"\\u00A4\",\n yen: \"\\u00A5\",\n brvbar: \"\\u00A6\",\n sect: \"\\u00A7\",\n uml: \"\\u00A8\",\n copy: \"\\u00A9\",\n ordf: \"\\u00AA\",\n laquo: \"\\u00AB\",\n not: \"\\u00AC\",\n shy: \"\\u00AD\",\n reg: \"\\u00AE\",\n macr: \"\\u00AF\",\n deg: \"\\u00B0\",\n plusmn: \"\\u00B1\",\n sup2: \"\\u00B2\",\n sup3: \"\\u00B3\",\n acute: \"\\u00B4\",\n micro: \"\\u00B5\",\n para: \"\\u00B6\",\n middot: \"\\u00B7\",\n cedil: \"\\u00B8\",\n sup1: \"\\u00B9\",\n ordm: \"\\u00BA\",\n raquo: \"\\u00BB\",\n frac14: \"\\u00BC\",\n frac12: \"\\u00BD\",\n frac34: \"\\u00BE\",\n iquest: \"\\u00BF\",\n Agrave: \"\\u00C0\",\n Aacute: \"\\u00C1\",\n Acirc: \"\\u00C2\",\n Atilde: \"\\u00C3\",\n Auml: \"\\u00C4\",\n Aring: \"\\u00C5\",\n AElig: \"\\u00C6\",\n Ccedil: \"\\u00C7\",\n Egrave: \"\\u00C8\",\n Eacute: \"\\u00C9\",\n Ecirc: \"\\u00CA\",\n Euml: \"\\u00CB\",\n Igrave: \"\\u00CC\",\n Iacute: \"\\u00CD\",\n Icirc: \"\\u00CE\",\n Iuml: \"\\u00CF\",\n ETH: \"\\u00D0\",\n Ntilde: \"\\u00D1\",\n Ograve: \"\\u00D2\",\n Oacute: \"\\u00D3\",\n Ocirc: \"\\u00D4\",\n Otilde: \"\\u00D5\",\n Ouml: \"\\u00D6\",\n times: \"\\u00D7\",\n Oslash: \"\\u00D8\",\n Ugrave: \"\\u00D9\",\n Uacute: \"\\u00DA\",\n Ucirc: \"\\u00DB\",\n Uuml: \"\\u00DC\",\n Yacute: \"\\u00DD\",\n THORN: \"\\u00DE\",\n szlig: \"\\u00DF\",\n agrave: \"\\u00E0\",\n aacute: \"\\u00E1\",\n acirc: \"\\u00E2\",\n atilde: \"\\u00E3\",\n auml: \"\\u00E4\",\n aring: \"\\u00E5\",\n aelig: \"\\u00E6\",\n ccedil: \"\\u00E7\",\n egrave: \"\\u00E8\",\n eacute: \"\\u00E9\",\n ecirc: \"\\u00EA\",\n euml: \"\\u00EB\",\n igrave: \"\\u00EC\",\n iacute: \"\\u00ED\",\n icirc: \"\\u00EE\",\n iuml: \"\\u00EF\",\n eth: \"\\u00F0\",\n ntilde: \"\\u00F1\",\n ograve: \"\\u00F2\",\n oacute: \"\\u00F3\",\n ocirc: \"\\u00F4\",\n otilde: \"\\u00F5\",\n ouml: \"\\u00F6\",\n divide: \"\\u00F7\",\n oslash: \"\\u00F8\",\n ugrave: \"\\u00F9\",\n uacute: \"\\u00FA\",\n ucirc: \"\\u00FB\",\n uuml: \"\\u00FC\",\n yacute: \"\\u00FD\",\n thorn: \"\\u00FE\",\n yuml: \"\\u00FF\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n Yuml: \"\\u0178\",\n fnof: \"\\u0192\",\n circ: \"\\u02C6\",\n tilde: \"\\u02DC\",\n Alpha: \"\\u0391\",\n Beta: \"\\u0392\",\n Gamma: \"\\u0393\",\n Delta: \"\\u0394\",\n Epsilon: \"\\u0395\",\n Zeta: \"\\u0396\",\n Eta: \"\\u0397\",\n Theta: \"\\u0398\",\n Iota: \"\\u0399\",\n Kappa: \"\\u039A\",\n Lambda: \"\\u039B\",\n Mu: \"\\u039C\",\n Nu: \"\\u039D\",\n Xi: \"\\u039E\",\n Omicron: \"\\u039F\",\n Pi: \"\\u03A0\",\n Rho: \"\\u03A1\",\n Sigma: \"\\u03A3\",\n Tau: \"\\u03A4\",\n Upsilon: \"\\u03A5\",\n Phi: \"\\u03A6\",\n Chi: \"\\u03A7\",\n Psi: \"\\u03A8\",\n Omega: \"\\u03A9\",\n alpha: \"\\u03B1\",\n beta: \"\\u03B2\",\n gamma: \"\\u03B3\",\n delta: \"\\u03B4\",\n epsilon: \"\\u03B5\",\n zeta: \"\\u03B6\",\n eta: \"\\u03B7\",\n theta: \"\\u03B8\",\n iota: \"\\u03B9\",\n kappa: \"\\u03BA\",\n lambda: \"\\u03BB\",\n mu: \"\\u03BC\",\n nu: \"\\u03BD\",\n xi: \"\\u03BE\",\n omicron: \"\\u03BF\",\n pi: \"\\u03C0\",\n rho: \"\\u03C1\",\n sigmaf: \"\\u03C2\",\n sigma: \"\\u03C3\",\n tau: \"\\u03C4\",\n upsilon: \"\\u03C5\",\n phi: \"\\u03C6\",\n chi: \"\\u03C7\",\n psi: \"\\u03C8\",\n omega: \"\\u03C9\",\n thetasym: \"\\u03D1\",\n upsih: \"\\u03D2\",\n piv: \"\\u03D6\",\n ensp: \"\\u2002\",\n emsp: \"\\u2003\",\n thinsp: \"\\u2009\",\n zwnj: \"\\u200C\",\n zwj: \"\\u200D\",\n lrm: \"\\u200E\",\n rlm: \"\\u200F\",\n ndash: \"\\u2013\",\n mdash: \"\\u2014\",\n lsquo: \"\\u2018\",\n rsquo: \"\\u2019\",\n sbquo: \"\\u201A\",\n ldquo: \"\\u201C\",\n rdquo: \"\\u201D\",\n bdquo: \"\\u201E\",\n dagger: \"\\u2020\",\n Dagger: \"\\u2021\",\n bull: \"\\u2022\",\n hellip: \"\\u2026\",\n permil: \"\\u2030\",\n prime: \"\\u2032\",\n Prime: \"\\u2033\",\n lsaquo: \"\\u2039\",\n rsaquo: \"\\u203A\",\n oline: \"\\u203E\",\n frasl: \"\\u2044\",\n euro: \"\\u20AC\",\n image: \"\\u2111\",\n weierp: \"\\u2118\",\n real: \"\\u211C\",\n trade: \"\\u2122\",\n alefsym: \"\\u2135\",\n larr: \"\\u2190\",\n uarr: \"\\u2191\",\n rarr: \"\\u2192\",\n darr: \"\\u2193\",\n harr: \"\\u2194\",\n crarr: \"\\u21B5\",\n lArr: \"\\u21D0\",\n uArr: \"\\u21D1\",\n rArr: \"\\u21D2\",\n dArr: \"\\u21D3\",\n hArr: \"\\u21D4\",\n forall: \"\\u2200\",\n part: \"\\u2202\",\n exist: \"\\u2203\",\n empty: \"\\u2205\",\n nabla: \"\\u2207\",\n isin: \"\\u2208\",\n notin: \"\\u2209\",\n ni: \"\\u220B\",\n prod: \"\\u220F\",\n sum: \"\\u2211\",\n minus: \"\\u2212\",\n lowast: \"\\u2217\",\n radic: \"\\u221A\",\n prop: \"\\u221D\",\n infin: \"\\u221E\",\n ang: \"\\u2220\",\n and: \"\\u2227\",\n or: \"\\u2228\",\n cap: \"\\u2229\",\n cup: \"\\u222A\",\n int: \"\\u222B\",\n there4: \"\\u2234\",\n sim: \"\\u223C\",\n cong: \"\\u2245\",\n asymp: \"\\u2248\",\n ne: \"\\u2260\",\n equiv: \"\\u2261\",\n le: \"\\u2264\",\n ge: \"\\u2265\",\n sub: \"\\u2282\",\n sup: \"\\u2283\",\n nsub: \"\\u2284\",\n sube: \"\\u2286\",\n supe: \"\\u2287\",\n oplus: \"\\u2295\",\n otimes: \"\\u2297\",\n perp: \"\\u22A5\",\n sdot: \"\\u22C5\",\n lceil: \"\\u2308\",\n rceil: \"\\u2309\",\n lfloor: \"\\u230A\",\n rfloor: \"\\u230B\",\n lang: \"\\u2329\",\n rang: \"\\u232A\",\n loz: \"\\u25CA\",\n spades: \"\\u2660\",\n clubs: \"\\u2663\",\n hearts: \"\\u2665\",\n diams: \"\\u2666\"\n};\nconst JsxErrors = ParseErrorEnum`jsx`({\n AttributeIsEmpty: \"JSX attributes must only be assigned a non-empty expression.\",\n MissingClosingTagElement: ({\n openingTagName\n }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`,\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>.\",\n UnexpectedSequenceExpression: \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n UnexpectedToken: ({\n unexpected,\n HTMLEntity\n }) => `Unexpected token \\`${unexpected}\\`. Did you mean \\`${HTMLEntity}\\` or \\`{'${unexpected}'}\\`?`,\n UnsupportedJsxValue: \"JSX value should be either an expression or a quoted JSX text.\",\n UnterminatedJsxContent: \"Unterminated JSX contents.\",\n UnwrappedAdjacentJSXElements: \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\"\n});\nfunction isFragment(object) {\n return object ? object.type === \"JSXOpeningFragment\" || object.type === \"JSXClosingFragment\" : false;\n}\nfunction getQualifiedJSXName(object) {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n if (object.type === \"JSXMemberExpression\") {\n return getQualifiedJSXName(object.object) + \".\" + getQualifiedJSXName(object.property);\n }\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\nvar jsx = superClass => class JSXParserMixin extends superClass {\n jsxReadToken() {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc);\n }\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case 60:\n case 123:\n if (this.state.pos === this.state.start) {\n if (ch === 60 && this.state.canStartJSXElement) {\n ++this.state.pos;\n this.finishToken(142);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(141, out);\n return;\n case 38:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n case 62:\n case 125:\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n jsxReadNewLine(normalizeCRLF) {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {\n ++this.state.pos;\n out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n } else {\n out = String.fromCharCode(ch);\n }\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n return out;\n }\n jsxReadString(quote) {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(Errors.UnterminatedString, this.state.startLoc);\n }\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === 38) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(false);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n out += this.input.slice(chunkStart, this.state.pos++);\n this.finishToken(133, out);\n }\n jsxReadEntity() {\n const startPos = ++this.state.pos;\n if (this.codePointAtPos(this.state.pos) === 35) {\n ++this.state.pos;\n let radix = 10;\n if (this.codePointAtPos(this.state.pos) === 120) {\n radix = 16;\n ++this.state.pos;\n }\n const codePoint = this.readInt(radix, undefined, false, \"bail\");\n if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) {\n ++this.state.pos;\n return String.fromCodePoint(codePoint);\n }\n } else {\n let count = 0;\n let semi = false;\n while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) {\n ++this.state.pos;\n }\n if (semi) {\n const desc = this.input.slice(startPos, this.state.pos);\n const entity = entities[desc];\n ++this.state.pos;\n if (entity) {\n return entity;\n }\n }\n }\n this.state.pos = startPos;\n return \"&\";\n }\n jsxReadWord() {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === 45);\n this.finishToken(140, this.input.slice(start, this.state.pos));\n }\n jsxParseIdentifier() {\n const node = this.startNode();\n if (this.match(140)) {\n node.name = this.state.value;\n } else if (tokenIsKeyword(this.state.type)) {\n node.name = tokenLabelName(this.state.type);\n } else {\n this.unexpected();\n }\n this.next();\n return this.finishNode(node, \"JSXIdentifier\");\n }\n jsxParseNamespacedName() {\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(14)) return name;\n const node = this.startNodeAt(startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n jsxParseElementName() {\n const startLoc = this.state.startLoc;\n let node = this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(16)) {\n const newNode = this.startNodeAt(startLoc);\n newNode.object = node;\n newNode.property = this.jsxParseIdentifier();\n node = this.finishNode(newNode, \"JSXMemberExpression\");\n }\n return node;\n }\n jsxParseAttributeValue() {\n let node;\n switch (this.state.type) {\n case 5:\n node = this.startNode();\n this.setContext(types.brace);\n this.next();\n node = this.jsxParseExpressionContainer(node, types.j_oTag);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(JsxErrors.AttributeIsEmpty, node);\n }\n return node;\n case 142:\n case 133:\n return this.parseExprAtom();\n default:\n throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc);\n }\n }\n jsxParseEmptyExpression() {\n const node = this.startNodeAt(this.state.lastTokEndLoc);\n return this.finishNodeAt(node, \"JSXEmptyExpression\", this.state.startLoc);\n }\n jsxParseSpreadChild(node) {\n this.next();\n node.expression = this.parseExpression();\n this.setContext(types.j_expr);\n this.state.canStartJSXElement = true;\n this.expect(8);\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n jsxParseExpressionContainer(node, previousContext) {\n if (this.match(8)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(8);\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n jsxParseAttribute() {\n const node = this.startNode();\n if (this.match(5)) {\n this.setContext(types.brace);\n this.next();\n this.expect(21);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(types.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(8);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(29) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n jsxParseOpeningElementAt(startLoc) {\n const node = this.startNodeAt(startLoc);\n if (this.eat(143)) {\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(node);\n }\n jsxParseOpeningElementAfterName(node) {\n const attributes = [];\n while (!this.match(56) && !this.match(143)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(56);\n this.expect(143);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n jsxParseClosingElementAt(startLoc) {\n const node = this.startNodeAt(startLoc);\n if (this.eat(143)) {\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n node.name = this.jsxParseElementName();\n this.expect(143);\n return this.finishNode(node, \"JSXClosingElement\");\n }\n jsxParseElementAt(startLoc) {\n const node = this.startNodeAt(startLoc);\n const children = [];\n const openingElement = this.jsxParseOpeningElementAt(startLoc);\n let closingElement = null;\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.state.type) {\n case 142:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(56)) {\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n case 141:\n children.push(this.parseLiteral(this.state.value, \"JSXText\"));\n break;\n case 5:\n {\n const node = this.startNode();\n this.setContext(types.brace);\n this.next();\n if (this.match(21)) {\n children.push(this.jsxParseSpreadChild(node));\n } else {\n children.push(this.jsxParseExpressionContainer(node, types.j_expr));\n }\n break;\n }\n default:\n this.unexpected();\n }\n }\n if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) {\n this.raise(JsxErrors.MissingClosingTagFragment, closingElement);\n } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name)\n });\n } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\n this.raise(JsxErrors.MissingClosingTagElement, closingElement, {\n openingTagName: getQualifiedJSXName(openingElement.name)\n });\n }\n }\n }\n if (isFragment(openingElement)) {\n node.openingFragment = openingElement;\n node.closingFragment = closingElement;\n } else {\n node.openingElement = openingElement;\n node.closingElement = closingElement;\n }\n node.children = children;\n if (this.match(47)) {\n throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc);\n }\n return isFragment(openingElement) ? this.finishNode(node, \"JSXFragment\") : this.finishNode(node, \"JSXElement\");\n }\n jsxParseElement() {\n const startLoc = this.state.startLoc;\n this.next();\n return this.jsxParseElementAt(startLoc);\n }\n setContext(newContext) {\n const {\n context\n } = this.state;\n context[context.length - 1] = newContext;\n }\n parseExprAtom(refExpressionErrors) {\n if (this.match(142)) {\n return this.jsxParseElement();\n } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) {\n this.replaceToken(142);\n return this.jsxParseElement();\n } else {\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n skipSpace() {\n const curContext = this.curContext();\n if (!curContext.preserveSpace) super.skipSpace();\n }\n getTokenFromCode(code) {\n const context = this.curContext();\n if (context === types.j_expr) {\n this.jsxReadToken();\n return;\n }\n if (context === types.j_oTag || context === types.j_cTag) {\n if (isIdentifierStart(code)) {\n this.jsxReadWord();\n return;\n }\n if (code === 62) {\n ++this.state.pos;\n this.finishToken(143);\n return;\n }\n if ((code === 34 || code === 39) && context === types.j_oTag) {\n this.jsxReadString(code);\n return;\n }\n }\n if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {\n ++this.state.pos;\n this.finishToken(142);\n return;\n }\n super.getTokenFromCode(code);\n }\n updateContext(prevType) {\n const {\n context,\n type\n } = this.state;\n if (type === 56 && prevType === 142) {\n context.splice(-2, 2, types.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === 142) {\n context.push(types.j_oTag);\n } else if (type === 143) {\n const out = context[context.length - 1];\n if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) {\n context.pop();\n this.state.canStartJSXElement = context[context.length - 1] === types.j_expr;\n } else {\n this.setContext(types.j_expr);\n this.state.canStartJSXElement = true;\n }\n } else {\n this.state.canStartJSXElement = tokenComesBeforeExpression(type);\n }\n }\n};\nclass TypeScriptScope extends Scope {\n constructor(...args) {\n super(...args);\n this.tsNames = new Map();\n }\n}\nclass TypeScriptScopeHandler extends ScopeHandler {\n constructor(...args) {\n super(...args);\n this.importsStack = [];\n }\n createScope(flags) {\n this.importsStack.push(new Set());\n return new TypeScriptScope(flags);\n }\n enter(flags) {\n if (flags === 256) {\n this.importsStack.push(new Set());\n }\n super.enter(flags);\n }\n exit() {\n const flags = super.exit();\n if (flags === 256) {\n this.importsStack.pop();\n }\n return flags;\n }\n hasImport(name, allowShadow) {\n const len = this.importsStack.length;\n if (this.importsStack[len - 1].has(name)) {\n return true;\n }\n if (!allowShadow && len > 1) {\n for (let i = 0; i < len - 1; i++) {\n if (this.importsStack[i].has(name)) return true;\n }\n }\n return false;\n }\n declareName(name, bindingType, loc) {\n if (bindingType & 4096) {\n if (this.hasImport(name, true)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name\n });\n }\n this.importsStack[this.importsStack.length - 1].add(name);\n return;\n }\n const scope = this.currentScope();\n let type = scope.tsNames.get(name) || 0;\n if (bindingType & 1024) {\n this.maybeExportDefined(scope, name);\n scope.tsNames.set(name, type | 16);\n return;\n }\n super.declareName(name, bindingType, loc);\n if (bindingType & 2) {\n if (!(bindingType & 1)) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n }\n type = type | 1;\n }\n if (bindingType & 256) {\n type = type | 2;\n }\n if (bindingType & 512) {\n type = type | 4;\n }\n if (bindingType & 128) {\n type = type | 8;\n }\n if (type) scope.tsNames.set(name, type);\n }\n isRedeclaredInScope(scope, name, bindingType) {\n const type = scope.tsNames.get(name);\n if ((type & 2) > 0) {\n if (bindingType & 256) {\n const isConst = !!(bindingType & 512);\n const wasConst = (type & 4) > 0;\n return isConst !== wasConst;\n }\n return true;\n }\n if (bindingType & 128 && (type & 8) > 0) {\n if (scope.names.get(name) & 2) {\n return !!(bindingType & 1);\n } else {\n return false;\n }\n }\n if (bindingType & 2 && (type & 1) > 0) {\n return true;\n }\n return super.isRedeclaredInScope(scope, name, bindingType);\n }\n checkLocalExport(id) {\n const {\n name\n } = id;\n if (this.hasImport(name)) return;\n const len = this.scopeStack.length;\n for (let i = len - 1; i >= 0; i--) {\n const scope = this.scopeStack[i];\n const type = scope.tsNames.get(name);\n if ((type & 1) > 0 || (type & 16) > 0) {\n return;\n }\n }\n super.checkLocalExport(id);\n }\n}\nconst unwrapParenthesizedExpression = node => {\n return node.type === \"ParenthesizedExpression\" ? unwrapParenthesizedExpression(node.expression) : node;\n};\nclass LValParser extends NodeUtils {\n toAssignable(node, isLHS = false) {\n var _node$extra, _node$extra3;\n let parenthesized = undefined;\n if (node.type === \"ParenthesizedExpression\" || (_node$extra = node.extra) != null && _node$extra.parenthesized) {\n parenthesized = unwrapParenthesizedExpression(node);\n if (isLHS) {\n if (parenthesized.type === \"Identifier\") {\n this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node);\n } else if (parenthesized.type !== \"MemberExpression\" && !this.isOptionalMemberExpression(parenthesized)) {\n this.raise(Errors.InvalidParenthesizedAssignment, node);\n }\n } else {\n this.raise(Errors.InvalidParenthesizedAssignment, node);\n }\n }\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break;\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) {\n var _node$extra2;\n const prop = node.properties[i];\n const isLast = i === last;\n this.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n if (isLast && prop.type === \"RestElement\" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) {\n this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc);\n }\n }\n break;\n case \"ObjectProperty\":\n {\n const {\n key,\n value\n } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start);\n }\n this.toAssignable(value, isLHS);\n break;\n }\n case \"SpreadElement\":\n {\n throw new Error(\"Internal @babel/parser error (this is a bug, please report it).\" + \" SpreadElement should be converted by .toAssignable's caller.\");\n }\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS);\n break;\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") {\n this.raise(Errors.MissingEqInAssignment, node.left.loc.end);\n }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isLHS);\n break;\n case \"ParenthesizedExpression\":\n this.toAssignable(parenthesized, isLHS);\n break;\n }\n }\n toAssignableObjectExpressionProp(prop, isLast, isLHS) {\n if (prop.type === \"ObjectMethod\") {\n this.raise(prop.kind === \"get\" || prop.kind === \"set\" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key);\n } else if (prop.type === \"SpreadElement\") {\n prop.type = \"RestElement\";\n const arg = prop.argument;\n this.checkToRestConversion(arg, false);\n this.toAssignable(arg, isLHS);\n if (!isLast) {\n this.raise(Errors.RestTrailingComma, prop);\n }\n } else {\n this.toAssignable(prop, isLHS);\n }\n }\n toAssignableList(exprList, trailingCommaLoc, isLHS) {\n const end = exprList.length - 1;\n for (let i = 0; i <= end; i++) {\n const elt = exprList[i];\n if (!elt) continue;\n if (elt.type === \"SpreadElement\") {\n elt.type = \"RestElement\";\n const arg = elt.argument;\n this.checkToRestConversion(arg, true);\n this.toAssignable(arg, isLHS);\n } else {\n this.toAssignable(elt, isLHS);\n }\n if (elt.type === \"RestElement\") {\n if (i < end) {\n this.raise(Errors.RestTrailingComma, elt);\n } else if (trailingCommaLoc) {\n this.raise(Errors.RestTrailingComma, trailingCommaLoc);\n }\n }\n }\n }\n isAssignable(node, isBinding) {\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n return true;\n case \"ObjectExpression\":\n {\n const last = node.properties.length - 1;\n return node.properties.every((prop, i) => {\n return prop.type !== \"ObjectMethod\" && (i === last || prop.type !== \"SpreadElement\") && this.isAssignable(prop);\n });\n }\n case \"ObjectProperty\":\n return this.isAssignable(node.value);\n case \"SpreadElement\":\n return this.isAssignable(node.argument);\n case \"ArrayExpression\":\n return node.elements.every(element => element === null || this.isAssignable(element));\n case \"AssignmentExpression\":\n return node.operator === \"=\";\n case \"ParenthesizedExpression\":\n return this.isAssignable(node.expression);\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n return !isBinding;\n default:\n return false;\n }\n }\n toReferencedList(exprList, isParenthesizedExpr) {\n return exprList;\n }\n toReferencedListDeep(exprList, isParenthesizedExpr) {\n this.toReferencedList(exprList, isParenthesizedExpr);\n for (const expr of exprList) {\n if ((expr == null ? void 0 : expr.type) === \"ArrayExpression\") {\n this.toReferencedListDeep(expr.elements);\n }\n }\n }\n parseSpread(refExpressionErrors) {\n const node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined);\n return this.finishNode(node, \"SpreadElement\");\n }\n parseRestBinding() {\n const node = this.startNode();\n this.next();\n node.argument = this.parseBindingAtom();\n return this.finishNode(node, \"RestElement\");\n }\n parseBindingAtom() {\n switch (this.state.type) {\n case 0:\n {\n const node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(3, 93, 1);\n return this.finishNode(node, \"ArrayPattern\");\n }\n case 5:\n return this.parseObjectLike(8, true);\n }\n return this.parseIdentifier();\n }\n parseBindingList(close, closeCharCode, flags) {\n const allowEmpty = flags & 1;\n const elts = [];\n let first = true;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\n }\n if (allowEmpty && this.match(12)) {\n elts.push(null);\n } else if (this.eat(close)) {\n break;\n } else if (this.match(21)) {\n let rest = this.parseRestBinding();\n if (this.hasPlugin(\"flow\") || flags & 2) {\n rest = this.parseFunctionParamType(rest);\n }\n elts.push(rest);\n if (!this.checkCommaAfterRest(closeCharCode)) {\n this.expect(close);\n break;\n }\n } else {\n const decorators = [];\n if (this.match(26) && this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc);\n }\n while (this.match(26)) {\n decorators.push(this.parseDecorator());\n }\n elts.push(this.parseAssignableListItem(flags, decorators));\n }\n }\n return elts;\n }\n parseBindingRestProperty(prop) {\n this.next();\n prop.argument = this.parseIdentifier();\n this.checkCommaAfterRest(125);\n return this.finishNode(prop, \"RestElement\");\n }\n parseBindingProperty() {\n const {\n type,\n startLoc\n } = this.state;\n if (type === 21) {\n return this.parseBindingRestProperty(this.startNode());\n }\n const prop = this.startNode();\n if (type === 138) {\n this.expectPlugin(\"destructuringPrivate\", startLoc);\n this.classScope.usePrivateName(this.state.value, startLoc);\n prop.key = this.parsePrivateName();\n } else {\n this.parsePropertyName(prop);\n }\n prop.method = false;\n return this.parseObjPropValue(prop, startLoc, false, false, true, false);\n }\n parseAssignableListItem(flags, decorators) {\n const left = this.parseMaybeDefault();\n if (this.hasPlugin(\"flow\") || flags & 2) {\n this.parseFunctionParamType(left);\n }\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (decorators.length) {\n left.decorators = decorators;\n }\n return elt;\n }\n parseFunctionParamType(param) {\n return param;\n }\n parseMaybeDefault(startLoc, left) {\n var _startLoc, _left;\n (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc;\n left = (_left = left) != null ? _left : this.parseBindingAtom();\n if (!this.eat(29)) return left;\n const node = this.startNodeAt(startLoc);\n node.left = left;\n node.right = this.parseMaybeAssignAllowIn();\n return this.finishNode(node, \"AssignmentPattern\");\n }\n isValidLVal(type, isUnparenthesizedInAssign, binding) {\n switch (type) {\n case \"AssignmentPattern\":\n return \"left\";\n case \"RestElement\":\n return \"argument\";\n case \"ObjectProperty\":\n return \"value\";\n case \"ParenthesizedExpression\":\n return \"expression\";\n case \"ArrayPattern\":\n return \"elements\";\n case \"ObjectPattern\":\n return \"properties\";\n }\n return false;\n }\n isOptionalMemberExpression(expression) {\n return expression.type === \"OptionalMemberExpression\";\n }\n checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false) {\n var _expression$extra;\n const type = expression.type;\n if (this.isObjectMethod(expression)) return;\n const isOptionalMemberExpression = this.isOptionalMemberExpression(expression);\n if (isOptionalMemberExpression || type === \"MemberExpression\") {\n if (isOptionalMemberExpression) {\n this.expectPlugin(\"optionalChainingAssign\", expression.loc.start);\n if (ancestor.type !== \"AssignmentExpression\") {\n this.raise(Errors.InvalidLhsOptionalChaining, expression, {\n ancestor\n });\n }\n }\n if (binding !== 64) {\n this.raise(Errors.InvalidPropertyBindingPattern, expression);\n }\n return;\n }\n if (type === \"Identifier\") {\n this.checkIdentifier(expression, binding, strictModeChanged);\n const {\n name\n } = expression;\n if (checkClashes) {\n if (checkClashes.has(name)) {\n this.raise(Errors.ParamDupe, expression);\n } else {\n checkClashes.add(name);\n }\n }\n return;\n }\n const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === \"AssignmentExpression\", binding);\n if (validity === true) return;\n if (validity === false) {\n const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding;\n this.raise(ParseErrorClass, expression, {\n ancestor\n });\n return;\n }\n let key, isParenthesizedExpression;\n if (typeof validity === \"string\") {\n key = validity;\n isParenthesizedExpression = type === \"ParenthesizedExpression\";\n } else {\n [key, isParenthesizedExpression] = validity;\n }\n const nextAncestor = type === \"ArrayPattern\" || type === \"ObjectPattern\" ? {\n type\n } : ancestor;\n const val = expression[key];\n if (Array.isArray(val)) {\n for (const child of val) {\n if (child) {\n this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression);\n }\n }\n } else if (val) {\n this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression);\n }\n }\n checkIdentifier(at, bindingType, strictModeChanged = false) {\n if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) {\n if (bindingType === 64) {\n this.raise(Errors.StrictEvalArguments, at, {\n referenceName: at.name\n });\n } else {\n this.raise(Errors.StrictEvalArgumentsBinding, at, {\n bindingName: at.name\n });\n }\n }\n if (bindingType & 8192 && at.name === \"let\") {\n this.raise(Errors.LetInLexicalBinding, at);\n }\n if (!(bindingType & 64)) {\n this.declareNameFromIdentifier(at, bindingType);\n }\n }\n declareNameFromIdentifier(identifier, binding) {\n this.scope.declareName(identifier.name, binding, identifier.loc.start);\n }\n checkToRestConversion(node, allowPattern) {\n switch (node.type) {\n case \"ParenthesizedExpression\":\n this.checkToRestConversion(node.expression, allowPattern);\n break;\n case \"Identifier\":\n case \"MemberExpression\":\n break;\n case \"ArrayExpression\":\n case \"ObjectExpression\":\n if (allowPattern) break;\n default:\n this.raise(Errors.InvalidRestAssignmentPattern, node);\n }\n }\n checkCommaAfterRest(close) {\n if (!this.match(12)) {\n return false;\n }\n this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc);\n return true;\n }\n}\nfunction nonNull(x) {\n if (x == null) {\n throw new Error(`Unexpected ${x} value.`);\n }\n return x;\n}\nfunction assert(x) {\n if (!x) {\n throw new Error(\"Assert fail\");\n }\n}\nconst TSErrors = ParseErrorEnum`typescript`({\n AbstractMethodHasImplementation: ({\n methodName\n }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`,\n AbstractPropertyHasInitializer: ({\n propertyName\n }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`,\n AccessorCannotBeOptional: \"An 'accessor' property cannot be declared optional.\",\n AccessorCannotDeclareThisParameter: \"'get' and 'set' accessors cannot declare 'this' parameters.\",\n AccessorCannotHaveTypeParameters: \"An accessor cannot have type parameters.\",\n ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier.\",\n ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier.\",\n ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: \"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\",\n ConstructorHasTypeParameters: \"Type parameters cannot appear on a constructor declaration.\",\n DeclareAccessor: ({\n kind\n }) => `'declare' is not allowed in ${kind}ters.`,\n DeclareClassFieldHasInitializer: \"Initializers are not allowed in ambient contexts.\",\n DeclareFunctionHasImplementation: \"An implementation cannot be declared in ambient contexts.\",\n DuplicateAccessibilityModifier: ({\n modifier\n }) => `Accessibility modifier already seen.`,\n DuplicateModifier: ({\n modifier\n }) => `Duplicate modifier: '${modifier}'.`,\n EmptyHeritageClauseType: ({\n token\n }) => `'${token}' list cannot be empty.`,\n EmptyTypeArguments: \"Type argument list cannot be empty.\",\n EmptyTypeParameters: \"Type parameter list cannot be empty.\",\n ExpectedAmbientAfterExportDeclare: \"'export declare' must be followed by an ambient declaration.\",\n ImportAliasHasImportType: \"An import alias can not use 'import type'.\",\n ImportReflectionHasImportType: \"An `import module` declaration can not use `type` modifier\",\n IncompatibleModifiers: ({\n modifiers\n }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`,\n IndexSignatureHasAbstract: \"Index signatures cannot have the 'abstract' modifier.\",\n IndexSignatureHasAccessibility: ({\n modifier\n }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`,\n IndexSignatureHasDeclare: \"Index signatures cannot have the 'declare' modifier.\",\n IndexSignatureHasOverride: \"'override' modifier cannot appear on an index signature.\",\n IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier.\",\n InitializerNotAllowedInAmbientContext: \"Initializers are not allowed in ambient contexts.\",\n InvalidModifierOnTypeMember: ({\n modifier\n }) => `'${modifier}' modifier cannot appear on a type member.`,\n InvalidModifierOnTypeParameter: ({\n modifier\n }) => `'${modifier}' modifier cannot appear on a type parameter.`,\n InvalidModifierOnTypeParameterPositions: ({\n modifier\n }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`,\n InvalidModifiersOrder: ({\n orderedModifiers\n }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`,\n InvalidPropertyAccessAfterInstantiationExpression: \"Invalid property access after an instantiation expression. \" + \"You can either wrap the instantiation expression in parentheses, or delete the type arguments.\",\n InvalidTupleMemberLabel: \"Tuple members must be labeled with a simple identifier.\",\n MissingInterfaceName: \"'interface' declarations must be followed by an identifier.\",\n NonAbstractClassHasAbstractMethod: \"Abstract methods can only appear within an abstract class.\",\n NonClassMethodPropertyHasAbstractModifer: \"'abstract' modifier can only appear on a class, method, or property declaration.\",\n OptionalTypeBeforeRequired: \"A required element cannot follow an optional element.\",\n OverrideNotInSubClass: \"This member cannot have an 'override' modifier because its containing class does not extend another class.\",\n PatternIsOptional: \"A binding pattern parameter cannot be optional in an implementation signature.\",\n PrivateElementHasAbstract: \"Private elements cannot have the 'abstract' modifier.\",\n PrivateElementHasAccessibility: ({\n modifier\n }) => `Private elements cannot have an accessibility modifier ('${modifier}').`,\n ReadonlyForMethodSignature: \"'readonly' modifier can only appear on a property declaration or index signature.\",\n ReservedArrowTypeParam: \"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.\",\n ReservedTypeAssertion: \"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\",\n SetAccessorCannotHaveOptionalParameter: \"A 'set' accessor cannot have an optional parameter.\",\n SetAccessorCannotHaveRestParameter: \"A 'set' accessor cannot have rest parameter.\",\n SetAccessorCannotHaveReturnType: \"A 'set' accessor cannot have a return type annotation.\",\n SingleTypeParameterWithoutTrailingComma: ({\n typeParameterName\n }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`,\n StaticBlockCannotHaveModifier: \"Static class blocks cannot have any modifier.\",\n TupleOptionalAfterType: \"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).\",\n TypeAnnotationAfterAssign: \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeImportCannotSpecifyDefaultAndNamed: \"A type-only import can specify a default import or named bindings, but not both.\",\n TypeModifierIsUsedInTypeExports: \"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\",\n TypeModifierIsUsedInTypeImports: \"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\",\n UnexpectedParameterModifier: \"A parameter property is only allowed in a constructor implementation.\",\n UnexpectedReadonly: \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n UnsupportedImportTypeArgument: \"Argument in a type import must be a string literal.\",\n UnsupportedParameterPropertyKind: \"A parameter property may not be declared using a binding pattern.\",\n UnsupportedSignatureParameterKind: ({\n type\n }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`\n});\nfunction keywordTypeFromName(value) {\n switch (value) {\n case \"any\":\n return \"TSAnyKeyword\";\n case \"boolean\":\n return \"TSBooleanKeyword\";\n case \"bigint\":\n return \"TSBigIntKeyword\";\n case \"never\":\n return \"TSNeverKeyword\";\n case \"number\":\n return \"TSNumberKeyword\";\n case \"object\":\n return \"TSObjectKeyword\";\n case \"string\":\n return \"TSStringKeyword\";\n case \"symbol\":\n return \"TSSymbolKeyword\";\n case \"undefined\":\n return \"TSUndefinedKeyword\";\n case \"unknown\":\n return \"TSUnknownKeyword\";\n default:\n return undefined;\n }\n}\nfunction tsIsAccessModifier(modifier) {\n return modifier === \"private\" || modifier === \"public\" || modifier === \"protected\";\n}\nfunction tsIsVarianceAnnotations(modifier) {\n return modifier === \"in\" || modifier === \"out\";\n}\nvar typescript = superClass => class TypeScriptParserMixin extends superClass {\n constructor(...args) {\n super(...args);\n this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\"],\n disallowedModifiers: [\"const\", \"public\", \"private\", \"protected\", \"readonly\", \"declare\", \"abstract\", \"override\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter\n });\n this.tsParseConstModifier = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"const\"],\n disallowedModifiers: [\"in\", \"out\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions\n });\n this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\", \"const\"],\n disallowedModifiers: [\"public\", \"private\", \"protected\", \"readonly\", \"declare\", \"abstract\", \"override\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter\n });\n }\n getScopeHandler() {\n return TypeScriptScopeHandler;\n }\n tsIsIdentifier() {\n return tokenIsIdentifier(this.state.type);\n }\n tsTokenCanFollowModifier() {\n return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName();\n }\n tsNextTokenOnSameLineAndCanFollowModifier() {\n this.next();\n if (this.hasPrecedingLineBreak()) {\n return false;\n }\n return this.tsTokenCanFollowModifier();\n }\n tsNextTokenCanFollowModifier() {\n if (this.match(106)) {\n this.next();\n return this.tsTokenCanFollowModifier();\n }\n return this.tsNextTokenOnSameLineAndCanFollowModifier();\n }\n tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) {\n if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) {\n return undefined;\n }\n const modifier = this.state.value;\n if (allowedModifiers.includes(modifier)) {\n if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) {\n return undefined;\n }\n if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) {\n return modifier;\n }\n }\n return undefined;\n }\n tsParseModifiers({\n allowedModifiers,\n disallowedModifiers,\n stopOnStartOfClassStaticBlock,\n errorTemplate = TSErrors.InvalidModifierOnTypeMember\n }, modified) {\n const enforceOrder = (loc, modifier, before, after) => {\n if (modifier === before && modified[after]) {\n this.raise(TSErrors.InvalidModifiersOrder, loc, {\n orderedModifiers: [before, after]\n });\n }\n };\n const incompatible = (loc, modifier, mod1, mod2) => {\n if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) {\n this.raise(TSErrors.IncompatibleModifiers, loc, {\n modifiers: [mod1, mod2]\n });\n }\n };\n for (;;) {\n const {\n startLoc\n } = this.state;\n const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock);\n if (!modifier) break;\n if (tsIsAccessModifier(modifier)) {\n if (modified.accessibility) {\n this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, {\n modifier\n });\n } else {\n enforceOrder(startLoc, modifier, modifier, \"override\");\n enforceOrder(startLoc, modifier, modifier, \"static\");\n enforceOrder(startLoc, modifier, modifier, \"readonly\");\n modified.accessibility = modifier;\n }\n } else if (tsIsVarianceAnnotations(modifier)) {\n if (modified[modifier]) {\n this.raise(TSErrors.DuplicateModifier, startLoc, {\n modifier\n });\n }\n modified[modifier] = true;\n enforceOrder(startLoc, modifier, \"in\", \"out\");\n } else {\n if (hasOwnProperty.call(modified, modifier)) {\n this.raise(TSErrors.DuplicateModifier, startLoc, {\n modifier\n });\n } else {\n enforceOrder(startLoc, modifier, \"static\", \"readonly\");\n enforceOrder(startLoc, modifier, \"static\", \"override\");\n enforceOrder(startLoc, modifier, \"override\", \"readonly\");\n enforceOrder(startLoc, modifier, \"abstract\", \"override\");\n incompatible(startLoc, modifier, \"declare\", \"override\");\n incompatible(startLoc, modifier, \"static\", \"abstract\");\n }\n modified[modifier] = true;\n }\n if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) {\n this.raise(errorTemplate, startLoc, {\n modifier\n });\n }\n }\n }\n tsIsListTerminator(kind) {\n switch (kind) {\n case \"EnumMembers\":\n case \"TypeMembers\":\n return this.match(8);\n case \"HeritageClauseElement\":\n return this.match(5);\n case \"TupleElementTypes\":\n return this.match(3);\n case \"TypeParametersOrArguments\":\n return this.match(48);\n }\n }\n tsParseList(kind, parseElement) {\n const result = [];\n while (!this.tsIsListTerminator(kind)) {\n result.push(parseElement());\n }\n return result;\n }\n tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) {\n return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos));\n }\n tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) {\n const result = [];\n let trailingCommaPos = -1;\n for (;;) {\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n trailingCommaPos = -1;\n const element = parseElement();\n if (element == null) {\n return undefined;\n }\n result.push(element);\n if (this.eat(12)) {\n trailingCommaPos = this.state.lastTokStartLoc.index;\n continue;\n }\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n if (expectSuccess) {\n this.expect(12);\n }\n return undefined;\n }\n if (refTrailingCommaPos) {\n refTrailingCommaPos.value = trailingCommaPos;\n }\n return result;\n }\n tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) {\n if (!skipFirstToken) {\n if (bracket) {\n this.expect(0);\n } else {\n this.expect(47);\n }\n }\n const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos);\n if (bracket) {\n this.expect(3);\n } else {\n this.expect(48);\n }\n return result;\n }\n tsParseImportType() {\n const node = this.startNode();\n this.expect(83);\n this.expect(10);\n if (!this.match(133)) {\n this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc);\n }\n node.argument = super.parseExprAtom();\n if (this.hasPlugin(\"importAttributes\") || this.hasPlugin(\"importAssertions\")) {\n node.options = null;\n }\n if (this.eat(12)) {\n if (!this.hasPlugin(\"importAssertions\")) {\n this.expectPlugin(\"importAttributes\");\n }\n if (!this.match(11)) {\n node.options = super.parseMaybeAssignAllowIn();\n this.eat(12);\n }\n }\n this.expect(11);\n if (this.eat(16)) {\n node.qualifier = this.tsParseEntityName();\n }\n if (this.match(47)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSImportType\");\n }\n tsParseEntityName(allowReservedWords = true) {\n let entity = this.parseIdentifier(allowReservedWords);\n while (this.eat(16)) {\n const node = this.startNodeAtNode(entity);\n node.left = entity;\n node.right = this.parseIdentifier(allowReservedWords);\n entity = this.finishNode(node, \"TSQualifiedName\");\n }\n return entity;\n }\n tsParseTypeReference() {\n const node = this.startNode();\n node.typeName = this.tsParseEntityName();\n if (!this.hasPrecedingLineBreak() && this.match(47)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeReference\");\n }\n tsParseThisTypePredicate(lhs) {\n this.next();\n const node = this.startNodeAtNode(lhs);\n node.parameterName = lhs;\n node.typeAnnotation = this.tsParseTypeAnnotation(false);\n node.asserts = false;\n return this.finishNode(node, \"TSTypePredicate\");\n }\n tsParseThisTypeNode() {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, \"TSThisType\");\n }\n tsParseTypeQuery() {\n const node = this.startNode();\n this.expect(87);\n if (this.match(83)) {\n node.exprName = this.tsParseImportType();\n } else {\n node.exprName = this.tsParseEntityName();\n }\n if (!this.hasPrecedingLineBreak() && this.match(47)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeQuery\");\n }\n tsParseTypeParameter(parseModifiers) {\n const node = this.startNode();\n parseModifiers(node);\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsEatThenParseType(81);\n node.default = this.tsEatThenParseType(29);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n tsTryParseTypeParameters(parseModifiers) {\n if (this.match(47)) {\n return this.tsParseTypeParameters(parseModifiers);\n }\n }\n tsParseTypeParameters(parseModifiers) {\n const node = this.startNode();\n if (this.match(47) || this.match(142)) {\n this.next();\n } else {\n this.unexpected();\n }\n const refTrailingCommaPos = {\n value: -1\n };\n node.params = this.tsParseBracketedList(\"TypeParametersOrArguments\", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos);\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeParameters, node);\n }\n if (refTrailingCommaPos.value !== -1) {\n this.addExtra(node, \"trailingComma\", refTrailingCommaPos.value);\n }\n return this.finishNode(node, \"TSTypeParameterDeclaration\");\n }\n tsFillSignature(returnToken, signature) {\n const returnTokenRequired = returnToken === 19;\n const paramsKey = \"parameters\";\n const returnTypeKey = \"typeAnnotation\";\n signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n this.expect(10);\n signature[paramsKey] = this.tsParseBindingListForSignature();\n if (returnTokenRequired) {\n signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n } else if (this.match(returnToken)) {\n signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n }\n }\n tsParseBindingListForSignature() {\n const list = super.parseBindingList(11, 41, 2);\n for (const pattern of list) {\n const {\n type\n } = pattern;\n if (type === \"AssignmentPattern\" || type === \"TSParameterProperty\") {\n this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, {\n type\n });\n }\n }\n return list;\n }\n tsParseTypeMemberSemicolon() {\n if (!this.eat(12) && !this.isLineTerminator()) {\n this.expect(13);\n }\n }\n tsParseSignatureMember(kind, node) {\n this.tsFillSignature(14, node);\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, kind);\n }\n tsIsUnambiguouslyIndexSignature() {\n this.next();\n if (tokenIsIdentifier(this.state.type)) {\n this.next();\n return this.match(14);\n }\n return false;\n }\n tsTryParseIndexSignature(node) {\n if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) {\n return;\n }\n this.expect(0);\n const id = this.parseIdentifier();\n id.typeAnnotation = this.tsParseTypeAnnotation();\n this.resetEndLocation(id);\n this.expect(3);\n node.parameters = [id];\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, \"TSIndexSignature\");\n }\n tsParsePropertyOrMethodSignature(node, readonly) {\n if (this.eat(17)) node.optional = true;\n const nodeAny = node;\n if (this.match(10) || this.match(47)) {\n if (readonly) {\n this.raise(TSErrors.ReadonlyForMethodSignature, node);\n }\n const method = nodeAny;\n if (method.kind && this.match(47)) {\n this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition());\n }\n this.tsFillSignature(14, method);\n this.tsParseTypeMemberSemicolon();\n const paramsKey = \"parameters\";\n const returnTypeKey = \"typeAnnotation\";\n if (method.kind === \"get\") {\n if (method[paramsKey].length > 0) {\n this.raise(Errors.BadGetterArity, this.state.curPosition());\n if (this.isThisParam(method[paramsKey][0])) {\n this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition());\n }\n }\n } else if (method.kind === \"set\") {\n if (method[paramsKey].length !== 1) {\n this.raise(Errors.BadSetterArity, this.state.curPosition());\n } else {\n const firstParameter = method[paramsKey][0];\n if (this.isThisParam(firstParameter)) {\n this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition());\n }\n if (firstParameter.type === \"Identifier\" && firstParameter.optional) {\n this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition());\n }\n if (firstParameter.type === \"RestElement\") {\n this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition());\n }\n }\n if (method[returnTypeKey]) {\n this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]);\n }\n } else {\n method.kind = \"method\";\n }\n return this.finishNode(method, \"TSMethodSignature\");\n } else {\n const property = nodeAny;\n if (readonly) property.readonly = true;\n const type = this.tsTryParseTypeAnnotation();\n if (type) property.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(property, \"TSPropertySignature\");\n }\n }\n tsParseTypeMember() {\n const node = this.startNode();\n if (this.match(10) || this.match(47)) {\n return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n }\n if (this.match(77)) {\n const id = this.startNode();\n this.next();\n if (this.match(10) || this.match(47)) {\n return this.tsParseSignatureMember(\"TSConstructSignatureDeclaration\", node);\n } else {\n node.key = this.createIdentifier(id, \"new\");\n return this.tsParsePropertyOrMethodSignature(node, false);\n }\n }\n this.tsParseModifiers({\n allowedModifiers: [\"readonly\"],\n disallowedModifiers: [\"declare\", \"abstract\", \"private\", \"protected\", \"public\", \"static\", \"override\"]\n }, node);\n const idx = this.tsTryParseIndexSignature(node);\n if (idx) {\n return idx;\n }\n super.parsePropertyName(node);\n if (!node.computed && node.key.type === \"Identifier\" && (node.key.name === \"get\" || node.key.name === \"set\") && this.tsTokenCanFollowModifier()) {\n node.kind = node.key.name;\n super.parsePropertyName(node);\n }\n return this.tsParsePropertyOrMethodSignature(node, !!node.readonly);\n }\n tsParseTypeLiteral() {\n const node = this.startNode();\n node.members = this.tsParseObjectTypeMembers();\n return this.finishNode(node, \"TSTypeLiteral\");\n }\n tsParseObjectTypeMembers() {\n this.expect(5);\n const members = this.tsParseList(\"TypeMembers\", this.tsParseTypeMember.bind(this));\n this.expect(8);\n return members;\n }\n tsIsStartOfMappedType() {\n this.next();\n if (this.eat(53)) {\n return this.isContextual(122);\n }\n if (this.isContextual(122)) {\n this.next();\n }\n if (!this.match(0)) {\n return false;\n }\n this.next();\n if (!this.tsIsIdentifier()) {\n return false;\n }\n this.next();\n return this.match(58);\n }\n tsParseMappedType() {\n const node = this.startNode();\n this.expect(5);\n if (this.match(53)) {\n node.readonly = this.state.value;\n this.next();\n this.expectContextual(122);\n } else if (this.eatContextual(122)) {\n node.readonly = true;\n }\n this.expect(0);\n {\n const typeParameter = this.startNode();\n typeParameter.name = this.tsParseTypeParameterName();\n typeParameter.constraint = this.tsExpectThenParseType(58);\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n }\n node.nameType = this.eatContextual(93) ? this.tsParseType() : null;\n this.expect(3);\n if (this.match(53)) {\n node.optional = this.state.value;\n this.next();\n this.expect(17);\n } else if (this.eat(17)) {\n node.optional = true;\n }\n node.typeAnnotation = this.tsTryParseType();\n this.semicolon();\n this.expect(8);\n return this.finishNode(node, \"TSMappedType\");\n }\n tsParseTupleType() {\n const node = this.startNode();\n node.elementTypes = this.tsParseBracketedList(\"TupleElementTypes\", this.tsParseTupleElementType.bind(this), true, false);\n let seenOptionalElement = false;\n node.elementTypes.forEach(elementNode => {\n const {\n type\n } = elementNode;\n if (seenOptionalElement && type !== \"TSRestType\" && type !== \"TSOptionalType\" && !(type === \"TSNamedTupleMember\" && elementNode.optional)) {\n this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode);\n }\n seenOptionalElement || (seenOptionalElement = type === \"TSNamedTupleMember\" && elementNode.optional || type === \"TSOptionalType\");\n });\n return this.finishNode(node, \"TSTupleType\");\n }\n tsParseTupleElementType() {\n const {\n startLoc\n } = this.state;\n const rest = this.eat(21);\n let labeled;\n let label;\n let optional;\n let type;\n const isWord = tokenIsKeywordOrIdentifier(this.state.type);\n const chAfterWord = isWord ? this.lookaheadCharCode() : null;\n if (chAfterWord === 58) {\n labeled = true;\n optional = false;\n label = this.parseIdentifier(true);\n this.expect(14);\n type = this.tsParseType();\n } else if (chAfterWord === 63) {\n optional = true;\n const startLoc = this.state.startLoc;\n const wordName = this.state.value;\n const typeOrLabel = this.tsParseNonArrayType();\n if (this.lookaheadCharCode() === 58) {\n labeled = true;\n label = this.createIdentifier(this.startNodeAt(startLoc), wordName);\n this.expect(17);\n this.expect(14);\n type = this.tsParseType();\n } else {\n labeled = false;\n type = typeOrLabel;\n this.expect(17);\n }\n } else {\n type = this.tsParseType();\n optional = this.eat(17);\n labeled = this.eat(14);\n }\n if (labeled) {\n let labeledNode;\n if (label) {\n labeledNode = this.startNodeAtNode(label);\n labeledNode.optional = optional;\n labeledNode.label = label;\n labeledNode.elementType = type;\n if (this.eat(17)) {\n labeledNode.optional = true;\n this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc);\n }\n } else {\n labeledNode = this.startNodeAtNode(type);\n labeledNode.optional = optional;\n this.raise(TSErrors.InvalidTupleMemberLabel, type);\n labeledNode.label = type;\n labeledNode.elementType = this.tsParseType();\n }\n type = this.finishNode(labeledNode, \"TSNamedTupleMember\");\n } else if (optional) {\n const optionalTypeNode = this.startNodeAtNode(type);\n optionalTypeNode.typeAnnotation = type;\n type = this.finishNode(optionalTypeNode, \"TSOptionalType\");\n }\n if (rest) {\n const restNode = this.startNodeAt(startLoc);\n restNode.typeAnnotation = type;\n type = this.finishNode(restNode, \"TSRestType\");\n }\n return type;\n }\n tsParseParenthesizedType() {\n const node = this.startNode();\n this.expect(10);\n node.typeAnnotation = this.tsParseType();\n this.expect(11);\n return this.finishNode(node, \"TSParenthesizedType\");\n }\n tsParseFunctionOrConstructorType(type, abstract) {\n const node = this.startNode();\n if (type === \"TSConstructorType\") {\n node.abstract = !!abstract;\n if (abstract) this.next();\n this.next();\n }\n this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node));\n return this.finishNode(node, type);\n }\n tsParseLiteralTypeNode() {\n const node = this.startNode();\n switch (this.state.type) {\n case 134:\n case 135:\n case 133:\n case 85:\n case 86:\n node.literal = super.parseExprAtom();\n break;\n default:\n this.unexpected();\n }\n return this.finishNode(node, \"TSLiteralType\");\n }\n tsParseTemplateLiteralType() {\n const node = this.startNode();\n node.literal = super.parseTemplate(false);\n return this.finishNode(node, \"TSLiteralType\");\n }\n parseTemplateSubstitution() {\n if (this.state.inType) return this.tsParseType();\n return super.parseTemplateSubstitution();\n }\n tsParseThisTypeOrThisTypePredicate() {\n const thisKeyword = this.tsParseThisTypeNode();\n if (this.isContextual(116) && !this.hasPrecedingLineBreak()) {\n return this.tsParseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n tsParseNonArrayType() {\n switch (this.state.type) {\n case 133:\n case 134:\n case 135:\n case 85:\n case 86:\n return this.tsParseLiteralTypeNode();\n case 53:\n if (this.state.value === \"-\") {\n const node = this.startNode();\n const nextToken = this.lookahead();\n if (nextToken.type !== 134 && nextToken.type !== 135) {\n this.unexpected();\n }\n node.literal = this.parseMaybeUnary();\n return this.finishNode(node, \"TSLiteralType\");\n }\n break;\n case 78:\n return this.tsParseThisTypeOrThisTypePredicate();\n case 87:\n return this.tsParseTypeQuery();\n case 83:\n return this.tsParseImportType();\n case 5:\n return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();\n case 0:\n return this.tsParseTupleType();\n case 10:\n return this.tsParseParenthesizedType();\n case 25:\n case 24:\n return this.tsParseTemplateLiteralType();\n default:\n {\n const {\n type\n } = this.state;\n if (tokenIsIdentifier(type) || type === 88 || type === 84) {\n const nodeType = type === 88 ? \"TSVoidKeyword\" : type === 84 ? \"TSNullKeyword\" : keywordTypeFromName(this.state.value);\n if (nodeType !== undefined && this.lookaheadCharCode() !== 46) {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, nodeType);\n }\n return this.tsParseTypeReference();\n }\n }\n }\n this.unexpected();\n }\n tsParseArrayTypeOrHigher() {\n let type = this.tsParseNonArrayType();\n while (!this.hasPrecedingLineBreak() && this.eat(0)) {\n if (this.match(3)) {\n const node = this.startNodeAtNode(type);\n node.elementType = type;\n this.expect(3);\n type = this.finishNode(node, \"TSArrayType\");\n } else {\n const node = this.startNodeAtNode(type);\n node.objectType = type;\n node.indexType = this.tsParseType();\n this.expect(3);\n type = this.finishNode(node, \"TSIndexedAccessType\");\n }\n }\n return type;\n }\n tsParseTypeOperator() {\n const node = this.startNode();\n const operator = this.state.value;\n this.next();\n node.operator = operator;\n node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n if (operator === \"readonly\") {\n this.tsCheckTypeAnnotationForReadOnly(node);\n }\n return this.finishNode(node, \"TSTypeOperator\");\n }\n tsCheckTypeAnnotationForReadOnly(node) {\n switch (node.typeAnnotation.type) {\n case \"TSTupleType\":\n case \"TSArrayType\":\n return;\n default:\n this.raise(TSErrors.UnexpectedReadonly, node);\n }\n }\n tsParseInferType() {\n const node = this.startNode();\n this.expectContextual(115);\n const typeParameter = this.startNode();\n typeParameter.name = this.tsParseTypeParameterName();\n typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType());\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n return this.finishNode(node, \"TSInferType\");\n }\n tsParseConstraintForInferType() {\n if (this.eat(81)) {\n const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());\n if (this.state.inDisallowConditionalTypesContext || !this.match(17)) {\n return constraint;\n }\n }\n }\n tsParseTypeOperatorOrHigher() {\n const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc;\n return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());\n }\n tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) {\n const node = this.startNode();\n const hasLeadingOperator = this.eat(operator);\n const types = [];\n do {\n types.push(parseConstituentType());\n } while (this.eat(operator));\n if (types.length === 1 && !hasLeadingOperator) {\n return types[0];\n }\n node.types = types;\n return this.finishNode(node, kind);\n }\n tsParseIntersectionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\"TSIntersectionType\", this.tsParseTypeOperatorOrHigher.bind(this), 45);\n }\n tsParseUnionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\"TSUnionType\", this.tsParseIntersectionTypeOrHigher.bind(this), 43);\n }\n tsIsStartOfFunctionType() {\n if (this.match(47)) {\n return true;\n }\n return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));\n }\n tsSkipParameterStart() {\n if (tokenIsIdentifier(this.state.type) || this.match(78)) {\n this.next();\n return true;\n }\n if (this.match(5)) {\n const {\n errors\n } = this.state;\n const previousErrorCount = errors.length;\n try {\n this.parseObjectLike(8, true);\n return errors.length === previousErrorCount;\n } catch (_unused) {\n return false;\n }\n }\n if (this.match(0)) {\n this.next();\n const {\n errors\n } = this.state;\n const previousErrorCount = errors.length;\n try {\n super.parseBindingList(3, 93, 1);\n return errors.length === previousErrorCount;\n } catch (_unused2) {\n return false;\n }\n }\n return false;\n }\n tsIsUnambiguouslyStartOfFunctionType() {\n this.next();\n if (this.match(11) || this.match(21)) {\n return true;\n }\n if (this.tsSkipParameterStart()) {\n if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) {\n return true;\n }\n if (this.match(11)) {\n this.next();\n if (this.match(19)) {\n return true;\n }\n }\n }\n return false;\n }\n tsParseTypeOrTypePredicateAnnotation(returnToken) {\n return this.tsInType(() => {\n const t = this.startNode();\n this.expect(returnToken);\n const node = this.startNode();\n const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));\n if (asserts && this.match(78)) {\n let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n if (thisTypePredicate.type === \"TSThisType\") {\n node.parameterName = thisTypePredicate;\n node.asserts = true;\n node.typeAnnotation = null;\n thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n } else {\n this.resetStartLocationFromNode(thisTypePredicate, node);\n thisTypePredicate.asserts = true;\n }\n t.typeAnnotation = thisTypePredicate;\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n if (!typePredicateVariable) {\n if (!asserts) {\n return this.tsParseTypeAnnotation(false, t);\n }\n node.parameterName = this.parseIdentifier();\n node.asserts = asserts;\n node.typeAnnotation = null;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n const type = this.tsParseTypeAnnotation(false);\n node.parameterName = typePredicateVariable;\n node.typeAnnotation = type;\n node.asserts = asserts;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n });\n }\n tsTryParseTypeOrTypePredicateAnnotation() {\n if (this.match(14)) {\n return this.tsParseTypeOrTypePredicateAnnotation(14);\n }\n }\n tsTryParseTypeAnnotation() {\n if (this.match(14)) {\n return this.tsParseTypeAnnotation();\n }\n }\n tsTryParseType() {\n return this.tsEatThenParseType(14);\n }\n tsParseTypePredicatePrefix() {\n const id = this.parseIdentifier();\n if (this.isContextual(116) && !this.hasPrecedingLineBreak()) {\n this.next();\n return id;\n }\n }\n tsParseTypePredicateAsserts() {\n if (this.state.type !== 109) {\n return false;\n }\n const containsEsc = this.state.containsEsc;\n this.next();\n if (!tokenIsIdentifier(this.state.type) && !this.match(78)) {\n return false;\n }\n if (containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, {\n reservedWord: \"asserts\"\n });\n }\n return true;\n }\n tsParseTypeAnnotation(eatColon = true, t = this.startNode()) {\n this.tsInType(() => {\n if (eatColon) this.expect(14);\n t.typeAnnotation = this.tsParseType();\n });\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n tsParseType() {\n assert(this.state.inType);\n const type = this.tsParseNonConditionalType();\n if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) {\n return type;\n }\n const node = this.startNodeAtNode(type);\n node.checkType = type;\n node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType());\n this.expect(17);\n node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());\n this.expect(14);\n node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());\n return this.finishNode(node, \"TSConditionalType\");\n }\n isAbstractConstructorSignature() {\n return this.isContextual(124) && this.lookahead().type === 77;\n }\n tsParseNonConditionalType() {\n if (this.tsIsStartOfFunctionType()) {\n return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n }\n if (this.match(77)) {\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n } else if (this.isAbstractConstructorSignature()) {\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\", true);\n }\n return this.tsParseUnionTypeOrHigher();\n }\n tsParseTypeAssertion() {\n if (this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")) {\n this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc);\n }\n const node = this.startNode();\n node.typeAnnotation = this.tsInType(() => {\n this.next();\n return this.match(75) ? this.tsParseTypeReference() : this.tsParseType();\n });\n this.expect(48);\n node.expression = this.parseMaybeUnary();\n return this.finishNode(node, \"TSTypeAssertion\");\n }\n tsParseHeritageClause(token) {\n const originalStartLoc = this.state.startLoc;\n const delimitedList = this.tsParseDelimitedList(\"HeritageClauseElement\", () => {\n const node = this.startNode();\n node.expression = this.tsParseEntityName();\n if (this.match(47)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n });\n if (!delimitedList.length) {\n this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, {\n token\n });\n }\n return delimitedList;\n }\n tsParseInterfaceDeclaration(node, properties = {}) {\n if (this.hasFollowingLineBreak()) return null;\n this.expectContextual(129);\n if (properties.declare) node.declare = true;\n if (tokenIsIdentifier(this.state.type)) {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, 130);\n } else {\n node.id = null;\n this.raise(TSErrors.MissingInterfaceName, this.state.startLoc);\n }\n node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);\n if (this.eat(81)) {\n node.extends = this.tsParseHeritageClause(\"extends\");\n }\n const body = this.startNode();\n body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n node.body = this.finishNode(body, \"TSInterfaceBody\");\n return this.finishNode(node, \"TSInterfaceDeclaration\");\n }\n tsParseTypeAliasDeclaration(node) {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, 2);\n node.typeAnnotation = this.tsInType(() => {\n node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers);\n this.expect(29);\n if (this.isContextual(114) && this.lookahead().type !== 16) {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, \"TSIntrinsicKeyword\");\n }\n return this.tsParseType();\n });\n this.semicolon();\n return this.finishNode(node, \"TSTypeAliasDeclaration\");\n }\n tsInNoContext(cb) {\n const oldContext = this.state.context;\n this.state.context = [oldContext[0]];\n try {\n return cb();\n } finally {\n this.state.context = oldContext;\n }\n }\n tsInType(cb) {\n const oldInType = this.state.inType;\n this.state.inType = true;\n try {\n return cb();\n } finally {\n this.state.inType = oldInType;\n }\n }\n tsInDisallowConditionalTypesContext(cb) {\n const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = true;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext;\n }\n }\n tsInAllowConditionalTypesContext(cb) {\n const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = false;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext;\n }\n }\n tsEatThenParseType(token) {\n if (this.match(token)) {\n return this.tsNextThenParseType();\n }\n }\n tsExpectThenParseType(token) {\n return this.tsInType(() => {\n this.expect(token);\n return this.tsParseType();\n });\n }\n tsNextThenParseType() {\n return this.tsInType(() => {\n this.next();\n return this.tsParseType();\n });\n }\n tsParseEnumMember() {\n const node = this.startNode();\n node.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true);\n if (this.eat(29)) {\n node.initializer = super.parseMaybeAssignAllowIn();\n }\n return this.finishNode(node, \"TSEnumMember\");\n }\n tsParseEnumDeclaration(node, properties = {}) {\n if (properties.const) node.const = true;\n if (properties.declare) node.declare = true;\n this.expectContextual(126);\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, node.const ? 8971 : 8459);\n this.expect(5);\n node.members = this.tsParseDelimitedList(\"EnumMembers\", this.tsParseEnumMember.bind(this));\n this.expect(8);\n return this.finishNode(node, \"TSEnumDeclaration\");\n }\n tsParseModuleBlock() {\n const node = this.startNode();\n this.scope.enter(0);\n this.expect(5);\n super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8);\n this.scope.exit();\n return this.finishNode(node, \"TSModuleBlock\");\n }\n tsParseModuleOrNamespaceDeclaration(node, nested = false) {\n node.id = this.parseIdentifier();\n if (!nested) {\n this.checkIdentifier(node.id, 1024);\n }\n if (this.eat(16)) {\n const inner = this.startNode();\n this.tsParseModuleOrNamespaceDeclaration(inner, true);\n node.body = inner;\n } else {\n this.scope.enter(256);\n this.prodParam.enter(0);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n tsParseAmbientExternalModuleDeclaration(node) {\n if (this.isContextual(112)) {\n node.global = true;\n node.id = this.parseIdentifier();\n } else if (this.match(133)) {\n node.id = super.parseStringLiteral(this.state.value);\n } else {\n this.unexpected();\n }\n if (this.match(5)) {\n this.scope.enter(256);\n this.prodParam.enter(0);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n } else {\n this.semicolon();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) {\n node.isExport = isExport || false;\n node.id = maybeDefaultIdentifier || this.parseIdentifier();\n this.checkIdentifier(node.id, 4096);\n this.expect(29);\n const moduleReference = this.tsParseModuleReference();\n if (node.importKind === \"type\" && moduleReference.type !== \"TSExternalModuleReference\") {\n this.raise(TSErrors.ImportAliasHasImportType, moduleReference);\n }\n node.moduleReference = moduleReference;\n this.semicolon();\n return this.finishNode(node, \"TSImportEqualsDeclaration\");\n }\n tsIsExternalModuleReference() {\n return this.isContextual(119) && this.lookaheadCharCode() === 40;\n }\n tsParseModuleReference() {\n return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false);\n }\n tsParseExternalModuleReference() {\n const node = this.startNode();\n this.expectContextual(119);\n this.expect(10);\n if (!this.match(133)) {\n this.unexpected();\n }\n node.expression = super.parseExprAtom();\n this.expect(11);\n this.sawUnambiguousESM = true;\n return this.finishNode(node, \"TSExternalModuleReference\");\n }\n tsLookAhead(f) {\n const state = this.state.clone();\n const res = f();\n this.state = state;\n return res;\n }\n tsTryParseAndCatch(f) {\n const result = this.tryParse(abort => f() || abort());\n if (result.aborted || !result.node) return;\n if (result.error) this.state = result.failState;\n return result.node;\n }\n tsTryParse(f) {\n const state = this.state.clone();\n const result = f();\n if (result !== undefined && result !== false) {\n return result;\n }\n this.state = state;\n }\n tsTryParseDeclare(nany) {\n if (this.isLineTerminator()) {\n return;\n }\n let startType = this.state.type;\n let kind;\n if (this.isContextual(100)) {\n startType = 74;\n kind = \"let\";\n }\n return this.tsInAmbientContext(() => {\n switch (startType) {\n case 68:\n nany.declare = true;\n return super.parseFunctionStatement(nany, false, false);\n case 80:\n nany.declare = true;\n return this.parseClass(nany, true, false);\n case 126:\n return this.tsParseEnumDeclaration(nany, {\n declare: true\n });\n case 112:\n return this.tsParseAmbientExternalModuleDeclaration(nany);\n case 75:\n case 74:\n if (!this.match(75) || !this.isLookaheadContextual(\"enum\")) {\n nany.declare = true;\n return this.parseVarStatement(nany, kind || this.state.value, true);\n }\n this.expect(75);\n return this.tsParseEnumDeclaration(nany, {\n const: true,\n declare: true\n });\n case 129:\n {\n const result = this.tsParseInterfaceDeclaration(nany, {\n declare: true\n });\n if (result) return result;\n }\n default:\n if (tokenIsIdentifier(startType)) {\n return this.tsParseDeclaration(nany, this.state.value, true, null);\n }\n }\n });\n }\n tsTryParseExportDeclaration() {\n return this.tsParseDeclaration(this.startNode(), this.state.value, true, null);\n }\n tsParseExpressionStatement(node, expr, decorators) {\n switch (expr.name) {\n case \"declare\":\n {\n const declaration = this.tsTryParseDeclare(node);\n if (declaration) {\n declaration.declare = true;\n }\n return declaration;\n }\n case \"global\":\n if (this.match(5)) {\n this.scope.enter(256);\n this.prodParam.enter(0);\n const mod = node;\n mod.global = true;\n mod.id = expr;\n mod.body = this.tsParseModuleBlock();\n this.scope.exit();\n this.prodParam.exit();\n return this.finishNode(mod, \"TSModuleDeclaration\");\n }\n break;\n default:\n return this.tsParseDeclaration(node, expr.name, false, decorators);\n }\n }\n tsParseDeclaration(node, value, next, decorators) {\n switch (value) {\n case \"abstract\":\n if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) {\n return this.tsParseAbstractDeclaration(node, decorators);\n }\n break;\n case \"module\":\n if (this.tsCheckLineTerminator(next)) {\n if (this.match(133)) {\n return this.tsParseAmbientExternalModuleDeclaration(node);\n } else if (tokenIsIdentifier(this.state.type)) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n }\n break;\n case \"namespace\":\n if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n break;\n case \"type\":\n if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {\n return this.tsParseTypeAliasDeclaration(node);\n }\n break;\n }\n }\n tsCheckLineTerminator(next) {\n if (next) {\n if (this.hasFollowingLineBreak()) return false;\n this.next();\n return true;\n }\n return !this.isLineTerminator();\n }\n tsTryParseGenericAsyncArrowFunction(startLoc) {\n if (!this.match(47)) return;\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = true;\n const res = this.tsTryParseAndCatch(() => {\n const node = this.startNodeAt(startLoc);\n node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n super.parseFunctionParams(node);\n node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n this.expect(19);\n return node;\n });\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n if (!res) return;\n return super.parseArrowExpression(res, null, true);\n }\n tsParseTypeArgumentsInExpression() {\n if (this.reScan_lt() !== 47) return;\n return this.tsParseTypeArguments();\n }\n tsParseTypeArguments() {\n const node = this.startNode();\n node.params = this.tsInType(() => this.tsInNoContext(() => {\n this.expect(47);\n return this.tsParseDelimitedList(\"TypeParametersOrArguments\", this.tsParseType.bind(this));\n }));\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeArguments, node);\n } else if (!this.state.inType && this.curContext() === types.brace) {\n this.reScan_lt_gt();\n }\n this.expect(48);\n return this.finishNode(node, \"TSTypeParameterInstantiation\");\n }\n tsIsDeclarationStart() {\n return tokenIsTSDeclarationStart(this.state.type);\n }\n isExportDefaultSpecifier() {\n if (this.tsIsDeclarationStart()) return false;\n return super.isExportDefaultSpecifier();\n }\n parseAssignableListItem(flags, decorators) {\n const startLoc = this.state.startLoc;\n const modified = {};\n this.tsParseModifiers({\n allowedModifiers: [\"public\", \"private\", \"protected\", \"override\", \"readonly\"]\n }, modified);\n const accessibility = modified.accessibility;\n const override = modified.override;\n const readonly = modified.readonly;\n if (!(flags & 4) && (accessibility || readonly || override)) {\n this.raise(TSErrors.UnexpectedParameterModifier, startLoc);\n }\n const left = this.parseMaybeDefault();\n if (flags & 2) {\n this.parseFunctionParamType(left);\n }\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (accessibility || readonly || override) {\n const pp = this.startNodeAt(startLoc);\n if (decorators.length) {\n pp.decorators = decorators;\n }\n if (accessibility) pp.accessibility = accessibility;\n if (readonly) pp.readonly = readonly;\n if (override) pp.override = override;\n if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n this.raise(TSErrors.UnsupportedParameterPropertyKind, pp);\n }\n pp.parameter = elt;\n return this.finishNode(pp, \"TSParameterProperty\");\n }\n if (decorators.length) {\n left.decorators = decorators;\n }\n return elt;\n }\n isSimpleParameter(node) {\n return node.type === \"TSParameterProperty\" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node);\n }\n tsDisallowOptionalPattern(node) {\n for (const param of node.params) {\n if (param.type !== \"Identifier\" && param.optional && !this.state.isAmbientContext) {\n this.raise(TSErrors.PatternIsOptional, param);\n }\n }\n }\n setArrowFunctionParameters(node, params, trailingCommaLoc) {\n super.setArrowFunctionParameters(node, params, trailingCommaLoc);\n this.tsDisallowOptionalPattern(node);\n }\n parseFunctionBodyAndFinish(node, type, isMethod = false) {\n if (this.match(14)) {\n node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14);\n }\n const bodilessType = type === \"FunctionDeclaration\" ? \"TSDeclareFunction\" : type === \"ClassMethod\" || type === \"ClassPrivateMethod\" ? \"TSDeclareMethod\" : undefined;\n if (bodilessType && !this.match(5) && this.isLineTerminator()) {\n return this.finishNode(node, bodilessType);\n }\n if (bodilessType === \"TSDeclareFunction\" && this.state.isAmbientContext) {\n this.raise(TSErrors.DeclareFunctionHasImplementation, node);\n if (node.declare) {\n return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod);\n }\n }\n this.tsDisallowOptionalPattern(node);\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n registerFunctionStatementId(node) {\n if (!node.body && node.id) {\n this.checkIdentifier(node.id, 1024);\n } else {\n super.registerFunctionStatementId(node);\n }\n }\n tsCheckForInvalidTypeCasts(items) {\n items.forEach(node => {\n if ((node == null ? void 0 : node.type) === \"TSTypeCastExpression\") {\n this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation);\n }\n });\n }\n toReferencedList(exprList, isInParens) {\n this.tsCheckForInvalidTypeCasts(exprList);\n return exprList;\n }\n parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {\n const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);\n if (node.type === \"ArrayExpression\") {\n this.tsCheckForInvalidTypeCasts(node.elements);\n }\n return node;\n }\n parseSubscript(base, startLoc, noCalls, state) {\n if (!this.hasPrecedingLineBreak() && this.match(35)) {\n this.state.canStartJSXElement = false;\n this.next();\n const nonNullExpression = this.startNodeAt(startLoc);\n nonNullExpression.expression = base;\n return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n }\n let isOptionalCall = false;\n if (this.match(18) && this.lookaheadCharCode() === 60) {\n if (noCalls) {\n state.stop = true;\n return base;\n }\n state.optionalChainMember = isOptionalCall = true;\n this.next();\n }\n if (this.match(47) || this.match(51)) {\n let missingParenErrorLoc;\n const result = this.tsTryParseAndCatch(() => {\n if (!noCalls && this.atPossibleAsyncArrow(base)) {\n const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc);\n if (asyncArrowFn) {\n return asyncArrowFn;\n }\n }\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (!typeArguments) return;\n if (isOptionalCall && !this.match(10)) {\n missingParenErrorLoc = this.state.curPosition();\n return;\n }\n if (tokenIsTemplate(this.state.type)) {\n const result = super.parseTaggedTemplateExpression(base, startLoc, state);\n result.typeParameters = typeArguments;\n return result;\n }\n if (!noCalls && this.eat(10)) {\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = this.parseCallExpressionArguments(11, false);\n this.tsCheckForInvalidTypeCasts(node.arguments);\n node.typeParameters = typeArguments;\n if (state.optionalChainMember) {\n node.optional = isOptionalCall;\n }\n return this.finishCallExpression(node, state.optionalChainMember);\n }\n const tokenType = this.state.type;\n if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) {\n return;\n }\n const node = this.startNodeAt(startLoc);\n node.expression = base;\n node.typeParameters = typeArguments;\n return this.finishNode(node, \"TSInstantiationExpression\");\n });\n if (missingParenErrorLoc) {\n this.unexpected(missingParenErrorLoc, 10);\n }\n if (result) {\n if (result.type === \"TSInstantiationExpression\" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) {\n this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc);\n }\n return result;\n }\n }\n return super.parseSubscript(base, startLoc, noCalls, state);\n }\n parseNewCallee(node) {\n var _callee$extra;\n super.parseNewCallee(node);\n const {\n callee\n } = node;\n if (callee.type === \"TSInstantiationExpression\" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) {\n node.typeParameters = callee.typeParameters;\n node.callee = callee.expression;\n }\n }\n parseExprOp(left, leftStartLoc, minPrec) {\n let isSatisfies;\n if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) {\n const node = this.startNodeAt(leftStartLoc);\n node.expression = left;\n node.typeAnnotation = this.tsInType(() => {\n this.next();\n if (this.match(75)) {\n if (isSatisfies) {\n this.raise(Errors.UnexpectedKeyword, this.state.startLoc, {\n keyword: \"const\"\n });\n }\n return this.tsParseTypeReference();\n }\n return this.tsParseType();\n });\n this.finishNode(node, isSatisfies ? \"TSSatisfiesExpression\" : \"TSAsExpression\");\n this.reScan_lt_gt();\n return this.parseExprOp(node, leftStartLoc, minPrec);\n }\n return super.parseExprOp(left, leftStartLoc, minPrec);\n }\n checkReservedWord(word, startLoc, checkKeywords, isBinding) {\n if (!this.state.isAmbientContext) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n checkImportReflection(node) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start);\n }\n }\n checkDuplicateExports() {}\n isPotentialImportPhase(isExport) {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(130)) {\n const ch = this.lookaheadCharCode();\n return isExport ? ch === 123 || ch === 42 : ch !== 61;\n }\n return !isExport && this.isContextual(87);\n }\n applyImportPhase(node, isExport, phase, loc) {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n node.exportKind = phase === \"type\" ? \"type\" : \"value\";\n } else {\n node.importKind = phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n parseImport(node) {\n if (this.match(133)) {\n node.importKind = \"value\";\n return super.parseImport(node);\n }\n let importNode;\n if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) {\n node.importKind = \"value\";\n return this.tsParseImportEqualsDeclaration(node);\n } else if (this.isContextual(130)) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false);\n if (this.lookaheadCharCode() === 61) {\n return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier);\n } else {\n importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier);\n }\n } else {\n importNode = super.parseImport(node);\n }\n if (importNode.importKind === \"type\" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === \"ImportDefaultSpecifier\") {\n this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode);\n }\n return importNode;\n }\n parseExport(node, decorators) {\n if (this.match(83)) {\n this.next();\n const nodeImportEquals = node;\n let maybeDefaultIdentifier = null;\n if (this.isContextual(130) && this.isPotentialImportPhase(false)) {\n maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false);\n } else {\n nodeImportEquals.importKind = \"value\";\n }\n return this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true);\n } else if (this.eat(29)) {\n const assign = node;\n assign.expression = super.parseExpression();\n this.semicolon();\n this.sawUnambiguousESM = true;\n return this.finishNode(assign, \"TSExportAssignment\");\n } else if (this.eatContextual(93)) {\n const decl = node;\n this.expectContextual(128);\n decl.id = this.parseIdentifier();\n this.semicolon();\n return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n } else {\n return super.parseExport(node, decorators);\n }\n }\n isAbstractClass() {\n return this.isContextual(124) && this.lookahead().type === 80;\n }\n parseExportDefaultExpression() {\n if (this.isAbstractClass()) {\n const cls = this.startNode();\n this.next();\n cls.abstract = true;\n return this.parseClass(cls, true, true);\n }\n if (this.match(129)) {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) return result;\n }\n return super.parseExportDefaultExpression();\n }\n parseVarStatement(node, kind, allowMissingInitializer = false) {\n const {\n isAmbientContext\n } = this.state;\n const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext);\n if (!isAmbientContext) return declaration;\n for (const {\n id,\n init\n } of declaration.declarations) {\n if (!init) continue;\n if (kind !== \"const\" || !!id.typeAnnotation) {\n this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init);\n } else if (!isValidAmbientConstInitializer(init, this.hasPlugin(\"estree\"))) {\n this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init);\n }\n }\n return declaration;\n }\n parseStatementContent(flags, decorators) {\n if (this.match(75) && this.isLookaheadContextual(\"enum\")) {\n const node = this.startNode();\n this.expect(75);\n return this.tsParseEnumDeclaration(node, {\n const: true\n });\n }\n if (this.isContextual(126)) {\n return this.tsParseEnumDeclaration(this.startNode());\n }\n if (this.isContextual(129)) {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) return result;\n }\n return super.parseStatementContent(flags, decorators);\n }\n parseAccessModifier() {\n return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n }\n tsHasSomeModifiers(member, modifiers) {\n return modifiers.some(modifier => {\n if (tsIsAccessModifier(modifier)) {\n return member.accessibility === modifier;\n }\n return !!member[modifier];\n });\n }\n tsIsStartOfStaticBlocks() {\n return this.isContextual(106) && this.lookaheadCharCode() === 123;\n }\n parseClassMember(classBody, member, state) {\n const modifiers = [\"declare\", \"private\", \"public\", \"protected\", \"override\", \"abstract\", \"readonly\", \"static\"];\n this.tsParseModifiers({\n allowedModifiers: modifiers,\n disallowedModifiers: [\"in\", \"out\"],\n stopOnStartOfClassStaticBlock: true,\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions\n }, member);\n const callParseClassMemberWithIsStatic = () => {\n if (this.tsIsStartOfStaticBlocks()) {\n this.next();\n this.next();\n if (this.tsHasSomeModifiers(member, modifiers)) {\n this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition());\n }\n super.parseClassStaticBlock(classBody, member);\n } else {\n this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static);\n }\n };\n if (member.declare) {\n this.tsInAmbientContext(callParseClassMemberWithIsStatic);\n } else {\n callParseClassMemberWithIsStatic();\n }\n }\n parseClassMemberWithIsStatic(classBody, member, state, isStatic) {\n const idx = this.tsTryParseIndexSignature(member);\n if (idx) {\n classBody.body.push(idx);\n if (member.abstract) {\n this.raise(TSErrors.IndexSignatureHasAbstract, member);\n }\n if (member.accessibility) {\n this.raise(TSErrors.IndexSignatureHasAccessibility, member, {\n modifier: member.accessibility\n });\n }\n if (member.declare) {\n this.raise(TSErrors.IndexSignatureHasDeclare, member);\n }\n if (member.override) {\n this.raise(TSErrors.IndexSignatureHasOverride, member);\n }\n return;\n }\n if (!this.state.inAbstractClass && member.abstract) {\n this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member);\n }\n if (member.override) {\n if (!state.hadSuperClass) {\n this.raise(TSErrors.OverrideNotInSubClass, member);\n }\n }\n super.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n parsePostMemberNameModifiers(methodOrProp) {\n const optional = this.eat(17);\n if (optional) methodOrProp.optional = true;\n if (methodOrProp.readonly && this.match(10)) {\n this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp);\n }\n if (methodOrProp.declare && this.match(10)) {\n this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp);\n }\n }\n parseExpressionStatement(node, expr, decorators) {\n const decl = expr.type === \"Identifier\" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined;\n return decl || super.parseExpressionStatement(node, expr, decorators);\n }\n shouldParseExportDeclaration() {\n if (this.tsIsDeclarationStart()) return true;\n return super.shouldParseExportDeclaration();\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (!this.state.maybeInArrowParameters || !this.match(17)) {\n return super.parseConditional(expr, startLoc, refExpressionErrors);\n }\n const result = this.tryParse(() => super.parseConditional(expr, startLoc));\n if (!result.node) {\n if (result.error) {\n super.setOptionalParametersError(refExpressionErrors, result.error);\n }\n return expr;\n }\n if (result.error) this.state = result.failState;\n return result.node;\n }\n parseParenItem(node, startLoc) {\n const newNode = super.parseParenItem(node, startLoc);\n if (this.eat(17)) {\n newNode.optional = true;\n this.resetEndLocation(node);\n }\n if (this.match(14)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n }\n return node;\n }\n parseExportDeclaration(node) {\n if (!this.state.isAmbientContext && this.isContextual(125)) {\n return this.tsInAmbientContext(() => this.parseExportDeclaration(node));\n }\n const startLoc = this.state.startLoc;\n const isDeclare = this.eatContextual(125);\n if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) {\n throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc);\n }\n const isIdentifier = tokenIsIdentifier(this.state.type);\n const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node);\n if (!declaration) return null;\n if (declaration.type === \"TSInterfaceDeclaration\" || declaration.type === \"TSTypeAliasDeclaration\" || isDeclare) {\n node.exportKind = \"type\";\n }\n if (isDeclare) {\n this.resetStartLocation(declaration, startLoc);\n declaration.declare = true;\n }\n return declaration;\n }\n parseClassId(node, isStatement, optionalId, bindingType) {\n if ((!isStatement || optionalId) && this.isContextual(113)) {\n return;\n }\n super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331);\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);\n if (typeParameters) node.typeParameters = typeParameters;\n }\n parseClassPropertyAnnotation(node) {\n if (!node.optional) {\n if (this.eat(35)) {\n node.definite = true;\n } else if (this.eat(17)) {\n node.optional = true;\n }\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n }\n parseClassProperty(node) {\n this.parseClassPropertyAnnotation(node);\n if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) {\n this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc);\n }\n if (node.abstract && this.match(29)) {\n const {\n key\n } = node;\n this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, {\n propertyName: key.type === \"Identifier\" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`\n });\n }\n return super.parseClassProperty(node);\n }\n parseClassPrivateProperty(node) {\n if (node.abstract) {\n this.raise(TSErrors.PrivateElementHasAbstract, node);\n }\n if (node.accessibility) {\n this.raise(TSErrors.PrivateElementHasAccessibility, node, {\n modifier: node.accessibility\n });\n }\n this.parseClassPropertyAnnotation(node);\n return super.parseClassPrivateProperty(node);\n }\n parseClassAccessorProperty(node) {\n this.parseClassPropertyAnnotation(node);\n if (node.optional) {\n this.raise(TSErrors.AccessorCannotBeOptional, node);\n }\n return super.parseClassAccessorProperty(node);\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters && isConstructor) {\n this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters);\n }\n const {\n declare = false,\n kind\n } = method;\n if (declare && (kind === \"get\" || kind === \"set\")) {\n this.raise(TSErrors.DeclareAccessor, method, {\n kind\n });\n }\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);\n }\n pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n declareClassPrivateMethodInScope(node, kind) {\n if (node.type === \"TSDeclareMethod\") return;\n if (node.type === \"MethodDefinition\" && !hasOwnProperty.call(node.value, \"body\")) {\n return;\n }\n super.declareClassPrivateMethodInScope(node, kind);\n }\n parseClassSuper(node) {\n super.parseClassSuper(node);\n if (node.superClass && (this.match(47) || this.match(51))) {\n node.superTypeParameters = this.tsParseTypeArgumentsInExpression();\n }\n if (this.eatContextual(113)) {\n node.implements = this.tsParseHeritageClause(\"implements\");\n }\n }\n parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters) prop.typeParameters = typeParameters;\n return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors);\n }\n parseFunctionParams(node, isConstructor) {\n const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);\n if (typeParameters) node.typeParameters = typeParameters;\n super.parseFunctionParams(node, isConstructor);\n }\n parseVarId(decl, kind) {\n super.parseVarId(decl, kind);\n if (decl.id.type === \"Identifier\" && !this.hasPrecedingLineBreak() && this.eat(35)) {\n decl.definite = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n decl.id.typeAnnotation = type;\n this.resetEndLocation(decl.id);\n }\n }\n parseAsyncArrowFromCallExpression(node, call) {\n if (this.match(14)) {\n node.returnType = this.tsParseTypeAnnotation();\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2;\n let state;\n let jsx;\n let typeCast;\n if (this.hasPlugin(\"jsx\") && (this.match(142) || this.match(47))) {\n state = this.state.clone();\n jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);\n if (!jsx.error) return jsx.node;\n const {\n context\n } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === types.j_oTag || currentContext === types.j_expr) {\n context.pop();\n }\n }\n if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) {\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n if (!state || state === this.state) state = this.state.clone();\n let typeParameters;\n const arrow = this.tryParse(abort => {\n var _expr$extra, _typeParameters;\n typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n if (expr.type !== \"ArrowFunctionExpression\" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {\n abort();\n }\n if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) {\n this.resetStartLocationFromNode(expr, typeParameters);\n }\n expr.typeParameters = typeParameters;\n return expr;\n }, state);\n if (!arrow.error && !arrow.aborted) {\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n return arrow.node;\n }\n if (!jsx) {\n assert(!this.hasPlugin(\"jsx\"));\n typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);\n if (!typeCast.error) return typeCast.node;\n }\n if ((_jsx2 = jsx) != null && _jsx2.node) {\n this.state = jsx.failState;\n return jsx.node;\n }\n if (arrow.node) {\n this.state = arrow.failState;\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n return arrow.node;\n }\n if ((_typeCast = typeCast) != null && _typeCast.node) {\n this.state = typeCast.failState;\n return typeCast.node;\n }\n throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error);\n }\n reportReservedArrowTypeParam(node) {\n var _node$extra;\n if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra = node.extra) != null && _node$extra.trailingComma) && this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")) {\n this.raise(TSErrors.ReservedArrowTypeParam, node);\n }\n }\n parseMaybeUnary(refExpressionErrors, sawUnary) {\n if (!this.hasPlugin(\"jsx\") && this.match(47)) {\n return this.tsParseTypeAssertion();\n }\n return super.parseMaybeUnary(refExpressionErrors, sawUnary);\n }\n parseArrow(node) {\n if (this.match(14)) {\n const result = this.tryParse(abort => {\n const returnType = this.tsParseTypeOrTypePredicateAnnotation(14);\n if (this.canInsertSemicolon() || !this.match(19)) abort();\n return returnType;\n });\n if (result.aborted) return;\n if (!result.thrown) {\n if (result.error) this.state = result.failState;\n node.returnType = result.node;\n }\n }\n return super.parseArrow(node);\n }\n parseFunctionParamType(param) {\n if (this.eat(17)) {\n param.optional = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) param.typeAnnotation = type;\n this.resetEndLocation(param);\n return param;\n }\n isAssignable(node, isBinding) {\n switch (node.type) {\n case \"TSTypeCastExpression\":\n return this.isAssignable(node.expression, isBinding);\n case \"TSParameterProperty\":\n return true;\n default:\n return super.isAssignable(node, isBinding);\n }\n }\n toAssignable(node, isLHS = false) {\n switch (node.type) {\n case \"ParenthesizedExpression\":\n this.toAssignableParenthesizedExpression(node, isLHS);\n break;\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSNonNullExpression\":\n case \"TSTypeAssertion\":\n if (isLHS) {\n this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node);\n } else {\n this.raise(TSErrors.UnexpectedTypeCastInParameter, node);\n }\n this.toAssignable(node.expression, isLHS);\n break;\n case \"AssignmentExpression\":\n if (!isLHS && node.left.type === \"TSTypeCastExpression\") {\n node.left = this.typeCastToParameter(node.left);\n }\n default:\n super.toAssignable(node, isLHS);\n }\n }\n toAssignableParenthesizedExpression(node, isLHS) {\n switch (node.expression.type) {\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSNonNullExpression\":\n case \"TSTypeAssertion\":\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isLHS);\n break;\n default:\n super.toAssignable(node, isLHS);\n }\n }\n checkToRestConversion(node, allowPattern) {\n switch (node.type) {\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n this.checkToRestConversion(node.expression, false);\n break;\n default:\n super.checkToRestConversion(node, allowPattern);\n }\n }\n isValidLVal(type, isUnparenthesizedInAssign, binding) {\n switch (type) {\n case \"TSTypeCastExpression\":\n return true;\n case \"TSParameterProperty\":\n return \"parameter\";\n case \"TSNonNullExpression\":\n case \"TSInstantiationExpression\":\n return \"expression\";\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n return (binding !== 64 || !isUnparenthesizedInAssign) && [\"expression\", true];\n default:\n return super.isValidLVal(type, isUnparenthesizedInAssign, binding);\n }\n }\n parseBindingAtom() {\n if (this.state.type === 78) {\n return this.parseIdentifier(true);\n }\n return super.parseBindingAtom();\n }\n parseMaybeDecoratorArguments(expr) {\n if (this.match(47) || this.match(51)) {\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (this.match(10)) {\n const call = super.parseMaybeDecoratorArguments(expr);\n call.typeParameters = typeArguments;\n return call;\n }\n this.unexpected(null, 10);\n }\n return super.parseMaybeDecoratorArguments(expr);\n }\n checkCommaAfterRest(close) {\n if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) {\n this.next();\n return false;\n }\n return super.checkCommaAfterRest(close);\n }\n isClassMethod() {\n return this.match(47) || super.isClassMethod();\n }\n isClassProperty() {\n return this.match(35) || this.match(14) || super.isClassProperty();\n }\n parseMaybeDefault(startLoc, left) {\n const node = super.parseMaybeDefault(startLoc, left);\n if (node.type === \"AssignmentPattern\" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {\n this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation);\n }\n return node;\n }\n getTokenFromCode(code) {\n if (this.state.inType) {\n if (code === 62) {\n this.finishOp(48, 1);\n return;\n }\n if (code === 60) {\n this.finishOp(47, 1);\n return;\n }\n }\n super.getTokenFromCode(code);\n }\n reScan_lt_gt() {\n const {\n type\n } = this.state;\n if (type === 47) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === 48) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n reScan_lt() {\n const {\n type\n } = this.state;\n if (type === 51) {\n this.state.pos -= 2;\n this.finishOp(47, 1);\n return 47;\n }\n return type;\n }\n toAssignableList(exprList, trailingCommaLoc, isLHS) {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if ((expr == null ? void 0 : expr.type) === \"TSTypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n typeCastToParameter(node) {\n node.expression.typeAnnotation = node.typeAnnotation;\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n return node.expression;\n }\n shouldParseArrow(params) {\n if (this.match(14)) {\n return params.every(expr => this.isAssignable(expr, true));\n }\n return super.shouldParseArrow(params);\n }\n shouldParseAsyncArrow() {\n return this.match(14) || super.shouldParseAsyncArrow();\n }\n canHaveLeadingDecorator() {\n return super.canHaveLeadingDecorator() || this.isAbstractClass();\n }\n jsxParseOpeningElementAfterName(node) {\n if (this.match(47) || this.match(51)) {\n const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());\n if (typeArguments) node.typeParameters = typeArguments;\n }\n return super.jsxParseOpeningElementAfterName(node);\n }\n getGetterSetterExpectedParamCount(method) {\n const baseCount = super.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n const firstParam = params[0];\n const hasContextParam = firstParam && this.isThisParam(firstParam);\n return hasContextParam ? baseCount + 1 : baseCount;\n }\n parseCatchClauseParam() {\n const param = super.parseCatchClauseParam();\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n param.typeAnnotation = type;\n this.resetEndLocation(param);\n }\n return param;\n }\n tsInAmbientContext(cb) {\n const {\n isAmbientContext: oldIsAmbientContext,\n strict: oldStrict\n } = this.state;\n this.state.isAmbientContext = true;\n this.state.strict = false;\n try {\n return cb();\n } finally {\n this.state.isAmbientContext = oldIsAmbientContext;\n this.state.strict = oldStrict;\n }\n }\n parseClass(node, isStatement, optionalId) {\n const oldInAbstractClass = this.state.inAbstractClass;\n this.state.inAbstractClass = !!node.abstract;\n try {\n return super.parseClass(node, isStatement, optionalId);\n } finally {\n this.state.inAbstractClass = oldInAbstractClass;\n }\n }\n tsParseAbstractDeclaration(node, decorators) {\n if (this.match(80)) {\n node.abstract = true;\n return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false));\n } else if (this.isContextual(129)) {\n if (!this.hasFollowingLineBreak()) {\n node.abstract = true;\n this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, node);\n return this.tsParseInterfaceDeclaration(node);\n }\n } else {\n this.unexpected(null, 80);\n }\n }\n parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) {\n const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);\n if (method.abstract) {\n const hasBody = this.hasPlugin(\"estree\") ? !!method.value.body : !!method.body;\n if (hasBody) {\n const {\n key\n } = method;\n this.raise(TSErrors.AbstractMethodHasImplementation, method, {\n methodName: key.type === \"Identifier\" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`\n });\n }\n }\n return method;\n }\n tsParseTypeParameterName() {\n const typeName = this.parseIdentifier();\n return typeName.name;\n }\n shouldParseAsAmbientContext() {\n return !!this.getPluginOption(\"typescript\", \"dts\");\n }\n parse() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.parse();\n }\n getExpression() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.getExpression();\n }\n parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) {\n if (!isString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport);\n return this.finishNode(node, \"ExportSpecifier\");\n }\n node.exportKind = \"value\";\n return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly);\n }\n parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {\n if (!importedIsString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport);\n return this.finishNode(specifier, \"ImportSpecifier\");\n }\n specifier.importKind = \"value\";\n return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096);\n }\n parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) {\n const leftOfAsKey = isImport ? \"imported\" : \"local\";\n const rightOfAsKey = isImport ? \"local\" : \"exported\";\n let leftOfAs = node[leftOfAsKey];\n let rightOfAs;\n let hasTypeSpecifier = false;\n let canParseAsKeyword = true;\n const loc = leftOfAs.loc.start;\n if (this.isContextual(93)) {\n const firstAs = this.parseIdentifier();\n if (this.isContextual(93)) {\n const secondAs = this.parseIdentifier();\n if (tokenIsKeywordOrIdentifier(this.state.type)) {\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n canParseAsKeyword = false;\n } else {\n rightOfAs = secondAs;\n canParseAsKeyword = false;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n canParseAsKeyword = false;\n rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n } else {\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n hasTypeSpecifier = true;\n if (isImport) {\n leftOfAs = this.parseIdentifier(true);\n if (!this.isContextual(93)) {\n this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true);\n }\n } else {\n leftOfAs = this.parseModuleExportName();\n }\n }\n if (hasTypeSpecifier && isInTypeOnlyImportExport) {\n this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc);\n }\n node[leftOfAsKey] = leftOfAs;\n node[rightOfAsKey] = rightOfAs;\n const kindKey = isImport ? \"importKind\" : \"exportKind\";\n node[kindKey] = hasTypeSpecifier ? \"type\" : \"value\";\n if (canParseAsKeyword && this.eatContextual(93)) {\n node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName();\n }\n if (!node[rightOfAsKey]) {\n node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]);\n }\n if (isImport) {\n this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096);\n }\n }\n};\nfunction isPossiblyLiteralEnum(expression) {\n if (expression.type !== \"MemberExpression\") return false;\n const {\n computed,\n property\n } = expression;\n if (computed && property.type !== \"StringLiteral\" && (property.type !== \"TemplateLiteral\" || property.expressions.length > 0)) {\n return false;\n }\n return isUncomputedMemberExpressionChain(expression.object);\n}\nfunction isValidAmbientConstInitializer(expression, estree) {\n var _expression$extra;\n const {\n type\n } = expression;\n if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) {\n return false;\n }\n if (estree) {\n if (type === \"Literal\") {\n const {\n value\n } = expression;\n if (typeof value === \"string\" || typeof value === \"boolean\") {\n return true;\n }\n }\n } else {\n if (type === \"StringLiteral\" || type === \"BooleanLiteral\") {\n return true;\n }\n }\n if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) {\n return true;\n }\n if (type === \"TemplateLiteral\" && expression.expressions.length === 0) {\n return true;\n }\n if (isPossiblyLiteralEnum(expression)) {\n return true;\n }\n return false;\n}\nfunction isNumber(expression, estree) {\n if (estree) {\n return expression.type === \"Literal\" && (typeof expression.value === \"number\" || \"bigint\" in expression);\n }\n return expression.type === \"NumericLiteral\" || expression.type === \"BigIntLiteral\";\n}\nfunction isNegativeNumber(expression, estree) {\n if (expression.type === \"UnaryExpression\") {\n const {\n operator,\n argument\n } = expression;\n if (operator === \"-\" && isNumber(argument, estree)) {\n return true;\n }\n }\n return false;\n}\nfunction isUncomputedMemberExpressionChain(expression) {\n if (expression.type === \"Identifier\") return true;\n if (expression.type !== \"MemberExpression\" || expression.computed) {\n return false;\n }\n return isUncomputedMemberExpressionChain(expression.object);\n}\nconst PlaceholderErrors = ParseErrorEnum`placeholders`({\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\"\n});\nvar placeholders = superClass => class PlaceholdersParserMixin extends superClass {\n parsePlaceholder(expectedNode) {\n if (this.match(144)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n node.name = super.parseIdentifier(true);\n this.assertNoSpace();\n this.expect(144);\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n finishPlaceholder(node, expectedNode) {\n let placeholder = node;\n if (!placeholder.expectedNode || !placeholder.type) {\n placeholder = this.finishNode(placeholder, \"Placeholder\");\n }\n placeholder.expectedNode = expectedNode;\n return placeholder;\n }\n getTokenFromCode(code) {\n if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) {\n this.finishOp(144, 2);\n } else {\n super.getTokenFromCode(code);\n }\n }\n parseExprAtom(refExpressionErrors) {\n return this.parsePlaceholder(\"Expression\") || super.parseExprAtom(refExpressionErrors);\n }\n parseIdentifier(liberal) {\n return this.parsePlaceholder(\"Identifier\") || super.parseIdentifier(liberal);\n }\n checkReservedWord(word, startLoc, checkKeywords, isBinding) {\n if (word !== undefined) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n parseBindingAtom() {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n isValidLVal(type, isParenthesized, binding) {\n return type === \"Placeholder\" || super.isValidLVal(type, isParenthesized, binding);\n }\n toAssignable(node, isLHS) {\n if (node && node.type === \"Placeholder\" && node.expectedNode === \"Expression\") {\n node.expectedNode = \"Pattern\";\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n chStartsBindingIdentifier(ch, pos) {\n if (super.chStartsBindingIdentifier(ch, pos)) {\n return true;\n }\n const nextToken = this.lookahead();\n if (nextToken.type === 144) {\n return true;\n }\n return false;\n }\n verifyBreakContinue(node, isBreak) {\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n parseExpressionStatement(node, expr) {\n var _expr$extra;\n if (expr.type !== \"Placeholder\" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {\n return super.parseExpressionStatement(node, expr);\n }\n if (this.match(14)) {\n const stmt = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n this.semicolon();\n const stmtPlaceholder = node;\n stmtPlaceholder.name = expr.name;\n return this.finishPlaceholder(stmtPlaceholder, \"Statement\");\n }\n parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) {\n return this.parsePlaceholder(\"BlockStatement\") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse);\n }\n parseFunctionId(requireId) {\n return this.parsePlaceholder(\"Identifier\") || super.parseFunctionId(requireId);\n }\n parseClass(node, isStatement, optionalId) {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n this.next();\n const oldStrict = this.state.strict;\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (this.match(81) || this.match(144) || this.match(5)) {\n node.id = placeholder;\n } else if (optionalId || !isStatement) {\n node.id = null;\n node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n return this.finishNode(node, type);\n } else {\n throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc);\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n super.parseClassSuper(node);\n node.body = this.parsePlaceholder(\"ClassBody\") || super.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n parseExport(node, decorators) {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(node, decorators);\n const node2 = node;\n if (!this.isContextual(98) && !this.match(12)) {\n node2.specifiers = [];\n node2.source = null;\n node2.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node2.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n return super.parseExport(node2, decorators);\n }\n isExportDefaultSpecifier() {\n if (this.match(65)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (this.input.startsWith(tokenLabelName(144), this.nextTokenStartSince(next + 4))) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {\n var _specifiers;\n if ((_specifiers = node.specifiers) != null && _specifiers.length) {\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier);\n }\n checkExport(node) {\n const {\n specifiers\n } = node;\n if (specifiers != null && specifiers.length) {\n node.specifiers = specifiers.filter(node => node.exported.type === \"Placeholder\");\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n parseImport(node) {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(node);\n node.specifiers = [];\n if (!this.isContextual(98) && !this.match(12)) {\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n const specifier = this.startNodeAtNode(placeholder);\n specifier.local = placeholder;\n node.specifiers.push(this.finishNode(specifier, \"ImportDefaultSpecifier\"));\n if (this.eat(12)) {\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n this.expectContextual(98);\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n parseImportSource() {\n return this.parsePlaceholder(\"StringLiteral\") || super.parseImportSource();\n }\n assertNoSpace() {\n if (this.state.start > this.state.lastTokEndLoc.index) {\n this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc);\n }\n }\n};\nvar v8intrinsic = superClass => class V8IntrinsicMixin extends superClass {\n parseV8Intrinsic() {\n if (this.match(54)) {\n const v8IntrinsicStartLoc = this.state.startLoc;\n const node = this.startNode();\n this.next();\n if (tokenIsIdentifier(this.state.type)) {\n const name = this.parseIdentifierName();\n const identifier = this.createIdentifier(node, name);\n identifier.type = \"V8IntrinsicIdentifier\";\n if (this.match(10)) {\n return identifier;\n }\n }\n this.unexpected(v8IntrinsicStartLoc);\n }\n }\n parseExprAtom(refExpressionErrors) {\n return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors);\n }\n};\nconst PIPELINE_PROPOSALS = [\"minimal\", \"fsharp\", \"hack\", \"smart\"];\nconst TOPIC_TOKENS = [\"^^\", \"@@\", \"^\", \"%\", \"#\"];\nfunction validatePlugins(pluginsMap) {\n if (pluginsMap.has(\"decorators\")) {\n if (pluginsMap.has(\"decorators-legacy\")) {\n throw new Error(\"Cannot use the decorators and decorators-legacy plugin together\");\n }\n const decoratorsBeforeExport = pluginsMap.get(\"decorators\").decoratorsBeforeExport;\n if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== \"boolean\") {\n throw new Error(\"'decoratorsBeforeExport' must be a boolean, if specified.\");\n }\n const allowCallParenthesized = pluginsMap.get(\"decorators\").allowCallParenthesized;\n if (allowCallParenthesized != null && typeof allowCallParenthesized !== \"boolean\") {\n throw new Error(\"'allowCallParenthesized' must be a boolean.\");\n }\n }\n if (pluginsMap.has(\"flow\") && pluginsMap.has(\"typescript\")) {\n throw new Error(\"Cannot combine flow and typescript plugins.\");\n }\n if (pluginsMap.has(\"placeholders\") && pluginsMap.has(\"v8intrinsic\")) {\n throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n }\n if (pluginsMap.has(\"pipelineOperator\")) {\n var _pluginsMap$get;\n const proposal = pluginsMap.get(\"pipelineOperator\").proposal;\n if (!PIPELINE_PROPOSALS.includes(proposal)) {\n const proposalList = PIPELINE_PROPOSALS.map(p => `\"${p}\"`).join(\", \");\n throw new Error(`\"pipelineOperator\" requires \"proposal\" option whose value must be one of: ${proposalList}.`);\n }\n const tupleSyntaxIsHash = ((_pluginsMap$get = pluginsMap.get(\"recordAndTuple\")) == null ? void 0 : _pluginsMap$get.syntaxType) === \"hash\";\n if (proposal === \"hack\") {\n if (pluginsMap.has(\"placeholders\")) {\n throw new Error(\"Cannot combine placeholders plugin and Hack-style pipes.\");\n }\n if (pluginsMap.has(\"v8intrinsic\")) {\n throw new Error(\"Cannot combine v8intrinsic plugin and Hack-style pipes.\");\n }\n const topicToken = pluginsMap.get(\"pipelineOperator\").topicToken;\n if (!TOPIC_TOKENS.includes(topicToken)) {\n const tokenList = TOPIC_TOKENS.map(t => `\"${t}\"`).join(\", \");\n throw new Error(`\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: ${tokenList}.`);\n }\n if (topicToken === \"#\" && tupleSyntaxIsHash) {\n throw new Error(`Plugin conflict between \\`[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]\\` and \\`${JSON.stringify([\"recordAndTuple\", pluginsMap.get(\"recordAndTuple\")])}\\`.`);\n }\n } else if (proposal === \"smart\" && tupleSyntaxIsHash) {\n throw new Error(`Plugin conflict between \\`[\"pipelineOperator\", { proposal: \"smart\" }]\\` and \\`${JSON.stringify([\"recordAndTuple\", pluginsMap.get(\"recordAndTuple\")])}\\`.`);\n }\n }\n if (pluginsMap.has(\"moduleAttributes\")) {\n {\n if (pluginsMap.has(\"importAttributes\") || pluginsMap.has(\"importAssertions\")) {\n throw new Error(\"Cannot combine importAssertions, importAttributes and moduleAttributes plugins.\");\n }\n const moduleAttributesVersionPluginOption = pluginsMap.get(\"moduleAttributes\").version;\n if (moduleAttributesVersionPluginOption !== \"may-2020\") {\n throw new Error(\"The 'moduleAttributes' plugin requires a 'version' option,\" + \" representing the last proposal update. Currently, the\" + \" only supported value is 'may-2020'.\");\n }\n }\n }\n if (pluginsMap.has(\"importAssertions\")) {\n if (pluginsMap.has(\"importAttributes\")) {\n throw new Error(\"Cannot combine importAssertions and importAttributes plugins.\");\n }\n }\n if (pluginsMap.has(\"recordAndTuple\")) {\n const syntaxType = pluginsMap.get(\"recordAndTuple\").syntaxType;\n if (syntaxType != null) {\n {\n const RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) {\n throw new Error(\"The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: \" + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"));\n }\n }\n }\n }\n if (pluginsMap.has(\"asyncDoExpressions\") && !pluginsMap.has(\"doExpressions\")) {\n const error = new Error(\"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\");\n error.missingPlugins = \"doExpressions\";\n throw error;\n }\n if (pluginsMap.has(\"optionalChainingAssign\") && pluginsMap.get(\"optionalChainingAssign\").version !== \"2023-07\") {\n throw new Error(\"The 'optionalChainingAssign' plugin requires a 'version' option,\" + \" representing the last proposal update. Currently, the\" + \" only supported value is '2023-07'.\");\n }\n}\nconst mixinPlugins = {\n estree,\n jsx,\n flow,\n typescript,\n v8intrinsic,\n placeholders\n};\nconst mixinPluginNames = Object.keys(mixinPlugins);\nconst defaultOptions = {\n sourceType: \"script\",\n sourceFilename: undefined,\n startColumn: 0,\n startLine: 1,\n allowAwaitOutsideFunction: false,\n allowReturnOutsideFunction: false,\n allowNewTargetOutsideFunction: false,\n allowImportExportEverywhere: false,\n allowSuperOutsideMethod: false,\n allowUndeclaredExports: false,\n plugins: [],\n strictMode: null,\n ranges: false,\n tokens: false,\n createImportExpressions: false,\n createParenthesizedExpressions: false,\n errorRecovery: false,\n attachComment: true,\n annexB: true\n};\nfunction getOptions(opts) {\n if (opts == null) {\n return Object.assign({}, defaultOptions);\n }\n if (opts.annexB != null && opts.annexB !== false) {\n throw new Error(\"The `annexB` option can only be set to `false`.\");\n }\n const options = {};\n for (const key of Object.keys(defaultOptions)) {\n var _opts$key;\n options[key] = (_opts$key = opts[key]) != null ? _opts$key : defaultOptions[key];\n }\n return options;\n}\nclass ExpressionParser extends LValParser {\n checkProto(prop, isRecord, protoRef, refExpressionErrors) {\n if (prop.type === \"SpreadElement\" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) {\n return;\n }\n const key = prop.key;\n const name = key.type === \"Identifier\" ? key.name : key.value;\n if (name === \"__proto__\") {\n if (isRecord) {\n this.raise(Errors.RecordNoProto, key);\n return;\n }\n if (protoRef.used) {\n if (refExpressionErrors) {\n if (refExpressionErrors.doubleProtoLoc === null) {\n refExpressionErrors.doubleProtoLoc = key.loc.start;\n }\n } else {\n this.raise(Errors.DuplicateProto, key);\n }\n }\n protoRef.used = true;\n }\n }\n shouldExitDescending(expr, potentialArrowAt) {\n return expr.type === \"ArrowFunctionExpression\" && expr.start === potentialArrowAt;\n }\n getExpression() {\n this.enterInitialScopes();\n this.nextToken();\n const expr = this.parseExpression();\n if (!this.match(139)) {\n this.unexpected();\n }\n this.finalizeRemainingComments();\n expr.comments = this.comments;\n expr.errors = this.state.errors;\n if (this.options.tokens) {\n expr.tokens = this.tokens;\n }\n return expr;\n }\n parseExpression(disallowIn, refExpressionErrors) {\n if (disallowIn) {\n return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors));\n }\n return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors));\n }\n parseExpressionBase(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const expr = this.parseMaybeAssign(refExpressionErrors);\n if (this.match(12)) {\n const node = this.startNodeAt(startLoc);\n node.expressions = [expr];\n while (this.eat(12)) {\n node.expressions.push(this.parseMaybeAssign(refExpressionErrors));\n }\n this.toReferencedList(node.expressions);\n return this.finishNode(node, \"SequenceExpression\");\n }\n return expr;\n }\n parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) {\n return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse));\n }\n parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) {\n return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse));\n }\n setOptionalParametersError(refExpressionErrors, resultError) {\n var _resultError$loc;\n refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc;\n }\n parseMaybeAssign(refExpressionErrors, afterLeftParse) {\n const startLoc = this.state.startLoc;\n if (this.isContextual(108)) {\n if (this.prodParam.hasYield) {\n let left = this.parseYield();\n if (afterLeftParse) {\n left = afterLeftParse.call(this, left, startLoc);\n }\n return left;\n }\n }\n let ownExpressionErrors;\n if (refExpressionErrors) {\n ownExpressionErrors = false;\n } else {\n refExpressionErrors = new ExpressionErrors();\n ownExpressionErrors = true;\n }\n const {\n type\n } = this.state;\n if (type === 10 || tokenIsIdentifier(type)) {\n this.state.potentialArrowAt = this.state.start;\n }\n let left = this.parseMaybeConditional(refExpressionErrors);\n if (afterLeftParse) {\n left = afterLeftParse.call(this, left, startLoc);\n }\n if (tokenIsAssignment(this.state.type)) {\n const node = this.startNodeAt(startLoc);\n const operator = this.state.value;\n node.operator = operator;\n if (this.match(29)) {\n this.toAssignable(left, true);\n node.left = left;\n const startIndex = startLoc.index;\n if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) {\n refExpressionErrors.doubleProtoLoc = null;\n }\n if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) {\n refExpressionErrors.shorthandAssignLoc = null;\n }\n if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) {\n this.checkDestructuringPrivate(refExpressionErrors);\n refExpressionErrors.privateKeyLoc = null;\n }\n } else {\n node.left = left;\n }\n this.next();\n node.right = this.parseMaybeAssign();\n this.checkLVal(left, this.finishNode(node, \"AssignmentExpression\"));\n return node;\n } else if (ownExpressionErrors) {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n return left;\n }\n parseMaybeConditional(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprOps(refExpressionErrors);\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n return this.parseConditional(expr, startLoc, refExpressionErrors);\n }\n parseConditional(expr, startLoc, refExpressionErrors) {\n if (this.eat(17)) {\n const node = this.startNodeAt(startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssignAllowIn();\n this.expect(14);\n node.alternate = this.parseMaybeAssign();\n return this.finishNode(node, \"ConditionalExpression\");\n }\n return expr;\n }\n parseMaybeUnaryOrPrivate(refExpressionErrors) {\n return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors);\n }\n parseExprOps(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors);\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n return this.parseExprOp(expr, startLoc, -1);\n }\n parseExprOp(left, leftStartLoc, minPrec) {\n if (this.isPrivateName(left)) {\n const value = this.getPrivateNameSV(left);\n if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) {\n this.raise(Errors.PrivateInExpectedIn, left, {\n identifierName: value\n });\n }\n this.classScope.usePrivateName(value, left.loc.start);\n }\n const op = this.state.type;\n if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) {\n let prec = tokenOperatorPrecedence(op);\n if (prec > minPrec) {\n if (op === 39) {\n this.expectPlugin(\"pipelineOperator\");\n if (this.state.inFSharpPipelineDirectBody) {\n return left;\n }\n this.checkPipelineAtInfixOperator(left, leftStartLoc);\n }\n const node = this.startNodeAt(leftStartLoc);\n node.left = left;\n node.operator = this.state.value;\n const logical = op === 41 || op === 42;\n const coalesce = op === 40;\n if (coalesce) {\n prec = tokenOperatorPrecedence(42);\n }\n this.next();\n if (op === 39 && this.hasPlugin([\"pipelineOperator\", {\n proposal: \"minimal\"\n }])) {\n if (this.state.type === 96 && this.prodParam.hasAwait) {\n throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc);\n }\n }\n node.right = this.parseExprOpRightExpr(op, prec);\n const finishedNode = this.finishNode(node, logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\");\n const nextOp = this.state.type;\n if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) {\n throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc);\n }\n return this.parseExprOp(finishedNode, leftStartLoc, minPrec);\n }\n }\n return left;\n }\n parseExprOpRightExpr(op, prec) {\n const startLoc = this.state.startLoc;\n switch (op) {\n case 39:\n switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n case \"hack\":\n return this.withTopicBindingContext(() => {\n return this.parseHackPipeBody();\n });\n case \"smart\":\n return this.withTopicBindingContext(() => {\n if (this.prodParam.hasYield && this.isContextual(108)) {\n throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc);\n }\n return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc);\n });\n case \"fsharp\":\n return this.withSoloAwaitPermittingContext(() => {\n return this.parseFSharpPipelineBody(prec);\n });\n }\n default:\n return this.parseExprOpBaseRightExpr(op, prec);\n }\n }\n parseExprOpBaseRightExpr(op, prec) {\n const startLoc = this.state.startLoc;\n return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec);\n }\n parseHackPipeBody() {\n var _body$extra;\n const {\n startLoc\n } = this.state;\n const body = this.parseMaybeAssign();\n const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type);\n if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) {\n this.raise(Errors.PipeUnparenthesizedBody, startLoc, {\n type: body.type\n });\n }\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n this.raise(Errors.PipeTopicUnused, startLoc);\n }\n return body;\n }\n checkExponentialAfterUnary(node) {\n if (this.match(57)) {\n this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument);\n }\n }\n parseMaybeUnary(refExpressionErrors, sawUnary) {\n const startLoc = this.state.startLoc;\n const isAwait = this.isContextual(96);\n if (isAwait && this.recordAwaitIfAllowed()) {\n this.next();\n const expr = this.parseAwait(startLoc);\n if (!sawUnary) this.checkExponentialAfterUnary(expr);\n return expr;\n }\n const update = this.match(34);\n const node = this.startNode();\n if (tokenIsPrefix(this.state.type)) {\n node.operator = this.state.value;\n node.prefix = true;\n if (this.match(72)) {\n this.expectPlugin(\"throwExpressions\");\n }\n const isDelete = this.match(89);\n this.next();\n node.argument = this.parseMaybeUnary(null, true);\n this.checkExpressionErrors(refExpressionErrors, true);\n if (this.state.strict && isDelete) {\n const arg = node.argument;\n if (arg.type === \"Identifier\") {\n this.raise(Errors.StrictDelete, node);\n } else if (this.hasPropertyAsPrivateName(arg)) {\n this.raise(Errors.DeletePrivateField, node);\n }\n }\n if (!update) {\n if (!sawUnary) {\n this.checkExponentialAfterUnary(node);\n }\n return this.finishNode(node, \"UnaryExpression\");\n }\n }\n const expr = this.parseUpdate(node, update, refExpressionErrors);\n if (isAwait) {\n const {\n type\n } = this.state;\n const startsExpr = this.hasPlugin(\"v8intrinsic\") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54);\n if (startsExpr && !this.isAmbiguousAwait()) {\n this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc);\n return this.parseAwait(startLoc);\n }\n }\n return expr;\n }\n parseUpdate(node, update, refExpressionErrors) {\n if (update) {\n const updateExpressionNode = node;\n this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, \"UpdateExpression\"));\n return node;\n }\n const startLoc = this.state.startLoc;\n let expr = this.parseExprSubscripts(refExpressionErrors);\n if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) {\n const node = this.startNodeAt(startLoc);\n node.operator = this.state.value;\n node.prefix = false;\n node.argument = expr;\n this.next();\n this.checkLVal(expr, expr = this.finishNode(node, \"UpdateExpression\"));\n }\n return expr;\n }\n parseExprSubscripts(refExpressionErrors) {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprAtom(refExpressionErrors);\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n return this.parseSubscripts(expr, startLoc);\n }\n parseSubscripts(base, startLoc, noCalls) {\n const state = {\n optionalChainMember: false,\n maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n stop: false\n };\n do {\n base = this.parseSubscript(base, startLoc, noCalls, state);\n state.maybeAsyncArrow = false;\n } while (!state.stop);\n return base;\n }\n parseSubscript(base, startLoc, noCalls, state) {\n const {\n type\n } = this.state;\n if (!noCalls && type === 15) {\n return this.parseBind(base, startLoc, noCalls, state);\n } else if (tokenIsTemplate(type)) {\n return this.parseTaggedTemplateExpression(base, startLoc, state);\n }\n let optional = false;\n if (type === 18) {\n if (noCalls) {\n this.raise(Errors.OptionalChainingNoNew, this.state.startLoc);\n if (this.lookaheadCharCode() === 40) {\n state.stop = true;\n return base;\n }\n }\n state.optionalChainMember = optional = true;\n this.next();\n }\n if (!noCalls && this.match(10)) {\n return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional);\n } else {\n const computed = this.eat(0);\n if (computed || optional || this.eat(16)) {\n return this.parseMember(base, startLoc, state, computed, optional);\n } else {\n state.stop = true;\n return base;\n }\n }\n }\n parseMember(base, startLoc, state, computed, optional) {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n node.computed = computed;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(3);\n } else if (this.match(138)) {\n if (base.type === \"Super\") {\n this.raise(Errors.SuperPrivateField, startLoc);\n }\n this.classScope.usePrivateName(this.state.value, this.state.startLoc);\n node.property = this.parsePrivateName();\n } else {\n node.property = this.parseIdentifier(true);\n }\n if (state.optionalChainMember) {\n node.optional = optional;\n return this.finishNode(node, \"OptionalMemberExpression\");\n } else {\n return this.finishNode(node, \"MemberExpression\");\n }\n }\n parseBind(base, startLoc, noCalls, state) {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n this.next();\n node.callee = this.parseNoCallExpr();\n state.stop = true;\n return this.parseSubscripts(this.finishNode(node, \"BindExpression\"), startLoc, noCalls);\n }\n parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) {\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n let refExpressionErrors = null;\n this.state.maybeInArrowParameters = true;\n this.next();\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n const {\n maybeAsyncArrow,\n optionalChainMember\n } = state;\n if (maybeAsyncArrow) {\n this.expressionScope.enter(newAsyncArrowScope());\n refExpressionErrors = new ExpressionErrors();\n }\n if (optionalChainMember) {\n node.optional = optional;\n }\n if (optional) {\n node.arguments = this.parseCallExpressionArguments(11);\n } else {\n node.arguments = this.parseCallExpressionArguments(11, base.type === \"Import\", base.type !== \"Super\", node, refExpressionErrors);\n }\n let finishedNode = this.finishCallExpression(node, optionalChainMember);\n if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n state.stop = true;\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode);\n } else {\n if (maybeAsyncArrow) {\n this.checkExpressionErrors(refExpressionErrors, true);\n this.expressionScope.exit();\n }\n this.toReferencedArguments(finishedNode);\n }\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n return finishedNode;\n }\n toReferencedArguments(node, isParenthesizedExpr) {\n this.toReferencedListDeep(node.arguments, isParenthesizedExpr);\n }\n parseTaggedTemplateExpression(base, startLoc, state) {\n const node = this.startNodeAt(startLoc);\n node.tag = base;\n node.quasi = this.parseTemplate(true);\n if (state.optionalChainMember) {\n this.raise(Errors.OptionalChainingNoTemplate, startLoc);\n }\n return this.finishNode(node, \"TaggedTemplateExpression\");\n }\n atPossibleAsyncArrow(base) {\n return base.type === \"Identifier\" && base.name === \"async\" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt;\n }\n finishCallExpression(node, optional) {\n if (node.callee.type === \"Import\") {\n if (node.arguments.length === 2) {\n if (!(this.hasPlugin(\"moduleAttributes\") || this.hasPlugin(\"importAssertions\"))) {\n this.expectPlugin(\"importAttributes\");\n }\n }\n if (node.arguments.length === 0 || node.arguments.length > 2) {\n this.raise(Errors.ImportCallArity, node, {\n maxArgumentCount: this.hasPlugin(\"importAttributes\") || this.hasPlugin(\"importAssertions\") || this.hasPlugin(\"moduleAttributes\") ? 2 : 1\n });\n } else {\n for (const arg of node.arguments) {\n if (arg.type === \"SpreadElement\") {\n this.raise(Errors.ImportCallSpreadArgument, arg);\n }\n }\n }\n }\n return this.finishNode(node, optional ? \"OptionalCallExpression\" : \"CallExpression\");\n }\n parseCallExpressionArguments(close, dynamicImport, allowPlaceholder, nodeForExtra, refExpressionErrors) {\n const elts = [];\n let first = true;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\n if (this.match(close)) {\n if (dynamicImport && !this.hasPlugin(\"importAttributes\") && !this.hasPlugin(\"importAssertions\") && !this.hasPlugin(\"moduleAttributes\")) {\n this.raise(Errors.ImportCallArgumentTrailingComma, this.state.lastTokStartLoc);\n }\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder));\n }\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return elts;\n }\n shouldParseAsyncArrow() {\n return this.match(19) && !this.canInsertSemicolon();\n }\n parseAsyncArrowFromCallExpression(node, call) {\n var _call$extra;\n this.resetPreviousNodeTrailingComments(call);\n this.expect(19);\n this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc);\n if (call.innerComments) {\n setInnerComments(node, call.innerComments);\n }\n if (call.callee.trailingComments) {\n setInnerComments(node, call.callee.trailingComments);\n }\n return node;\n }\n parseNoCallExpr() {\n const startLoc = this.state.startLoc;\n return this.parseSubscripts(this.parseExprAtom(), startLoc, true);\n }\n parseExprAtom(refExpressionErrors) {\n let node;\n let decorators = null;\n const {\n type\n } = this.state;\n switch (type) {\n case 79:\n return this.parseSuper();\n case 83:\n node = this.startNode();\n this.next();\n if (this.match(16)) {\n return this.parseImportMetaProperty(node);\n }\n if (this.match(10)) {\n if (this.options.createImportExpressions) {\n return this.parseImportCall(node);\n } else {\n return this.finishNode(node, \"Import\");\n }\n } else {\n this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc);\n return this.finishNode(node, \"Import\");\n }\n case 78:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\");\n case 90:\n {\n return this.parseDo(this.startNode(), false);\n }\n case 56:\n case 31:\n {\n this.readRegexp();\n return this.parseRegExpLiteral(this.state.value);\n }\n case 134:\n return this.parseNumericLiteral(this.state.value);\n case 135:\n return this.parseBigIntLiteral(this.state.value);\n case 133:\n return this.parseStringLiteral(this.state.value);\n case 84:\n return this.parseNullLiteral();\n case 85:\n return this.parseBooleanLiteral(true);\n case 86:\n return this.parseBooleanLiteral(false);\n case 10:\n {\n const canBeArrow = this.state.potentialArrowAt === this.state.start;\n return this.parseParenAndDistinguishExpression(canBeArrow);\n }\n case 2:\n case 1:\n {\n return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true);\n }\n case 0:\n {\n return this.parseArrayLike(3, true, false, refExpressionErrors);\n }\n case 6:\n case 7:\n {\n return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true);\n }\n case 5:\n {\n return this.parseObjectLike(8, false, false, refExpressionErrors);\n }\n case 68:\n return this.parseFunctionOrFunctionSent();\n case 26:\n decorators = this.parseDecorators();\n case 80:\n return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false);\n case 77:\n return this.parseNewOrNewTarget();\n case 25:\n case 24:\n return this.parseTemplate(false);\n case 15:\n {\n node = this.startNode();\n this.next();\n node.object = null;\n const callee = node.callee = this.parseNoCallExpr();\n if (callee.type === \"MemberExpression\") {\n return this.finishNode(node, \"BindExpression\");\n } else {\n throw this.raise(Errors.UnsupportedBind, callee);\n }\n }\n case 138:\n {\n this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, {\n identifierName: this.state.value\n });\n return this.parsePrivateName();\n }\n case 33:\n {\n return this.parseTopicReferenceThenEqualsSign(54, \"%\");\n }\n case 32:\n {\n return this.parseTopicReferenceThenEqualsSign(44, \"^\");\n }\n case 37:\n case 38:\n {\n return this.parseTopicReference(\"hack\");\n }\n case 44:\n case 54:\n case 27:\n {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n if (pipeProposal) {\n return this.parseTopicReference(pipeProposal);\n }\n this.unexpected();\n break;\n }\n case 47:\n {\n const lookaheadCh = this.input.codePointAt(this.nextTokenStart());\n if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) {\n this.expectOnePlugin([\"jsx\", \"flow\", \"typescript\"]);\n } else {\n this.unexpected();\n }\n break;\n }\n default:\n if (type === 136) {\n return this.parseDecimalLiteral(this.state.value);\n }\n if (tokenIsIdentifier(type)) {\n if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) {\n return this.parseModuleExpression();\n }\n const canBeArrow = this.state.potentialArrowAt === this.state.start;\n const containsEsc = this.state.containsEsc;\n const id = this.parseIdentifier();\n if (!containsEsc && id.name === \"async\" && !this.canInsertSemicolon()) {\n const {\n type\n } = this.state;\n if (type === 68) {\n this.resetPreviousNodeTrailingComments(id);\n this.next();\n return this.parseAsyncFunctionExpression(this.startNodeAtNode(id));\n } else if (tokenIsIdentifier(type)) {\n if (this.lookaheadCharCode() === 61) {\n return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id));\n } else {\n return id;\n }\n } else if (type === 90) {\n this.resetPreviousNodeTrailingComments(id);\n return this.parseDo(this.startNodeAtNode(id), true);\n }\n }\n if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) {\n this.next();\n return this.parseArrowExpression(this.startNodeAtNode(id), [id], false);\n }\n return id;\n } else {\n this.unexpected();\n }\n }\n }\n parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n if (pipeProposal) {\n this.state.type = topicTokenType;\n this.state.value = topicTokenValue;\n this.state.pos--;\n this.state.end--;\n this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1);\n return this.parseTopicReference(pipeProposal);\n } else {\n this.unexpected();\n }\n }\n parseTopicReference(pipeProposal) {\n const node = this.startNode();\n const startLoc = this.state.startLoc;\n const tokenType = this.state.type;\n this.next();\n return this.finishTopicReference(node, startLoc, pipeProposal, tokenType);\n }\n finishTopicReference(node, startLoc, pipeProposal, tokenType) {\n if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) {\n const nodeType = pipeProposal === \"smart\" ? \"PipelinePrimaryTopicReference\" : \"TopicReference\";\n if (!this.topicReferenceIsAllowedInCurrentContext()) {\n this.raise(pipeProposal === \"smart\" ? Errors.PrimaryTopicNotAllowed : Errors.PipeTopicUnbound, startLoc);\n }\n this.registerTopicReference();\n return this.finishNode(node, nodeType);\n } else {\n throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, {\n token: tokenLabelName(tokenType)\n });\n }\n }\n testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) {\n switch (pipeProposal) {\n case \"hack\":\n {\n return this.hasPlugin([\"pipelineOperator\", {\n topicToken: tokenLabelName(tokenType)\n }]);\n }\n case \"smart\":\n return tokenType === 27;\n default:\n throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc);\n }\n }\n parseAsyncArrowUnaryFunction(node) {\n this.prodParam.enter(functionFlags(true, this.prodParam.hasYield));\n const params = [this.parseIdentifier()];\n this.prodParam.exit();\n if (this.hasPrecedingLineBreak()) {\n this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition());\n }\n this.expect(19);\n return this.parseArrowExpression(node, params, true);\n }\n parseDo(node, isAsync) {\n this.expectPlugin(\"doExpressions\");\n if (isAsync) {\n this.expectPlugin(\"asyncDoExpressions\");\n }\n node.async = isAsync;\n this.next();\n const oldLabels = this.state.labels;\n this.state.labels = [];\n if (isAsync) {\n this.prodParam.enter(2);\n node.body = this.parseBlock();\n this.prodParam.exit();\n } else {\n node.body = this.parseBlock();\n }\n this.state.labels = oldLabels;\n return this.finishNode(node, \"DoExpression\");\n }\n parseSuper() {\n const node = this.startNode();\n this.next();\n if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) {\n this.raise(Errors.SuperNotAllowed, node);\n } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) {\n this.raise(Errors.UnexpectedSuper, node);\n }\n if (!this.match(10) && !this.match(0) && !this.match(16)) {\n this.raise(Errors.UnsupportedSuper, node);\n }\n return this.finishNode(node, \"Super\");\n }\n parsePrivateName() {\n const node = this.startNode();\n const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1));\n const name = this.state.value;\n this.next();\n node.id = this.createIdentifier(id, name);\n return this.finishNode(node, \"PrivateName\");\n }\n parseFunctionOrFunctionSent() {\n const node = this.startNode();\n this.next();\n if (this.prodParam.hasYield && this.match(16)) {\n const meta = this.createIdentifier(this.startNodeAtNode(node), \"function\");\n this.next();\n if (this.match(103)) {\n this.expectPlugin(\"functionSent\");\n } else if (!this.hasPlugin(\"functionSent\")) {\n this.unexpected();\n }\n return this.parseMetaProperty(node, meta, \"sent\");\n }\n return this.parseFunction(node);\n }\n parseMetaProperty(node, meta, propertyName) {\n node.meta = meta;\n const containsEsc = this.state.containsEsc;\n node.property = this.parseIdentifier(true);\n if (node.property.name !== propertyName || containsEsc) {\n this.raise(Errors.UnsupportedMetaProperty, node.property, {\n target: meta.name,\n onlyValidPropertyName: propertyName\n });\n }\n return this.finishNode(node, \"MetaProperty\");\n }\n parseImportMetaProperty(node) {\n const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n this.next();\n if (this.isContextual(101)) {\n if (!this.inModule) {\n this.raise(Errors.ImportMetaOutsideModule, id);\n }\n this.sawUnambiguousESM = true;\n } else if (this.isContextual(105) || this.isContextual(97)) {\n const isSource = this.isContextual(105);\n if (!isSource) this.unexpected();\n this.expectPlugin(isSource ? \"sourcePhaseImports\" : \"deferredImportEvaluation\");\n if (!this.options.createImportExpressions) {\n throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {\n phase: this.state.value\n });\n }\n this.next();\n node.phase = isSource ? \"source\" : \"defer\";\n return this.parseImportCall(node);\n }\n return this.parseMetaProperty(node, id, \"meta\");\n }\n parseLiteralAtNode(value, type, node) {\n this.addExtra(node, \"rawValue\", value);\n this.addExtra(node, \"raw\", this.input.slice(node.start, this.state.end));\n node.value = value;\n this.next();\n return this.finishNode(node, type);\n }\n parseLiteral(value, type) {\n const node = this.startNode();\n return this.parseLiteralAtNode(value, type, node);\n }\n parseStringLiteral(value) {\n return this.parseLiteral(value, \"StringLiteral\");\n }\n parseNumericLiteral(value) {\n return this.parseLiteral(value, \"NumericLiteral\");\n }\n parseBigIntLiteral(value) {\n return this.parseLiteral(value, \"BigIntLiteral\");\n }\n parseDecimalLiteral(value) {\n return this.parseLiteral(value, \"DecimalLiteral\");\n }\n parseRegExpLiteral(value) {\n const node = this.startNode();\n this.addExtra(node, \"raw\", this.input.slice(node.start, this.state.end));\n node.pattern = value.pattern;\n node.flags = value.flags;\n this.next();\n return this.finishNode(node, \"RegExpLiteral\");\n }\n parseBooleanLiteral(value) {\n const node = this.startNode();\n node.value = value;\n this.next();\n return this.finishNode(node, \"BooleanLiteral\");\n }\n parseNullLiteral() {\n const node = this.startNode();\n this.next();\n return this.finishNode(node, \"NullLiteral\");\n }\n parseParenAndDistinguishExpression(canBeArrow) {\n const startLoc = this.state.startLoc;\n let val;\n this.next();\n this.expressionScope.enter(newArrowHeadScope());\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.maybeInArrowParameters = true;\n this.state.inFSharpPipelineDirectBody = false;\n const innerStartLoc = this.state.startLoc;\n const exprList = [];\n const refExpressionErrors = new ExpressionErrors();\n let first = true;\n let spreadStartLoc;\n let optionalCommaStartLoc;\n while (!this.match(11)) {\n if (first) {\n first = false;\n } else {\n this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc);\n if (this.match(11)) {\n optionalCommaStartLoc = this.state.startLoc;\n break;\n }\n }\n if (this.match(21)) {\n const spreadNodeStartLoc = this.state.startLoc;\n spreadStartLoc = this.state.startLoc;\n exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc));\n if (!this.checkCommaAfterRest(41)) {\n break;\n }\n } else {\n exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem));\n }\n }\n const innerEndLoc = this.state.lastTokEndLoc;\n this.expect(11);\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n let arrowNode = this.startNodeAt(startLoc);\n if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n this.parseArrowExpression(arrowNode, exprList, false);\n return arrowNode;\n }\n this.expressionScope.exit();\n if (!exprList.length) {\n this.unexpected(this.state.lastTokStartLoc);\n }\n if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc);\n if (spreadStartLoc) this.unexpected(spreadStartLoc);\n this.checkExpressionErrors(refExpressionErrors, true);\n this.toReferencedListDeep(exprList, true);\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartLoc);\n val.expressions = exprList;\n this.finishNode(val, \"SequenceExpression\");\n this.resetEndLocation(val, innerEndLoc);\n } else {\n val = exprList[0];\n }\n return this.wrapParenthesis(startLoc, val);\n }\n wrapParenthesis(startLoc, expression) {\n if (!this.options.createParenthesizedExpressions) {\n this.addExtra(expression, \"parenthesized\", true);\n this.addExtra(expression, \"parenStart\", startLoc.index);\n this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index);\n return expression;\n }\n const parenExpression = this.startNodeAt(startLoc);\n parenExpression.expression = expression;\n return this.finishNode(parenExpression, \"ParenthesizedExpression\");\n }\n shouldParseArrow(params) {\n return !this.canInsertSemicolon();\n }\n parseArrow(node) {\n if (this.eat(19)) {\n return node;\n }\n }\n parseParenItem(node, startLoc) {\n return node;\n }\n parseNewOrNewTarget() {\n const node = this.startNode();\n this.next();\n if (this.match(16)) {\n const meta = this.createIdentifier(this.startNodeAtNode(node), \"new\");\n this.next();\n const metaProp = this.parseMetaProperty(node, meta, \"target\");\n if (!this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction) {\n this.raise(Errors.UnexpectedNewTarget, metaProp);\n }\n return metaProp;\n }\n return this.parseNew(node);\n }\n parseNew(node) {\n this.parseNewCallee(node);\n if (this.eat(10)) {\n const args = this.parseExprList(11);\n this.toReferencedList(args);\n node.arguments = args;\n } else {\n node.arguments = [];\n }\n return this.finishNode(node, \"NewExpression\");\n }\n parseNewCallee(node) {\n const isImport = this.match(83);\n const callee = this.parseNoCallExpr();\n node.callee = callee;\n if (isImport && (callee.type === \"Import\" || callee.type === \"ImportExpression\")) {\n this.raise(Errors.ImportCallNotNewExpression, callee);\n }\n }\n parseTemplateElement(isTagged) {\n const {\n start,\n startLoc,\n end,\n value\n } = this.state;\n const elemStart = start + 1;\n const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1));\n if (value === null) {\n if (!isTagged) {\n this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1));\n }\n }\n const isTail = this.match(24);\n const endOffset = isTail ? -1 : -2;\n const elemEnd = end + endOffset;\n elem.value = {\n raw: this.input.slice(elemStart, elemEnd).replace(/\\r\\n?/g, \"\\n\"),\n cooked: value === null ? null : value.slice(1, endOffset)\n };\n elem.tail = isTail;\n this.next();\n const finishedNode = this.finishNode(elem, \"TemplateElement\");\n this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset));\n return finishedNode;\n }\n parseTemplate(isTagged) {\n const node = this.startNode();\n let curElt = this.parseTemplateElement(isTagged);\n const quasis = [curElt];\n const substitutions = [];\n while (!curElt.tail) {\n substitutions.push(this.parseTemplateSubstitution());\n this.readTemplateContinuation();\n quasis.push(curElt = this.parseTemplateElement(isTagged));\n }\n node.expressions = substitutions;\n node.quasis = quasis;\n return this.finishNode(node, \"TemplateLiteral\");\n }\n parseTemplateSubstitution() {\n return this.parseExpression();\n }\n parseObjectLike(close, isPattern, isRecord, refExpressionErrors) {\n if (isRecord) {\n this.expectPlugin(\"recordAndTuple\");\n }\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n const propHash = Object.create(null);\n let first = true;\n const node = this.startNode();\n node.properties = [];\n this.next();\n while (!this.match(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\n if (this.match(close)) {\n this.addTrailingCommaExtraToNode(node);\n break;\n }\n }\n let prop;\n if (isPattern) {\n prop = this.parseBindingProperty();\n } else {\n prop = this.parsePropertyDefinition(refExpressionErrors);\n this.checkProto(prop, isRecord, propHash, refExpressionErrors);\n }\n if (isRecord && !this.isObjectProperty(prop) && prop.type !== \"SpreadElement\") {\n this.raise(Errors.InvalidRecordProperty, prop);\n }\n {\n if (prop.shorthand) {\n this.addExtra(prop, \"shorthand\", true);\n }\n }\n node.properties.push(prop);\n }\n this.next();\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n let type = \"ObjectExpression\";\n if (isPattern) {\n type = \"ObjectPattern\";\n } else if (isRecord) {\n type = \"RecordExpression\";\n }\n return this.finishNode(node, type);\n }\n addTrailingCommaExtraToNode(node) {\n this.addExtra(node, \"trailingComma\", this.state.lastTokStartLoc.index);\n this.addExtra(node, \"trailingCommaLoc\", this.state.lastTokStartLoc, false);\n }\n maybeAsyncOrAccessorProp(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));\n }\n parsePropertyDefinition(refExpressionErrors) {\n let decorators = [];\n if (this.match(26)) {\n if (this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc);\n }\n while (this.match(26)) {\n decorators.push(this.parseDecorator());\n }\n }\n const prop = this.startNode();\n let isAsync = false;\n let isAccessor = false;\n let startLoc;\n if (this.match(21)) {\n if (decorators.length) this.unexpected();\n return this.parseSpread();\n }\n if (decorators.length) {\n prop.decorators = decorators;\n decorators = [];\n }\n prop.method = false;\n if (refExpressionErrors) {\n startLoc = this.state.startLoc;\n }\n let isGenerator = this.eat(55);\n this.parsePropertyNamePrefixOperator(prop);\n const containsEsc = this.state.containsEsc;\n this.parsePropertyName(prop, refExpressionErrors);\n if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) {\n const {\n key\n } = prop;\n const keyName = key.name;\n if (keyName === \"async\" && !this.hasPrecedingLineBreak()) {\n isAsync = true;\n this.resetPreviousNodeTrailingComments(key);\n isGenerator = this.eat(55);\n this.parsePropertyName(prop);\n }\n if (keyName === \"get\" || keyName === \"set\") {\n isAccessor = true;\n this.resetPreviousNodeTrailingComments(key);\n prop.kind = keyName;\n if (this.match(55)) {\n isGenerator = true;\n this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), {\n kind: keyName\n });\n this.next();\n }\n this.parsePropertyName(prop);\n }\n }\n return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors);\n }\n getGetterSetterExpectedParamCount(method) {\n return method.kind === \"get\" ? 0 : 1;\n }\n getObjectOrClassMethodParams(method) {\n return method.params;\n }\n checkGetterSetterParams(method) {\n var _params;\n const paramCount = this.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length !== paramCount) {\n this.raise(method.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity, method);\n }\n if (method.kind === \"set\" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === \"RestElement\") {\n this.raise(Errors.BadSetterRestParameter, method);\n }\n }\n parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) {\n if (isAccessor) {\n const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, \"ObjectMethod\");\n this.checkGetterSetterParams(finishedProp);\n return finishedProp;\n }\n if (isAsync || isGenerator || this.match(10)) {\n if (isPattern) this.unexpected();\n prop.kind = \"method\";\n prop.method = true;\n return this.parseMethod(prop, isGenerator, isAsync, false, false, \"ObjectMethod\");\n }\n }\n parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {\n prop.shorthand = false;\n if (this.eat(14)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors);\n return this.finishNode(prop, \"ObjectProperty\");\n }\n if (!prop.computed && prop.key.type === \"Identifier\") {\n this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false);\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key));\n } else if (this.match(29)) {\n const shorthandAssignLoc = this.state.startLoc;\n if (refExpressionErrors != null) {\n if (refExpressionErrors.shorthandAssignLoc === null) {\n refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc;\n }\n } else {\n this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc);\n }\n prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key));\n } else {\n prop.value = cloneIdentifier(prop.key);\n }\n prop.shorthand = true;\n return this.finishNode(prop, \"ObjectProperty\");\n }\n }\n parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {\n const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);\n if (!node) this.unexpected();\n return node;\n }\n parsePropertyName(prop, refExpressionErrors) {\n if (this.eat(0)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssignAllowIn();\n this.expect(3);\n } else {\n const {\n type,\n value\n } = this.state;\n let key;\n if (tokenIsKeywordOrIdentifier(type)) {\n key = this.parseIdentifier(true);\n } else {\n switch (type) {\n case 134:\n key = this.parseNumericLiteral(value);\n break;\n case 133:\n key = this.parseStringLiteral(value);\n break;\n case 135:\n key = this.parseBigIntLiteral(value);\n break;\n case 138:\n {\n const privateKeyLoc = this.state.startLoc;\n if (refExpressionErrors != null) {\n if (refExpressionErrors.privateKeyLoc === null) {\n refExpressionErrors.privateKeyLoc = privateKeyLoc;\n }\n } else {\n this.raise(Errors.UnexpectedPrivateField, privateKeyLoc);\n }\n key = this.parsePrivateName();\n break;\n }\n default:\n if (type === 136) {\n key = this.parseDecimalLiteral(value);\n break;\n }\n this.unexpected();\n }\n }\n prop.key = key;\n if (type !== 138) {\n prop.computed = false;\n }\n }\n }\n initFunction(node, isAsync) {\n node.id = null;\n node.generator = false;\n node.async = isAsync;\n }\n parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {\n this.initFunction(node, isAsync);\n node.generator = isGenerator;\n this.scope.enter(2 | 16 | (inClassScope ? 64 : 0) | (allowDirectSuper ? 32 : 0));\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n this.parseFunctionParams(node, isConstructor);\n const finishedNode = this.parseFunctionBodyAndFinish(node, type, true);\n this.prodParam.exit();\n this.scope.exit();\n return finishedNode;\n }\n parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {\n if (isTuple) {\n this.expectPlugin(\"recordAndTuple\");\n }\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n const node = this.startNode();\n this.next();\n node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node);\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return this.finishNode(node, isTuple ? \"TupleExpression\" : \"ArrayExpression\");\n }\n parseArrowExpression(node, params, isAsync, trailingCommaLoc) {\n this.scope.enter(2 | 4);\n let flags = functionFlags(isAsync, false);\n if (!this.match(5) && this.prodParam.hasIn) {\n flags |= 8;\n }\n this.prodParam.enter(flags);\n this.initFunction(node, isAsync);\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n if (params) {\n this.state.maybeInArrowParameters = true;\n this.setArrowFunctionParameters(node, params, trailingCommaLoc);\n }\n this.state.maybeInArrowParameters = false;\n this.parseFunctionBody(node, true);\n this.prodParam.exit();\n this.scope.exit();\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n return this.finishNode(node, \"ArrowFunctionExpression\");\n }\n setArrowFunctionParameters(node, params, trailingCommaLoc) {\n this.toAssignableList(params, trailingCommaLoc, false);\n node.params = params;\n }\n parseFunctionBodyAndFinish(node, type, isMethod = false) {\n this.parseFunctionBody(node, false, isMethod);\n return this.finishNode(node, type);\n }\n parseFunctionBody(node, allowExpression, isMethod = false) {\n const isExpression = allowExpression && !this.match(5);\n this.expressionScope.enter(newExpressionScope());\n if (isExpression) {\n node.body = this.parseMaybeAssign();\n this.checkParams(node, false, allowExpression, false);\n } else {\n const oldStrict = this.state.strict;\n const oldLabels = this.state.labels;\n this.state.labels = [];\n this.prodParam.enter(this.prodParam.currentFlags() | 4);\n node.body = this.parseBlock(true, false, hasStrictModeDirective => {\n const nonSimple = !this.isSimpleParamList(node.params);\n if (hasStrictModeDirective && nonSimple) {\n this.raise(Errors.IllegalLanguageModeDirective, (node.kind === \"method\" || node.kind === \"constructor\") && !!node.key ? node.key.loc.end : node);\n }\n const strictModeChanged = !oldStrict && this.state.strict;\n this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged);\n if (this.state.strict && node.id) {\n this.checkIdentifier(node.id, 65, strictModeChanged);\n }\n });\n this.prodParam.exit();\n this.state.labels = oldLabels;\n }\n this.expressionScope.exit();\n }\n isSimpleParameter(node) {\n return node.type === \"Identifier\";\n }\n isSimpleParamList(params) {\n for (let i = 0, len = params.length; i < len; i++) {\n if (!this.isSimpleParameter(params[i])) return false;\n }\n return true;\n }\n checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {\n const checkClashes = !allowDuplicates && new Set();\n const formalParameters = {\n type: \"FormalParameters\"\n };\n for (const param of node.params) {\n this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged);\n }\n }\n parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) {\n const elts = [];\n let first = true;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\n if (this.match(close)) {\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n }\n return elts;\n }\n parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) {\n let elt;\n if (this.match(12)) {\n if (!allowEmpty) {\n this.raise(Errors.UnexpectedToken, this.state.curPosition(), {\n unexpected: \",\"\n });\n }\n elt = null;\n } else if (this.match(21)) {\n const spreadNodeStartLoc = this.state.startLoc;\n elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc);\n } else if (this.match(17)) {\n this.expectPlugin(\"partialApplication\");\n if (!allowPlaceholder) {\n this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc);\n }\n const node = this.startNode();\n this.next();\n elt = this.finishNode(node, \"ArgumentPlaceholder\");\n } else {\n elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem);\n }\n return elt;\n }\n parseIdentifier(liberal) {\n const node = this.startNode();\n const name = this.parseIdentifierName(liberal);\n return this.createIdentifier(node, name);\n }\n createIdentifier(node, name) {\n node.name = name;\n node.loc.identifierName = name;\n return this.finishNode(node, \"Identifier\");\n }\n parseIdentifierName(liberal) {\n let name;\n const {\n startLoc,\n type\n } = this.state;\n if (tokenIsKeywordOrIdentifier(type)) {\n name = this.state.value;\n } else {\n this.unexpected();\n }\n const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type);\n if (liberal) {\n if (tokenIsKeyword) {\n this.replaceToken(132);\n }\n } else {\n this.checkReservedWord(name, startLoc, tokenIsKeyword, false);\n }\n this.next();\n return name;\n }\n checkReservedWord(word, startLoc, checkKeywords, isBinding) {\n if (word.length > 10) {\n return;\n }\n if (!canBeReservedWord(word)) {\n return;\n }\n if (checkKeywords && isKeyword(word)) {\n this.raise(Errors.UnexpectedKeyword, startLoc, {\n keyword: word\n });\n return;\n }\n const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord;\n if (reservedTest(word, this.inModule)) {\n this.raise(Errors.UnexpectedReservedWord, startLoc, {\n reservedWord: word\n });\n return;\n } else if (word === \"yield\") {\n if (this.prodParam.hasYield) {\n this.raise(Errors.YieldBindingIdentifier, startLoc);\n return;\n }\n } else if (word === \"await\") {\n if (this.prodParam.hasAwait) {\n this.raise(Errors.AwaitBindingIdentifier, startLoc);\n return;\n }\n if (this.scope.inStaticBlock) {\n this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc);\n return;\n }\n this.expressionScope.recordAsyncArrowParametersError(startLoc);\n } else if (word === \"arguments\") {\n if (this.scope.inClassAndNotInNonArrowFunction) {\n this.raise(Errors.ArgumentsInClass, startLoc);\n return;\n }\n }\n }\n recordAwaitIfAllowed() {\n const isAwaitAllowed = this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction;\n if (isAwaitAllowed && !this.scope.inFunction) {\n this.state.hasTopLevelAwait = true;\n }\n return isAwaitAllowed;\n }\n parseAwait(startLoc) {\n const node = this.startNodeAt(startLoc);\n this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node);\n if (this.eat(55)) {\n this.raise(Errors.ObsoleteAwaitStar, node);\n }\n if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n if (this.isAmbiguousAwait()) {\n this.ambiguousScriptDifferentAst = true;\n } else {\n this.sawUnambiguousESM = true;\n }\n }\n if (!this.state.soloAwait) {\n node.argument = this.parseMaybeUnary(null, true);\n }\n return this.finishNode(node, \"AwaitExpression\");\n }\n isAmbiguousAwait() {\n if (this.hasPrecedingLineBreak()) return true;\n const {\n type\n } = this.state;\n return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 137 || type === 56 || this.hasPlugin(\"v8intrinsic\") && type === 54;\n }\n parseYield() {\n const node = this.startNode();\n this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node);\n this.next();\n let delegating = false;\n let argument = null;\n if (!this.hasPrecedingLineBreak()) {\n delegating = this.eat(55);\n switch (this.state.type) {\n case 13:\n case 139:\n case 8:\n case 11:\n case 3:\n case 9:\n case 14:\n case 12:\n if (!delegating) break;\n default:\n argument = this.parseMaybeAssign();\n }\n }\n node.delegate = delegating;\n node.argument = argument;\n return this.finishNode(node, \"YieldExpression\");\n }\n parseImportCall(node) {\n this.next();\n node.source = this.parseMaybeAssignAllowIn();\n if (this.hasPlugin(\"importAttributes\") || this.hasPlugin(\"importAssertions\")) {\n node.options = null;\n }\n if (this.eat(12)) {\n if (!(this.hasPlugin(\"moduleAttributes\") || this.hasPlugin(\"importAssertions\"))) {\n this.expectPlugin(\"importAttributes\");\n }\n if (!this.match(11)) {\n node.options = this.parseMaybeAssignAllowIn();\n this.eat(12);\n }\n }\n this.expect(11);\n return this.finishNode(node, \"ImportExpression\");\n }\n checkPipelineAtInfixOperator(left, leftStartLoc) {\n if (this.hasPlugin([\"pipelineOperator\", {\n proposal: \"smart\"\n }])) {\n if (left.type === \"SequenceExpression\") {\n this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc);\n }\n }\n }\n parseSmartPipelineBodyInStyle(childExpr, startLoc) {\n if (this.isSimpleReference(childExpr)) {\n const bodyNode = this.startNodeAt(startLoc);\n bodyNode.callee = childExpr;\n return this.finishNode(bodyNode, \"PipelineBareFunction\");\n } else {\n const bodyNode = this.startNodeAt(startLoc);\n this.checkSmartPipeTopicBodyEarlyErrors(startLoc);\n bodyNode.expression = childExpr;\n return this.finishNode(bodyNode, \"PipelineTopicExpression\");\n }\n }\n isSimpleReference(expression) {\n switch (expression.type) {\n case \"MemberExpression\":\n return !expression.computed && this.isSimpleReference(expression.object);\n case \"Identifier\":\n return true;\n default:\n return false;\n }\n }\n checkSmartPipeTopicBodyEarlyErrors(startLoc) {\n if (this.match(19)) {\n throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc);\n }\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n this.raise(Errors.PipelineTopicUnused, startLoc);\n }\n }\n withTopicBindingContext(callback) {\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n maxNumOfResolvableTopics: 1,\n maxTopicIndex: null\n };\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n }\n withSmartMixTopicForbiddingContext(callback) {\n if (this.hasPlugin([\"pipelineOperator\", {\n proposal: \"smart\"\n }])) {\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null\n };\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n } else {\n return callback();\n }\n }\n withSoloAwaitPermittingContext(callback) {\n const outerContextSoloAwaitState = this.state.soloAwait;\n this.state.soloAwait = true;\n try {\n return callback();\n } finally {\n this.state.soloAwait = outerContextSoloAwaitState;\n }\n }\n allowInAnd(callback) {\n const flags = this.prodParam.currentFlags();\n const prodParamToSet = 8 & ~flags;\n if (prodParamToSet) {\n this.prodParam.enter(flags | 8);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n disallowInAnd(callback) {\n const flags = this.prodParam.currentFlags();\n const prodParamToClear = 8 & flags;\n if (prodParamToClear) {\n this.prodParam.enter(flags & ~8);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n registerTopicReference() {\n this.state.topicContext.maxTopicIndex = 0;\n }\n topicReferenceIsAllowedInCurrentContext() {\n return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n }\n topicReferenceWasUsedInCurrentContext() {\n return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;\n }\n parseFSharpPipelineBody(prec) {\n const startLoc = this.state.startLoc;\n this.state.potentialArrowAt = this.state.start;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = true;\n const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec);\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return ret;\n }\n parseModuleExpression() {\n this.expectPlugin(\"moduleBlocks\");\n const node = this.startNode();\n this.next();\n if (!this.match(5)) {\n this.unexpected(null, 5);\n }\n const program = this.startNodeAt(this.state.endLoc);\n this.next();\n const revertScopes = this.initializeScopes(true);\n this.enterInitialScopes();\n try {\n node.body = this.parseProgram(program, 8, \"module\");\n } finally {\n revertScopes();\n }\n return this.finishNode(node, \"ModuleExpression\");\n }\n parsePropertyNamePrefixOperator(prop) {}\n}\nconst loopLabel = {\n kind: 1\n },\n switchLabel = {\n kind: 2\n };\nconst loneSurrogate = /[\\uD800-\\uDFFF]/u;\nconst keywordRelationalOperator = /in(?:stanceof)?/y;\nfunction babel7CompatTokens(tokens, input) {\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const {\n type\n } = token;\n if (typeof type === \"number\") {\n {\n if (type === 138) {\n const {\n loc,\n start,\n value,\n end\n } = token;\n const hashEndPos = start + 1;\n const hashEndLoc = createPositionWithColumnOffset(loc.start, 1);\n tokens.splice(i, 1, new Token({\n type: getExportedToken(27),\n value: \"#\",\n start: start,\n end: hashEndPos,\n startLoc: loc.start,\n endLoc: hashEndLoc\n }), new Token({\n type: getExportedToken(132),\n value: value,\n start: hashEndPos,\n end: end,\n startLoc: hashEndLoc,\n endLoc: loc.end\n }));\n i++;\n continue;\n }\n if (tokenIsTemplate(type)) {\n const {\n loc,\n start,\n value,\n end\n } = token;\n const backquoteEnd = start + 1;\n const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);\n let startToken;\n if (input.charCodeAt(start) === 96) {\n startToken = new Token({\n type: getExportedToken(22),\n value: \"`\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc\n });\n } else {\n startToken = new Token({\n type: getExportedToken(8),\n value: \"}\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc\n });\n }\n let templateValue, templateElementEnd, templateElementEndLoc, endToken;\n if (type === 24) {\n templateElementEnd = end - 1;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1);\n templateValue = value === null ? null : value.slice(1, -1);\n endToken = new Token({\n type: getExportedToken(22),\n value: \"`\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end\n });\n } else {\n templateElementEnd = end - 2;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2);\n templateValue = value === null ? null : value.slice(1, -2);\n endToken = new Token({\n type: getExportedToken(23),\n value: \"${\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end\n });\n }\n tokens.splice(i, 1, startToken, new Token({\n type: getExportedToken(20),\n value: templateValue,\n start: backquoteEnd,\n end: templateElementEnd,\n startLoc: backquoteEndLoc,\n endLoc: templateElementEndLoc\n }), endToken);\n i += 2;\n continue;\n }\n }\n token.type = getExportedToken(type);\n }\n }\n return tokens;\n}\nclass StatementParser extends ExpressionParser {\n parseTopLevel(file, program) {\n file.program = this.parseProgram(program);\n file.comments = this.comments;\n if (this.options.tokens) {\n file.tokens = babel7CompatTokens(this.tokens, this.input);\n }\n return this.finishNode(file, \"File\");\n }\n parseProgram(program, end = 139, sourceType = this.options.sourceType) {\n program.sourceType = sourceType;\n program.interpreter = this.parseInterpreterDirective();\n this.parseBlockBody(program, true, true, end);\n if (this.inModule) {\n if (!this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) {\n for (const [localName, at] of Array.from(this.scope.undefinedExports)) {\n this.raise(Errors.ModuleExportUndefined, at, {\n localName\n });\n }\n }\n this.addExtra(program, \"topLevelAwait\", this.state.hasTopLevelAwait);\n }\n let finishedProgram;\n if (end === 139) {\n finishedProgram = this.finishNode(program, \"Program\");\n } else {\n finishedProgram = this.finishNodeAt(program, \"Program\", createPositionWithColumnOffset(this.state.startLoc, -1));\n }\n return finishedProgram;\n }\n stmtToDirective(stmt) {\n const directive = stmt;\n directive.type = \"Directive\";\n directive.value = directive.expression;\n delete directive.expression;\n const directiveLiteral = directive.value;\n const expressionValue = directiveLiteral.value;\n const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end);\n const val = directiveLiteral.value = raw.slice(1, -1);\n this.addExtra(directiveLiteral, \"raw\", raw);\n this.addExtra(directiveLiteral, \"rawValue\", val);\n this.addExtra(directiveLiteral, \"expressionValue\", expressionValue);\n directiveLiteral.type = \"DirectiveLiteral\";\n return directive;\n }\n parseInterpreterDirective() {\n if (!this.match(28)) {\n return null;\n }\n const node = this.startNode();\n node.value = this.state.value;\n this.next();\n return this.finishNode(node, \"InterpreterDirective\");\n }\n isLet() {\n if (!this.isContextual(100)) {\n return false;\n }\n return this.hasFollowingBindingAtom();\n }\n chStartsBindingIdentifier(ch, pos) {\n if (isIdentifierStart(ch)) {\n keywordRelationalOperator.lastIndex = pos;\n if (keywordRelationalOperator.test(this.input)) {\n const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex);\n if (!isIdentifierChar(endCh) && endCh !== 92) {\n return false;\n }\n }\n return true;\n } else if (ch === 92) {\n return true;\n } else {\n return false;\n }\n }\n chStartsBindingPattern(ch) {\n return ch === 91 || ch === 123;\n }\n hasFollowingBindingAtom() {\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next);\n }\n hasInLineFollowingBindingIdentifierOrBrace() {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next);\n }\n startsUsingForOf() {\n const {\n type,\n containsEsc\n } = this.lookahead();\n if (type === 102 && !containsEsc) {\n return false;\n } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) {\n this.expectPlugin(\"explicitResourceManagement\");\n return true;\n }\n }\n startsAwaitUsing() {\n let next = this.nextTokenInLineStart();\n if (this.isUnparsedContextual(next, \"using\")) {\n next = this.nextTokenInLineStartSince(next + 5);\n const nextCh = this.codePointAtPos(next);\n if (this.chStartsBindingIdentifier(nextCh, next)) {\n this.expectPlugin(\"explicitResourceManagement\");\n return true;\n }\n }\n return false;\n }\n parseModuleItem() {\n return this.parseStatementLike(1 | 2 | 4 | 8);\n }\n parseStatementListItem() {\n return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8));\n }\n parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) {\n let flags = 0;\n if (this.options.annexB && !this.state.strict) {\n flags |= 4;\n if (allowLabeledFunction) {\n flags |= 8;\n }\n }\n return this.parseStatementLike(flags);\n }\n parseStatement() {\n return this.parseStatementLike(0);\n }\n parseStatementLike(flags) {\n let decorators = null;\n if (this.match(26)) {\n decorators = this.parseDecorators(true);\n }\n return this.parseStatementContent(flags, decorators);\n }\n parseStatementContent(flags, decorators) {\n const startType = this.state.type;\n const node = this.startNode();\n const allowDeclaration = !!(flags & 2);\n const allowFunctionDeclaration = !!(flags & 4);\n const topLevel = flags & 1;\n switch (startType) {\n case 60:\n return this.parseBreakContinueStatement(node, true);\n case 63:\n return this.parseBreakContinueStatement(node, false);\n case 64:\n return this.parseDebuggerStatement(node);\n case 90:\n return this.parseDoWhileStatement(node);\n case 91:\n return this.parseForStatement(node);\n case 68:\n if (this.lookaheadCharCode() === 46) break;\n if (!allowFunctionDeclaration) {\n this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc);\n }\n return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration);\n case 80:\n if (!allowDeclaration) this.unexpected();\n return this.parseClass(this.maybeTakeDecorators(decorators, node), true);\n case 69:\n return this.parseIfStatement(node);\n case 70:\n return this.parseReturnStatement(node);\n case 71:\n return this.parseSwitchStatement(node);\n case 72:\n return this.parseThrowStatement(node);\n case 73:\n return this.parseTryStatement(node);\n case 96:\n if (!this.state.containsEsc && this.startsAwaitUsing()) {\n if (!this.recordAwaitIfAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, node);\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, node);\n }\n this.next();\n return this.parseVarStatement(node, \"await using\");\n }\n break;\n case 107:\n if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) {\n break;\n }\n this.expectPlugin(\"explicitResourceManagement\");\n if (!this.scope.inModule && this.scope.inTopLevel) {\n this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc);\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc);\n }\n return this.parseVarStatement(node, \"using\");\n case 100:\n {\n if (this.state.containsEsc) {\n break;\n }\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n if (nextCh !== 91) {\n if (!allowDeclaration && this.hasFollowingLineBreak()) break;\n if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) {\n break;\n }\n }\n }\n case 75:\n {\n if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc);\n }\n }\n case 74:\n {\n const kind = this.state.value;\n return this.parseVarStatement(node, kind);\n }\n case 92:\n return this.parseWhileStatement(node);\n case 76:\n return this.parseWithStatement(node);\n case 5:\n return this.parseBlock();\n case 13:\n return this.parseEmptyStatement(node);\n case 83:\n {\n const nextTokenCharCode = this.lookaheadCharCode();\n if (nextTokenCharCode === 40 || nextTokenCharCode === 46) {\n break;\n }\n }\n case 82:\n {\n if (!this.options.allowImportExportEverywhere && !topLevel) {\n this.raise(Errors.UnexpectedImportExport, this.state.startLoc);\n }\n this.next();\n let result;\n if (startType === 83) {\n result = this.parseImport(node);\n if (result.type === \"ImportDeclaration\" && (!result.importKind || result.importKind === \"value\")) {\n this.sawUnambiguousESM = true;\n }\n } else {\n result = this.parseExport(node, decorators);\n if (result.type === \"ExportNamedDeclaration\" && (!result.exportKind || result.exportKind === \"value\") || result.type === \"ExportAllDeclaration\" && (!result.exportKind || result.exportKind === \"value\") || result.type === \"ExportDefaultDeclaration\") {\n this.sawUnambiguousESM = true;\n }\n }\n this.assertModuleNodeAllowed(result);\n return result;\n }\n default:\n {\n if (this.isAsyncFunction()) {\n if (!allowDeclaration) {\n this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc);\n }\n this.next();\n return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration);\n }\n }\n }\n const maybeName = this.state.value;\n const expr = this.parseExpression();\n if (tokenIsIdentifier(startType) && expr.type === \"Identifier\" && this.eat(14)) {\n return this.parseLabeledStatement(node, maybeName, expr, flags);\n } else {\n return this.parseExpressionStatement(node, expr, decorators);\n }\n }\n assertModuleNodeAllowed(node) {\n if (!this.options.allowImportExportEverywhere && !this.inModule) {\n this.raise(Errors.ImportOutsideModule, node);\n }\n }\n decoratorsEnabledBeforeExport() {\n if (this.hasPlugin(\"decorators-legacy\")) return true;\n return this.hasPlugin(\"decorators\") && this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") !== false;\n }\n maybeTakeDecorators(maybeDecorators, classNode, exportNode) {\n if (maybeDecorators) {\n if (classNode.decorators && classNode.decorators.length > 0) {\n if (typeof this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") !== \"boolean\") {\n this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]);\n }\n classNode.decorators.unshift(...maybeDecorators);\n } else {\n classNode.decorators = maybeDecorators;\n }\n this.resetStartLocationFromNode(classNode, maybeDecorators[0]);\n if (exportNode) this.resetStartLocationFromNode(exportNode, classNode);\n }\n return classNode;\n }\n canHaveLeadingDecorator() {\n return this.match(80);\n }\n parseDecorators(allowExport) {\n const decorators = [];\n do {\n decorators.push(this.parseDecorator());\n } while (this.match(26));\n if (this.match(82)) {\n if (!allowExport) {\n this.unexpected();\n }\n if (!this.decoratorsEnabledBeforeExport()) {\n this.raise(Errors.DecoratorExportClass, this.state.startLoc);\n }\n } else if (!this.canHaveLeadingDecorator()) {\n throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc);\n }\n return decorators;\n }\n parseDecorator() {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n const node = this.startNode();\n this.next();\n if (this.hasPlugin(\"decorators\")) {\n const startLoc = this.state.startLoc;\n let expr;\n if (this.match(10)) {\n const startLoc = this.state.startLoc;\n this.next();\n expr = this.parseExpression();\n this.expect(11);\n expr = this.wrapParenthesis(startLoc, expr);\n const paramsStartLoc = this.state.startLoc;\n node.expression = this.parseMaybeDecoratorArguments(expr);\n if (this.getPluginOption(\"decorators\", \"allowCallParenthesized\") === false && node.expression !== expr) {\n this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc);\n }\n } else {\n expr = this.parseIdentifier(false);\n while (this.eat(16)) {\n const node = this.startNodeAt(startLoc);\n node.object = expr;\n if (this.match(138)) {\n this.classScope.usePrivateName(this.state.value, this.state.startLoc);\n node.property = this.parsePrivateName();\n } else {\n node.property = this.parseIdentifier(true);\n }\n node.computed = false;\n expr = this.finishNode(node, \"MemberExpression\");\n }\n node.expression = this.parseMaybeDecoratorArguments(expr);\n }\n } else {\n node.expression = this.parseExprSubscripts();\n }\n return this.finishNode(node, \"Decorator\");\n }\n parseMaybeDecoratorArguments(expr) {\n if (this.eat(10)) {\n const node = this.startNodeAtNode(expr);\n node.callee = expr;\n node.arguments = this.parseCallExpressionArguments(11, false);\n this.toReferencedList(node.arguments);\n return this.finishNode(node, \"CallExpression\");\n }\n return expr;\n }\n parseBreakContinueStatement(node, isBreak) {\n this.next();\n if (this.isLineTerminator()) {\n node.label = null;\n } else {\n node.label = this.parseIdentifier();\n this.semicolon();\n }\n this.verifyBreakContinue(node, isBreak);\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\");\n }\n verifyBreakContinue(node, isBreak) {\n let i;\n for (i = 0; i < this.state.labels.length; ++i) {\n const lab = this.state.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === 1)) {\n break;\n }\n if (node.label && isBreak) break;\n }\n }\n if (i === this.state.labels.length) {\n const type = isBreak ? \"BreakStatement\" : \"ContinueStatement\";\n this.raise(Errors.IllegalBreakContinue, node, {\n type\n });\n }\n }\n parseDebuggerStatement(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\");\n }\n parseHeaderExpression() {\n this.expect(10);\n const val = this.parseExpression();\n this.expect(11);\n return val;\n }\n parseDoWhileStatement(node) {\n this.next();\n this.state.labels.push(loopLabel);\n node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());\n this.state.labels.pop();\n this.expect(92);\n node.test = this.parseHeaderExpression();\n this.eat(13);\n return this.finishNode(node, \"DoWhileStatement\");\n }\n parseForStatement(node) {\n this.next();\n this.state.labels.push(loopLabel);\n let awaitAt = null;\n if (this.isContextual(96) && this.recordAwaitIfAllowed()) {\n awaitAt = this.state.startLoc;\n this.next();\n }\n this.scope.enter(0);\n this.expect(10);\n if (this.match(13)) {\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, null);\n }\n const startsWithLet = this.isContextual(100);\n {\n const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing();\n const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf();\n const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration;\n if (this.match(74) || this.match(75) || isLetOrUsing) {\n const initNode = this.startNode();\n let kind;\n if (startsWithAwaitUsing) {\n kind = \"await using\";\n if (!this.recordAwaitIfAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc);\n }\n this.next();\n } else {\n kind = this.state.value;\n }\n this.next();\n this.parseVar(initNode, true, kind);\n const init = this.finishNode(initNode, \"VariableDeclaration\");\n const isForIn = this.match(58);\n if (isForIn && starsWithUsingDeclaration) {\n this.raise(Errors.ForInUsing, init);\n }\n if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) {\n return this.parseForIn(node, init, awaitAt);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, init);\n }\n }\n const startsWithAsync = this.isContextual(95);\n const refExpressionErrors = new ExpressionErrors();\n const init = this.parseExpression(true, refExpressionErrors);\n const isForOf = this.isContextual(102);\n if (isForOf) {\n if (startsWithLet) {\n this.raise(Errors.ForOfLet, init);\n }\n if (awaitAt === null && startsWithAsync && init.type === \"Identifier\") {\n this.raise(Errors.ForOfAsync, init);\n }\n }\n if (isForOf || this.match(58)) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.toAssignable(init, true);\n const type = isForOf ? \"ForOfStatement\" : \"ForInStatement\";\n this.checkLVal(init, {\n type\n });\n return this.parseForIn(node, init, awaitAt);\n } else {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node, init);\n }\n parseFunctionStatement(node, isAsync, isHangingDeclaration) {\n this.next();\n return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0));\n }\n parseIfStatement(node) {\n this.next();\n node.test = this.parseHeaderExpression();\n node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration();\n node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null;\n return this.finishNode(node, \"IfStatement\");\n }\n parseReturnStatement(node) {\n if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n this.raise(Errors.IllegalReturn, this.state.startLoc);\n }\n this.next();\n if (this.isLineTerminator()) {\n node.argument = null;\n } else {\n node.argument = this.parseExpression();\n this.semicolon();\n }\n return this.finishNode(node, \"ReturnStatement\");\n }\n parseSwitchStatement(node) {\n this.next();\n node.discriminant = this.parseHeaderExpression();\n const cases = node.cases = [];\n this.expect(5);\n this.state.labels.push(switchLabel);\n this.scope.enter(0);\n let cur;\n for (let sawDefault; !this.match(8);) {\n if (this.match(61) || this.match(65)) {\n const isCase = this.match(61);\n if (cur) this.finishNode(cur, \"SwitchCase\");\n cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) {\n this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc);\n }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(14);\n } else {\n if (cur) {\n cur.consequent.push(this.parseStatementListItem());\n } else {\n this.unexpected();\n }\n }\n }\n this.scope.exit();\n if (cur) this.finishNode(cur, \"SwitchCase\");\n this.next();\n this.state.labels.pop();\n return this.finishNode(node, \"SwitchStatement\");\n }\n parseThrowStatement(node) {\n this.next();\n if (this.hasPrecedingLineBreak()) {\n this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc);\n }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\");\n }\n parseCatchClauseParam() {\n const param = this.parseBindingAtom();\n this.scope.enter(this.options.annexB && param.type === \"Identifier\" ? 8 : 0);\n this.checkLVal(param, {\n type: \"CatchClause\"\n }, 9);\n return param;\n }\n parseTryStatement(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.match(62)) {\n const clause = this.startNode();\n this.next();\n if (this.match(10)) {\n this.expect(10);\n clause.param = this.parseCatchClauseParam();\n this.expect(11);\n } else {\n clause.param = null;\n this.scope.enter(0);\n }\n clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false));\n this.scope.exit();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(67) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer) {\n this.raise(Errors.NoCatchOrFinally, node);\n }\n return this.finishNode(node, \"TryStatement\");\n }\n parseVarStatement(node, kind, allowMissingInitializer = false) {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\");\n }\n parseWhileStatement(node) {\n this.next();\n node.test = this.parseHeaderExpression();\n this.state.labels.push(loopLabel);\n node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());\n this.state.labels.pop();\n return this.finishNode(node, \"WhileStatement\");\n }\n parseWithStatement(node) {\n if (this.state.strict) {\n this.raise(Errors.StrictWith, this.state.startLoc);\n }\n this.next();\n node.object = this.parseHeaderExpression();\n node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());\n return this.finishNode(node, \"WithStatement\");\n }\n parseEmptyStatement(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\");\n }\n parseLabeledStatement(node, maybeName, expr, flags) {\n for (const label of this.state.labels) {\n if (label.name === maybeName) {\n this.raise(Errors.LabelRedeclaration, expr, {\n labelName: maybeName\n });\n }\n }\n const kind = tokenIsLoop(this.state.type) ? 1 : this.match(71) ? 2 : null;\n for (let i = this.state.labels.length - 1; i >= 0; i--) {\n const label = this.state.labels[i];\n if (label.statementStart === node.start) {\n label.statementStart = this.state.start;\n label.kind = kind;\n } else {\n break;\n }\n }\n this.state.labels.push({\n name: maybeName,\n kind: kind,\n statementStart: this.state.start\n });\n node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement();\n this.state.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\");\n }\n parseExpressionStatement(node, expr, decorators) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\");\n }\n parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) {\n const node = this.startNode();\n if (allowDirectives) {\n this.state.strictErrors.clear();\n }\n this.expect(5);\n if (createNewLexicalScope) {\n this.scope.enter(0);\n }\n this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse);\n if (createNewLexicalScope) {\n this.scope.exit();\n }\n return this.finishNode(node, \"BlockStatement\");\n }\n isValidDirective(stmt) {\n return stmt.type === \"ExpressionStatement\" && stmt.expression.type === \"StringLiteral\" && !stmt.expression.extra.parenthesized;\n }\n parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {\n const body = node.body = [];\n const directives = node.directives = [];\n this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse);\n }\n parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) {\n const oldStrict = this.state.strict;\n let hasStrictModeDirective = false;\n let parsedNonDirective = false;\n while (!this.match(end)) {\n const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem();\n if (directives && !parsedNonDirective) {\n if (this.isValidDirective(stmt)) {\n const directive = this.stmtToDirective(stmt);\n directives.push(directive);\n if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n hasStrictModeDirective = true;\n this.setStrict(true);\n }\n continue;\n }\n parsedNonDirective = true;\n this.state.strictErrors.clear();\n }\n body.push(stmt);\n }\n afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective);\n if (!oldStrict) {\n this.setStrict(false);\n }\n this.next();\n }\n parseFor(node, init) {\n node.init = init;\n this.semicolon(false);\n node.test = this.match(13) ? null : this.parseExpression();\n this.semicolon(false);\n node.update = this.match(11) ? null : this.parseExpression();\n this.expect(11);\n node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());\n this.scope.exit();\n this.state.labels.pop();\n return this.finishNode(node, \"ForStatement\");\n }\n parseForIn(node, init, awaitAt) {\n const isForIn = this.match(58);\n this.next();\n if (isForIn) {\n if (awaitAt !== null) this.unexpected(awaitAt);\n } else {\n node.await = awaitAt !== null;\n }\n if (init.type === \"VariableDeclaration\" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== \"var\" || init.declarations[0].id.type !== \"Identifier\")) {\n this.raise(Errors.ForInOfLoopInitializer, init, {\n type: isForIn ? \"ForInStatement\" : \"ForOfStatement\"\n });\n }\n if (init.type === \"AssignmentPattern\") {\n this.raise(Errors.InvalidLhs, init, {\n ancestor: {\n type: \"ForStatement\"\n }\n });\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn();\n this.expect(11);\n node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());\n this.scope.exit();\n this.state.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n }\n parseVar(node, isFor, kind, allowMissingInitializer = false) {\n const declarations = node.declarations = [];\n node.kind = kind;\n for (;;) {\n const decl = this.startNode();\n this.parseVarId(decl, kind);\n decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn();\n if (decl.init === null && !allowMissingInitializer) {\n if (decl.id.type !== \"Identifier\" && !(isFor && (this.match(58) || this.isContextual(102)))) {\n this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, {\n kind: \"destructuring\"\n });\n } else if ((kind === \"const\" || kind === \"using\" || kind === \"await using\") && !(this.match(58) || this.isContextual(102))) {\n this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, {\n kind\n });\n }\n }\n declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(12)) break;\n }\n return node;\n }\n parseVarId(decl, kind) {\n const id = this.parseBindingAtom();\n if (kind === \"using\" || kind === \"await using\") {\n if (id.type === \"ArrayPattern\" || id.type === \"ObjectPattern\") {\n this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start);\n }\n }\n this.checkLVal(id, {\n type: \"VariableDeclarator\"\n }, kind === \"var\" ? 5 : 8201);\n decl.id = id;\n }\n parseAsyncFunctionExpression(node) {\n return this.parseFunction(node, 8);\n }\n parseFunction(node, flags = 0) {\n const hangingDeclaration = flags & 2;\n const isDeclaration = !!(flags & 1);\n const requireId = isDeclaration && !(flags & 4);\n const isAsync = !!(flags & 8);\n this.initFunction(node, isAsync);\n if (this.match(55)) {\n if (hangingDeclaration) {\n this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc);\n }\n this.next();\n node.generator = true;\n }\n if (isDeclaration) {\n node.id = this.parseFunctionId(requireId);\n }\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = false;\n this.scope.enter(2);\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n if (!isDeclaration) {\n node.id = this.parseFunctionId();\n }\n this.parseFunctionParams(node, false);\n this.withSmartMixTopicForbiddingContext(() => {\n this.parseFunctionBodyAndFinish(node, isDeclaration ? \"FunctionDeclaration\" : \"FunctionExpression\");\n });\n this.prodParam.exit();\n this.scope.exit();\n if (isDeclaration && !hangingDeclaration) {\n this.registerFunctionStatementId(node);\n }\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n return node;\n }\n parseFunctionId(requireId) {\n return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null;\n }\n parseFunctionParams(node, isConstructor) {\n this.expect(10);\n this.expressionScope.enter(newParameterDeclarationScope());\n node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0));\n this.expressionScope.exit();\n }\n registerFunctionStatementId(node) {\n if (!node.id) return;\n this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start);\n }\n parseClass(node, isStatement, optionalId) {\n this.next();\n const oldStrict = this.state.strict;\n this.state.strict = true;\n this.parseClassId(node, isStatement, optionalId);\n this.parseClassSuper(node);\n node.body = this.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\");\n }\n isClassProperty() {\n return this.match(29) || this.match(13) || this.match(8);\n }\n isClassMethod() {\n return this.match(10);\n }\n nameIsConstructor(key) {\n return key.type === \"Identifier\" && key.name === \"constructor\" || key.type === \"StringLiteral\" && key.value === \"constructor\";\n }\n isNonstaticConstructor(method) {\n return !method.computed && !method.static && this.nameIsConstructor(method.key);\n }\n parseClassBody(hadSuperClass, oldStrict) {\n this.classScope.enter();\n const state = {\n hadConstructor: false,\n hadSuperClass\n };\n let decorators = [];\n const classBody = this.startNode();\n classBody.body = [];\n this.expect(5);\n this.withSmartMixTopicForbiddingContext(() => {\n while (!this.match(8)) {\n if (this.eat(13)) {\n if (decorators.length > 0) {\n throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc);\n }\n continue;\n }\n if (this.match(26)) {\n decorators.push(this.parseDecorator());\n continue;\n }\n const member = this.startNode();\n if (decorators.length) {\n member.decorators = decorators;\n this.resetStartLocationFromNode(member, decorators[0]);\n decorators = [];\n }\n this.parseClassMember(classBody, member, state);\n if (member.kind === \"constructor\" && member.decorators && member.decorators.length > 0) {\n this.raise(Errors.DecoratorConstructor, member);\n }\n }\n });\n this.state.strict = oldStrict;\n this.next();\n if (decorators.length) {\n throw this.raise(Errors.TrailingDecorator, this.state.startLoc);\n }\n this.classScope.exit();\n return this.finishNode(classBody, \"ClassBody\");\n }\n parseClassMemberFromModifier(classBody, member) {\n const key = this.parseIdentifier(true);\n if (this.isClassMethod()) {\n const method = member;\n method.kind = \"method\";\n method.computed = false;\n method.key = key;\n method.static = false;\n this.pushClassMethod(classBody, method, false, false, false, false);\n return true;\n } else if (this.isClassProperty()) {\n const prop = member;\n prop.computed = false;\n prop.key = key;\n prop.static = false;\n classBody.body.push(this.parseClassProperty(prop));\n return true;\n }\n this.resetPreviousNodeTrailingComments(key);\n return false;\n }\n parseClassMember(classBody, member, state) {\n const isStatic = this.isContextual(106);\n if (isStatic) {\n if (this.parseClassMemberFromModifier(classBody, member)) {\n return;\n }\n if (this.eat(5)) {\n this.parseClassStaticBlock(classBody, member);\n return;\n }\n }\n this.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n parseClassMemberWithIsStatic(classBody, member, state, isStatic) {\n const publicMethod = member;\n const privateMethod = member;\n const publicProp = member;\n const privateProp = member;\n const accessorProp = member;\n const method = publicMethod;\n const publicMember = publicMethod;\n member.static = isStatic;\n this.parsePropertyNamePrefixOperator(member);\n if (this.eat(55)) {\n method.kind = \"method\";\n const isPrivateName = this.match(138);\n this.parseClassElementName(method);\n if (isPrivateName) {\n this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n return;\n }\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsGenerator, publicMethod.key);\n }\n this.pushClassMethod(classBody, publicMethod, true, false, false, false);\n return;\n }\n const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type);\n const key = this.parseClassElementName(member);\n const maybeContextualKw = isContextual ? key.name : null;\n const isPrivate = this.isPrivateName(key);\n const maybeQuestionTokenStartLoc = this.state.startLoc;\n this.parsePostMemberNameModifiers(publicMember);\n if (this.isClassMethod()) {\n method.kind = \"method\";\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n return;\n }\n const isConstructor = this.isNonstaticConstructor(publicMethod);\n let allowsDirectSuper = false;\n if (isConstructor) {\n publicMethod.kind = \"constructor\";\n if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n this.raise(Errors.DuplicateConstructor, key);\n }\n if (isConstructor && this.hasPlugin(\"typescript\") && member.override) {\n this.raise(Errors.OverrideOnConstructor, key);\n }\n state.hadConstructor = true;\n allowsDirectSuper = state.hadSuperClass;\n }\n this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper);\n } else if (this.isClassProperty()) {\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else if (maybeContextualKw === \"async\" && !this.isLineTerminator()) {\n this.resetPreviousNodeTrailingComments(key);\n const isGenerator = this.eat(55);\n if (publicMember.optional) {\n this.unexpected(maybeQuestionTokenStartLoc);\n }\n method.kind = \"method\";\n const isPrivate = this.match(138);\n this.parseClassElementName(method);\n this.parsePostMemberNameModifiers(publicMember);\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true);\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAsync, publicMethod.key);\n }\n this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false);\n }\n } else if ((maybeContextualKw === \"get\" || maybeContextualKw === \"set\") && !(this.match(55) && this.isLineTerminator())) {\n this.resetPreviousNodeTrailingComments(key);\n method.kind = maybeContextualKw;\n const isPrivate = this.match(138);\n this.parseClassElementName(publicMethod);\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAccessor, publicMethod.key);\n }\n this.pushClassMethod(classBody, publicMethod, false, false, false, false);\n }\n this.checkGetterSetterParams(publicMethod);\n } else if (maybeContextualKw === \"accessor\" && !this.isLineTerminator()) {\n this.expectPlugin(\"decoratorAutoAccessors\");\n this.resetPreviousNodeTrailingComments(key);\n const isPrivate = this.match(138);\n this.parseClassElementName(publicProp);\n this.pushClassAccessorProperty(classBody, accessorProp, isPrivate);\n } else if (this.isLineTerminator()) {\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else {\n this.unexpected();\n }\n }\n parseClassElementName(member) {\n const {\n type,\n value\n } = this.state;\n if ((type === 132 || type === 133) && member.static && value === \"prototype\") {\n this.raise(Errors.StaticPrototype, this.state.startLoc);\n }\n if (type === 138) {\n if (value === \"constructor\") {\n this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc);\n }\n const key = this.parsePrivateName();\n member.key = key;\n return key;\n }\n this.parsePropertyName(member);\n return member.key;\n }\n parseClassStaticBlock(classBody, member) {\n var _member$decorators;\n this.scope.enter(64 | 128 | 16);\n const oldLabels = this.state.labels;\n this.state.labels = [];\n this.prodParam.enter(0);\n const body = member.body = [];\n this.parseBlockOrModuleBlockBody(body, undefined, false, 8);\n this.prodParam.exit();\n this.scope.exit();\n this.state.labels = oldLabels;\n classBody.body.push(this.finishNode(member, \"StaticBlock\"));\n if ((_member$decorators = member.decorators) != null && _member$decorators.length) {\n this.raise(Errors.DecoratorStaticBlock, member);\n }\n }\n pushClassProperty(classBody, prop) {\n if (!prop.computed && this.nameIsConstructor(prop.key)) {\n this.raise(Errors.ConstructorClassField, prop.key);\n }\n classBody.body.push(this.parseClassProperty(prop));\n }\n pushClassPrivateProperty(classBody, prop) {\n const node = this.parseClassPrivateProperty(prop);\n classBody.body.push(node);\n this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start);\n }\n pushClassAccessorProperty(classBody, prop, isPrivate) {\n if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) {\n this.raise(Errors.ConstructorClassField, prop.key);\n }\n const node = this.parseClassAccessorProperty(prop);\n classBody.body.push(node);\n if (isPrivate) {\n this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start);\n }\n }\n pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {\n classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, \"ClassMethod\", true));\n }\n pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {\n const node = this.parseMethod(method, isGenerator, isAsync, false, false, \"ClassPrivateMethod\", true);\n classBody.body.push(node);\n const kind = node.kind === \"get\" ? node.static ? 6 : 2 : node.kind === \"set\" ? node.static ? 5 : 1 : 0;\n this.declareClassPrivateMethodInScope(node, kind);\n }\n declareClassPrivateMethodInScope(node, kind) {\n this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start);\n }\n parsePostMemberNameModifiers(methodOrProp) {}\n parseClassPrivateProperty(node) {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassPrivateProperty\");\n }\n parseClassProperty(node) {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassProperty\");\n }\n parseClassAccessorProperty(node) {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassAccessorProperty\");\n }\n parseInitializer(node) {\n this.scope.enter(64 | 16);\n this.expressionScope.enter(newExpressionScope());\n this.prodParam.enter(0);\n node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null;\n this.expressionScope.exit();\n this.prodParam.exit();\n this.scope.exit();\n }\n parseClassId(node, isStatement, optionalId, bindingType = 8331) {\n if (tokenIsIdentifier(this.state.type)) {\n node.id = this.parseIdentifier();\n if (isStatement) {\n this.declareNameFromIdentifier(node.id, bindingType);\n }\n } else {\n if (optionalId || !isStatement) {\n node.id = null;\n } else {\n throw this.raise(Errors.MissingClassName, this.state.startLoc);\n }\n }\n }\n parseClassSuper(node) {\n node.superClass = this.eat(81) ? this.parseExprSubscripts() : null;\n }\n parseExport(node, decorators) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true);\n const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier);\n const parseAfterDefault = !hasDefault || this.eat(12);\n const hasStar = parseAfterDefault && this.eatExportStar(node);\n const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node);\n const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12));\n const isFromRequired = hasDefault || hasStar;\n if (hasStar && !hasNamespace) {\n if (hasDefault) this.unexpected();\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.parseExportFrom(node, true);\n return this.finishNode(node, \"ExportAllDeclaration\");\n }\n const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) {\n this.unexpected(null, 5);\n }\n if (hasNamespace && parseAfterNamespace) {\n this.unexpected(null, 98);\n }\n let hasDeclaration;\n if (isFromRequired || hasSpecifiers) {\n hasDeclaration = false;\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.parseExportFrom(node, isFromRequired);\n } else {\n hasDeclaration = this.maybeParseExportDeclaration(node);\n }\n if (isFromRequired || hasSpecifiers || hasDeclaration) {\n var _node2$declaration;\n const node2 = node;\n this.checkExport(node2, true, false, !!node2.source);\n if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, node2.declaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n if (this.eat(65)) {\n const node2 = node;\n const decl = this.parseExportDefaultExpression();\n node2.declaration = decl;\n if (decl.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, decl, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, node);\n }\n this.checkExport(node2, true, true);\n return this.finishNode(node2, \"ExportDefaultDeclaration\");\n }\n this.unexpected(null, 5);\n }\n eatExportStar(node) {\n return this.eat(55);\n }\n maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {\n if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) {\n this.expectPlugin(\"exportDefaultFrom\", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start);\n const id = maybeDefaultIdentifier || this.parseIdentifier(true);\n const specifier = this.startNodeAtNode(id);\n specifier.exported = id;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n return true;\n }\n return false;\n }\n maybeParseExportNamespaceSpecifier(node) {\n if (this.isContextual(93)) {\n var _ref, _ref$specifiers;\n (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = [];\n const specifier = this.startNodeAt(this.state.lastTokStartLoc);\n this.next();\n specifier.exported = this.parseModuleExportName();\n node.specifiers.push(this.finishNode(specifier, \"ExportNamespaceSpecifier\"));\n return true;\n }\n return false;\n }\n maybeParseExportNamedSpecifiers(node) {\n if (this.match(5)) {\n const node2 = node;\n if (!node2.specifiers) node2.specifiers = [];\n const isTypeExport = node2.exportKind === \"type\";\n node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport));\n node2.source = null;\n node2.declaration = null;\n if (this.hasPlugin(\"importAssertions\")) {\n node2.assertions = [];\n }\n return true;\n }\n return false;\n }\n maybeParseExportDeclaration(node) {\n if (this.shouldParseExportDeclaration()) {\n node.specifiers = [];\n node.source = null;\n if (this.hasPlugin(\"importAssertions\")) {\n node.assertions = [];\n }\n node.declaration = this.parseExportDeclaration(node);\n return true;\n }\n return false;\n }\n isAsyncFunction() {\n if (!this.isContextual(95)) return false;\n const next = this.nextTokenInLineStart();\n return this.isUnparsedContextual(next, \"function\");\n }\n parseExportDefaultExpression() {\n const expr = this.startNode();\n if (this.match(68)) {\n this.next();\n return this.parseFunction(expr, 1 | 4);\n } else if (this.isAsyncFunction()) {\n this.next();\n this.next();\n return this.parseFunction(expr, 1 | 4 | 8);\n }\n if (this.match(80)) {\n return this.parseClass(expr, true, true);\n }\n if (this.match(26)) {\n if (this.hasPlugin(\"decorators\") && this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true) {\n this.raise(Errors.DecoratorBeforeExport, this.state.startLoc);\n }\n return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true);\n }\n if (this.match(75) || this.match(74) || this.isLet()) {\n throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc);\n }\n const res = this.parseMaybeAssignAllowIn();\n this.semicolon();\n return res;\n }\n parseExportDeclaration(node) {\n if (this.match(80)) {\n const node = this.parseClass(this.startNode(), true, false);\n return node;\n }\n return this.parseStatementListItem();\n }\n isExportDefaultSpecifier() {\n const {\n type\n } = this.state;\n if (tokenIsIdentifier(type)) {\n if (type === 95 && !this.state.containsEsc || type === 100) {\n return false;\n }\n if ((type === 130 || type === 129) && !this.state.containsEsc) {\n const {\n type: nextType\n } = this.lookahead();\n if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) {\n this.expectOnePlugin([\"flow\", \"typescript\"]);\n return false;\n }\n }\n } else if (!this.match(65)) {\n return false;\n }\n const next = this.nextTokenStart();\n const hasFrom = this.isUnparsedContextual(next, \"from\");\n if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) {\n return true;\n }\n if (this.match(65) && hasFrom) {\n const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4));\n return nextAfterFrom === 34 || nextAfterFrom === 39;\n }\n return false;\n }\n parseExportFrom(node, expect) {\n if (this.eatContextual(98)) {\n node.source = this.parseImportSource();\n this.checkExport(node);\n this.maybeParseImportAttributes(node);\n this.checkJSONModuleImport(node);\n } else if (expect) {\n this.unexpected();\n }\n this.semicolon();\n }\n shouldParseExportDeclaration() {\n const {\n type\n } = this.state;\n if (type === 26) {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n if (this.hasPlugin(\"decorators\")) {\n if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true) {\n this.raise(Errors.DecoratorBeforeExport, this.state.startLoc);\n }\n return true;\n }\n }\n if (this.isContextual(107)) {\n this.raise(Errors.UsingDeclarationExport, this.state.startLoc);\n return true;\n }\n if (this.isContextual(96) && this.startsAwaitUsing()) {\n this.raise(Errors.UsingDeclarationExport, this.state.startLoc);\n return true;\n }\n return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction();\n }\n checkExport(node, checkNames, isDefault, isFrom) {\n if (checkNames) {\n var _node$specifiers;\n if (isDefault) {\n this.checkDuplicateExports(node, \"default\");\n if (this.hasPlugin(\"exportDefaultFrom\")) {\n var _declaration$extra;\n const declaration = node.declaration;\n if (declaration.type === \"Identifier\" && declaration.name === \"from\" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) {\n this.raise(Errors.ExportDefaultFromAsIdentifier, declaration);\n }\n }\n } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) {\n for (const specifier of node.specifiers) {\n const {\n exported\n } = specifier;\n const exportName = exported.type === \"Identifier\" ? exported.name : exported.value;\n this.checkDuplicateExports(specifier, exportName);\n if (!isFrom && specifier.local) {\n const {\n local\n } = specifier;\n if (local.type !== \"Identifier\") {\n this.raise(Errors.ExportBindingIsString, specifier, {\n localName: local.value,\n exportName\n });\n } else {\n this.checkReservedWord(local.name, local.loc.start, true, false);\n this.scope.checkLocalExport(local);\n }\n }\n }\n } else if (node.declaration) {\n const decl = node.declaration;\n if (decl.type === \"FunctionDeclaration\" || decl.type === \"ClassDeclaration\") {\n const {\n id\n } = decl;\n if (!id) throw new Error(\"Assertion failure\");\n this.checkDuplicateExports(node, id.name);\n } else if (decl.type === \"VariableDeclaration\") {\n for (const declaration of decl.declarations) {\n this.checkDeclaration(declaration.id);\n }\n }\n }\n }\n }\n checkDeclaration(node) {\n if (node.type === \"Identifier\") {\n this.checkDuplicateExports(node, node.name);\n } else if (node.type === \"ObjectPattern\") {\n for (const prop of node.properties) {\n this.checkDeclaration(prop);\n }\n } else if (node.type === \"ArrayPattern\") {\n for (const elem of node.elements) {\n if (elem) {\n this.checkDeclaration(elem);\n }\n }\n } else if (node.type === \"ObjectProperty\") {\n this.checkDeclaration(node.value);\n } else if (node.type === \"RestElement\") {\n this.checkDeclaration(node.argument);\n } else if (node.type === \"AssignmentPattern\") {\n this.checkDeclaration(node.left);\n }\n }\n checkDuplicateExports(node, exportName) {\n if (this.exportedIdentifiers.has(exportName)) {\n if (exportName === \"default\") {\n this.raise(Errors.DuplicateDefaultExport, node);\n } else {\n this.raise(Errors.DuplicateExport, node, {\n exportName\n });\n }\n }\n this.exportedIdentifiers.add(exportName);\n }\n parseExportSpecifiers(isInTypeExport) {\n const nodes = [];\n let first = true;\n this.expect(5);\n while (!this.eat(8)) {\n if (first) {\n first = false;\n } else {\n this.expect(12);\n if (this.eat(8)) break;\n }\n const isMaybeTypeOnly = this.isContextual(130);\n const isString = this.match(133);\n const node = this.startNode();\n node.local = this.parseModuleExportName();\n nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly));\n }\n return nodes;\n }\n parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) {\n if (this.eatContextual(93)) {\n node.exported = this.parseModuleExportName();\n } else if (isString) {\n node.exported = cloneStringLiteral(node.local);\n } else if (!node.exported) {\n node.exported = cloneIdentifier(node.local);\n }\n return this.finishNode(node, \"ExportSpecifier\");\n }\n parseModuleExportName() {\n if (this.match(133)) {\n const result = this.parseStringLiteral(this.state.value);\n const surrogate = loneSurrogate.exec(result.value);\n if (surrogate) {\n this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, {\n surrogateCharCode: surrogate[0].charCodeAt(0)\n });\n }\n return result;\n }\n return this.parseIdentifier(true);\n }\n isJSONModuleImport(node) {\n if (node.assertions != null) {\n return node.assertions.some(({\n key,\n value\n }) => {\n return value.value === \"json\" && (key.type === \"Identifier\" ? key.name === \"type\" : key.value === \"type\");\n });\n }\n return false;\n }\n checkImportReflection(node) {\n const {\n specifiers\n } = node;\n const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null;\n if (node.phase === \"source\") {\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0].loc.start);\n }\n } else if (node.phase === \"defer\") {\n if (singleBindingType !== \"ImportNamespaceSpecifier\") {\n this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start);\n }\n } else if (node.module) {\n var _node$assertions;\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start);\n }\n if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) {\n this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start);\n }\n }\n }\n checkJSONModuleImport(node) {\n if (this.isJSONModuleImport(node) && node.type !== \"ExportAllDeclaration\") {\n const {\n specifiers\n } = node;\n if (specifiers != null) {\n const nonDefaultNamedSpecifier = specifiers.find(specifier => {\n let imported;\n if (specifier.type === \"ExportSpecifier\") {\n imported = specifier.local;\n } else if (specifier.type === \"ImportSpecifier\") {\n imported = specifier.imported;\n }\n if (imported !== undefined) {\n return imported.type === \"Identifier\" ? imported.name !== \"default\" : imported.value !== \"default\";\n }\n });\n if (nonDefaultNamedSpecifier !== undefined) {\n this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start);\n }\n }\n }\n }\n isPotentialImportPhase(isExport) {\n if (isExport) return false;\n return this.isContextual(105) || this.isContextual(97) || this.isContextual(127);\n }\n applyImportPhase(node, isExport, phase, loc) {\n if (isExport) {\n return;\n }\n if (phase === \"module\") {\n this.expectPlugin(\"importReflection\", loc);\n node.module = true;\n } else if (this.hasPlugin(\"importReflection\")) {\n node.module = false;\n }\n if (phase === \"source\") {\n this.expectPlugin(\"sourcePhaseImports\", loc);\n node.phase = \"source\";\n } else if (phase === \"defer\") {\n this.expectPlugin(\"deferredImportEvaluation\", loc);\n node.phase = \"defer\";\n } else if (this.hasPlugin(\"sourcePhaseImports\")) {\n node.phase = null;\n }\n }\n parseMaybeImportPhase(node, isExport) {\n if (!this.isPotentialImportPhase(isExport)) {\n this.applyImportPhase(node, isExport, null);\n return null;\n }\n const phaseIdentifier = this.parseIdentifier(true);\n const {\n type\n } = this.state;\n const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12;\n if (isImportPhase) {\n this.resetPreviousIdentifierLeadingComments(phaseIdentifier);\n this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start);\n return null;\n } else {\n this.applyImportPhase(node, isExport, null);\n return phaseIdentifier;\n }\n }\n isPrecedingIdImportPhase(phase) {\n const {\n type\n } = this.state;\n return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12;\n }\n parseImport(node) {\n if (this.match(133)) {\n return this.parseImportSourceAndAttributes(node);\n }\n return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false));\n }\n parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) {\n node.specifiers = [];\n const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier);\n const parseNext = !hasDefault || this.eat(12);\n const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n this.expectContextual(98);\n return this.parseImportSourceAndAttributes(node);\n }\n parseImportSourceAndAttributes(node) {\n var _node$specifiers2;\n (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = [];\n node.source = this.parseImportSource();\n this.maybeParseImportAttributes(node);\n this.checkImportReflection(node);\n this.checkJSONModuleImport(node);\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n parseImportSource() {\n if (!this.match(133)) this.unexpected();\n return this.parseExprAtom();\n }\n parseImportSpecifierLocal(node, specifier, type) {\n specifier.local = this.parseIdentifier();\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n finishImportSpecifier(specifier, type, bindingType = 8201) {\n this.checkLVal(specifier.local, {\n type\n }, bindingType);\n return this.finishNode(specifier, type);\n }\n parseImportAttributes() {\n this.expect(5);\n const attrs = [];\n const attrNames = new Set();\n do {\n if (this.match(8)) {\n break;\n }\n const node = this.startNode();\n const keyName = this.state.value;\n if (attrNames.has(keyName)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, {\n key: keyName\n });\n }\n attrNames.add(keyName);\n if (this.match(133)) {\n node.key = this.parseStringLiteral(keyName);\n } else {\n node.key = this.parseIdentifier(true);\n }\n this.expect(14);\n if (!this.match(133)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc);\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(12));\n this.expect(8);\n return attrs;\n }\n parseModuleAttributes() {\n const attrs = [];\n const attributes = new Set();\n do {\n const node = this.startNode();\n node.key = this.parseIdentifier(true);\n if (node.key.name !== \"type\") {\n this.raise(Errors.ModuleAttributeDifferentFromType, node.key);\n }\n if (attributes.has(node.key.name)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, {\n key: node.key.name\n });\n }\n attributes.add(node.key.name);\n this.expect(14);\n if (!this.match(133)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc);\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(12));\n return attrs;\n }\n maybeParseImportAttributes(node) {\n let attributes;\n {\n var useWith = false;\n }\n if (this.match(76)) {\n if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) {\n return;\n }\n this.next();\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = this.parseModuleAttributes();\n } else {\n if (!this.hasPlugin(\"importAssertions\")) {\n this.expectPlugin(\"importAttributes\");\n }\n attributes = this.parseImportAttributes();\n }\n {\n useWith = true;\n }\n } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) {\n if (this.hasPlugin(\"importAttributes\")) {\n if (this.getPluginOption(\"importAttributes\", \"deprecatedAssertSyntax\") !== true) {\n this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc);\n }\n this.addExtra(node, \"deprecatedAssertSyntax\", true);\n } else {\n this.expectOnePlugin([\"importAttributes\", \"importAssertions\"]);\n }\n this.next();\n attributes = this.parseImportAttributes();\n } else if (this.hasPlugin(\"importAttributes\") || this.hasPlugin(\"importAssertions\")) {\n attributes = [];\n } else {\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = [];\n } else return;\n }\n if (!useWith && this.hasPlugin(\"importAssertions\")) {\n node.assertions = attributes;\n } else {\n node.attributes = attributes;\n }\n }\n maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) {\n if (maybeDefaultIdentifier) {\n const specifier = this.startNodeAtNode(maybeDefaultIdentifier);\n specifier.local = maybeDefaultIdentifier;\n node.specifiers.push(this.finishImportSpecifier(specifier, \"ImportDefaultSpecifier\"));\n return true;\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n this.parseImportSpecifierLocal(node, this.startNode(), \"ImportDefaultSpecifier\");\n return true;\n }\n return false;\n }\n maybeParseStarImportSpecifier(node) {\n if (this.match(55)) {\n const specifier = this.startNode();\n this.next();\n this.expectContextual(93);\n this.parseImportSpecifierLocal(node, specifier, \"ImportNamespaceSpecifier\");\n return true;\n }\n return false;\n }\n parseNamedImportSpecifiers(node) {\n let first = true;\n this.expect(5);\n while (!this.eat(8)) {\n if (first) {\n first = false;\n } else {\n if (this.eat(14)) {\n throw this.raise(Errors.DestructureNamedImport, this.state.startLoc);\n }\n this.expect(12);\n if (this.eat(8)) break;\n }\n const specifier = this.startNode();\n const importedIsString = this.match(133);\n const isMaybeTypeOnly = this.isContextual(130);\n specifier.imported = this.parseModuleExportName();\n const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === \"type\" || node.importKind === \"typeof\", isMaybeTypeOnly, undefined);\n node.specifiers.push(importSpecifier);\n }\n }\n parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {\n if (this.eatContextual(93)) {\n specifier.local = this.parseIdentifier();\n } else {\n const {\n imported\n } = specifier;\n if (importedIsString) {\n throw this.raise(Errors.ImportBindingIsString, specifier, {\n importName: imported.value\n });\n }\n this.checkReservedWord(imported.name, specifier.loc.start, true, true);\n if (!specifier.local) {\n specifier.local = cloneIdentifier(imported);\n }\n }\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\", bindingType);\n }\n isThisParam(param) {\n return param.type === \"Identifier\" && param.name === \"this\";\n }\n}\nclass Parser extends StatementParser {\n constructor(options, input, pluginsMap) {\n options = getOptions(options);\n super(options, input);\n this.options = options;\n this.initializeScopes();\n this.plugins = pluginsMap;\n this.filename = options.sourceFilename;\n }\n getScopeHandler() {\n return ScopeHandler;\n }\n parse() {\n this.enterInitialScopes();\n const file = this.startNode();\n const program = this.startNode();\n this.nextToken();\n file.errors = null;\n this.parseTopLevel(file, program);\n file.errors = this.state.errors;\n file.comments.length = this.state.commentsLen;\n return file;\n }\n}\nfunction parse(input, options) {\n var _options;\n if (((_options = options) == null ? void 0 : _options.sourceType) === \"unambiguous\") {\n options = Object.assign({}, options);\n try {\n options.sourceType = \"module\";\n const parser = getParser(options, input);\n const ast = parser.parse();\n if (parser.sawUnambiguousESM) {\n return ast;\n }\n if (parser.ambiguousScriptDifferentAst) {\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch (_unused) {}\n } else {\n ast.program.sourceType = \"script\";\n }\n return ast;\n } catch (moduleError) {\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch (_unused2) {}\n throw moduleError;\n }\n } else {\n return getParser(options, input).parse();\n }\n}\nfunction parseExpression(input, options) {\n const parser = getParser(options, input);\n if (parser.options.strictMode) {\n parser.state.strict = true;\n }\n return parser.getExpression();\n}\nfunction generateExportedTokenTypes(internalTokenTypes) {\n const tokenTypes = {};\n for (const typeName of Object.keys(internalTokenTypes)) {\n tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]);\n }\n return tokenTypes;\n}\nconst tokTypes = generateExportedTokenTypes(tt);\nfunction getParser(options, input) {\n let cls = Parser;\n const pluginsMap = new Map();\n if (options != null && options.plugins) {\n for (const plugin of options.plugins) {\n let name, opts;\n if (typeof plugin === \"string\") {\n name = plugin;\n } else {\n [name, opts] = plugin;\n }\n if (!pluginsMap.has(name)) {\n pluginsMap.set(name, opts || {});\n }\n }\n validatePlugins(pluginsMap);\n cls = getParserClass(pluginsMap);\n }\n return new cls(options, input, pluginsMap);\n}\nconst parserClassCache = new Map();\nfunction getParserClass(pluginsMap) {\n const pluginList = [];\n for (const name of mixinPluginNames) {\n if (pluginsMap.has(name)) {\n pluginList.push(name);\n }\n }\n const key = pluginList.join(\"|\");\n let cls = parserClassCache.get(key);\n if (!cls) {\n cls = Parser;\n for (const plugin of pluginList) {\n cls = mixinPlugins[plugin](cls);\n }\n parserClassCache.set(key, cls);\n }\n return cls;\n}\nexports.parse = parse;\nexports.parseExpression = parseExpression;\nexports.tokTypes = tokTypes;\n//# sourceMappingURL=index.js.map\n",
11
- "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(global = global || self, factory(global.estreeWalker = {}));\n}(this, (function (exports) { 'use strict';\n\n\t// @ts-check\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\n\t/** @typedef {{\n\t\tskip: () => void;\n\t\tremove: () => void;\n\t\treplace: (node: BaseNode) => void;\n\t}} WalkerContext */\n\n\tclass WalkerBase {\n\t\tconstructor() {\n\t\t\t/** @type {boolean} */\n\t\t\tthis.should_skip = false;\n\n\t\t\t/** @type {boolean} */\n\t\t\tthis.should_remove = false;\n\n\t\t\t/** @type {BaseNode | null} */\n\t\t\tthis.replacement = null;\n\n\t\t\t/** @type {WalkerContext} */\n\t\t\tthis.context = {\n\t\t\t\tskip: () => (this.should_skip = true),\n\t\t\t\tremove: () => (this.should_remove = true),\n\t\t\t\treplace: (node) => (this.replacement = node)\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {any} parent\n\t\t * @param {string} prop\n\t\t * @param {number} index\n\t\t * @param {BaseNode} node\n\t\t */\n\t\treplace(parent, prop, index, node) {\n\t\t\tif (parent) {\n\t\t\t\tif (index !== null) {\n\t\t\t\t\tparent[prop][index] = node;\n\t\t\t\t} else {\n\t\t\t\t\tparent[prop] = node;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {any} parent\n\t\t * @param {string} prop\n\t\t * @param {number} index\n\t\t */\n\t\tremove(parent, prop, index) {\n\t\t\tif (parent) {\n\t\t\t\tif (index !== null) {\n\t\t\t\t\tparent[prop].splice(index, 1);\n\t\t\t\t} else {\n\t\t\t\t\tdelete parent[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// @ts-check\n\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\t/** @typedef { import('./walker.js').WalkerContext} WalkerContext */\n\n\t/** @typedef {(\n\t * this: WalkerContext,\n\t * node: BaseNode,\n\t * parent: BaseNode,\n\t * key: string,\n\t * index: number\n\t * ) => void} SyncHandler */\n\n\tclass SyncWalker extends WalkerBase {\n\t\t/**\n\t\t *\n\t\t * @param {SyncHandler} enter\n\t\t * @param {SyncHandler} leave\n\t\t */\n\t\tconstructor(enter, leave) {\n\t\t\tsuper();\n\n\t\t\t/** @type {SyncHandler} */\n\t\t\tthis.enter = enter;\n\n\t\t\t/** @type {SyncHandler} */\n\t\t\tthis.leave = leave;\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {BaseNode} node\n\t\t * @param {BaseNode} parent\n\t\t * @param {string} [prop]\n\t\t * @param {number} [index]\n\t\t * @returns {BaseNode}\n\t\t */\n\t\tvisit(node, parent, prop, index) {\n\t\t\tif (node) {\n\t\t\t\tif (this.enter) {\n\t\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tthis.should_skip = false;\n\t\t\t\t\tthis.should_remove = false;\n\t\t\t\t\tthis.replacement = null;\n\n\t\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\t\tif (skipped) return node;\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\n\t\t\t\tfor (const key in node) {\n\t\t\t\t\tconst value = node[key];\n\n\t\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\t\tif (!this.visit(value[i], node, key, i)) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.leave) {\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tthis.replacement = null;\n\t\t\t\t\tthis.should_remove = false;\n\n\t\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.replacement = _replacement;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn node;\n\t\t}\n\t}\n\n\t// @ts-check\n\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\t/** @typedef { import('./walker').WalkerContext} WalkerContext */\n\n\t/** @typedef {(\n\t * this: WalkerContext,\n\t * node: BaseNode,\n\t * parent: BaseNode,\n\t * key: string,\n\t * index: number\n\t * ) => Promise<void>} AsyncHandler */\n\n\tclass AsyncWalker extends WalkerBase {\n\t\t/**\n\t\t *\n\t\t * @param {AsyncHandler} enter\n\t\t * @param {AsyncHandler} leave\n\t\t */\n\t\tconstructor(enter, leave) {\n\t\t\tsuper();\n\n\t\t\t/** @type {AsyncHandler} */\n\t\t\tthis.enter = enter;\n\n\t\t\t/** @type {AsyncHandler} */\n\t\t\tthis.leave = leave;\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {BaseNode} node\n\t\t * @param {BaseNode} parent\n\t\t * @param {string} [prop]\n\t\t * @param {number} [index]\n\t\t * @returns {Promise<BaseNode>}\n\t\t */\n\t\tasync visit(node, parent, prop, index) {\n\t\t\tif (node) {\n\t\t\t\tif (this.enter) {\n\t\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tthis.should_skip = false;\n\t\t\t\t\tthis.should_remove = false;\n\t\t\t\t\tthis.replacement = null;\n\n\t\t\t\t\tawait this.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\t\tif (skipped) return node;\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\n\t\t\t\tfor (const key in node) {\n\t\t\t\t\tconst value = node[key];\n\n\t\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\t\tif (!(await this.visit(value[i], node, key, i))) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\t\tawait this.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.leave) {\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tthis.replacement = null;\n\t\t\t\t\tthis.should_remove = false;\n\n\t\t\t\t\tawait this.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.replacement = _replacement;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn node;\n\t\t}\n\t}\n\n\t// @ts-check\n\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\t/** @typedef { import('./sync.js').SyncHandler} SyncHandler */\n\t/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */\n\n\t/**\n\t *\n\t * @param {BaseNode} ast\n\t * @param {{\n\t * enter?: SyncHandler\n\t * leave?: SyncHandler\n\t * }} walker\n\t * @returns {BaseNode}\n\t */\n\tfunction walk(ast, { enter, leave }) {\n\t\tconst instance = new SyncWalker(enter, leave);\n\t\treturn instance.visit(ast, null);\n\t}\n\n\t/**\n\t *\n\t * @param {BaseNode} ast\n\t * @param {{\n\t * enter?: AsyncHandler\n\t * leave?: AsyncHandler\n\t * }} walker\n\t * @returns {Promise<BaseNode>}\n\t */\n\tasync function asyncWalk(ast, { enter, leave }) {\n\t\tconst instance = new AsyncWalker(enter, leave);\n\t\treturn await instance.visit(ast, null);\n\t}\n\n\texports.asyncWalk = asyncWalk;\n\texports.walk = walk;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n",
12
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n",
13
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n",
14
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\nvar MAX_CACHED_INPUTS = 32;\n\n/**\n * Takes some function `f(input) -> result` and returns a memoized version of\n * `f`.\n *\n * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The\n * memoization is a dumb-simple, linear least-recently-used cache.\n */\nfunction lruMemoize(f) {\n var cache = [];\n\n return function(input) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].input === input) {\n var temp = cache[0];\n cache[0] = cache[i];\n cache[i] = temp;\n return cache[0].result;\n }\n }\n\n var result = f(input);\n\n cache.unshift({\n input,\n result,\n });\n\n if (cache.length > MAX_CACHED_INPUTS) {\n cache.pop();\n }\n\n return result;\n };\n}\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nvar normalize = lruMemoize(function normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n // Split the path into parts between `/` characters. This is much faster than\n // using `.split(/\\/+/g)`.\n var parts = [];\n var start = 0;\n var i = 0;\n while (true) {\n start = i;\n i = path.indexOf(\"/\", start);\n if (i === -1) {\n parts.push(path.slice(start));\n break;\n } else {\n parts.push(path.slice(start, i));\n while (i < path.length && path[i] === \"/\") {\n i++;\n }\n }\n }\n\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n});\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\nfunction compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {\n var cmp\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n",
15
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n",
16
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n",
17
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n }));\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n if (this._validateMapping(generated, original, source, name) === false) {\n return;\n }\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n var message = 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message);\n }\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n var message = 'Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n });\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message)\n }\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n",
18
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n",
19
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\nfunction SortTemplate(comparator) {\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot, false) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n return doQuickSort;\n}\n\nfunction cloneSort(comparator) {\n let template = SortTemplate.toString();\n let templateFn = new Function(`return ${template}`)();\n return templateFn(comparator);\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\n\nlet sortCache = new WeakMap();\nexports.quickSort = function (ary, comparator, start = 0) {\n let doQuickSort = sortCache.get(comparator);\n if (doQuickSort === void 0) {\n doQuickSort = cloneSort(comparator);\n sortCache.set(comparator, doQuickSort);\n }\n doQuickSort(ary, comparator, start, ary.length - 1);\n};\n",
20
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n var boundCallback = aCallback.bind(context);\n var names = this._names;\n var sources = this._sources;\n var sourceMapURL = this._sourceMapURL;\n\n for (var i = 0, n = mappings.length; i < n; i++) {\n var mapping = mappings[i];\n var source = mapping.source === null ? null : sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(sourceRoot, source, sourceMapURL);\n }\n boundCallback({\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : names.at(mapping.name)\n });\n }\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n\nconst compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine;\nfunction sortGenerated(array, start) {\n let l = array.length;\n let n = array.length - start;\n if (n <= 1) {\n return;\n } else if (n == 2) {\n let a = array[start];\n let b = array[start + 1];\n if (compareGenerated(a, b) > 0) {\n array[start] = b;\n array[start + 1] = a;\n }\n } else if (n < 20) {\n for (let i = start; i < l; i++) {\n for (let j = i; j > start; j--) {\n let a = array[j - 1];\n let b = array[j];\n if (compareGenerated(a, b) <= 0) {\n break;\n }\n array[j - 1] = b;\n array[j] = a;\n }\n }\n } else {\n quickSort(array, compareGenerated, start);\n }\n}\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n let subarrayStart = 0;\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n\n sortGenerated(generatedMappings, subarrayStart);\n subarrayStart = generatedMappings.length;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n let currentSource = mapping.source;\n while (originalMappings.length <= currentSource) {\n originalMappings.push(null);\n }\n if (originalMappings[currentSource] === null) {\n originalMappings[currentSource] = [];\n }\n originalMappings[currentSource].push(mapping);\n }\n }\n }\n\n sortGenerated(generatedMappings, subarrayStart);\n this.__generatedMappings = generatedMappings;\n\n for (var i = 0; i < originalMappings.length; i++) {\n if (originalMappings[i] != null) {\n quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource);\n }\n }\n this.__originalMappings = [].concat(...originalMappings);\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content || content === '') {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n",
21
- "/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n",
22
- "/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n",
23
- "/**\n* @vue/compiler-core v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar shared = require('@vue/shared');\nvar decode_js = require('entities/lib/decode.js');\nvar parser = require('@babel/parser');\nvar estreeWalker = require('estree-walker');\nvar sourceMapJs = require('source-map-js');\n\nconst FRAGMENT = Symbol(`Fragment` );\nconst TELEPORT = Symbol(`Teleport` );\nconst SUSPENSE = Symbol(`Suspense` );\nconst KEEP_ALIVE = Symbol(`KeepAlive` );\nconst BASE_TRANSITION = Symbol(\n `BaseTransition` \n);\nconst OPEN_BLOCK = Symbol(`openBlock` );\nconst CREATE_BLOCK = Symbol(`createBlock` );\nconst CREATE_ELEMENT_BLOCK = Symbol(\n `createElementBlock` \n);\nconst CREATE_VNODE = Symbol(`createVNode` );\nconst CREATE_ELEMENT_VNODE = Symbol(\n `createElementVNode` \n);\nconst CREATE_COMMENT = Symbol(\n `createCommentVNode` \n);\nconst CREATE_TEXT = Symbol(\n `createTextVNode` \n);\nconst CREATE_STATIC = Symbol(\n `createStaticVNode` \n);\nconst RESOLVE_COMPONENT = Symbol(\n `resolveComponent` \n);\nconst RESOLVE_DYNAMIC_COMPONENT = Symbol(\n `resolveDynamicComponent` \n);\nconst RESOLVE_DIRECTIVE = Symbol(\n `resolveDirective` \n);\nconst RESOLVE_FILTER = Symbol(\n `resolveFilter` \n);\nconst WITH_DIRECTIVES = Symbol(\n `withDirectives` \n);\nconst RENDER_LIST = Symbol(`renderList` );\nconst RENDER_SLOT = Symbol(`renderSlot` );\nconst CREATE_SLOTS = Symbol(`createSlots` );\nconst TO_DISPLAY_STRING = Symbol(\n `toDisplayString` \n);\nconst MERGE_PROPS = Symbol(`mergeProps` );\nconst NORMALIZE_CLASS = Symbol(\n `normalizeClass` \n);\nconst NORMALIZE_STYLE = Symbol(\n `normalizeStyle` \n);\nconst NORMALIZE_PROPS = Symbol(\n `normalizeProps` \n);\nconst GUARD_REACTIVE_PROPS = Symbol(\n `guardReactiveProps` \n);\nconst TO_HANDLERS = Symbol(`toHandlers` );\nconst CAMELIZE = Symbol(`camelize` );\nconst CAPITALIZE = Symbol(`capitalize` );\nconst TO_HANDLER_KEY = Symbol(\n `toHandlerKey` \n);\nconst SET_BLOCK_TRACKING = Symbol(\n `setBlockTracking` \n);\nconst PUSH_SCOPE_ID = Symbol(`pushScopeId` );\nconst POP_SCOPE_ID = Symbol(`popScopeId` );\nconst WITH_CTX = Symbol(`withCtx` );\nconst UNREF = Symbol(`unref` );\nconst IS_REF = Symbol(`isRef` );\nconst WITH_MEMO = Symbol(`withMemo` );\nconst IS_MEMO_SAME = Symbol(`isMemoSame` );\nconst helperNameMap = {\n [FRAGMENT]: `Fragment`,\n [TELEPORT]: `Teleport`,\n [SUSPENSE]: `Suspense`,\n [KEEP_ALIVE]: `KeepAlive`,\n [BASE_TRANSITION]: `BaseTransition`,\n [OPEN_BLOCK]: `openBlock`,\n [CREATE_BLOCK]: `createBlock`,\n [CREATE_ELEMENT_BLOCK]: `createElementBlock`,\n [CREATE_VNODE]: `createVNode`,\n [CREATE_ELEMENT_VNODE]: `createElementVNode`,\n [CREATE_COMMENT]: `createCommentVNode`,\n [CREATE_TEXT]: `createTextVNode`,\n [CREATE_STATIC]: `createStaticVNode`,\n [RESOLVE_COMPONENT]: `resolveComponent`,\n [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n [RESOLVE_DIRECTIVE]: `resolveDirective`,\n [RESOLVE_FILTER]: `resolveFilter`,\n [WITH_DIRECTIVES]: `withDirectives`,\n [RENDER_LIST]: `renderList`,\n [RENDER_SLOT]: `renderSlot`,\n [CREATE_SLOTS]: `createSlots`,\n [TO_DISPLAY_STRING]: `toDisplayString`,\n [MERGE_PROPS]: `mergeProps`,\n [NORMALIZE_CLASS]: `normalizeClass`,\n [NORMALIZE_STYLE]: `normalizeStyle`,\n [NORMALIZE_PROPS]: `normalizeProps`,\n [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n [TO_HANDLERS]: `toHandlers`,\n [CAMELIZE]: `camelize`,\n [CAPITALIZE]: `capitalize`,\n [TO_HANDLER_KEY]: `toHandlerKey`,\n [SET_BLOCK_TRACKING]: `setBlockTracking`,\n [PUSH_SCOPE_ID]: `pushScopeId`,\n [POP_SCOPE_ID]: `popScopeId`,\n [WITH_CTX]: `withCtx`,\n [UNREF]: `unref`,\n [IS_REF]: `isRef`,\n [WITH_MEMO]: `withMemo`,\n [IS_MEMO_SAME]: `isMemoSame`\n};\nfunction registerRuntimeHelpers(helpers) {\n Object.getOwnPropertySymbols(helpers).forEach((s) => {\n helperNameMap[s] = helpers[s];\n });\n}\n\nconst Namespaces = {\n \"HTML\": 0,\n \"0\": \"HTML\",\n \"SVG\": 1,\n \"1\": \"SVG\",\n \"MATH_ML\": 2,\n \"2\": \"MATH_ML\"\n};\nconst NodeTypes = {\n \"ROOT\": 0,\n \"0\": \"ROOT\",\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"TEXT\": 2,\n \"2\": \"TEXT\",\n \"COMMENT\": 3,\n \"3\": \"COMMENT\",\n \"SIMPLE_EXPRESSION\": 4,\n \"4\": \"SIMPLE_EXPRESSION\",\n \"INTERPOLATION\": 5,\n \"5\": \"INTERPOLATION\",\n \"ATTRIBUTE\": 6,\n \"6\": \"ATTRIBUTE\",\n \"DIRECTIVE\": 7,\n \"7\": \"DIRECTIVE\",\n \"COMPOUND_EXPRESSION\": 8,\n \"8\": \"COMPOUND_EXPRESSION\",\n \"IF\": 9,\n \"9\": \"IF\",\n \"IF_BRANCH\": 10,\n \"10\": \"IF_BRANCH\",\n \"FOR\": 11,\n \"11\": \"FOR\",\n \"TEXT_CALL\": 12,\n \"12\": \"TEXT_CALL\",\n \"VNODE_CALL\": 13,\n \"13\": \"VNODE_CALL\",\n \"JS_CALL_EXPRESSION\": 14,\n \"14\": \"JS_CALL_EXPRESSION\",\n \"JS_OBJECT_EXPRESSION\": 15,\n \"15\": \"JS_OBJECT_EXPRESSION\",\n \"JS_PROPERTY\": 16,\n \"16\": \"JS_PROPERTY\",\n \"JS_ARRAY_EXPRESSION\": 17,\n \"17\": \"JS_ARRAY_EXPRESSION\",\n \"JS_FUNCTION_EXPRESSION\": 18,\n \"18\": \"JS_FUNCTION_EXPRESSION\",\n \"JS_CONDITIONAL_EXPRESSION\": 19,\n \"19\": \"JS_CONDITIONAL_EXPRESSION\",\n \"JS_CACHE_EXPRESSION\": 20,\n \"20\": \"JS_CACHE_EXPRESSION\",\n \"JS_BLOCK_STATEMENT\": 21,\n \"21\": \"JS_BLOCK_STATEMENT\",\n \"JS_TEMPLATE_LITERAL\": 22,\n \"22\": \"JS_TEMPLATE_LITERAL\",\n \"JS_IF_STATEMENT\": 23,\n \"23\": \"JS_IF_STATEMENT\",\n \"JS_ASSIGNMENT_EXPRESSION\": 24,\n \"24\": \"JS_ASSIGNMENT_EXPRESSION\",\n \"JS_SEQUENCE_EXPRESSION\": 25,\n \"25\": \"JS_SEQUENCE_EXPRESSION\",\n \"JS_RETURN_STATEMENT\": 26,\n \"26\": \"JS_RETURN_STATEMENT\"\n};\nconst ElementTypes = {\n \"ELEMENT\": 0,\n \"0\": \"ELEMENT\",\n \"COMPONENT\": 1,\n \"1\": \"COMPONENT\",\n \"SLOT\": 2,\n \"2\": \"SLOT\",\n \"TEMPLATE\": 3,\n \"3\": \"TEMPLATE\"\n};\nconst ConstantTypes = {\n \"NOT_CONSTANT\": 0,\n \"0\": \"NOT_CONSTANT\",\n \"CAN_SKIP_PATCH\": 1,\n \"1\": \"CAN_SKIP_PATCH\",\n \"CAN_CACHE\": 2,\n \"2\": \"CAN_CACHE\",\n \"CAN_STRINGIFY\": 3,\n \"3\": \"CAN_STRINGIFY\"\n};\nconst locStub = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 },\n source: \"\"\n};\nfunction createRoot(children, source = \"\") {\n return {\n type: 0,\n source,\n children,\n helpers: /* @__PURE__ */ new Set(),\n components: [],\n directives: [],\n hoists: [],\n imports: [],\n cached: [],\n temps: 0,\n codegenNode: void 0,\n loc: locStub\n };\n}\nfunction createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {\n if (context) {\n if (isBlock) {\n context.helper(OPEN_BLOCK);\n context.helper(getVNodeBlockHelper(context.inSSR, isComponent));\n } else {\n context.helper(getVNodeHelper(context.inSSR, isComponent));\n }\n if (directives) {\n context.helper(WITH_DIRECTIVES);\n }\n }\n return {\n type: 13,\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent,\n loc\n };\n}\nfunction createArrayExpression(elements, loc = locStub) {\n return {\n type: 17,\n loc,\n elements\n };\n}\nfunction createObjectExpression(properties, loc = locStub) {\n return {\n type: 15,\n loc,\n properties\n };\n}\nfunction createObjectProperty(key, value) {\n return {\n type: 16,\n loc: locStub,\n key: shared.isString(key) ? createSimpleExpression(key, true) : key,\n value\n };\n}\nfunction createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {\n return {\n type: 4,\n loc,\n content,\n isStatic,\n constType: isStatic ? 3 : constType\n };\n}\nfunction createInterpolation(content, loc) {\n return {\n type: 5,\n loc,\n content: shared.isString(content) ? createSimpleExpression(content, false, loc) : content\n };\n}\nfunction createCompoundExpression(children, loc = locStub) {\n return {\n type: 8,\n loc,\n children\n };\n}\nfunction createCallExpression(callee, args = [], loc = locStub) {\n return {\n type: 14,\n loc,\n callee,\n arguments: args\n };\n}\nfunction createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {\n return {\n type: 18,\n params,\n returns,\n newline,\n isSlot,\n loc\n };\n}\nfunction createConditionalExpression(test, consequent, alternate, newline = true) {\n return {\n type: 19,\n test,\n consequent,\n alternate,\n newline,\n loc: locStub\n };\n}\nfunction createCacheExpression(index, value, needPauseTracking = false) {\n return {\n type: 20,\n index,\n value,\n needPauseTracking,\n needArraySpread: false,\n loc: locStub\n };\n}\nfunction createBlockStatement(body) {\n return {\n type: 21,\n body,\n loc: locStub\n };\n}\nfunction createTemplateLiteral(elements) {\n return {\n type: 22,\n elements,\n loc: locStub\n };\n}\nfunction createIfStatement(test, consequent, alternate) {\n return {\n type: 23,\n test,\n consequent,\n alternate,\n loc: locStub\n };\n}\nfunction createAssignmentExpression(left, right) {\n return {\n type: 24,\n left,\n right,\n loc: locStub\n };\n}\nfunction createSequenceExpression(expressions) {\n return {\n type: 25,\n expressions,\n loc: locStub\n };\n}\nfunction createReturnStatement(returns) {\n return {\n type: 26,\n returns,\n loc: locStub\n };\n}\nfunction getVNodeHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;\n}\nfunction getVNodeBlockHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;\n}\nfunction convertToBlock(node, { helper, removeHelper, inSSR }) {\n if (!node.isBlock) {\n node.isBlock = true;\n removeHelper(getVNodeHelper(inSSR, node.isComponent));\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(inSSR, node.isComponent));\n }\n}\n\nconst defaultDelimitersOpen = new Uint8Array([123, 123]);\nconst defaultDelimitersClose = new Uint8Array([125, 125]);\nfunction isTagStartChar(c) {\n return c >= 97 && c <= 122 || c >= 65 && c <= 90;\n}\nfunction isWhitespace(c) {\n return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;\n}\nfunction isEndOfTagSection(c) {\n return c === 47 || c === 62 || isWhitespace(c);\n}\nfunction toCharCodes(str) {\n const ret = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n ret[i] = str.charCodeAt(i);\n }\n return ret;\n}\nconst Sequences = {\n Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),\n // CDATA[\n CdataEnd: new Uint8Array([93, 93, 62]),\n // ]]>\n CommentEnd: new Uint8Array([45, 45, 62]),\n // `-->`\n ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),\n // `<\\/script`\n StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),\n // `</style`\n TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),\n // `</title`\n TextareaEnd: new Uint8Array([\n 60,\n 47,\n 116,\n 101,\n 120,\n 116,\n 97,\n 114,\n 101,\n 97\n ])\n // `</textarea\n};\nclass Tokenizer {\n constructor(stack, cbs) {\n this.stack = stack;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = 1;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = 1;\n /** For special parsing behavior inside of script and style tags. */\n this.inRCDATA = false;\n /** For disabling RCDATA tags handling */\n this.inXML = false;\n /** For disabling interpolation parsing in v-pre */\n this.inVPre = false;\n /** Record newline positions for fast line / column calculation */\n this.newlines = [];\n this.mode = 0;\n this.delimiterOpen = defaultDelimitersOpen;\n this.delimiterClose = defaultDelimitersClose;\n this.delimiterIndex = -1;\n this.currentSequence = void 0;\n this.sequenceIndex = 0;\n {\n this.entityDecoder = new decode_js.EntityDecoder(\n decode_js.htmlDecodeTree,\n (cp, consumed) => this.emitCodePoint(cp, consumed)\n );\n }\n }\n get inSFCRoot() {\n return this.mode === 2 && this.stack.length === 0;\n }\n reset() {\n this.state = 1;\n this.mode = 0;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = 1;\n this.inRCDATA = false;\n this.currentSequence = void 0;\n this.newlines.length = 0;\n this.delimiterOpen = defaultDelimitersOpen;\n this.delimiterClose = defaultDelimitersClose;\n }\n /**\n * Generate Position object with line / column information using recorded\n * newline positions. We know the index is always going to be an already\n * processed index, so all the newlines up to this index should have been\n * recorded.\n */\n getPos(index) {\n let line = 1;\n let column = index + 1;\n for (let i = this.newlines.length - 1; i >= 0; i--) {\n const newlineIndex = this.newlines[i];\n if (index > newlineIndex) {\n line = i + 2;\n column = index - newlineIndex;\n break;\n }\n }\n return {\n column,\n line,\n offset: index\n };\n }\n peek() {\n return this.buffer.charCodeAt(this.index + 1);\n }\n stateText(c) {\n if (c === 60) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = 5;\n this.sectionStart = this.index;\n } else if (c === 38) {\n this.startEntity();\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n }\n stateInterpolationOpen(c) {\n if (c === this.delimiterOpen[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterOpen.length - 1) {\n const start = this.index + 1 - this.delimiterOpen.length;\n if (start > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, start);\n }\n this.state = 3;\n this.sectionStart = start;\n } else {\n this.delimiterIndex++;\n }\n } else if (this.inRCDATA) {\n this.state = 32;\n this.stateInRCDATA(c);\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInterpolation(c) {\n if (c === this.delimiterClose[0]) {\n this.state = 4;\n this.delimiterIndex = 0;\n this.stateInterpolationClose(c);\n }\n }\n stateInterpolationClose(c) {\n if (c === this.delimiterClose[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterClose.length - 1) {\n this.cbs.oninterpolation(this.sectionStart, this.index + 1);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else {\n this.delimiterIndex++;\n }\n } else {\n this.state = 3;\n this.stateInterpolation(c);\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd ? (\n // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n ) : (\n // Otherwise, do a case-insensitive comparison\n (c | 32) === this.currentSequence[this.sequenceIndex]\n );\n if (!isMatch) {\n this.inRCDATA = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = 6;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> and <textarea>, also decode entities. */\n stateInRCDATA(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === 62 || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.sectionStart = endOfText + 2;\n this.stateInClosingTagName(c);\n this.inRCDATA = false;\n return;\n }\n this.sequenceIndex = 0;\n }\n if ((c | 32) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {\n if (c === 38) {\n this.startEntity();\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n } else if (this.fastForwardTo(60)) {\n this.sequenceIndex = 1;\n }\n } else {\n this.sequenceIndex = Number(c === 60);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = 28;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = 23;\n this.stateInDeclaration(c);\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length) {\n const cc = this.buffer.charCodeAt(this.index);\n if (cc === 10) {\n this.newlines.push(this.index);\n }\n if (cc === c) {\n return true;\n }\n }\n this.index = this.buffer.length - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index - 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index - 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = 1;\n }\n } else if (this.sequenceIndex === 0) {\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n this.sequenceIndex = 0;\n }\n }\n startSpecial(sequence, offset) {\n this.enterRCDATA(sequence, offset);\n this.state = 31;\n }\n enterRCDATA(sequence, offset) {\n this.inRCDATA = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n }\n stateBeforeTagName(c) {\n if (c === 33) {\n this.state = 22;\n this.sectionStart = this.index + 1;\n } else if (c === 63) {\n this.state = 24;\n this.sectionStart = this.index + 1;\n } else if (isTagStartChar(c)) {\n this.sectionStart = this.index;\n if (this.mode === 0) {\n this.state = 6;\n } else if (this.inSFCRoot) {\n this.state = 34;\n } else if (!this.inXML) {\n if (c === 116) {\n this.state = 30;\n } else {\n this.state = c === 115 ? 29 : 6;\n }\n } else {\n this.state = 6;\n }\n } else if (c === 47) {\n this.state = 8;\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.handleTagName(c);\n }\n }\n stateInSFCRootTagName(c) {\n if (isEndOfTagSection(c)) {\n const tag = this.buffer.slice(this.sectionStart, this.index);\n if (tag !== \"template\") {\n this.enterRCDATA(toCharCodes(`</` + tag), 0);\n }\n this.handleTagName(c);\n }\n }\n handleTagName(c) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) ; else if (c === 62) {\n {\n this.cbs.onerr(14, this.index);\n }\n this.state = 1;\n this.sectionStart = this.index + 1;\n } else {\n this.state = isTagStartChar(c) ? 9 : 27;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === 62 || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 10;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n if (c === 62) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttrName(c) {\n if (c === 62) {\n this.cbs.onopentagend(this.index);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else if (c === 47) {\n this.state = 7;\n if (this.peek() !== 62) {\n this.cbs.onerr(22, this.index);\n }\n } else if (c === 60 && this.peek() === 47) {\n this.cbs.onopentagend(this.index);\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!isWhitespace(c)) {\n if (c === 61) {\n this.cbs.onerr(\n 19,\n this.index\n );\n }\n this.handleAttrStart(c);\n }\n }\n handleAttrStart(c) {\n if (c === 118 && this.peek() === 45) {\n this.state = 13;\n this.sectionStart = this.index;\n } else if (c === 46 || c === 58 || c === 64 || c === 35) {\n this.cbs.ondirname(this.index, this.index + 1);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 12;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === 62) {\n this.cbs.onselfclosingtag(this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n this.inRCDATA = false;\n } else if (!isWhitespace(c)) {\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n }\n stateInAttrName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 34 || c === 39 || c === 60) {\n this.cbs.onerr(\n 17,\n this.index\n );\n }\n }\n stateInDirName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 58) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else if (c === 46) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDirArg(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 91) {\n this.state = 15;\n } else if (c === 46) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDynamicDirArg(c) {\n if (c === 93) {\n this.state = 14;\n } else if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index + 1);\n this.handleAttrNameEnd(c);\n {\n this.cbs.onerr(\n 27,\n this.index\n );\n }\n }\n }\n stateInDirModifier(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 46) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.sectionStart = this.index + 1;\n }\n }\n handleAttrNameEnd(c) {\n this.sectionStart = this.index;\n this.state = 17;\n this.cbs.onattribnameend(this.index);\n this.stateAfterAttrName(c);\n }\n stateAfterAttrName(c) {\n if (c === 61) {\n this.state = 18;\n } else if (c === 47 || c === 62) {\n this.cbs.onattribend(0, this.sectionStart);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(0, this.sectionStart);\n this.handleAttrStart(c);\n }\n }\n stateBeforeAttrValue(c) {\n if (c === 34) {\n this.state = 19;\n this.sectionStart = this.index + 1;\n } else if (c === 39) {\n this.state = 20;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = 21;\n this.stateInAttrValueNoQuotes(c);\n }\n }\n handleInAttrValue(c, quote) {\n if (c === quote || false) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === 34 ? 3 : 2,\n this.index + 1\n );\n this.state = 11;\n } else if (c === 38) {\n this.startEntity();\n }\n }\n stateInAttrValueDoubleQuotes(c) {\n this.handleInAttrValue(c, 34);\n }\n stateInAttrValueSingleQuotes(c) {\n this.handleInAttrValue(c, 39);\n }\n stateInAttrValueNoQuotes(c) {\n if (isWhitespace(c) || c === 62) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(1, this.index);\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {\n this.cbs.onerr(\n 18,\n this.index\n );\n } else if (c === 38) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === 91) {\n this.state = 26;\n this.sequenceIndex = 0;\n } else {\n this.state = c === 45 ? 25 : 23;\n }\n }\n stateInDeclaration(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === 45) {\n this.state = 28;\n this.currentSequence = Sequences.CommentEnd;\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 23;\n }\n }\n stateInSpecialComment(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.oncomment(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n if (c === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (c === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n stateBeforeSpecialT(c) {\n if (c === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n } else if (c === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n startEntity() {\n {\n this.baseState = this.state;\n this.state = 33;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(\n this.baseState === 1 || this.baseState === 32 ? decode_js.DecodingMode.Legacy : decode_js.DecodingMode.Attribute\n );\n }\n }\n stateInEntity() {\n {\n const length = this.entityDecoder.write(this.buffer, this.index);\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index = this.entityStart;\n }\n } else {\n this.index = this.buffer.length - 1;\n }\n }\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse(input) {\n this.buffer = input;\n while (this.index < this.buffer.length) {\n const c = this.buffer.charCodeAt(this.index);\n if (c === 10) {\n this.newlines.push(this.index);\n }\n switch (this.state) {\n case 1: {\n this.stateText(c);\n break;\n }\n case 2: {\n this.stateInterpolationOpen(c);\n break;\n }\n case 3: {\n this.stateInterpolation(c);\n break;\n }\n case 4: {\n this.stateInterpolationClose(c);\n break;\n }\n case 31: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case 32: {\n this.stateInRCDATA(c);\n break;\n }\n case 26: {\n this.stateCDATASequence(c);\n break;\n }\n case 19: {\n this.stateInAttrValueDoubleQuotes(c);\n break;\n }\n case 12: {\n this.stateInAttrName(c);\n break;\n }\n case 13: {\n this.stateInDirName(c);\n break;\n }\n case 14: {\n this.stateInDirArg(c);\n break;\n }\n case 15: {\n this.stateInDynamicDirArg(c);\n break;\n }\n case 16: {\n this.stateInDirModifier(c);\n break;\n }\n case 28: {\n this.stateInCommentLike(c);\n break;\n }\n case 27: {\n this.stateInSpecialComment(c);\n break;\n }\n case 11: {\n this.stateBeforeAttrName(c);\n break;\n }\n case 6: {\n this.stateInTagName(c);\n break;\n }\n case 34: {\n this.stateInSFCRootTagName(c);\n break;\n }\n case 9: {\n this.stateInClosingTagName(c);\n break;\n }\n case 5: {\n this.stateBeforeTagName(c);\n break;\n }\n case 17: {\n this.stateAfterAttrName(c);\n break;\n }\n case 20: {\n this.stateInAttrValueSingleQuotes(c);\n break;\n }\n case 18: {\n this.stateBeforeAttrValue(c);\n break;\n }\n case 8: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case 10: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case 29: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case 30: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case 21: {\n this.stateInAttrValueNoQuotes(c);\n break;\n }\n case 7: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case 23: {\n this.stateInDeclaration(c);\n break;\n }\n case 22: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case 25: {\n this.stateBeforeComment(c);\n break;\n }\n case 24: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case 33: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n this.finish();\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n if (this.sectionStart !== this.index) {\n if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (this.state === 19 || this.state === 20 || this.state === 21) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n finish() {\n if (this.state === 33) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length;\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === 28) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex);\n }\n } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n {\n if (this.baseState !== 1 && this.baseState !== 32) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(\n decode_js.fromCodePoint(cp),\n this.entityStart,\n this.sectionStart\n );\n } else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(\n decode_js.fromCodePoint(cp),\n this.entityStart,\n this.sectionStart\n );\n }\n }\n }\n}\n\nconst CompilerDeprecationTypes = {\n \"COMPILER_IS_ON_ELEMENT\": \"COMPILER_IS_ON_ELEMENT\",\n \"COMPILER_V_BIND_SYNC\": \"COMPILER_V_BIND_SYNC\",\n \"COMPILER_V_BIND_OBJECT_ORDER\": \"COMPILER_V_BIND_OBJECT_ORDER\",\n \"COMPILER_V_ON_NATIVE\": \"COMPILER_V_ON_NATIVE\",\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\": \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n \"COMPILER_NATIVE_TEMPLATE\": \"COMPILER_NATIVE_TEMPLATE\",\n \"COMPILER_INLINE_TEMPLATE\": \"COMPILER_INLINE_TEMPLATE\",\n \"COMPILER_FILTERS\": \"COMPILER_FILTERS\"\n};\nconst deprecationData = {\n [\"COMPILER_IS_ON_ELEMENT\"]: {\n message: `Platform-native elements with \"is\" prop will no longer be treated as components in Vue 3 unless the \"is\" value is explicitly prefixed with \"vue:\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`\n },\n [\"COMPILER_V_BIND_SYNC\"]: {\n message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \\`v-bind:${key}.sync\\` should be changed to \\`v-model:${key}\\`.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"COMPILER_V_BIND_OBJECT_ORDER\"]: {\n message: `v-bind=\"obj\" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`\n },\n [\"COMPILER_V_ON_NATIVE\"]: {\n message: `.native modifier for v-on has been removed as is no longer necessary.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`\n },\n [\"COMPILER_V_IF_V_FOR_PRECEDENCE\"]: {\n message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`\n },\n [\"COMPILER_NATIVE_TEMPLATE\"]: {\n message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`\n },\n [\"COMPILER_INLINE_TEMPLATE\"]: {\n message: `\"inline-template\" has been removed in Vue 3.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`\n },\n [\"COMPILER_FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n }\n};\nfunction getCompatValue(key, { compatConfig }) {\n const value = compatConfig && compatConfig[key];\n if (key === \"MODE\") {\n return value || 3;\n } else {\n return value;\n }\n}\nfunction isCompatEnabled(key, context) {\n const mode = getCompatValue(\"MODE\", context);\n const value = getCompatValue(key, context);\n return mode === 3 ? value === true : value !== false;\n}\nfunction checkCompatEnabled(key, context, loc, ...args) {\n const enabled = isCompatEnabled(key, context);\n if (enabled) {\n warnDeprecation(key, context, loc, ...args);\n }\n return enabled;\n}\nfunction warnDeprecation(key, context, loc, ...args) {\n const val = getCompatValue(key, context);\n if (val === \"suppress-warning\") {\n return;\n }\n const { message, link } = deprecationData[key];\n const msg = `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`;\n const err = new SyntaxError(msg);\n err.code = key;\n if (loc) err.loc = loc;\n context.onWarn(err);\n}\n\nfunction defaultOnError(error) {\n throw error;\n}\nfunction defaultOnWarn(msg) {\n console.warn(`[Vue warn] ${msg.message}`);\n}\nfunction createCompilerError(code, loc, messages, additionalMessage) {\n const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n error.loc = loc;\n return error;\n}\nconst ErrorCodes = {\n \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\": 0,\n \"0\": \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\",\n \"CDATA_IN_HTML_CONTENT\": 1,\n \"1\": \"CDATA_IN_HTML_CONTENT\",\n \"DUPLICATE_ATTRIBUTE\": 2,\n \"2\": \"DUPLICATE_ATTRIBUTE\",\n \"END_TAG_WITH_ATTRIBUTES\": 3,\n \"3\": \"END_TAG_WITH_ATTRIBUTES\",\n \"END_TAG_WITH_TRAILING_SOLIDUS\": 4,\n \"4\": \"END_TAG_WITH_TRAILING_SOLIDUS\",\n \"EOF_BEFORE_TAG_NAME\": 5,\n \"5\": \"EOF_BEFORE_TAG_NAME\",\n \"EOF_IN_CDATA\": 6,\n \"6\": \"EOF_IN_CDATA\",\n \"EOF_IN_COMMENT\": 7,\n \"7\": \"EOF_IN_COMMENT\",\n \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\": 8,\n \"8\": \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\",\n \"EOF_IN_TAG\": 9,\n \"9\": \"EOF_IN_TAG\",\n \"INCORRECTLY_CLOSED_COMMENT\": 10,\n \"10\": \"INCORRECTLY_CLOSED_COMMENT\",\n \"INCORRECTLY_OPENED_COMMENT\": 11,\n \"11\": \"INCORRECTLY_OPENED_COMMENT\",\n \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\": 12,\n \"12\": \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\",\n \"MISSING_ATTRIBUTE_VALUE\": 13,\n \"13\": \"MISSING_ATTRIBUTE_VALUE\",\n \"MISSING_END_TAG_NAME\": 14,\n \"14\": \"MISSING_END_TAG_NAME\",\n \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\": 15,\n \"15\": \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\",\n \"NESTED_COMMENT\": 16,\n \"16\": \"NESTED_COMMENT\",\n \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\": 17,\n \"17\": \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\",\n \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\": 18,\n \"18\": \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\",\n \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\": 19,\n \"19\": \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\",\n \"UNEXPECTED_NULL_CHARACTER\": 20,\n \"20\": \"UNEXPECTED_NULL_CHARACTER\",\n \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\": 21,\n \"21\": \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\",\n \"UNEXPECTED_SOLIDUS_IN_TAG\": 22,\n \"22\": \"UNEXPECTED_SOLIDUS_IN_TAG\",\n \"X_INVALID_END_TAG\": 23,\n \"23\": \"X_INVALID_END_TAG\",\n \"X_MISSING_END_TAG\": 24,\n \"24\": \"X_MISSING_END_TAG\",\n \"X_MISSING_INTERPOLATION_END\": 25,\n \"25\": \"X_MISSING_INTERPOLATION_END\",\n \"X_MISSING_DIRECTIVE_NAME\": 26,\n \"26\": \"X_MISSING_DIRECTIVE_NAME\",\n \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\": 27,\n \"27\": \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\",\n \"X_V_IF_NO_EXPRESSION\": 28,\n \"28\": \"X_V_IF_NO_EXPRESSION\",\n \"X_V_IF_SAME_KEY\": 29,\n \"29\": \"X_V_IF_SAME_KEY\",\n \"X_V_ELSE_NO_ADJACENT_IF\": 30,\n \"30\": \"X_V_ELSE_NO_ADJACENT_IF\",\n \"X_V_FOR_NO_EXPRESSION\": 31,\n \"31\": \"X_V_FOR_NO_EXPRESSION\",\n \"X_V_FOR_MALFORMED_EXPRESSION\": 32,\n \"32\": \"X_V_FOR_MALFORMED_EXPRESSION\",\n \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\": 33,\n \"33\": \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\",\n \"X_V_BIND_NO_EXPRESSION\": 34,\n \"34\": \"X_V_BIND_NO_EXPRESSION\",\n \"X_V_ON_NO_EXPRESSION\": 35,\n \"35\": \"X_V_ON_NO_EXPRESSION\",\n \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\": 36,\n \"36\": \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\",\n \"X_V_SLOT_MIXED_SLOT_USAGE\": 37,\n \"37\": \"X_V_SLOT_MIXED_SLOT_USAGE\",\n \"X_V_SLOT_DUPLICATE_SLOT_NAMES\": 38,\n \"38\": \"X_V_SLOT_DUPLICATE_SLOT_NAMES\",\n \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\": 39,\n \"39\": \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\",\n \"X_V_SLOT_MISPLACED\": 40,\n \"40\": \"X_V_SLOT_MISPLACED\",\n \"X_V_MODEL_NO_EXPRESSION\": 41,\n \"41\": \"X_V_MODEL_NO_EXPRESSION\",\n \"X_V_MODEL_MALFORMED_EXPRESSION\": 42,\n \"42\": \"X_V_MODEL_MALFORMED_EXPRESSION\",\n \"X_V_MODEL_ON_SCOPE_VARIABLE\": 43,\n \"43\": \"X_V_MODEL_ON_SCOPE_VARIABLE\",\n \"X_V_MODEL_ON_PROPS\": 44,\n \"44\": \"X_V_MODEL_ON_PROPS\",\n \"X_INVALID_EXPRESSION\": 45,\n \"45\": \"X_INVALID_EXPRESSION\",\n \"X_KEEP_ALIVE_INVALID_CHILDREN\": 46,\n \"46\": \"X_KEEP_ALIVE_INVALID_CHILDREN\",\n \"X_PREFIX_ID_NOT_SUPPORTED\": 47,\n \"47\": \"X_PREFIX_ID_NOT_SUPPORTED\",\n \"X_MODULE_MODE_NOT_SUPPORTED\": 48,\n \"48\": \"X_MODULE_MODE_NOT_SUPPORTED\",\n \"X_CACHE_HANDLER_NOT_SUPPORTED\": 49,\n \"49\": \"X_CACHE_HANDLER_NOT_SUPPORTED\",\n \"X_SCOPE_ID_NOT_SUPPORTED\": 50,\n \"50\": \"X_SCOPE_ID_NOT_SUPPORTED\",\n \"X_VNODE_HOOKS\": 51,\n \"51\": \"X_VNODE_HOOKS\",\n \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\": 52,\n \"52\": \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\",\n \"__EXTEND_POINT__\": 53,\n \"53\": \"__EXTEND_POINT__\"\n};\nconst errorMessages = {\n // parse errors\n [0]: \"Illegal comment.\",\n [1]: \"CDATA section is allowed only in XML context.\",\n [2]: \"Duplicate attribute.\",\n [3]: \"End tag cannot have attributes.\",\n [4]: \"Illegal '/' in tags.\",\n [5]: \"Unexpected EOF in tag.\",\n [6]: \"Unexpected EOF in CDATA section.\",\n [7]: \"Unexpected EOF in comment.\",\n [8]: \"Unexpected EOF in script.\",\n [9]: \"Unexpected EOF in tag.\",\n [10]: \"Incorrectly closed comment.\",\n [11]: \"Incorrectly opened comment.\",\n [12]: \"Illegal tag name. Use '&lt;' to print '<'.\",\n [13]: \"Attribute value was expected.\",\n [14]: \"End tag name was expected.\",\n [15]: \"Whitespace was expected.\",\n [16]: \"Unexpected '<!--' in comment.\",\n [17]: `Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).`,\n [18]: \"Unquoted attribute value cannot contain U+0022 (\\\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).\",\n [19]: \"Attribute name cannot start with '='.\",\n [21]: \"'<?' is allowed only in XML context.\",\n [20]: `Unexpected null character.`,\n [22]: \"Illegal '/' in tags.\",\n // Vue-specific parse errors\n [23]: \"Invalid end tag.\",\n [24]: \"Element is missing end tag.\",\n [25]: \"Interpolation end sign was not found.\",\n [27]: \"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.\",\n [26]: \"Legal directive name was expected.\",\n // transform errors\n [28]: `v-if/v-else-if is missing expression.`,\n [29]: `v-if/else branches must use unique keys.`,\n [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,\n [31]: `v-for is missing expression.`,\n [32]: `v-for has invalid expression.`,\n [33]: `<template v-for> key should be placed on the <template> tag.`,\n [34]: `v-bind is missing expression.`,\n [52]: `v-bind with same-name shorthand only allows static argument.`,\n [35]: `v-on is missing expression.`,\n [36]: `Unexpected custom directive on <slot> outlet.`,\n [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,\n [38]: `Duplicate slot names found. `,\n [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,\n [40]: `v-slot can only be used on components or <template> tags.`,\n [41]: `v-model is missing expression.`,\n [42]: `v-model value must be a valid JavaScript member expression.`,\n [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,\n [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,\n [45]: `Error parsing JavaScript expression: `,\n [46]: `<KeepAlive> expects exactly one child component.`,\n [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,\n // generic errors\n [47]: `\"prefixIdentifiers\" option is not supported in this build of compiler.`,\n [48]: `ES module mode is not supported in this build of compiler.`,\n [49]: `\"cacheHandlers\" option is only supported when the \"prefixIdentifiers\" option is enabled.`,\n [50]: `\"scopeId\" option is only supported in module mode.`,\n // just to fulfill types\n [53]: ``\n};\n\nfunction walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {\n const rootExp = root.type === \"Program\" ? root.body[0].type === \"ExpressionStatement\" && root.body[0].expression : root;\n estreeWalker.walk(root, {\n enter(node, parent) {\n parent && parentStack.push(parent);\n if (parent && parent.type.startsWith(\"TS\") && !TS_NODE_TYPES.includes(parent.type)) {\n return this.skip();\n }\n if (node.type === \"Identifier\") {\n const isLocal = !!knownIds[node.name];\n const isRefed = isReferencedIdentifier(node, parent, parentStack);\n if (includeAll || isRefed && !isLocal) {\n onIdentifier(node, parent, parentStack, isRefed, isLocal);\n }\n } else if (node.type === \"ObjectProperty\" && // eslint-disable-next-line no-restricted-syntax\n (parent == null ? void 0 : parent.type) === \"ObjectPattern\") {\n node.inPattern = true;\n } else if (isFunctionType(node)) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkFunctionParams(\n node,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"BlockStatement\") {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkBlockDeclarations(\n node,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"CatchClause\" && node.param) {\n for (const id of extractIdentifiers(node.param)) {\n markScopeIdentifier(node, id, knownIds);\n }\n } else if (isForStatement(node)) {\n walkForStatement(\n node,\n false,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n },\n leave(node, parent) {\n parent && parentStack.pop();\n if (node !== rootExp && node.scopeIds) {\n for (const id of node.scopeIds) {\n knownIds[id]--;\n if (knownIds[id] === 0) {\n delete knownIds[id];\n }\n }\n }\n }\n });\n}\nfunction isReferencedIdentifier(id, parent, parentStack) {\n if (!parent) {\n return true;\n }\n if (id.name === \"arguments\") {\n return false;\n }\n if (isReferenced(id, parent)) {\n return true;\n }\n switch (parent.type) {\n case \"AssignmentExpression\":\n case \"AssignmentPattern\":\n return true;\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return isInDestructureAssignment(parent, parentStack);\n }\n return false;\n}\nfunction isInDestructureAssignment(parent, parentStack) {\n if (parent && (parent.type === \"ObjectProperty\" || parent.type === \"ArrayPattern\")) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"AssignmentExpression\") {\n return true;\n } else if (p.type !== \"ObjectProperty\" && !p.type.endsWith(\"Pattern\")) {\n break;\n }\n }\n }\n return false;\n}\nfunction isInNewExpression(parentStack) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"NewExpression\") {\n return true;\n } else if (p.type !== \"MemberExpression\") {\n break;\n }\n }\n return false;\n}\nfunction walkFunctionParams(node, onIdent) {\n for (const p of node.params) {\n for (const id of extractIdentifiers(p)) {\n onIdent(id);\n }\n }\n}\nfunction walkBlockDeclarations(block, onIdent) {\n for (const stmt of block.body) {\n if (stmt.type === \"VariableDeclaration\") {\n if (stmt.declare) continue;\n for (const decl of stmt.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n } else if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n if (stmt.declare || !stmt.id) continue;\n onIdent(stmt.id);\n } else if (isForStatement(stmt)) {\n walkForStatement(stmt, true, onIdent);\n }\n }\n}\nfunction isForStatement(stmt) {\n return stmt.type === \"ForOfStatement\" || stmt.type === \"ForInStatement\" || stmt.type === \"ForStatement\";\n}\nfunction walkForStatement(stmt, isVar, onIdent) {\n const variable = stmt.type === \"ForStatement\" ? stmt.init : stmt.left;\n if (variable && variable.type === \"VariableDeclaration\" && (variable.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of variable.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n}\nfunction extractIdentifiers(param, nodes = []) {\n switch (param.type) {\n case \"Identifier\":\n nodes.push(param);\n break;\n case \"MemberExpression\":\n let object = param;\n while (object.type === \"MemberExpression\") {\n object = object.object;\n }\n nodes.push(object);\n break;\n case \"ObjectPattern\":\n for (const prop of param.properties) {\n if (prop.type === \"RestElement\") {\n extractIdentifiers(prop.argument, nodes);\n } else {\n extractIdentifiers(prop.value, nodes);\n }\n }\n break;\n case \"ArrayPattern\":\n param.elements.forEach((element) => {\n if (element) extractIdentifiers(element, nodes);\n });\n break;\n case \"RestElement\":\n extractIdentifiers(param.argument, nodes);\n break;\n case \"AssignmentPattern\":\n extractIdentifiers(param.left, nodes);\n break;\n }\n return nodes;\n}\nfunction markKnownIds(name, knownIds) {\n if (name in knownIds) {\n knownIds[name]++;\n } else {\n knownIds[name] = 1;\n }\n}\nfunction markScopeIdentifier(node, child, knownIds) {\n const { name } = child;\n if (node.scopeIds && node.scopeIds.has(name)) {\n return;\n }\n markKnownIds(name, knownIds);\n (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name);\n}\nconst isFunctionType = (node) => {\n return /Function(?:Expression|Declaration)$|Method$/.test(node.type);\n};\nconst isStaticProperty = (node) => node && (node.type === \"ObjectProperty\" || node.type === \"ObjectMethod\") && !node.computed;\nconst isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;\nfunction isReferenced(node, parent, grandparent) {\n switch (parent.type) {\n // yes: PARENT[NODE]\n // yes: NODE.child\n // no: parent.NODE\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n if (parent.property === node) {\n return !!parent.computed;\n }\n return parent.object === node;\n case \"JSXMemberExpression\":\n return parent.object === node;\n // no: let NODE = init;\n // yes: let id = NODE;\n case \"VariableDeclarator\":\n return parent.init === node;\n // yes: () => NODE\n // no: (NODE) => {}\n case \"ArrowFunctionExpression\":\n return parent.body === node;\n // no: class { #NODE; }\n // no: class { get #NODE() {} }\n // no: class { #NODE() {} }\n // no: class { fn() { return this.#NODE; } }\n case \"PrivateName\":\n return false;\n // no: class { NODE() {} }\n // yes: class { [NODE]() {} }\n // no: class { foo(NODE) {} }\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"ObjectMethod\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return false;\n // yes: { [NODE]: \"\" }\n // no: { NODE: \"\" }\n // depends: { NODE }\n // depends: { key: NODE }\n case \"ObjectProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return !grandparent;\n // no: class { NODE = value; }\n // yes: class { [NODE] = value; }\n // yes: class { key = NODE; }\n case \"ClassProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n case \"ClassPrivateProperty\":\n return parent.key !== node;\n // no: class NODE {}\n // yes: class Foo extends NODE {}\n case \"ClassDeclaration\":\n case \"ClassExpression\":\n return parent.superClass === node;\n // yes: left = NODE;\n // no: NODE = right;\n case \"AssignmentExpression\":\n return parent.right === node;\n // no: [NODE = foo] = [];\n // yes: [foo = NODE] = [];\n case \"AssignmentPattern\":\n return parent.right === node;\n // no: NODE: for (;;) {}\n case \"LabeledStatement\":\n return false;\n // no: try {} catch (NODE) {}\n case \"CatchClause\":\n return false;\n // no: function foo(...NODE) {}\n case \"RestElement\":\n return false;\n case \"BreakStatement\":\n case \"ContinueStatement\":\n return false;\n // no: function NODE() {}\n // no: function foo(NODE) {}\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n return false;\n // no: export NODE from \"foo\";\n // no: export * as NODE from \"foo\";\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n return false;\n // no: export { foo as NODE };\n // yes: export { NODE as foo };\n // no: export { NODE as foo } from \"foo\";\n case \"ExportSpecifier\":\n return parent.local === node;\n // no: import NODE from \"foo\";\n // no: import * as NODE from \"foo\";\n // no: import { NODE as foo } from \"foo\";\n // no: import { foo as NODE } from \"foo\";\n // no: import NODE from \"bar\";\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n return false;\n // no: import \"foo\" assert { NODE: \"json\" }\n case \"ImportAttribute\":\n return false;\n // no: <div NODE=\"foo\" />\n case \"JSXAttribute\":\n return false;\n // no: [NODE] = [];\n // no: ({ NODE }) = [];\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return false;\n // no: new.NODE\n // no: NODE.target\n case \"MetaProperty\":\n return false;\n // yes: type X = { someProperty: NODE }\n // no: type X = { NODE: OtherType }\n case \"ObjectTypeProperty\":\n return parent.key !== node;\n // yes: enum X { Foo = NODE }\n // no: enum X { NODE }\n case \"TSEnumMember\":\n return parent.id !== node;\n // yes: { [NODE]: value }\n // no: { NODE: value }\n case \"TSPropertySignature\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n }\n return true;\n}\nconst TS_NODE_TYPES = [\n \"TSAsExpression\",\n // foo as number\n \"TSTypeAssertion\",\n // (<number>foo)\n \"TSNonNullExpression\",\n // foo!\n \"TSInstantiationExpression\",\n // foo<string>\n \"TSSatisfiesExpression\"\n // foo satisfies T\n];\nfunction unwrapTSNode(node) {\n if (TS_NODE_TYPES.includes(node.type)) {\n return unwrapTSNode(node.expression);\n } else {\n return node;\n }\n}\n\nconst isStaticExp = (p) => p.type === 4 && p.isStatic;\nfunction isCoreComponent(tag) {\n switch (tag) {\n case \"Teleport\":\n case \"teleport\":\n return TELEPORT;\n case \"Suspense\":\n case \"suspense\":\n return SUSPENSE;\n case \"KeepAlive\":\n case \"keep-alive\":\n return KEEP_ALIVE;\n case \"BaseTransition\":\n case \"base-transition\":\n return BASE_TRANSITION;\n }\n}\nconst nonIdentifierRE = /^\\d|[^\\$\\w\\xA0-\\uFFFF]/;\nconst isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);\nconst validFirstIdentCharRE = /[A-Za-z_$\\xA0-\\uFFFF]/;\nconst validIdentCharRE = /[\\.\\?\\w$\\xA0-\\uFFFF]/;\nconst whitespaceRE = /\\s+[.[]\\s*|\\s*[.[]\\s+/g;\nconst getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;\nconst isMemberExpressionBrowser = (exp) => {\n const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());\n let state = 0 /* inMemberExp */;\n let stateStack = [];\n let currentOpenBracketCount = 0;\n let currentOpenParensCount = 0;\n let currentStringType = null;\n for (let i = 0; i < path.length; i++) {\n const char = path.charAt(i);\n switch (state) {\n case 0 /* inMemberExp */:\n if (char === \"[\") {\n stateStack.push(state);\n state = 1 /* inBrackets */;\n currentOpenBracketCount++;\n } else if (char === \"(\") {\n stateStack.push(state);\n state = 2 /* inParens */;\n currentOpenParensCount++;\n } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {\n return false;\n }\n break;\n case 1 /* inBrackets */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `[`) {\n currentOpenBracketCount++;\n } else if (char === `]`) {\n if (!--currentOpenBracketCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 2 /* inParens */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `(`) {\n currentOpenParensCount++;\n } else if (char === `)`) {\n if (i === path.length - 1) {\n return false;\n }\n if (!--currentOpenParensCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 3 /* inString */:\n if (char === currentStringType) {\n state = stateStack.pop();\n currentStringType = null;\n }\n break;\n }\n }\n return !currentOpenBracketCount && !currentOpenParensCount;\n};\nconst isMemberExpressionNode = (exp, context) => {\n try {\n let ret = exp.ast || parser.parseExpression(getExpSource(exp), {\n plugins: context.expressionPlugins ? [...context.expressionPlugins, \"typescript\"] : [\"typescript\"]\n });\n ret = unwrapTSNode(ret);\n return ret.type === \"MemberExpression\" || ret.type === \"OptionalMemberExpression\" || ret.type === \"Identifier\" && ret.name !== \"undefined\";\n } catch (e) {\n return false;\n }\n};\nconst isMemberExpression = isMemberExpressionNode;\nconst fnExpRE = /^\\s*(async\\s*)?(\\([^)]*?\\)|[\\w$_]+)\\s*(:[^=]+)?=>|^\\s*(async\\s+)?function(?:\\s+[\\w$]+)?\\s*\\(/;\nconst isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));\nconst isFnExpressionNode = (exp, context) => {\n try {\n let ret = exp.ast || parser.parseExpression(getExpSource(exp), {\n plugins: context.expressionPlugins ? [...context.expressionPlugins, \"typescript\"] : [\"typescript\"]\n });\n if (ret.type === \"Program\") {\n ret = ret.body[0];\n if (ret.type === \"ExpressionStatement\") {\n ret = ret.expression;\n }\n }\n ret = unwrapTSNode(ret);\n return ret.type === \"FunctionExpression\" || ret.type === \"ArrowFunctionExpression\";\n } catch (e) {\n return false;\n }\n};\nconst isFnExpression = isFnExpressionNode;\nfunction advancePositionWithClone(pos, source, numberOfCharacters = source.length) {\n return advancePositionWithMutation(\n {\n offset: pos.offset,\n line: pos.line,\n column: pos.column\n },\n source,\n numberOfCharacters\n );\n}\nfunction advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {\n let linesCount = 0;\n let lastNewLinePos = -1;\n for (let i = 0; i < numberOfCharacters; i++) {\n if (source.charCodeAt(i) === 10) {\n linesCount++;\n lastNewLinePos = i;\n }\n }\n pos.offset += numberOfCharacters;\n pos.line += linesCount;\n pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;\n return pos;\n}\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || `unexpected compiler condition`);\n }\n}\nfunction findDir(node, name, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (allowEmpty || p.exp) && (shared.isString(name) ? p.name === name : name.test(p.name))) {\n return p;\n }\n }\n}\nfunction findProp(node, name, dynamicOnly = false, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (dynamicOnly) continue;\n if (p.name === name && (p.value || allowEmpty)) {\n return p;\n }\n } else if (p.name === \"bind\" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {\n return p;\n }\n }\n}\nfunction isStaticArgOf(arg, name) {\n return !!(arg && isStaticExp(arg) && arg.content === name);\n}\nfunction hasDynamicKeyVBind(node) {\n return node.props.some(\n (p) => p.type === 7 && p.name === \"bind\" && (!p.arg || // v-bind=\"obj\"\n p.arg.type !== 4 || // v-bind:[_ctx.foo]\n !p.arg.isStatic)\n // v-bind:[foo]\n );\n}\nfunction isText$1(node) {\n return node.type === 5 || node.type === 2;\n}\nfunction isVSlot(p) {\n return p.type === 7 && p.name === \"slot\";\n}\nfunction isTemplateNode(node) {\n return node.type === 1 && node.tagType === 3;\n}\nfunction isSlotOutlet(node) {\n return node.type === 1 && node.tagType === 2;\n}\nconst propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);\nfunction getUnnormalizedProps(props, callPath = []) {\n if (props && !shared.isString(props) && props.type === 14) {\n const callee = props.callee;\n if (!shared.isString(callee) && propsHelperSet.has(callee)) {\n return getUnnormalizedProps(\n props.arguments[0],\n callPath.concat(props)\n );\n }\n }\n return [props, callPath];\n}\nfunction injectProp(node, prop, context) {\n let propsWithInjection;\n let props = node.type === 13 ? node.props : node.arguments[2];\n let callPath = [];\n let parentCall;\n if (props && !shared.isString(props) && props.type === 14) {\n const ret = getUnnormalizedProps(props);\n props = ret[0];\n callPath = ret[1];\n parentCall = callPath[callPath.length - 1];\n }\n if (props == null || shared.isString(props)) {\n propsWithInjection = createObjectExpression([prop]);\n } else if (props.type === 14) {\n const first = props.arguments[0];\n if (!shared.isString(first) && first.type === 15) {\n if (!hasProp(prop, first)) {\n first.properties.unshift(prop);\n }\n } else {\n if (props.callee === TO_HANDLERS) {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n } else {\n props.arguments.unshift(createObjectExpression([prop]));\n }\n }\n !propsWithInjection && (propsWithInjection = props);\n } else if (props.type === 15) {\n if (!hasProp(prop, props)) {\n props.properties.unshift(prop);\n }\n propsWithInjection = props;\n } else {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {\n parentCall = callPath[callPath.length - 2];\n }\n }\n if (node.type === 13) {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.props = propsWithInjection;\n }\n } else {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.arguments[2] = propsWithInjection;\n }\n }\n}\nfunction hasProp(prop, props) {\n let result = false;\n if (prop.key.type === 4) {\n const propKeyName = prop.key.content;\n result = props.properties.some(\n (p) => p.key.type === 4 && p.key.content === propKeyName\n );\n }\n return result;\n}\nfunction toValidAssetId(name, type) {\n return `_${type}_${name.replace(/[^\\w]/g, (searchValue, replaceValue) => {\n return searchValue === \"-\" ? \"_\" : name.charCodeAt(replaceValue).toString();\n })}`;\n}\nfunction hasScopeRef(node, ids) {\n if (!node || Object.keys(ids).length === 0) {\n return false;\n }\n switch (node.type) {\n case 1:\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {\n return true;\n }\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 11:\n if (hasScopeRef(node.source, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 9:\n return node.branches.some((b) => hasScopeRef(b, ids));\n case 10:\n if (hasScopeRef(node.condition, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 4:\n return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];\n case 8:\n return node.children.some((c) => shared.isObject(c) && hasScopeRef(c, ids));\n case 5:\n case 12:\n return hasScopeRef(node.content, ids);\n case 2:\n case 3:\n case 20:\n return false;\n default:\n return false;\n }\n}\nfunction getMemoedVNodeCall(node) {\n if (node.type === 14 && node.callee === WITH_MEMO) {\n return node.arguments[1].returns;\n } else {\n return node;\n }\n}\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+(\\S[\\s\\S]*)/;\n\nconst defaultParserOptions = {\n parseMode: \"base\",\n ns: 0,\n delimiters: [`{{`, `}}`],\n getNamespace: () => 0,\n isVoidTag: shared.NO,\n isPreTag: shared.NO,\n isIgnoreNewlineTag: shared.NO,\n isCustomElement: shared.NO,\n onError: defaultOnError,\n onWarn: defaultOnWarn,\n comments: true,\n prefixIdentifiers: false\n};\nlet currentOptions = defaultParserOptions;\nlet currentRoot = null;\nlet currentInput = \"\";\nlet currentOpenTag = null;\nlet currentProp = null;\nlet currentAttrValue = \"\";\nlet currentAttrStartIndex = -1;\nlet currentAttrEndIndex = -1;\nlet inPre = 0;\nlet inVPre = false;\nlet currentVPreBoundary = null;\nconst stack = [];\nconst tokenizer = new Tokenizer(stack, {\n onerr: emitError,\n ontext(start, end) {\n onText(getSlice(start, end), start, end);\n },\n ontextentity(char, start, end) {\n onText(char, start, end);\n },\n oninterpolation(start, end) {\n if (inVPre) {\n return onText(getSlice(start, end), start, end);\n }\n let innerStart = start + tokenizer.delimiterOpen.length;\n let innerEnd = end - tokenizer.delimiterClose.length;\n while (isWhitespace(currentInput.charCodeAt(innerStart))) {\n innerStart++;\n }\n while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {\n innerEnd--;\n }\n let exp = getSlice(innerStart, innerEnd);\n if (exp.includes(\"&\")) {\n {\n exp = decode_js.decodeHTML(exp);\n }\n }\n addNode({\n type: 5,\n content: createExp(exp, false, getLoc(innerStart, innerEnd)),\n loc: getLoc(start, end)\n });\n },\n onopentagname(start, end) {\n const name = getSlice(start, end);\n currentOpenTag = {\n type: 1,\n tag: name,\n ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),\n tagType: 0,\n // will be refined on tag close\n props: [],\n children: [],\n loc: getLoc(start - 1, end),\n codegenNode: void 0\n };\n },\n onopentagend(end) {\n endOpenTag(end);\n },\n onclosetag(start, end) {\n const name = getSlice(start, end);\n if (!currentOptions.isVoidTag(name)) {\n let found = false;\n for (let i = 0; i < stack.length; i++) {\n const e = stack[i];\n if (e.tag.toLowerCase() === name.toLowerCase()) {\n found = true;\n if (i > 0) {\n emitError(24, stack[0].loc.start.offset);\n }\n for (let j = 0; j <= i; j++) {\n const el = stack.shift();\n onCloseTag(el, end, j < i);\n }\n break;\n }\n }\n if (!found) {\n emitError(23, backTrack(start, 60));\n }\n }\n },\n onselfclosingtag(end) {\n const name = currentOpenTag.tag;\n currentOpenTag.isSelfClosing = true;\n endOpenTag(end);\n if (stack[0] && stack[0].tag === name) {\n onCloseTag(stack.shift(), end);\n }\n },\n onattribname(start, end) {\n currentProp = {\n type: 6,\n name: getSlice(start, end),\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n },\n ondirname(start, end) {\n const raw = getSlice(start, end);\n const name = raw === \".\" || raw === \":\" ? \"bind\" : raw === \"@\" ? \"on\" : raw === \"#\" ? \"slot\" : raw.slice(2);\n if (!inVPre && name === \"\") {\n emitError(26, start);\n }\n if (inVPre || name === \"\") {\n currentProp = {\n type: 6,\n name: raw,\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n } else {\n currentProp = {\n type: 7,\n name,\n rawName: raw,\n exp: void 0,\n arg: void 0,\n modifiers: raw === \".\" ? [createSimpleExpression(\"prop\")] : [],\n loc: getLoc(start)\n };\n if (name === \"pre\") {\n inVPre = tokenizer.inVPre = true;\n currentVPreBoundary = currentOpenTag;\n const props = currentOpenTag.props;\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7) {\n props[i] = dirToAttr(props[i]);\n }\n }\n }\n }\n },\n ondirarg(start, end) {\n if (start === end) return;\n const arg = getSlice(start, end);\n if (inVPre) {\n currentProp.name += arg;\n setLocEnd(currentProp.nameLoc, end);\n } else {\n const isStatic = arg[0] !== `[`;\n currentProp.arg = createExp(\n isStatic ? arg : arg.slice(1, -1),\n isStatic,\n getLoc(start, end),\n isStatic ? 3 : 0\n );\n }\n },\n ondirmodifier(start, end) {\n const mod = getSlice(start, end);\n if (inVPre) {\n currentProp.name += \".\" + mod;\n setLocEnd(currentProp.nameLoc, end);\n } else if (currentProp.name === \"slot\") {\n const arg = currentProp.arg;\n if (arg) {\n arg.content += \".\" + mod;\n setLocEnd(arg.loc, end);\n }\n } else {\n const exp = createSimpleExpression(mod, true, getLoc(start, end));\n currentProp.modifiers.push(exp);\n }\n },\n onattribdata(start, end) {\n currentAttrValue += getSlice(start, end);\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribentity(char, start, end) {\n currentAttrValue += char;\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribnameend(end) {\n const start = currentProp.loc.start.offset;\n const name = getSlice(start, end);\n if (currentProp.type === 7) {\n currentProp.rawName = name;\n }\n if (currentOpenTag.props.some(\n (p) => (p.type === 7 ? p.rawName : p.name) === name\n )) {\n emitError(2, start);\n }\n },\n onattribend(quote, end) {\n if (currentOpenTag && currentProp) {\n setLocEnd(currentProp.loc, end);\n if (quote !== 0) {\n if (currentProp.type === 6) {\n if (currentProp.name === \"class\") {\n currentAttrValue = condense(currentAttrValue).trim();\n }\n if (quote === 1 && !currentAttrValue) {\n emitError(13, end);\n }\n currentProp.value = {\n type: 2,\n content: currentAttrValue,\n loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)\n };\n if (tokenizer.inSFCRoot && currentOpenTag.tag === \"template\" && currentProp.name === \"lang\" && currentAttrValue && currentAttrValue !== \"html\") {\n tokenizer.enterRCDATA(toCharCodes(`</template`), 0);\n }\n } else {\n let expParseMode = 0 /* Normal */;\n {\n if (currentProp.name === \"for\") {\n expParseMode = 3 /* Skip */;\n } else if (currentProp.name === \"slot\") {\n expParseMode = 1 /* Params */;\n } else if (currentProp.name === \"on\" && currentAttrValue.includes(\";\")) {\n expParseMode = 2 /* Statements */;\n }\n }\n currentProp.exp = createExp(\n currentAttrValue,\n false,\n getLoc(currentAttrStartIndex, currentAttrEndIndex),\n 0,\n expParseMode\n );\n if (currentProp.name === \"for\") {\n currentProp.forParseResult = parseForExpression(currentProp.exp);\n }\n let syncIndex = -1;\n if (currentProp.name === \"bind\" && (syncIndex = currentProp.modifiers.findIndex(\n (mod) => mod.content === \"sync\"\n )) > -1 && checkCompatEnabled(\n \"COMPILER_V_BIND_SYNC\",\n currentOptions,\n currentProp.loc,\n currentProp.rawName\n )) {\n currentProp.name = \"model\";\n currentProp.modifiers.splice(syncIndex, 1);\n }\n }\n }\n if (currentProp.type !== 7 || currentProp.name !== \"pre\") {\n currentOpenTag.props.push(currentProp);\n }\n }\n currentAttrValue = \"\";\n currentAttrStartIndex = currentAttrEndIndex = -1;\n },\n oncomment(start, end) {\n if (currentOptions.comments) {\n addNode({\n type: 3,\n content: getSlice(start, end),\n loc: getLoc(start - 4, end + 3)\n });\n }\n },\n onend() {\n const end = currentInput.length;\n if (tokenizer.state !== 1) {\n switch (tokenizer.state) {\n case 5:\n case 8:\n emitError(5, end);\n break;\n case 3:\n case 4:\n emitError(\n 25,\n tokenizer.sectionStart\n );\n break;\n case 28:\n if (tokenizer.currentSequence === Sequences.CdataEnd) {\n emitError(6, end);\n } else {\n emitError(7, end);\n }\n break;\n case 6:\n case 7:\n case 9:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n // \"\n case 20:\n // '\n case 21:\n emitError(9, end);\n break;\n }\n }\n for (let index = 0; index < stack.length; index++) {\n onCloseTag(stack[index], end - 1);\n emitError(24, stack[index].loc.start.offset);\n }\n },\n oncdata(start, end) {\n if (stack[0].ns !== 0) {\n onText(getSlice(start, end), start, end);\n } else {\n emitError(1, start - 9);\n }\n },\n onprocessinginstruction(start) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n emitError(\n 21,\n start - 1\n );\n }\n }\n});\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nfunction parseForExpression(input) {\n const loc = input.loc;\n const exp = input.content;\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) return;\n const [, LHS, RHS] = inMatch;\n const createAliasExpression = (content, offset, asParam = false) => {\n const start = loc.start.offset + offset;\n const end = start + content.length;\n return createExp(\n content,\n false,\n getLoc(start, end),\n 0,\n asParam ? 1 /* Params */ : 0 /* Normal */\n );\n };\n const result = {\n source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),\n value: void 0,\n key: void 0,\n index: void 0,\n finalized: false\n };\n let valueContent = LHS.trim().replace(stripParensRE, \"\").trim();\n const trimmedOffset = LHS.indexOf(valueContent);\n const iteratorMatch = valueContent.match(forIteratorRE);\n if (iteratorMatch) {\n valueContent = valueContent.replace(forIteratorRE, \"\").trim();\n const keyContent = iteratorMatch[1].trim();\n let keyOffset;\n if (keyContent) {\n keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);\n result.key = createAliasExpression(keyContent, keyOffset, true);\n }\n if (iteratorMatch[2]) {\n const indexContent = iteratorMatch[2].trim();\n if (indexContent) {\n result.index = createAliasExpression(\n indexContent,\n exp.indexOf(\n indexContent,\n result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length\n ),\n true\n );\n }\n }\n }\n if (valueContent) {\n result.value = createAliasExpression(valueContent, trimmedOffset, true);\n }\n return result;\n}\nfunction getSlice(start, end) {\n return currentInput.slice(start, end);\n}\nfunction endOpenTag(end) {\n if (tokenizer.inSFCRoot) {\n currentOpenTag.innerLoc = getLoc(end + 1, end + 1);\n }\n addNode(currentOpenTag);\n const { tag, ns } = currentOpenTag;\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre++;\n }\n if (currentOptions.isVoidTag(tag)) {\n onCloseTag(currentOpenTag, end);\n } else {\n stack.unshift(currentOpenTag);\n if (ns === 1 || ns === 2) {\n tokenizer.inXML = true;\n }\n }\n currentOpenTag = null;\n}\nfunction onText(content, start, end) {\n const parent = stack[0] || currentRoot;\n const lastNode = parent.children[parent.children.length - 1];\n if (lastNode && lastNode.type === 2) {\n lastNode.content += content;\n setLocEnd(lastNode.loc, end);\n } else {\n parent.children.push({\n type: 2,\n content,\n loc: getLoc(start, end)\n });\n }\n}\nfunction onCloseTag(el, end, isImplied = false) {\n if (isImplied) {\n setLocEnd(el.loc, backTrack(end, 60));\n } else {\n setLocEnd(el.loc, lookAhead(end, 62) + 1);\n }\n if (tokenizer.inSFCRoot) {\n if (el.children.length) {\n el.innerLoc.end = shared.extend({}, el.children[el.children.length - 1].loc.end);\n } else {\n el.innerLoc.end = shared.extend({}, el.innerLoc.start);\n }\n el.innerLoc.source = getSlice(\n el.innerLoc.start.offset,\n el.innerLoc.end.offset\n );\n }\n const { tag, ns, children } = el;\n if (!inVPre) {\n if (tag === \"slot\") {\n el.tagType = 2;\n } else if (isFragmentTemplate(el)) {\n el.tagType = 3;\n } else if (isComponent(el)) {\n el.tagType = 1;\n }\n }\n if (!tokenizer.inRCDATA) {\n el.children = condenseWhitespace(children);\n }\n if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {\n const first = children[0];\n if (first && first.type === 2) {\n first.content = first.content.replace(/^\\r?\\n/, \"\");\n }\n }\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre--;\n }\n if (currentVPreBoundary === el) {\n inVPre = tokenizer.inVPre = false;\n currentVPreBoundary = null;\n }\n if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n tokenizer.inXML = false;\n }\n {\n const props = el.props;\n if (isCompatEnabled(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions\n )) {\n let hasIf = false;\n let hasFor = false;\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 7) {\n if (p.name === \"if\") {\n hasIf = true;\n } else if (p.name === \"for\") {\n hasFor = true;\n }\n }\n if (hasIf && hasFor) {\n warnDeprecation(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions,\n el.loc\n );\n break;\n }\n }\n }\n if (!tokenizer.inSFCRoot && isCompatEnabled(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions\n ) && el.tag === \"template\" && !isFragmentTemplate(el)) {\n warnDeprecation(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions,\n el.loc\n );\n const parent = stack[0] || currentRoot;\n const index = parent.children.indexOf(el);\n parent.children.splice(index, 1, ...el.children);\n }\n const inlineTemplateProp = props.find(\n (p) => p.type === 6 && p.name === \"inline-template\"\n );\n if (inlineTemplateProp && checkCompatEnabled(\n \"COMPILER_INLINE_TEMPLATE\",\n currentOptions,\n inlineTemplateProp.loc\n ) && el.children.length) {\n inlineTemplateProp.value = {\n type: 2,\n content: getSlice(\n el.children[0].loc.start.offset,\n el.children[el.children.length - 1].loc.end.offset\n ),\n loc: inlineTemplateProp.loc\n };\n }\n }\n}\nfunction lookAhead(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;\n return i;\n}\nfunction backTrack(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i >= 0) i--;\n return i;\n}\nconst specialTemplateDir = /* @__PURE__ */ new Set([\"if\", \"else\", \"else-if\", \"for\", \"slot\"]);\nfunction isFragmentTemplate({ tag, props }) {\n if (tag === \"template\") {\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isComponent({ tag, props }) {\n if (currentOptions.isCustomElement(tag)) {\n return false;\n }\n if (tag === \"component\" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {\n return true;\n }\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 6) {\n if (p.name === \"is\" && p.value) {\n if (p.value.content.startsWith(\"vue:\")) {\n return true;\n } else if (checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n } else if (// :is on plain element - only treat as component in compat mode\n p.name === \"bind\" && isStaticArgOf(p.arg, \"is\") && checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n return false;\n}\nfunction isUpperCase(c) {\n return c > 64 && c < 91;\n}\nconst windowsNewlineRE = /\\r\\n/g;\nfunction condenseWhitespace(nodes, tag) {\n const shouldCondense = currentOptions.whitespace !== \"preserve\";\n let removedWhitespace = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.type === 2) {\n if (!inPre) {\n if (isAllWhitespace(node.content)) {\n const prev = nodes[i - 1] && nodes[i - 1].type;\n const next = nodes[i + 1] && nodes[i + 1].type;\n if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {\n removedWhitespace = true;\n nodes[i] = null;\n } else {\n node.content = \" \";\n }\n } else if (shouldCondense) {\n node.content = condense(node.content);\n }\n } else {\n node.content = node.content.replace(windowsNewlineRE, \"\\n\");\n }\n }\n }\n return removedWhitespace ? nodes.filter(Boolean) : nodes;\n}\nfunction isAllWhitespace(str) {\n for (let i = 0; i < str.length; i++) {\n if (!isWhitespace(str.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n}\nfunction hasNewlineChar(str) {\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c === 10 || c === 13) {\n return true;\n }\n }\n return false;\n}\nfunction condense(str) {\n let ret = \"\";\n let prevCharIsWhitespace = false;\n for (let i = 0; i < str.length; i++) {\n if (isWhitespace(str.charCodeAt(i))) {\n if (!prevCharIsWhitespace) {\n ret += \" \";\n prevCharIsWhitespace = true;\n }\n } else {\n ret += str[i];\n prevCharIsWhitespace = false;\n }\n }\n return ret;\n}\nfunction addNode(node) {\n (stack[0] || currentRoot).children.push(node);\n}\nfunction getLoc(start, end) {\n return {\n start: tokenizer.getPos(start),\n // @ts-expect-error allow late attachment\n end: end == null ? end : tokenizer.getPos(end),\n // @ts-expect-error allow late attachment\n source: end == null ? end : getSlice(start, end)\n };\n}\nfunction setLocEnd(loc, end) {\n loc.end = tokenizer.getPos(end);\n loc.source = getSlice(loc.start.offset, end);\n}\nfunction dirToAttr(dir) {\n const attr = {\n type: 6,\n name: dir.rawName,\n nameLoc: getLoc(\n dir.loc.start.offset,\n dir.loc.start.offset + dir.rawName.length\n ),\n value: void 0,\n loc: dir.loc\n };\n if (dir.exp) {\n const loc = dir.exp.loc;\n if (loc.end.offset < dir.loc.end.offset) {\n loc.start.offset--;\n loc.start.column--;\n loc.end.offset++;\n loc.end.column++;\n }\n attr.value = {\n type: 2,\n content: dir.exp.content,\n loc\n };\n }\n return attr;\n}\nfunction createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {\n const exp = createSimpleExpression(content, isStatic, loc, constType);\n if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) {\n if (isSimpleIdentifier(content)) {\n exp.ast = null;\n return exp;\n }\n try {\n const plugins = currentOptions.expressionPlugins;\n const options = {\n plugins: plugins ? [...plugins, \"typescript\"] : [\"typescript\"]\n };\n if (parseMode === 2 /* Statements */) {\n exp.ast = parser.parse(` ${content} `, options).program;\n } else if (parseMode === 1 /* Params */) {\n exp.ast = parser.parseExpression(`(${content})=>{}`, options);\n } else {\n exp.ast = parser.parseExpression(`(${content})`, options);\n }\n } catch (e) {\n exp.ast = false;\n emitError(45, loc.start.offset, e.message);\n }\n }\n return exp;\n}\nfunction emitError(code, index, message) {\n currentOptions.onError(\n createCompilerError(code, getLoc(index, index), void 0, message)\n );\n}\nfunction reset() {\n tokenizer.reset();\n currentOpenTag = null;\n currentProp = null;\n currentAttrValue = \"\";\n currentAttrStartIndex = -1;\n currentAttrEndIndex = -1;\n stack.length = 0;\n}\nfunction baseParse(input, options) {\n reset();\n currentInput = input;\n currentOptions = shared.extend({}, defaultParserOptions);\n if (options) {\n let key;\n for (key in options) {\n if (options[key] != null) {\n currentOptions[key] = options[key];\n }\n }\n }\n {\n if (currentOptions.decodeEntities) {\n console.warn(\n `[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds.`\n );\n }\n }\n tokenizer.mode = currentOptions.parseMode === \"html\" ? 1 : currentOptions.parseMode === \"sfc\" ? 2 : 0;\n tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;\n const delimiters = options && options.delimiters;\n if (delimiters) {\n tokenizer.delimiterOpen = toCharCodes(delimiters[0]);\n tokenizer.delimiterClose = toCharCodes(delimiters[1]);\n }\n const root = currentRoot = createRoot([], input);\n tokenizer.parse(currentInput);\n root.loc = getLoc(0, input.length);\n root.children = condenseWhitespace(root.children);\n currentRoot = null;\n return root;\n}\n\nfunction cacheStatic(root, context) {\n walk(\n root,\n void 0,\n context,\n // Root node is unfortunately non-hoistable due to potential parent\n // fallthrough attributes.\n isSingleElementRoot(root, root.children[0])\n );\n}\nfunction isSingleElementRoot(root, child) {\n const { children } = root;\n return children.length === 1 && child.type === 1 && !isSlotOutlet(child);\n}\nfunction walk(node, parent, context, doNotHoistNode = false, inFor = false) {\n const { children } = node;\n const toCache = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.type === 1 && child.tagType === 0) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType > 0) {\n if (constantType >= 2) {\n child.codegenNode.patchFlag = -1;\n toCache.push(child);\n continue;\n }\n } else {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n const flag = codegenNode.patchFlag;\n if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {\n const props = getNodeProps(child);\n if (props) {\n codegenNode.props = context.hoist(props);\n }\n }\n if (codegenNode.dynamicProps) {\n codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);\n }\n }\n }\n } else if (child.type === 12) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType >= 2) {\n toCache.push(child);\n continue;\n }\n }\n if (child.type === 1) {\n const isComponent = child.tagType === 1;\n if (isComponent) {\n context.scopes.vSlot++;\n }\n walk(child, node, context, false, inFor);\n if (isComponent) {\n context.scopes.vSlot--;\n }\n } else if (child.type === 11) {\n walk(child, node, context, child.children.length === 1, true);\n } else if (child.type === 9) {\n for (let i2 = 0; i2 < child.branches.length; i2++) {\n walk(\n child.branches[i2],\n node,\n context,\n child.branches[i2].children.length === 1,\n inFor\n );\n }\n }\n }\n let cachedAsArray = false;\n if (toCache.length === children.length && node.type === 1) {\n if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) {\n node.codegenNode.children = getCacheExpression(\n createArrayExpression(node.codegenNode.children)\n );\n cachedAsArray = true;\n } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {\n const slot = getSlotNode(node.codegenNode, \"default\");\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {\n const slotName = findDir(node, \"slot\", true);\n const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n }\n }\n if (!cachedAsArray) {\n for (const child of toCache) {\n child.codegenNode = context.cache(child.codegenNode);\n }\n }\n function getCacheExpression(value) {\n const exp = context.cache(value);\n if (inFor && context.hmr) {\n exp.needArraySpread = true;\n }\n return exp;\n }\n function getSlotNode(node2, name) {\n if (node2.children && !shared.isArray(node2.children) && node2.children.type === 15) {\n const slot = node2.children.properties.find(\n (p) => p.key === name || p.key.content === name\n );\n return slot && slot.value;\n }\n }\n if (toCache.length && context.transformHoist) {\n context.transformHoist(children, context, node);\n }\n}\nfunction getConstantType(node, context) {\n const { constantCache } = context;\n switch (node.type) {\n case 1:\n if (node.tagType !== 0) {\n return 0;\n }\n const cached = constantCache.get(node);\n if (cached !== void 0) {\n return cached;\n }\n const codegenNode = node.codegenNode;\n if (codegenNode.type !== 13) {\n return 0;\n }\n if (codegenNode.isBlock && node.tag !== \"svg\" && node.tag !== \"foreignObject\" && node.tag !== \"math\") {\n return 0;\n }\n if (codegenNode.patchFlag === void 0) {\n let returnType2 = 3;\n const generatedPropsType = getGeneratedPropsConstantType(node, context);\n if (generatedPropsType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (generatedPropsType < returnType2) {\n returnType2 = generatedPropsType;\n }\n for (let i = 0; i < node.children.length; i++) {\n const childType = getConstantType(node.children[i], context);\n if (childType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (childType < returnType2) {\n returnType2 = childType;\n }\n }\n if (returnType2 > 1) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && p.name === \"bind\" && p.exp) {\n const expType = getConstantType(p.exp, context);\n if (expType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (expType < returnType2) {\n returnType2 = expType;\n }\n }\n }\n }\n if (codegenNode.isBlock) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7) {\n constantCache.set(node, 0);\n return 0;\n }\n }\n context.removeHelper(OPEN_BLOCK);\n context.removeHelper(\n getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)\n );\n codegenNode.isBlock = false;\n context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));\n }\n constantCache.set(node, returnType2);\n return returnType2;\n } else {\n constantCache.set(node, 0);\n return 0;\n }\n case 2:\n case 3:\n return 3;\n case 9:\n case 11:\n case 10:\n return 0;\n case 5:\n case 12:\n return getConstantType(node.content, context);\n case 4:\n return node.constType;\n case 8:\n let returnType = 3;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (shared.isString(child) || shared.isSymbol(child)) {\n continue;\n }\n const childType = getConstantType(child, context);\n if (childType === 0) {\n return 0;\n } else if (childType < returnType) {\n returnType = childType;\n }\n }\n return returnType;\n case 20:\n return 2;\n default:\n return 0;\n }\n}\nconst allowHoistedHelperSet = /* @__PURE__ */ new Set([\n NORMALIZE_CLASS,\n NORMALIZE_STYLE,\n NORMALIZE_PROPS,\n GUARD_REACTIVE_PROPS\n]);\nfunction getConstantTypeOfHelperCall(value, context) {\n if (value.type === 14 && !shared.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) {\n const arg = value.arguments[0];\n if (arg.type === 4) {\n return getConstantType(arg, context);\n } else if (arg.type === 14) {\n return getConstantTypeOfHelperCall(arg, context);\n }\n }\n return 0;\n}\nfunction getGeneratedPropsConstantType(node, context) {\n let returnType = 3;\n const props = getNodeProps(node);\n if (props && props.type === 15) {\n const { properties } = props;\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n const keyType = getConstantType(key, context);\n if (keyType === 0) {\n return keyType;\n }\n if (keyType < returnType) {\n returnType = keyType;\n }\n let valueType;\n if (value.type === 4) {\n valueType = getConstantType(value, context);\n } else if (value.type === 14) {\n valueType = getConstantTypeOfHelperCall(value, context);\n } else {\n valueType = 0;\n }\n if (valueType === 0) {\n return valueType;\n }\n if (valueType < returnType) {\n returnType = valueType;\n }\n }\n }\n return returnType;\n}\nfunction getNodeProps(node) {\n const codegenNode = node.codegenNode;\n if (codegenNode.type === 13) {\n return codegenNode.props;\n }\n}\n\nfunction createTransformContext(root, {\n filename = \"\",\n prefixIdentifiers = false,\n hoistStatic = false,\n hmr = false,\n cacheHandlers = false,\n nodeTransforms = [],\n directiveTransforms = {},\n transformHoist = null,\n isBuiltInComponent = shared.NOOP,\n isCustomElement = shared.NOOP,\n expressionPlugins = [],\n scopeId = null,\n slotted = true,\n ssr = false,\n inSSR = false,\n ssrCssVars = ``,\n bindingMetadata = shared.EMPTY_OBJ,\n inline = false,\n isTS = false,\n onError = defaultOnError,\n onWarn = defaultOnWarn,\n compatConfig\n}) {\n const nameMatch = filename.replace(/\\?.*$/, \"\").match(/([^/\\\\]+)\\.\\w+$/);\n const context = {\n // options\n filename,\n selfName: nameMatch && shared.capitalize(shared.camelize(nameMatch[1])),\n prefixIdentifiers,\n hoistStatic,\n hmr,\n cacheHandlers,\n nodeTransforms,\n directiveTransforms,\n transformHoist,\n isBuiltInComponent,\n isCustomElement,\n expressionPlugins,\n scopeId,\n slotted,\n ssr,\n inSSR,\n ssrCssVars,\n bindingMetadata,\n inline,\n isTS,\n onError,\n onWarn,\n compatConfig,\n // state\n root,\n helpers: /* @__PURE__ */ new Map(),\n components: /* @__PURE__ */ new Set(),\n directives: /* @__PURE__ */ new Set(),\n hoists: [],\n imports: [],\n cached: [],\n constantCache: /* @__PURE__ */ new WeakMap(),\n temps: 0,\n identifiers: /* @__PURE__ */ Object.create(null),\n scopes: {\n vFor: 0,\n vSlot: 0,\n vPre: 0,\n vOnce: 0\n },\n parent: null,\n grandParent: null,\n currentNode: root,\n childIndex: 0,\n inVOnce: false,\n // methods\n helper(name) {\n const count = context.helpers.get(name) || 0;\n context.helpers.set(name, count + 1);\n return name;\n },\n removeHelper(name) {\n const count = context.helpers.get(name);\n if (count) {\n const currentCount = count - 1;\n if (!currentCount) {\n context.helpers.delete(name);\n } else {\n context.helpers.set(name, currentCount);\n }\n }\n },\n helperString(name) {\n return `_${helperNameMap[context.helper(name)]}`;\n },\n replaceNode(node) {\n {\n if (!context.currentNode) {\n throw new Error(`Node being replaced is already removed.`);\n }\n if (!context.parent) {\n throw new Error(`Cannot replace root node.`);\n }\n }\n context.parent.children[context.childIndex] = context.currentNode = node;\n },\n removeNode(node) {\n if (!context.parent) {\n throw new Error(`Cannot remove root node.`);\n }\n const list = context.parent.children;\n const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;\n if (removalIndex < 0) {\n throw new Error(`node being removed is not a child of current parent`);\n }\n if (!node || node === context.currentNode) {\n context.currentNode = null;\n context.onNodeRemoved();\n } else {\n if (context.childIndex > removalIndex) {\n context.childIndex--;\n context.onNodeRemoved();\n }\n }\n context.parent.children.splice(removalIndex, 1);\n },\n onNodeRemoved: shared.NOOP,\n addIdentifiers(exp) {\n {\n if (shared.isString(exp)) {\n addId(exp);\n } else if (exp.identifiers) {\n exp.identifiers.forEach(addId);\n } else if (exp.type === 4) {\n addId(exp.content);\n }\n }\n },\n removeIdentifiers(exp) {\n {\n if (shared.isString(exp)) {\n removeId(exp);\n } else if (exp.identifiers) {\n exp.identifiers.forEach(removeId);\n } else if (exp.type === 4) {\n removeId(exp.content);\n }\n }\n },\n hoist(exp) {\n if (shared.isString(exp)) exp = createSimpleExpression(exp);\n context.hoists.push(exp);\n const identifier = createSimpleExpression(\n `_hoisted_${context.hoists.length}`,\n false,\n exp.loc,\n 2\n );\n identifier.hoisted = exp;\n return identifier;\n },\n cache(exp, isVNode = false) {\n const cacheExp = createCacheExpression(\n context.cached.length,\n exp,\n isVNode\n );\n context.cached.push(cacheExp);\n return cacheExp;\n }\n };\n {\n context.filters = /* @__PURE__ */ new Set();\n }\n function addId(id) {\n const { identifiers } = context;\n if (identifiers[id] === void 0) {\n identifiers[id] = 0;\n }\n identifiers[id]++;\n }\n function removeId(id) {\n context.identifiers[id]--;\n }\n return context;\n}\nfunction transform(root, options) {\n const context = createTransformContext(root, options);\n traverseNode(root, context);\n if (options.hoistStatic) {\n cacheStatic(root, context);\n }\n if (!options.ssr) {\n createRootCodegen(root, context);\n }\n root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);\n root.components = [...context.components];\n root.directives = [...context.directives];\n root.imports = context.imports;\n root.hoists = context.hoists;\n root.temps = context.temps;\n root.cached = context.cached;\n root.transformed = true;\n {\n root.filters = [...context.filters];\n }\n}\nfunction createRootCodegen(root, context) {\n const { helper } = context;\n const { children } = root;\n if (children.length === 1) {\n const child = children[0];\n if (isSingleElementRoot(root, child) && child.codegenNode) {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n convertToBlock(codegenNode, context);\n }\n root.codegenNode = codegenNode;\n } else {\n root.codegenNode = child;\n }\n } else if (children.length > 1) {\n let patchFlag = 64;\n if (children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n root.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n root.children,\n patchFlag,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else ;\n}\nfunction traverseChildren(parent, context) {\n let i = 0;\n const nodeRemoved = () => {\n i--;\n };\n for (; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (shared.isString(child)) continue;\n context.grandParent = context.parent;\n context.parent = parent;\n context.childIndex = i;\n context.onNodeRemoved = nodeRemoved;\n traverseNode(child, context);\n }\n}\nfunction traverseNode(node, context) {\n context.currentNode = node;\n const { nodeTransforms } = context;\n const exitFns = [];\n for (let i2 = 0; i2 < nodeTransforms.length; i2++) {\n const onExit = nodeTransforms[i2](node, context);\n if (onExit) {\n if (shared.isArray(onExit)) {\n exitFns.push(...onExit);\n } else {\n exitFns.push(onExit);\n }\n }\n if (!context.currentNode) {\n return;\n } else {\n node = context.currentNode;\n }\n }\n switch (node.type) {\n case 3:\n if (!context.ssr) {\n context.helper(CREATE_COMMENT);\n }\n break;\n case 5:\n if (!context.ssr) {\n context.helper(TO_DISPLAY_STRING);\n }\n break;\n // for container types, further traverse downwards\n case 9:\n for (let i2 = 0; i2 < node.branches.length; i2++) {\n traverseNode(node.branches[i2], context);\n }\n break;\n case 10:\n case 11:\n case 1:\n case 0:\n traverseChildren(node, context);\n break;\n }\n context.currentNode = node;\n let i = exitFns.length;\n while (i--) {\n exitFns[i]();\n }\n}\nfunction createStructuralDirectiveTransform(name, fn) {\n const matches = shared.isString(name) ? (n) => n === name : (n) => name.test(n);\n return (node, context) => {\n if (node.type === 1) {\n const { props } = node;\n if (node.tagType === 3 && props.some(isVSlot)) {\n return;\n }\n const exitFns = [];\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 7 && matches(prop.name)) {\n props.splice(i, 1);\n i--;\n const onExit = fn(node, prop, context);\n if (onExit) exitFns.push(onExit);\n }\n }\n return exitFns;\n }\n };\n}\n\nconst PURE_ANNOTATION = `/*@__PURE__*/`;\nconst aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;\nfunction createCodegenContext(ast, {\n mode = \"function\",\n prefixIdentifiers = mode === \"module\",\n sourceMap = false,\n filename = `template.vue.html`,\n scopeId = null,\n optimizeImports = false,\n runtimeGlobalName = `Vue`,\n runtimeModuleName = `vue`,\n ssrRuntimeModuleName = \"vue/server-renderer\",\n ssr = false,\n isTS = false,\n inSSR = false\n}) {\n const context = {\n mode,\n prefixIdentifiers,\n sourceMap,\n filename,\n scopeId,\n optimizeImports,\n runtimeGlobalName,\n runtimeModuleName,\n ssrRuntimeModuleName,\n ssr,\n isTS,\n inSSR,\n source: ast.source,\n code: ``,\n column: 1,\n line: 1,\n offset: 0,\n indentLevel: 0,\n pure: false,\n map: void 0,\n helper(key) {\n return `_${helperNameMap[key]}`;\n },\n push(code, newlineIndex = -2 /* None */, node) {\n context.code += code;\n if (context.map) {\n if (node) {\n let name;\n if (node.type === 4 && !node.isStatic) {\n const content = node.content.replace(/^_ctx\\./, \"\");\n if (content !== node.content && isSimpleIdentifier(content)) {\n name = content;\n }\n }\n addMapping(node.loc.start, name);\n }\n if (newlineIndex === -3 /* Unknown */) {\n advancePositionWithMutation(context, code);\n } else {\n context.offset += code.length;\n if (newlineIndex === -2 /* None */) {\n context.column += code.length;\n } else {\n if (newlineIndex === -1 /* End */) {\n newlineIndex = code.length - 1;\n }\n context.line++;\n context.column = code.length - newlineIndex;\n }\n }\n if (node && node.loc !== locStub) {\n addMapping(node.loc.end);\n }\n }\n },\n indent() {\n newline(++context.indentLevel);\n },\n deindent(withoutNewLine = false) {\n if (withoutNewLine) {\n --context.indentLevel;\n } else {\n newline(--context.indentLevel);\n }\n },\n newline() {\n newline(context.indentLevel);\n }\n };\n function newline(n) {\n context.push(\"\\n\" + ` `.repeat(n), 0 /* Start */);\n }\n function addMapping(loc, name = null) {\n const { _names, _mappings } = context.map;\n if (name !== null && !_names.has(name)) _names.add(name);\n _mappings.add({\n originalLine: loc.line,\n originalColumn: loc.column - 1,\n // source-map column is 0 based\n generatedLine: context.line,\n generatedColumn: context.column - 1,\n source: filename,\n name\n });\n }\n if (sourceMap) {\n context.map = new sourceMapJs.SourceMapGenerator();\n context.map.setSourceContent(filename, context.source);\n context.map._sources.add(filename);\n }\n return context;\n}\nfunction generate(ast, options = {}) {\n const context = createCodegenContext(ast, options);\n if (options.onContextCreated) options.onContextCreated(context);\n const {\n mode,\n push,\n prefixIdentifiers,\n indent,\n deindent,\n newline,\n scopeId,\n ssr\n } = context;\n const helpers = Array.from(ast.helpers);\n const hasHelpers = helpers.length > 0;\n const useWithBlock = !prefixIdentifiers && mode !== \"module\";\n const genScopeId = scopeId != null && mode === \"module\";\n const isSetupInlined = !!options.inline;\n const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context;\n if (mode === \"module\") {\n genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined);\n } else {\n genFunctionPreamble(ast, preambleContext);\n }\n const functionName = ssr ? `ssrRender` : `render`;\n const args = ssr ? [\"_ctx\", \"_push\", \"_parent\", \"_attrs\"] : [\"_ctx\", \"_cache\"];\n if (options.bindingMetadata && !options.inline) {\n args.push(\"$props\", \"$setup\", \"$data\", \"$options\");\n }\n const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(\",\") : args.join(\", \");\n if (isSetupInlined) {\n push(`(${signature}) => {`);\n } else {\n push(`function ${functionName}(${signature}) {`);\n }\n indent();\n if (useWithBlock) {\n push(`with (_ctx) {`);\n indent();\n if (hasHelpers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = _Vue\n`,\n -1 /* End */\n );\n newline();\n }\n }\n if (ast.components.length) {\n genAssets(ast.components, \"component\", context);\n if (ast.directives.length || ast.temps > 0) {\n newline();\n }\n }\n if (ast.directives.length) {\n genAssets(ast.directives, \"directive\", context);\n if (ast.temps > 0) {\n newline();\n }\n }\n if (ast.filters && ast.filters.length) {\n newline();\n genAssets(ast.filters, \"filter\", context);\n newline();\n }\n if (ast.temps > 0) {\n push(`let `);\n for (let i = 0; i < ast.temps; i++) {\n push(`${i > 0 ? `, ` : ``}_temp${i}`);\n }\n }\n if (ast.components.length || ast.directives.length || ast.temps) {\n push(`\n`, 0 /* Start */);\n newline();\n }\n if (!ssr) {\n push(`return `);\n }\n if (ast.codegenNode) {\n genNode(ast.codegenNode, context);\n } else {\n push(`null`);\n }\n if (useWithBlock) {\n deindent();\n push(`}`);\n }\n deindent();\n push(`}`);\n return {\n ast,\n code: context.code,\n preamble: isSetupInlined ? preambleContext.code : ``,\n map: context.map ? context.map.toJSON() : void 0\n };\n}\nfunction genFunctionPreamble(ast, context) {\n const {\n ssr,\n prefixIdentifiers,\n push,\n newline,\n runtimeModuleName,\n runtimeGlobalName,\n ssrRuntimeModuleName\n } = context;\n const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;\n const helpers = Array.from(ast.helpers);\n if (helpers.length > 0) {\n if (prefixIdentifiers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = ${VueBinding}\n`,\n -1 /* End */\n );\n } else {\n push(`const _Vue = ${VueBinding}\n`, -1 /* End */);\n if (ast.hoists.length) {\n const staticHelpers = [\n CREATE_VNODE,\n CREATE_ELEMENT_VNODE,\n CREATE_COMMENT,\n CREATE_TEXT,\n CREATE_STATIC\n ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(\", \");\n push(`const { ${staticHelpers} } = _Vue\n`, -1 /* End */);\n }\n }\n }\n if (ast.ssrHelpers && ast.ssrHelpers.length) {\n push(\n `const { ${ast.ssrHelpers.map(aliasHelper).join(\", \")} } = require(\"${ssrRuntimeModuleName}\")\n`,\n -1 /* End */\n );\n }\n genHoists(ast.hoists, context);\n newline();\n push(`return `);\n}\nfunction genModulePreamble(ast, context, genScopeId, inline) {\n const {\n push,\n newline,\n optimizeImports,\n runtimeModuleName,\n ssrRuntimeModuleName\n } = context;\n if (ast.helpers.size) {\n const helpers = Array.from(ast.helpers);\n if (optimizeImports) {\n push(\n `import { ${helpers.map((s) => helperNameMap[s]).join(\", \")} } from ${JSON.stringify(runtimeModuleName)}\n`,\n -1 /* End */\n );\n push(\n `\n// Binding optimization for webpack code-split\nconst ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(\", \")}\n`,\n -1 /* End */\n );\n } else {\n push(\n `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(\", \")} } from ${JSON.stringify(runtimeModuleName)}\n`,\n -1 /* End */\n );\n }\n }\n if (ast.ssrHelpers && ast.ssrHelpers.length) {\n push(\n `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(\", \")} } from \"${ssrRuntimeModuleName}\"\n`,\n -1 /* End */\n );\n }\n if (ast.imports.length) {\n genImports(ast.imports, context);\n newline();\n }\n genHoists(ast.hoists, context);\n newline();\n if (!inline) {\n push(`export `);\n }\n}\nfunction genAssets(assets, type, { helper, push, newline, isTS }) {\n const resolver = helper(\n type === \"filter\" ? RESOLVE_FILTER : type === \"component\" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE\n );\n for (let i = 0; i < assets.length; i++) {\n let id = assets[i];\n const maybeSelfReference = id.endsWith(\"__self\");\n if (maybeSelfReference) {\n id = id.slice(0, -6);\n }\n push(\n `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`\n );\n if (i < assets.length - 1) {\n newline();\n }\n }\n}\nfunction genHoists(hoists, context) {\n if (!hoists.length) {\n return;\n }\n context.pure = true;\n const { push, newline } = context;\n newline();\n for (let i = 0; i < hoists.length; i++) {\n const exp = hoists[i];\n if (exp) {\n push(`const _hoisted_${i + 1} = `);\n genNode(exp, context);\n newline();\n }\n }\n context.pure = false;\n}\nfunction genImports(importsOptions, context) {\n if (!importsOptions.length) {\n return;\n }\n importsOptions.forEach((imports) => {\n context.push(`import `);\n genNode(imports.exp, context);\n context.push(` from '${imports.path}'`);\n context.newline();\n });\n}\nfunction isText(n) {\n return shared.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;\n}\nfunction genNodeListAsArray(nodes, context) {\n const multilines = nodes.length > 3 || nodes.some((n) => shared.isArray(n) || !isText(n));\n context.push(`[`);\n multilines && context.indent();\n genNodeList(nodes, context, multilines);\n multilines && context.deindent();\n context.push(`]`);\n}\nfunction genNodeList(nodes, context, multilines = false, comma = true) {\n const { push, newline } = context;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (shared.isString(node)) {\n push(node, -3 /* Unknown */);\n } else if (shared.isArray(node)) {\n genNodeListAsArray(node, context);\n } else {\n genNode(node, context);\n }\n if (i < nodes.length - 1) {\n if (multilines) {\n comma && push(\",\");\n newline();\n } else {\n comma && push(\", \");\n }\n }\n }\n}\nfunction genNode(node, context) {\n if (shared.isString(node)) {\n context.push(node, -3 /* Unknown */);\n return;\n }\n if (shared.isSymbol(node)) {\n context.push(context.helper(node));\n return;\n }\n switch (node.type) {\n case 1:\n case 9:\n case 11:\n assert(\n node.codegenNode != null,\n `Codegen node is missing for element/if/for node. Apply appropriate transforms first.`\n );\n genNode(node.codegenNode, context);\n break;\n case 2:\n genText(node, context);\n break;\n case 4:\n genExpression(node, context);\n break;\n case 5:\n genInterpolation(node, context);\n break;\n case 12:\n genNode(node.codegenNode, context);\n break;\n case 8:\n genCompoundExpression(node, context);\n break;\n case 3:\n genComment(node, context);\n break;\n case 13:\n genVNodeCall(node, context);\n break;\n case 14:\n genCallExpression(node, context);\n break;\n case 15:\n genObjectExpression(node, context);\n break;\n case 17:\n genArrayExpression(node, context);\n break;\n case 18:\n genFunctionExpression(node, context);\n break;\n case 19:\n genConditionalExpression(node, context);\n break;\n case 20:\n genCacheExpression(node, context);\n break;\n case 21:\n genNodeList(node.body, context, true, false);\n break;\n // SSR only types\n case 22:\n genTemplateLiteral(node, context);\n break;\n case 23:\n genIfStatement(node, context);\n break;\n case 24:\n genAssignmentExpression(node, context);\n break;\n case 25:\n genSequenceExpression(node, context);\n break;\n case 26:\n genReturnStatement(node, context);\n break;\n /* v8 ignore start */\n case 10:\n break;\n default:\n {\n assert(false, `unhandled codegen node type: ${node.type}`);\n const exhaustiveCheck = node;\n return exhaustiveCheck;\n }\n }\n}\nfunction genText(node, context) {\n context.push(JSON.stringify(node.content), -3 /* Unknown */, node);\n}\nfunction genExpression(node, context) {\n const { content, isStatic } = node;\n context.push(\n isStatic ? JSON.stringify(content) : content,\n -3 /* Unknown */,\n node\n );\n}\nfunction genInterpolation(node, context) {\n const { push, helper, pure } = context;\n if (pure) push(PURE_ANNOTATION);\n push(`${helper(TO_DISPLAY_STRING)}(`);\n genNode(node.content, context);\n push(`)`);\n}\nfunction genCompoundExpression(node, context) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (shared.isString(child)) {\n context.push(child, -3 /* Unknown */);\n } else {\n genNode(child, context);\n }\n }\n}\nfunction genExpressionAsPropertyKey(node, context) {\n const { push } = context;\n if (node.type === 8) {\n push(`[`);\n genCompoundExpression(node, context);\n push(`]`);\n } else if (node.isStatic) {\n const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);\n push(text, -2 /* None */, node);\n } else {\n push(`[${node.content}]`, -3 /* Unknown */, node);\n }\n}\nfunction genComment(node, context) {\n const { push, helper, pure } = context;\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(\n `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,\n -3 /* Unknown */,\n node\n );\n}\nfunction genVNodeCall(node, context) {\n const { push, helper, pure } = context;\n const {\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent\n } = node;\n let patchFlagString;\n if (patchFlag) {\n {\n if (patchFlag < 0) {\n patchFlagString = patchFlag + ` /* ${shared.PatchFlagNames[patchFlag]} */`;\n } else {\n const flagNames = Object.keys(shared.PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => shared.PatchFlagNames[n]).join(`, `);\n patchFlagString = patchFlag + ` /* ${flagNames} */`;\n }\n }\n }\n if (directives) {\n push(helper(WITH_DIRECTIVES) + `(`);\n }\n if (isBlock) {\n push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);\n }\n if (pure) {\n push(PURE_ANNOTATION);\n }\n const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);\n push(helper(callHelper) + `(`, -2 /* None */, node);\n genNodeList(\n genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),\n context\n );\n push(`)`);\n if (isBlock) {\n push(`)`);\n }\n if (directives) {\n push(`, `);\n genNode(directives, context);\n push(`)`);\n }\n}\nfunction genNullableArgs(args) {\n let i = args.length;\n while (i--) {\n if (args[i] != null) break;\n }\n return args.slice(0, i + 1).map((arg) => arg || `null`);\n}\nfunction genCallExpression(node, context) {\n const { push, helper, pure } = context;\n const callee = shared.isString(node.callee) ? node.callee : helper(node.callee);\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(callee + `(`, -2 /* None */, node);\n genNodeList(node.arguments, context);\n push(`)`);\n}\nfunction genObjectExpression(node, context) {\n const { push, indent, deindent, newline } = context;\n const { properties } = node;\n if (!properties.length) {\n push(`{}`, -2 /* None */, node);\n return;\n }\n const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4);\n push(multilines ? `{` : `{ `);\n multilines && indent();\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n genExpressionAsPropertyKey(key, context);\n push(`: `);\n genNode(value, context);\n if (i < properties.length - 1) {\n push(`,`);\n newline();\n }\n }\n multilines && deindent();\n push(multilines ? `}` : ` }`);\n}\nfunction genArrayExpression(node, context) {\n genNodeListAsArray(node.elements, context);\n}\nfunction genFunctionExpression(node, context) {\n const { push, indent, deindent } = context;\n const { params, returns, body, newline, isSlot } = node;\n if (isSlot) {\n push(`_${helperNameMap[WITH_CTX]}(`);\n }\n push(`(`, -2 /* None */, node);\n if (shared.isArray(params)) {\n genNodeList(params, context);\n } else if (params) {\n genNode(params, context);\n }\n push(`) => `);\n if (newline || body) {\n push(`{`);\n indent();\n }\n if (returns) {\n if (newline) {\n push(`return `);\n }\n if (shared.isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n } else if (body) {\n genNode(body, context);\n }\n if (newline || body) {\n deindent();\n push(`}`);\n }\n if (isSlot) {\n if (node.isNonScopedSlot) {\n push(`, undefined, true`);\n }\n push(`)`);\n }\n}\nfunction genConditionalExpression(node, context) {\n const { test, consequent, alternate, newline: needNewline } = node;\n const { push, indent, deindent, newline } = context;\n if (test.type === 4) {\n const needsParens = !isSimpleIdentifier(test.content);\n needsParens && push(`(`);\n genExpression(test, context);\n needsParens && push(`)`);\n } else {\n push(`(`);\n genNode(test, context);\n push(`)`);\n }\n needNewline && indent();\n context.indentLevel++;\n needNewline || push(` `);\n push(`? `);\n genNode(consequent, context);\n context.indentLevel--;\n needNewline && newline();\n needNewline || push(` `);\n push(`: `);\n const isNested = alternate.type === 19;\n if (!isNested) {\n context.indentLevel++;\n }\n genNode(alternate, context);\n if (!isNested) {\n context.indentLevel--;\n }\n needNewline && deindent(\n true\n /* without newline */\n );\n}\nfunction genCacheExpression(node, context) {\n const { push, helper, indent, deindent, newline } = context;\n const { needPauseTracking, needArraySpread } = node;\n if (needArraySpread) {\n push(`[...(`);\n }\n push(`_cache[${node.index}] || (`);\n if (needPauseTracking) {\n indent();\n push(`${helper(SET_BLOCK_TRACKING)}(-1),`);\n newline();\n push(`(`);\n }\n push(`_cache[${node.index}] = `);\n genNode(node.value, context);\n if (needPauseTracking) {\n push(`).cacheIndex = ${node.index},`);\n newline();\n push(`${helper(SET_BLOCK_TRACKING)}(1),`);\n newline();\n push(`_cache[${node.index}]`);\n deindent();\n }\n push(`)`);\n if (needArraySpread) {\n push(`)]`);\n }\n}\nfunction genTemplateLiteral(node, context) {\n const { push, indent, deindent } = context;\n push(\"`\");\n const l = node.elements.length;\n const multilines = l > 3;\n for (let i = 0; i < l; i++) {\n const e = node.elements[i];\n if (shared.isString(e)) {\n push(e.replace(/(`|\\$|\\\\)/g, \"\\\\$1\"), -3 /* Unknown */);\n } else {\n push(\"${\");\n if (multilines) indent();\n genNode(e, context);\n if (multilines) deindent();\n push(\"}\");\n }\n }\n push(\"`\");\n}\nfunction genIfStatement(node, context) {\n const { push, indent, deindent } = context;\n const { test, consequent, alternate } = node;\n push(`if (`);\n genNode(test, context);\n push(`) {`);\n indent();\n genNode(consequent, context);\n deindent();\n push(`}`);\n if (alternate) {\n push(` else `);\n if (alternate.type === 23) {\n genIfStatement(alternate, context);\n } else {\n push(`{`);\n indent();\n genNode(alternate, context);\n deindent();\n push(`}`);\n }\n }\n}\nfunction genAssignmentExpression(node, context) {\n genNode(node.left, context);\n context.push(` = `);\n genNode(node.right, context);\n}\nfunction genSequenceExpression(node, context) {\n context.push(`(`);\n genNodeList(node.expressions, context);\n context.push(`)`);\n}\nfunction genReturnStatement({ returns }, context) {\n context.push(`return `);\n if (shared.isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n}\n\nconst isLiteralWhitelisted = /* @__PURE__ */ shared.makeMap(\"true,false,null,this\");\nconst transformExpression = (node, context) => {\n if (node.type === 5) {\n node.content = processExpression(\n node.content,\n context\n );\n } else if (node.type === 1) {\n for (let i = 0; i < node.props.length; i++) {\n const dir = node.props[i];\n if (dir.type === 7 && dir.name !== \"for\") {\n const exp = dir.exp;\n const arg = dir.arg;\n if (exp && exp.type === 4 && !(dir.name === \"on\" && arg)) {\n dir.exp = processExpression(\n exp,\n context,\n // slot args must be processed as function params\n dir.name === \"slot\"\n );\n }\n if (arg && arg.type === 4 && !arg.isStatic) {\n dir.arg = processExpression(arg, context);\n }\n }\n }\n }\n};\nfunction processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {\n if (!context.prefixIdentifiers || !node.content.trim()) {\n return node;\n }\n const { inline, bindingMetadata } = context;\n const rewriteIdentifier = (raw, parent, id) => {\n const type = shared.hasOwn(bindingMetadata, raw) && bindingMetadata[raw];\n if (inline) {\n const isAssignmentLVal = parent && parent.type === \"AssignmentExpression\" && parent.left === id;\n const isUpdateArg = parent && parent.type === \"UpdateExpression\" && parent.argument === id;\n const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack);\n const isNewExpression = parent && isInNewExpression(parentStack);\n const wrapWithUnref = (raw2) => {\n const wrapped = `${context.helperString(UNREF)}(${raw2})`;\n return isNewExpression ? `(${wrapped})` : wrapped;\n };\n if (isConst(type) || type === \"setup-reactive-const\" || localVars[raw]) {\n return raw;\n } else if (type === \"setup-ref\") {\n return `${raw}.value`;\n } else if (type === \"setup-maybe-ref\") {\n return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);\n } else if (type === \"setup-let\") {\n if (isAssignmentLVal) {\n const { right: rVal, operator } = parent;\n const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1);\n const rExpString = stringifyExpression(\n processExpression(\n createSimpleExpression(rExp, false),\n context,\n false,\n false,\n knownIds\n )\n );\n return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;\n } else if (isUpdateArg) {\n id.start = parent.start;\n id.end = parent.end;\n const { prefix: isPrefix, operator } = parent;\n const prefix = isPrefix ? operator : ``;\n const postfix = isPrefix ? `` : operator;\n return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;\n } else if (isDestructureAssignment) {\n return raw;\n } else {\n return wrapWithUnref(raw);\n }\n } else if (type === \"props\") {\n return shared.genPropsAccessExp(raw);\n } else if (type === \"props-aliased\") {\n return shared.genPropsAccessExp(bindingMetadata.__propsAliases[raw]);\n }\n } else {\n if (type && type.startsWith(\"setup\") || type === \"literal-const\") {\n return `$setup.${raw}`;\n } else if (type === \"props-aliased\") {\n return `$props['${bindingMetadata.__propsAliases[raw]}']`;\n } else if (type) {\n return `$${type}.${raw}`;\n }\n }\n return `_ctx.${raw}`;\n };\n const rawExp = node.content;\n let ast = node.ast;\n if (ast === false) {\n return node;\n }\n if (ast === null || !ast && isSimpleIdentifier(rawExp)) {\n const isScopeVarReference = context.identifiers[rawExp];\n const isAllowedGlobal = shared.isGloballyAllowed(rawExp);\n const isLiteral = isLiteralWhitelisted(rawExp);\n if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {\n if (isConst(bindingMetadata[rawExp])) {\n node.constType = 1;\n }\n node.content = rewriteIdentifier(rawExp);\n } else if (!isScopeVarReference) {\n if (isLiteral) {\n node.constType = 3;\n } else {\n node.constType = 2;\n }\n }\n return node;\n }\n if (!ast) {\n const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`;\n try {\n ast = parser.parseExpression(source, {\n sourceType: \"module\",\n plugins: context.expressionPlugins\n });\n } catch (e) {\n context.onError(\n createCompilerError(\n 45,\n node.loc,\n void 0,\n e.message\n )\n );\n return node;\n }\n }\n const ids = [];\n const parentStack = [];\n const knownIds = Object.create(context.identifiers);\n walkIdentifiers(\n ast,\n (node2, parent, _, isReferenced, isLocal) => {\n if (isStaticPropertyKey(node2, parent)) {\n return;\n }\n if (node2.name.startsWith(\"_filter_\")) {\n return;\n }\n const needPrefix = isReferenced && canPrefix(node2);\n if (needPrefix && !isLocal) {\n if (isStaticProperty(parent) && parent.shorthand) {\n node2.prefix = `${node2.name}: `;\n }\n node2.name = rewriteIdentifier(node2.name, parent, node2);\n ids.push(node2);\n } else {\n if (!(needPrefix && isLocal) && (!parent || parent.type !== \"CallExpression\" && parent.type !== \"NewExpression\" && parent.type !== \"MemberExpression\")) {\n node2.isConstant = true;\n }\n ids.push(node2);\n }\n },\n true,\n // invoke on ALL identifiers\n parentStack,\n knownIds\n );\n const children = [];\n ids.sort((a, b) => a.start - b.start);\n ids.forEach((id, i) => {\n const start = id.start - 1;\n const end = id.end - 1;\n const last = ids[i - 1];\n const leadingText = rawExp.slice(last ? last.end - 1 : 0, start);\n if (leadingText.length || id.prefix) {\n children.push(leadingText + (id.prefix || ``));\n }\n const source = rawExp.slice(start, end);\n children.push(\n createSimpleExpression(\n id.name,\n false,\n {\n start: advancePositionWithClone(node.loc.start, source, start),\n end: advancePositionWithClone(node.loc.start, source, end),\n source\n },\n id.isConstant ? 3 : 0\n )\n );\n if (i === ids.length - 1 && end < rawExp.length) {\n children.push(rawExp.slice(end));\n }\n });\n let ret;\n if (children.length) {\n ret = createCompoundExpression(children, node.loc);\n ret.ast = ast;\n } else {\n ret = node;\n ret.constType = 3;\n }\n ret.identifiers = Object.keys(knownIds);\n return ret;\n}\nfunction canPrefix(id) {\n if (shared.isGloballyAllowed(id.name)) {\n return false;\n }\n if (id.name === \"require\") {\n return false;\n }\n return true;\n}\nfunction stringifyExpression(exp) {\n if (shared.isString(exp)) {\n return exp;\n } else if (exp.type === 4) {\n return exp.content;\n } else {\n return exp.children.map(stringifyExpression).join(\"\");\n }\n}\nfunction isConst(type) {\n return type === \"setup-const\" || type === \"literal-const\";\n}\n\nconst transformIf = createStructuralDirectiveTransform(\n /^(if|else|else-if)$/,\n (node, dir, context) => {\n return processIf(node, dir, context, (ifNode, branch, isRoot) => {\n const siblings = context.parent.children;\n let i = siblings.indexOf(ifNode);\n let key = 0;\n while (i-- >= 0) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 9) {\n key += sibling.branches.length;\n }\n }\n return () => {\n if (isRoot) {\n ifNode.codegenNode = createCodegenNodeForBranch(\n branch,\n key,\n context\n );\n } else {\n const parentCondition = getParentCondition(ifNode.codegenNode);\n parentCondition.alternate = createCodegenNodeForBranch(\n branch,\n key + ifNode.branches.length - 1,\n context\n );\n }\n };\n });\n }\n);\nfunction processIf(node, dir, context, processCodegen) {\n if (dir.name !== \"else\" && (!dir.exp || !dir.exp.content.trim())) {\n const loc = dir.exp ? dir.exp.loc : node.loc;\n context.onError(\n createCompilerError(28, dir.loc)\n );\n dir.exp = createSimpleExpression(`true`, false, loc);\n }\n if (context.prefixIdentifiers && dir.exp) {\n dir.exp = processExpression(dir.exp, context);\n }\n if (dir.name === \"if\") {\n const branch = createIfBranch(node, dir);\n const ifNode = {\n type: 9,\n loc: node.loc,\n branches: [branch]\n };\n context.replaceNode(ifNode);\n if (processCodegen) {\n return processCodegen(ifNode, branch, true);\n }\n } else {\n const siblings = context.parent.children;\n const comments = [];\n let i = siblings.indexOf(node);\n while (i-- >= -1) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 3) {\n context.removeNode(sibling);\n comments.unshift(sibling);\n continue;\n }\n if (sibling && sibling.type === 2 && !sibling.content.trim().length) {\n context.removeNode(sibling);\n continue;\n }\n if (sibling && sibling.type === 9) {\n if (dir.name === \"else-if\" && sibling.branches[sibling.branches.length - 1].condition === void 0) {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n context.removeNode();\n const branch = createIfBranch(node, dir);\n if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition>\n !(context.parent && context.parent.type === 1 && (context.parent.tag === \"transition\" || context.parent.tag === \"Transition\"))) {\n branch.children = [...comments, ...branch.children];\n }\n {\n const key = branch.userKey;\n if (key) {\n sibling.branches.forEach(({ userKey }) => {\n if (isSameKey(userKey, key)) {\n context.onError(\n createCompilerError(\n 29,\n branch.userKey.loc\n )\n );\n }\n });\n }\n }\n sibling.branches.push(branch);\n const onExit = processCodegen && processCodegen(sibling, branch, false);\n traverseNode(branch, context);\n if (onExit) onExit();\n context.currentNode = null;\n } else {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n break;\n }\n }\n}\nfunction createIfBranch(node, dir) {\n const isTemplateIf = node.tagType === 3;\n return {\n type: 10,\n loc: node.loc,\n condition: dir.name === \"else\" ? void 0 : dir.exp,\n children: isTemplateIf && !findDir(node, \"for\") ? node.children : [node],\n userKey: findProp(node, `key`),\n isTemplateIf\n };\n}\nfunction createCodegenNodeForBranch(branch, keyIndex, context) {\n if (branch.condition) {\n return createConditionalExpression(\n branch.condition,\n createChildrenCodegenNode(branch, keyIndex, context),\n // make sure to pass in asBlock: true so that the comment node call\n // closes the current block.\n createCallExpression(context.helper(CREATE_COMMENT), [\n '\"v-if\"' ,\n \"true\"\n ])\n );\n } else {\n return createChildrenCodegenNode(branch, keyIndex, context);\n }\n}\nfunction createChildrenCodegenNode(branch, keyIndex, context) {\n const { helper } = context;\n const keyProperty = createObjectProperty(\n `key`,\n createSimpleExpression(\n `${keyIndex}`,\n false,\n locStub,\n 2\n )\n );\n const { children } = branch;\n const firstChild = children[0];\n const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;\n if (needFragmentWrapper) {\n if (children.length === 1 && firstChild.type === 11) {\n const vnodeCall = firstChild.codegenNode;\n injectProp(vnodeCall, keyProperty, context);\n return vnodeCall;\n } else {\n let patchFlag = 64;\n if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n return createVNodeCall(\n context,\n helper(FRAGMENT),\n createObjectExpression([keyProperty]),\n children,\n patchFlag,\n void 0,\n void 0,\n true,\n false,\n false,\n branch.loc\n );\n }\n } else {\n const ret = firstChild.codegenNode;\n const vnodeCall = getMemoedVNodeCall(ret);\n if (vnodeCall.type === 13) {\n convertToBlock(vnodeCall, context);\n }\n injectProp(vnodeCall, keyProperty, context);\n return ret;\n }\n}\nfunction isSameKey(a, b) {\n if (!a || a.type !== b.type) {\n return false;\n }\n if (a.type === 6) {\n if (a.value.content !== b.value.content) {\n return false;\n }\n } else {\n const exp = a.exp;\n const branchExp = b.exp;\n if (exp.type !== branchExp.type) {\n return false;\n }\n if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {\n return false;\n }\n }\n return true;\n}\nfunction getParentCondition(node) {\n while (true) {\n if (node.type === 19) {\n if (node.alternate.type === 19) {\n node = node.alternate;\n } else {\n return node;\n }\n } else if (node.type === 20) {\n node = node.value;\n }\n }\n}\n\nconst transformBind = (dir, _node, context) => {\n const { modifiers, loc } = dir;\n const arg = dir.arg;\n let { exp } = dir;\n if (exp && exp.type === 4 && !exp.content.trim()) {\n {\n context.onError(\n createCompilerError(34, loc)\n );\n return {\n props: [\n createObjectProperty(arg, createSimpleExpression(\"\", true, loc))\n ]\n };\n }\n }\n if (!exp) {\n if (arg.type !== 4 || !arg.isStatic) {\n context.onError(\n createCompilerError(\n 52,\n arg.loc\n )\n );\n return {\n props: [\n createObjectProperty(arg, createSimpleExpression(\"\", true, loc))\n ]\n };\n }\n transformBindShorthand(dir, context);\n exp = dir.exp;\n }\n if (arg.type !== 4) {\n arg.children.unshift(`(`);\n arg.children.push(`) || \"\"`);\n } else if (!arg.isStatic) {\n arg.content = `${arg.content} || \"\"`;\n }\n if (modifiers.some((mod) => mod.content === \"camel\")) {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = shared.camelize(arg.content);\n } else {\n arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;\n }\n } else {\n arg.children.unshift(`${context.helperString(CAMELIZE)}(`);\n arg.children.push(`)`);\n }\n }\n if (!context.inSSR) {\n if (modifiers.some((mod) => mod.content === \"prop\")) {\n injectPrefix(arg, \".\");\n }\n if (modifiers.some((mod) => mod.content === \"attr\")) {\n injectPrefix(arg, \"^\");\n }\n }\n return {\n props: [createObjectProperty(arg, exp)]\n };\n};\nconst transformBindShorthand = (dir, context) => {\n const arg = dir.arg;\n const propName = shared.camelize(arg.content);\n dir.exp = createSimpleExpression(propName, false, arg.loc);\n {\n dir.exp = processExpression(dir.exp, context);\n }\n};\nconst injectPrefix = (arg, prefix) => {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = prefix + arg.content;\n } else {\n arg.content = `\\`${prefix}\\${${arg.content}}\\``;\n }\n } else {\n arg.children.unshift(`'${prefix}' + (`);\n arg.children.push(`)`);\n }\n};\n\nconst transformFor = createStructuralDirectiveTransform(\n \"for\",\n (node, dir, context) => {\n const { helper, removeHelper } = context;\n return processFor(node, dir, context, (forNode) => {\n const renderExp = createCallExpression(helper(RENDER_LIST), [\n forNode.source\n ]);\n const isTemplate = isTemplateNode(node);\n const memo = findDir(node, \"memo\");\n const keyProp = findProp(node, `key`, false, true);\n if (keyProp && keyProp.type === 7 && !keyProp.exp) {\n transformBindShorthand(keyProp, context);\n }\n const keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);\n const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;\n if (isTemplate) {\n if (memo) {\n memo.exp = processExpression(\n memo.exp,\n context\n );\n }\n if (keyProperty && keyProp.type !== 6) {\n keyProperty.value = processExpression(\n keyProperty.value,\n context\n );\n }\n }\n const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;\n const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;\n forNode.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n renderExp,\n fragmentFlag,\n void 0,\n void 0,\n true,\n !isStableFragment,\n false,\n node.loc\n );\n return () => {\n let childBlock;\n const { children } = forNode;\n if (isTemplate) {\n node.children.some((c) => {\n if (c.type === 1) {\n const key = findProp(c, \"key\");\n if (key) {\n context.onError(\n createCompilerError(\n 33,\n key.loc\n )\n );\n return true;\n }\n }\n });\n }\n const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;\n const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;\n if (slotOutlet) {\n childBlock = slotOutlet.codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n } else if (needFragmentWrapper) {\n childBlock = createVNodeCall(\n context,\n helper(FRAGMENT),\n keyProperty ? createObjectExpression([keyProperty]) : void 0,\n node.children,\n 64,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else {\n childBlock = children[0].codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n if (childBlock.isBlock !== !isStableFragment) {\n if (childBlock.isBlock) {\n removeHelper(OPEN_BLOCK);\n removeHelper(\n getVNodeBlockHelper(context.inSSR, childBlock.isComponent)\n );\n } else {\n removeHelper(\n getVNodeHelper(context.inSSR, childBlock.isComponent)\n );\n }\n }\n childBlock.isBlock = !isStableFragment;\n if (childBlock.isBlock) {\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));\n } else {\n helper(getVNodeHelper(context.inSSR, childBlock.isComponent));\n }\n }\n if (memo) {\n const loop = createFunctionExpression(\n createForLoopParams(forNode.parseResult, [\n createSimpleExpression(`_cached`)\n ])\n );\n loop.body = createBlockStatement([\n createCompoundExpression([`const _memo = (`, memo.exp, `)`]),\n createCompoundExpression([\n `if (_cached`,\n ...keyExp ? [` && _cached.key === `, keyExp] : [],\n ` && ${context.helperString(\n IS_MEMO_SAME\n )}(_cached, _memo)) return _cached`\n ]),\n createCompoundExpression([`const _item = `, childBlock]),\n createSimpleExpression(`_item.memo = _memo`),\n createSimpleExpression(`return _item`)\n ]);\n renderExp.arguments.push(\n loop,\n createSimpleExpression(`_cache`),\n createSimpleExpression(String(context.cached.length))\n );\n context.cached.push(null);\n } else {\n renderExp.arguments.push(\n createFunctionExpression(\n createForLoopParams(forNode.parseResult),\n childBlock,\n true\n )\n );\n }\n };\n });\n }\n);\nfunction processFor(node, dir, context, processCodegen) {\n if (!dir.exp) {\n context.onError(\n createCompilerError(31, dir.loc)\n );\n return;\n }\n const parseResult = dir.forParseResult;\n if (!parseResult) {\n context.onError(\n createCompilerError(32, dir.loc)\n );\n return;\n }\n finalizeForParseResult(parseResult, context);\n const { addIdentifiers, removeIdentifiers, scopes } = context;\n const { source, value, key, index } = parseResult;\n const forNode = {\n type: 11,\n loc: dir.loc,\n source,\n valueAlias: value,\n keyAlias: key,\n objectIndexAlias: index,\n parseResult,\n children: isTemplateNode(node) ? node.children : [node]\n };\n context.replaceNode(forNode);\n scopes.vFor++;\n if (context.prefixIdentifiers) {\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n }\n const onExit = processCodegen && processCodegen(forNode);\n return () => {\n scopes.vFor--;\n if (context.prefixIdentifiers) {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n }\n if (onExit) onExit();\n };\n}\nfunction finalizeForParseResult(result, context) {\n if (result.finalized) return;\n if (context.prefixIdentifiers) {\n result.source = processExpression(\n result.source,\n context\n );\n if (result.key) {\n result.key = processExpression(\n result.key,\n context,\n true\n );\n }\n if (result.index) {\n result.index = processExpression(\n result.index,\n context,\n true\n );\n }\n if (result.value) {\n result.value = processExpression(\n result.value,\n context,\n true\n );\n }\n }\n result.finalized = true;\n}\nfunction createForLoopParams({ value, key, index }, memoArgs = []) {\n return createParamsList([value, key, index, ...memoArgs]);\n}\nfunction createParamsList(args) {\n let i = args.length;\n while (i--) {\n if (args[i]) break;\n }\n return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));\n}\n\nconst defaultFallback = createSimpleExpression(`undefined`, false);\nconst trackSlotScopes = (node, context) => {\n if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {\n const vSlot = findDir(node, \"slot\");\n if (vSlot) {\n const slotProps = vSlot.exp;\n if (context.prefixIdentifiers) {\n slotProps && context.addIdentifiers(slotProps);\n }\n context.scopes.vSlot++;\n return () => {\n if (context.prefixIdentifiers) {\n slotProps && context.removeIdentifiers(slotProps);\n }\n context.scopes.vSlot--;\n };\n }\n }\n};\nconst trackVForSlotScopes = (node, context) => {\n let vFor;\n if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, \"for\"))) {\n const result = vFor.forParseResult;\n if (result) {\n finalizeForParseResult(result, context);\n const { value, key, index } = result;\n const { addIdentifiers, removeIdentifiers } = context;\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n return () => {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n };\n }\n }\n};\nconst buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(\n props,\n children,\n false,\n true,\n children.length ? children[0].loc : loc\n);\nfunction buildSlots(node, context, buildSlotFn = buildClientSlotFn) {\n context.helper(WITH_CTX);\n const { children, loc } = node;\n const slotsProperties = [];\n const dynamicSlots = [];\n let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;\n if (!context.ssr && context.prefixIdentifiers) {\n hasDynamicSlots = hasScopeRef(node, context.identifiers);\n }\n const onComponentSlot = findDir(node, \"slot\", true);\n if (onComponentSlot) {\n const { arg, exp } = onComponentSlot;\n if (arg && !isStaticExp(arg)) {\n hasDynamicSlots = true;\n }\n slotsProperties.push(\n createObjectProperty(\n arg || createSimpleExpression(\"default\", true),\n buildSlotFn(exp, void 0, children, loc)\n )\n );\n }\n let hasTemplateSlots = false;\n let hasNamedDefaultSlot = false;\n const implicitDefaultChildren = [];\n const seenSlotNames = /* @__PURE__ */ new Set();\n let conditionalBranchIndex = 0;\n for (let i = 0; i < children.length; i++) {\n const slotElement = children[i];\n let slotDir;\n if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, \"slot\", true))) {\n if (slotElement.type !== 3) {\n implicitDefaultChildren.push(slotElement);\n }\n continue;\n }\n if (onComponentSlot) {\n context.onError(\n createCompilerError(37, slotDir.loc)\n );\n break;\n }\n hasTemplateSlots = true;\n const { children: slotChildren, loc: slotLoc } = slotElement;\n const {\n arg: slotName = createSimpleExpression(`default`, true),\n exp: slotProps,\n loc: dirLoc\n } = slotDir;\n let staticSlotName;\n if (isStaticExp(slotName)) {\n staticSlotName = slotName ? slotName.content : `default`;\n } else {\n hasDynamicSlots = true;\n }\n const vFor = findDir(slotElement, \"for\");\n const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);\n let vIf;\n let vElse;\n if (vIf = findDir(slotElement, \"if\")) {\n hasDynamicSlots = true;\n dynamicSlots.push(\n createConditionalExpression(\n vIf.exp,\n buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),\n defaultFallback\n )\n );\n } else if (vElse = findDir(\n slotElement,\n /^else(-if)?$/,\n true\n /* allowEmpty */\n )) {\n let j = i;\n let prev;\n while (j--) {\n prev = children[j];\n if (prev.type !== 3) {\n break;\n }\n }\n if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) {\n let conditional = dynamicSlots[dynamicSlots.length - 1];\n while (conditional.alternate.type === 19) {\n conditional = conditional.alternate;\n }\n conditional.alternate = vElse.exp ? createConditionalExpression(\n vElse.exp,\n buildDynamicSlot(\n slotName,\n slotFunction,\n conditionalBranchIndex++\n ),\n defaultFallback\n ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);\n } else {\n context.onError(\n createCompilerError(30, vElse.loc)\n );\n }\n } else if (vFor) {\n hasDynamicSlots = true;\n const parseResult = vFor.forParseResult;\n if (parseResult) {\n finalizeForParseResult(parseResult, context);\n dynamicSlots.push(\n createCallExpression(context.helper(RENDER_LIST), [\n parseResult.source,\n createFunctionExpression(\n createForLoopParams(parseResult),\n buildDynamicSlot(slotName, slotFunction),\n true\n )\n ])\n );\n } else {\n context.onError(\n createCompilerError(\n 32,\n vFor.loc\n )\n );\n }\n } else {\n if (staticSlotName) {\n if (seenSlotNames.has(staticSlotName)) {\n context.onError(\n createCompilerError(\n 38,\n dirLoc\n )\n );\n continue;\n }\n seenSlotNames.add(staticSlotName);\n if (staticSlotName === \"default\") {\n hasNamedDefaultSlot = true;\n }\n }\n slotsProperties.push(createObjectProperty(slotName, slotFunction));\n }\n }\n if (!onComponentSlot) {\n const buildDefaultSlotProperty = (props, children2) => {\n const fn = buildSlotFn(props, void 0, children2, loc);\n if (context.compatConfig) {\n fn.isNonScopedSlot = true;\n }\n return createObjectProperty(`default`, fn);\n };\n if (!hasTemplateSlots) {\n slotsProperties.push(buildDefaultSlotProperty(void 0, children));\n } else if (implicitDefaultChildren.length && // #3766\n // with whitespace: 'preserve', whitespaces between slots will end up in\n // implicitDefaultChildren. Ignore if all implicit children are whitespaces.\n implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) {\n if (hasNamedDefaultSlot) {\n context.onError(\n createCompilerError(\n 39,\n implicitDefaultChildren[0].loc\n )\n );\n } else {\n slotsProperties.push(\n buildDefaultSlotProperty(void 0, implicitDefaultChildren)\n );\n }\n }\n }\n const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;\n let slots = createObjectExpression(\n slotsProperties.concat(\n createObjectProperty(\n `_`,\n // 2 = compiled but dynamic = can skip normalization, but must run diff\n // 1 = compiled and static = can skip normalization AND diff as optimized\n createSimpleExpression(\n slotFlag + (` /* ${shared.slotFlagsText[slotFlag]} */` ),\n false\n )\n )\n ),\n loc\n );\n if (dynamicSlots.length) {\n slots = createCallExpression(context.helper(CREATE_SLOTS), [\n slots,\n createArrayExpression(dynamicSlots)\n ]);\n }\n return {\n slots,\n hasDynamicSlots\n };\n}\nfunction buildDynamicSlot(name, fn, index) {\n const props = [\n createObjectProperty(`name`, name),\n createObjectProperty(`fn`, fn)\n ];\n if (index != null) {\n props.push(\n createObjectProperty(`key`, createSimpleExpression(String(index), true))\n );\n }\n return createObjectExpression(props);\n}\nfunction hasForwardedSlots(children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n switch (child.type) {\n case 1:\n if (child.tagType === 2 || hasForwardedSlots(child.children)) {\n return true;\n }\n break;\n case 9:\n if (hasForwardedSlots(child.branches)) return true;\n break;\n case 10:\n case 11:\n if (hasForwardedSlots(child.children)) return true;\n break;\n }\n }\n return false;\n}\nfunction isNonWhitespaceContent(node) {\n if (node.type !== 2 && node.type !== 12)\n return true;\n return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content);\n}\n\nconst directiveImportMap = /* @__PURE__ */ new WeakMap();\nconst transformElement = (node, context) => {\n return function postTransformElement() {\n node = context.currentNode;\n if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {\n return;\n }\n const { tag, props } = node;\n const isComponent = node.tagType === 1;\n let vnodeTag = isComponent ? resolveComponentType(node, context) : `\"${tag}\"`;\n const isDynamicComponent = shared.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;\n let vnodeProps;\n let vnodeChildren;\n let patchFlag = 0;\n let vnodeDynamicProps;\n let dynamicPropNames;\n let vnodeDirectives;\n let shouldUseBlock = (\n // dynamic component may resolve to plain elements\n isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block\n // updates inside get proper isSVG flag at runtime. (#639, #643)\n // This is technically web-specific, but splitting the logic out of core\n // leads to too much unnecessary complexity.\n (tag === \"svg\" || tag === \"foreignObject\" || tag === \"math\")\n );\n if (props.length > 0) {\n const propsBuildResult = buildProps(\n node,\n context,\n void 0,\n isComponent,\n isDynamicComponent\n );\n vnodeProps = propsBuildResult.props;\n patchFlag = propsBuildResult.patchFlag;\n dynamicPropNames = propsBuildResult.dynamicPropNames;\n const directives = propsBuildResult.directives;\n vnodeDirectives = directives && directives.length ? createArrayExpression(\n directives.map((dir) => buildDirectiveArgs(dir, context))\n ) : void 0;\n if (propsBuildResult.shouldUseBlock) {\n shouldUseBlock = true;\n }\n }\n if (node.children.length > 0) {\n if (vnodeTag === KEEP_ALIVE) {\n shouldUseBlock = true;\n patchFlag |= 1024;\n if (node.children.length > 1) {\n context.onError(\n createCompilerError(46, {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n })\n );\n }\n }\n const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling\n vnodeTag !== TELEPORT && // explained above.\n vnodeTag !== KEEP_ALIVE;\n if (shouldBuildAsSlots) {\n const { slots, hasDynamicSlots } = buildSlots(node, context);\n vnodeChildren = slots;\n if (hasDynamicSlots) {\n patchFlag |= 1024;\n }\n } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {\n const child = node.children[0];\n const type = child.type;\n const hasDynamicTextChild = type === 5 || type === 8;\n if (hasDynamicTextChild && getConstantType(child, context) === 0) {\n patchFlag |= 1;\n }\n if (hasDynamicTextChild || type === 2) {\n vnodeChildren = child;\n } else {\n vnodeChildren = node.children;\n }\n } else {\n vnodeChildren = node.children;\n }\n }\n if (dynamicPropNames && dynamicPropNames.length) {\n vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);\n }\n node.codegenNode = createVNodeCall(\n context,\n vnodeTag,\n vnodeProps,\n vnodeChildren,\n patchFlag === 0 ? void 0 : patchFlag,\n vnodeDynamicProps,\n vnodeDirectives,\n !!shouldUseBlock,\n false,\n isComponent,\n node.loc\n );\n };\n};\nfunction resolveComponentType(node, context, ssr = false) {\n let { tag } = node;\n const isExplicitDynamic = isComponentTag(tag);\n const isProp = findProp(\n node,\n \"is\",\n false,\n true\n /* allow empty */\n );\n if (isProp) {\n if (isExplicitDynamic || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n )) {\n let exp;\n if (isProp.type === 6) {\n exp = isProp.value && createSimpleExpression(isProp.value.content, true);\n } else {\n exp = isProp.exp;\n if (!exp) {\n exp = createSimpleExpression(`is`, false, isProp.arg.loc);\n {\n exp = isProp.exp = processExpression(exp, context);\n }\n }\n }\n if (exp) {\n return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [\n exp\n ]);\n }\n } else if (isProp.type === 6 && isProp.value.content.startsWith(\"vue:\")) {\n tag = isProp.value.content.slice(4);\n }\n }\n const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);\n if (builtIn) {\n if (!ssr) context.helper(builtIn);\n return builtIn;\n }\n {\n const fromSetup = resolveSetupReference(tag, context);\n if (fromSetup) {\n return fromSetup;\n }\n const dotIndex = tag.indexOf(\".\");\n if (dotIndex > 0) {\n const ns = resolveSetupReference(tag.slice(0, dotIndex), context);\n if (ns) {\n return ns + tag.slice(dotIndex);\n }\n }\n }\n if (context.selfName && shared.capitalize(shared.camelize(tag)) === context.selfName) {\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag + `__self`);\n return toValidAssetId(tag, `component`);\n }\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag);\n return toValidAssetId(tag, `component`);\n}\nfunction resolveSetupReference(name, context) {\n const bindings = context.bindingMetadata;\n if (!bindings || bindings.__isScriptSetup === false) {\n return;\n }\n const camelName = shared.camelize(name);\n const PascalName = shared.capitalize(camelName);\n const checkType = (type) => {\n if (bindings[name] === type) {\n return name;\n }\n if (bindings[camelName] === type) {\n return camelName;\n }\n if (bindings[PascalName] === type) {\n return PascalName;\n }\n };\n const fromConst = checkType(\"setup-const\") || checkType(\"setup-reactive-const\") || checkType(\"literal-const\");\n if (fromConst) {\n return context.inline ? (\n // in inline mode, const setup bindings (e.g. imports) can be used as-is\n fromConst\n ) : `$setup[${JSON.stringify(fromConst)}]`;\n }\n const fromMaybeRef = checkType(\"setup-let\") || checkType(\"setup-ref\") || checkType(\"setup-maybe-ref\");\n if (fromMaybeRef) {\n return context.inline ? (\n // setup scope bindings that may be refs need to be unrefed\n `${context.helperString(UNREF)}(${fromMaybeRef})`\n ) : `$setup[${JSON.stringify(fromMaybeRef)}]`;\n }\n const fromProps = checkType(\"props\");\n if (fromProps) {\n return `${context.helperString(UNREF)}(${context.inline ? \"__props\" : \"$props\"}[${JSON.stringify(fromProps)}])`;\n }\n}\nfunction buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {\n const { tag, loc: elementLoc, children } = node;\n let properties = [];\n const mergeArgs = [];\n const runtimeDirectives = [];\n const hasChildren = children.length > 0;\n let shouldUseBlock = false;\n let patchFlag = 0;\n let hasRef = false;\n let hasClassBinding = false;\n let hasStyleBinding = false;\n let hasHydrationEventBinding = false;\n let hasDynamicKeys = false;\n let hasVnodeHook = false;\n const dynamicPropNames = [];\n const pushMergeArg = (arg) => {\n if (properties.length) {\n mergeArgs.push(\n createObjectExpression(dedupeProperties(properties), elementLoc)\n );\n properties = [];\n }\n if (arg) mergeArgs.push(arg);\n };\n const pushRefVForMarker = () => {\n if (context.scopes.vFor > 0) {\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_for\", true),\n createSimpleExpression(\"true\")\n )\n );\n }\n };\n const analyzePatchFlag = ({ key, value }) => {\n if (isStaticExp(key)) {\n const name = key.content;\n const isEventHandler = shared.isOn(name);\n if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click\n // dedicated fast path.\n name.toLowerCase() !== \"onclick\" && // omit v-model handlers\n name !== \"onUpdate:modelValue\" && // omit onVnodeXXX hooks\n !shared.isReservedProp(name)) {\n hasHydrationEventBinding = true;\n }\n if (isEventHandler && shared.isReservedProp(name)) {\n hasVnodeHook = true;\n }\n if (isEventHandler && value.type === 14) {\n value = value.arguments[0];\n }\n if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {\n return;\n }\n if (name === \"ref\") {\n hasRef = true;\n } else if (name === \"class\") {\n hasClassBinding = true;\n } else if (name === \"style\") {\n hasStyleBinding = true;\n } else if (name !== \"key\" && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n if (isComponent && (name === \"class\" || name === \"style\") && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n } else {\n hasDynamicKeys = true;\n }\n };\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 6) {\n const { loc, name, nameLoc, value } = prop;\n let isStatic = true;\n if (name === \"ref\") {\n hasRef = true;\n pushRefVForMarker();\n if (value && context.inline) {\n const binding = context.bindingMetadata[value.content];\n if (binding === \"setup-let\" || binding === \"setup-ref\" || binding === \"setup-maybe-ref\") {\n isStatic = false;\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_key\", true),\n createSimpleExpression(value.content, true, value.loc)\n )\n );\n }\n }\n }\n if (name === \"is\" && (isComponentTag(tag) || value && value.content.startsWith(\"vue:\") || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n properties.push(\n createObjectProperty(\n createSimpleExpression(name, true, nameLoc),\n createSimpleExpression(\n value ? value.content : \"\",\n isStatic,\n value ? value.loc : loc\n )\n )\n );\n } else {\n const { name, arg, exp, loc, modifiers } = prop;\n const isVBind = name === \"bind\";\n const isVOn = name === \"on\";\n if (name === \"slot\") {\n if (!isComponent) {\n context.onError(\n createCompilerError(40, loc)\n );\n }\n continue;\n }\n if (name === \"once\" || name === \"memo\") {\n continue;\n }\n if (name === \"is\" || isVBind && isStaticArgOf(arg, \"is\") && (isComponentTag(tag) || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n if (isVOn && ssr) {\n continue;\n }\n if (\n // #938: elements with dynamic keys should be forced into blocks\n isVBind && isStaticArgOf(arg, \"key\") || // inline before-update hooks need to force block so that it is invoked\n // before children\n isVOn && hasChildren && isStaticArgOf(arg, \"vue:before-update\")\n ) {\n shouldUseBlock = true;\n }\n if (isVBind && isStaticArgOf(arg, \"ref\")) {\n pushRefVForMarker();\n }\n if (!arg && (isVBind || isVOn)) {\n hasDynamicKeys = true;\n if (exp) {\n if (isVBind) {\n pushRefVForMarker();\n pushMergeArg();\n {\n {\n const hasOverridableKeys = mergeArgs.some((arg2) => {\n if (arg2.type === 15) {\n return arg2.properties.some(({ key }) => {\n if (key.type !== 4 || !key.isStatic) {\n return true;\n }\n return key.content !== \"class\" && key.content !== \"style\" && !shared.isOn(key.content);\n });\n } else {\n return true;\n }\n });\n if (hasOverridableKeys) {\n checkCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context,\n loc\n );\n }\n }\n if (isCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context\n )) {\n mergeArgs.unshift(exp);\n continue;\n }\n }\n mergeArgs.push(exp);\n } else {\n pushMergeArg({\n type: 14,\n loc,\n callee: context.helper(TO_HANDLERS),\n arguments: isComponent ? [exp] : [exp, `true`]\n });\n }\n } else {\n context.onError(\n createCompilerError(\n isVBind ? 34 : 35,\n loc\n )\n );\n }\n continue;\n }\n if (isVBind && modifiers.some((mod) => mod.content === \"prop\")) {\n patchFlag |= 32;\n }\n const directiveTransform = context.directiveTransforms[name];\n if (directiveTransform) {\n const { props: props2, needRuntime } = directiveTransform(prop, node, context);\n !ssr && props2.forEach(analyzePatchFlag);\n if (isVOn && arg && !isStaticExp(arg)) {\n pushMergeArg(createObjectExpression(props2, elementLoc));\n } else {\n properties.push(...props2);\n }\n if (needRuntime) {\n runtimeDirectives.push(prop);\n if (shared.isSymbol(needRuntime)) {\n directiveImportMap.set(prop, needRuntime);\n }\n }\n } else if (!shared.isBuiltInDirective(name)) {\n runtimeDirectives.push(prop);\n if (hasChildren) {\n shouldUseBlock = true;\n }\n }\n }\n }\n let propsExpression = void 0;\n if (mergeArgs.length) {\n pushMergeArg();\n if (mergeArgs.length > 1) {\n propsExpression = createCallExpression(\n context.helper(MERGE_PROPS),\n mergeArgs,\n elementLoc\n );\n } else {\n propsExpression = mergeArgs[0];\n }\n } else if (properties.length) {\n propsExpression = createObjectExpression(\n dedupeProperties(properties),\n elementLoc\n );\n }\n if (hasDynamicKeys) {\n patchFlag |= 16;\n } else {\n if (hasClassBinding && !isComponent) {\n patchFlag |= 2;\n }\n if (hasStyleBinding && !isComponent) {\n patchFlag |= 4;\n }\n if (dynamicPropNames.length) {\n patchFlag |= 8;\n }\n if (hasHydrationEventBinding) {\n patchFlag |= 32;\n }\n }\n if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {\n patchFlag |= 512;\n }\n if (!context.inSSR && propsExpression) {\n switch (propsExpression.type) {\n case 15:\n let classKeyIndex = -1;\n let styleKeyIndex = -1;\n let hasDynamicKey = false;\n for (let i = 0; i < propsExpression.properties.length; i++) {\n const key = propsExpression.properties[i].key;\n if (isStaticExp(key)) {\n if (key.content === \"class\") {\n classKeyIndex = i;\n } else if (key.content === \"style\") {\n styleKeyIndex = i;\n }\n } else if (!key.isHandlerKey) {\n hasDynamicKey = true;\n }\n }\n const classProp = propsExpression.properties[classKeyIndex];\n const styleProp = propsExpression.properties[styleKeyIndex];\n if (!hasDynamicKey) {\n if (classProp && !isStaticExp(classProp.value)) {\n classProp.value = createCallExpression(\n context.helper(NORMALIZE_CLASS),\n [classProp.value]\n );\n }\n if (styleProp && // the static style is compiled into an object,\n // so use `hasStyleBinding` to ensure that it is a dynamic style binding\n (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,\n // v-bind:style with static literal object\n styleProp.value.type === 17)) {\n styleProp.value = createCallExpression(\n context.helper(NORMALIZE_STYLE),\n [styleProp.value]\n );\n }\n } else {\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [propsExpression]\n );\n }\n break;\n case 14:\n break;\n default:\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [\n createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [\n propsExpression\n ])\n ]\n );\n break;\n }\n }\n return {\n props: propsExpression,\n directives: runtimeDirectives,\n patchFlag,\n dynamicPropNames,\n shouldUseBlock\n };\n}\nfunction dedupeProperties(properties) {\n const knownProps = /* @__PURE__ */ new Map();\n const deduped = [];\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i];\n if (prop.key.type === 8 || !prop.key.isStatic) {\n deduped.push(prop);\n continue;\n }\n const name = prop.key.content;\n const existing = knownProps.get(name);\n if (existing) {\n if (name === \"style\" || name === \"class\" || shared.isOn(name)) {\n mergeAsArray(existing, prop);\n }\n } else {\n knownProps.set(name, prop);\n deduped.push(prop);\n }\n }\n return deduped;\n}\nfunction mergeAsArray(existing, incoming) {\n if (existing.value.type === 17) {\n existing.value.elements.push(incoming.value);\n } else {\n existing.value = createArrayExpression(\n [existing.value, incoming.value],\n existing.loc\n );\n }\n}\nfunction buildDirectiveArgs(dir, context) {\n const dirArgs = [];\n const runtime = directiveImportMap.get(dir);\n if (runtime) {\n dirArgs.push(context.helperString(runtime));\n } else {\n const fromSetup = resolveSetupReference(\"v-\" + dir.name, context);\n if (fromSetup) {\n dirArgs.push(fromSetup);\n } else {\n context.helper(RESOLVE_DIRECTIVE);\n context.directives.add(dir.name);\n dirArgs.push(toValidAssetId(dir.name, `directive`));\n }\n }\n const { loc } = dir;\n if (dir.exp) dirArgs.push(dir.exp);\n if (dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(dir.arg);\n }\n if (Object.keys(dir.modifiers).length) {\n if (!dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(`void 0`);\n }\n const trueExpression = createSimpleExpression(`true`, false, loc);\n dirArgs.push(\n createObjectExpression(\n dir.modifiers.map(\n (modifier) => createObjectProperty(modifier, trueExpression)\n ),\n loc\n )\n );\n }\n return createArrayExpression(dirArgs, dir.loc);\n}\nfunction stringifyDynamicPropNames(props) {\n let propsNamesString = `[`;\n for (let i = 0, l = props.length; i < l; i++) {\n propsNamesString += JSON.stringify(props[i]);\n if (i < l - 1) propsNamesString += \", \";\n }\n return propsNamesString + `]`;\n}\nfunction isComponentTag(tag) {\n return tag === \"component\" || tag === \"Component\";\n}\n\nconst transformSlotOutlet = (node, context) => {\n if (isSlotOutlet(node)) {\n const { children, loc } = node;\n const { slotName, slotProps } = processSlotOutlet(node, context);\n const slotArgs = [\n context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,\n slotName,\n \"{}\",\n \"undefined\",\n \"true\"\n ];\n let expectedLen = 2;\n if (slotProps) {\n slotArgs[2] = slotProps;\n expectedLen = 3;\n }\n if (children.length) {\n slotArgs[3] = createFunctionExpression([], children, false, false, loc);\n expectedLen = 4;\n }\n if (context.scopeId && !context.slotted) {\n expectedLen = 5;\n }\n slotArgs.splice(expectedLen);\n node.codegenNode = createCallExpression(\n context.helper(RENDER_SLOT),\n slotArgs,\n loc\n );\n }\n};\nfunction processSlotOutlet(node, context) {\n let slotName = `\"default\"`;\n let slotProps = void 0;\n const nonNameProps = [];\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (p.value) {\n if (p.name === \"name\") {\n slotName = JSON.stringify(p.value.content);\n } else {\n p.name = shared.camelize(p.name);\n nonNameProps.push(p);\n }\n }\n } else {\n if (p.name === \"bind\" && isStaticArgOf(p.arg, \"name\")) {\n if (p.exp) {\n slotName = p.exp;\n } else if (p.arg && p.arg.type === 4) {\n const name = shared.camelize(p.arg.content);\n slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);\n {\n slotName = p.exp = processExpression(p.exp, context);\n }\n }\n } else {\n if (p.name === \"bind\" && p.arg && isStaticExp(p.arg)) {\n p.arg.content = shared.camelize(p.arg.content);\n }\n nonNameProps.push(p);\n }\n }\n }\n if (nonNameProps.length > 0) {\n const { props, directives } = buildProps(\n node,\n context,\n nonNameProps,\n false,\n false\n );\n slotProps = props;\n if (directives.length) {\n context.onError(\n createCompilerError(\n 36,\n directives[0].loc\n )\n );\n }\n }\n return {\n slotName,\n slotProps\n };\n}\n\nconst transformOn = (dir, node, context, augmentor) => {\n const { loc, modifiers, arg } = dir;\n if (!dir.exp && !modifiers.length) {\n context.onError(createCompilerError(35, loc));\n }\n let eventName;\n if (arg.type === 4) {\n if (arg.isStatic) {\n let rawName = arg.content;\n if (rawName.startsWith(\"vnode\")) {\n context.onError(createCompilerError(51, arg.loc));\n }\n if (rawName.startsWith(\"vue:\")) {\n rawName = `vnode-${rawName.slice(4)}`;\n }\n const eventString = node.tagType !== 0 || rawName.startsWith(\"vnode\") || !/[A-Z]/.test(rawName) ? (\n // for non-element and vnode lifecycle event listeners, auto convert\n // it to camelCase. See issue #2249\n shared.toHandlerKey(shared.camelize(rawName))\n ) : (\n // preserve case for plain element listeners that have uppercase\n // letters, as these may be custom elements' custom events\n `on:${rawName}`\n );\n eventName = createSimpleExpression(eventString, true, arg.loc);\n } else {\n eventName = createCompoundExpression([\n `${context.helperString(TO_HANDLER_KEY)}(`,\n arg,\n `)`\n ]);\n }\n } else {\n eventName = arg;\n eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);\n eventName.children.push(`)`);\n }\n let exp = dir.exp;\n if (exp && !exp.content.trim()) {\n exp = void 0;\n }\n let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;\n if (exp) {\n const isMemberExp = isMemberExpression(exp, context);\n const isInlineStatement = !(isMemberExp || isFnExpression(exp, context));\n const hasMultipleStatements = exp.content.includes(`;`);\n if (context.prefixIdentifiers) {\n isInlineStatement && context.addIdentifiers(`$event`);\n exp = dir.exp = processExpression(\n exp,\n context,\n false,\n hasMultipleStatements\n );\n isInlineStatement && context.removeIdentifiers(`$event`);\n shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once\n !context.inVOnce && // runtime constants don't need to be cached\n // (this is analyzed by compileScript in SFC <script setup>)\n !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component -\n // we need to use the original function to preserve arity,\n // e.g. <transition> relies on checking cb.length to determine\n // transition end handling. Inline function is ok since its arity\n // is preserved even when cached.\n !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot)\n // it must be passed fresh to avoid stale values.\n !hasScopeRef(exp, context.identifiers);\n if (shouldCache && isMemberExp) {\n if (exp.type === 4) {\n exp.content = `${exp.content} && ${exp.content}(...args)`;\n } else {\n exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`];\n }\n }\n }\n if (isInlineStatement || shouldCache && isMemberExp) {\n exp = createCompoundExpression([\n `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,\n exp,\n hasMultipleStatements ? `}` : `)`\n ]);\n }\n }\n let ret = {\n props: [\n createObjectProperty(\n eventName,\n exp || createSimpleExpression(`() => {}`, false, loc)\n )\n ]\n };\n if (augmentor) {\n ret = augmentor(ret);\n }\n if (shouldCache) {\n ret.props[0].value = context.cache(ret.props[0].value);\n }\n ret.props.forEach((p) => p.key.isHandlerKey = true);\n return ret;\n};\n\nconst transformText = (node, context) => {\n if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {\n return () => {\n const children = node.children;\n let currentContainer = void 0;\n let hasText = false;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child)) {\n hasText = true;\n for (let j = i + 1; j < children.length; j++) {\n const next = children[j];\n if (isText$1(next)) {\n if (!currentContainer) {\n currentContainer = children[i] = createCompoundExpression(\n [child],\n child.loc\n );\n }\n currentContainer.children.push(` + `, next);\n children.splice(j, 1);\n j--;\n } else {\n currentContainer = void 0;\n break;\n }\n }\n }\n }\n if (!hasText || // if this is a plain element with a single text child, leave it\n // as-is since the runtime has dedicated fast path for this by directly\n // setting textContent of the element.\n // for component root it's always normalized anyway.\n children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756\n // custom directives can potentially add DOM elements arbitrarily,\n // we need to avoid setting textContent of the element at runtime\n // to avoid accidentally overwriting the DOM elements added\n // by the user through custom directives.\n !node.props.find(\n (p) => p.type === 7 && !context.directiveTransforms[p.name]\n ) && // in compat mode, <template> tags with no special directives\n // will be rendered as a fragment so its children must be\n // converted into vnodes.\n !(node.tag === \"template\"))) {\n return;\n }\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child) || child.type === 8) {\n const callArgs = [];\n if (child.type !== 2 || child.content !== \" \") {\n callArgs.push(child);\n }\n if (!context.ssr && getConstantType(child, context) === 0) {\n callArgs.push(\n 1 + (` /* ${shared.PatchFlagNames[1]} */` )\n );\n }\n children[i] = {\n type: 12,\n content: child,\n loc: child.loc,\n codegenNode: createCallExpression(\n context.helper(CREATE_TEXT),\n callArgs\n )\n };\n }\n }\n };\n }\n};\n\nconst seen$1 = /* @__PURE__ */ new WeakSet();\nconst transformOnce = (node, context) => {\n if (node.type === 1 && findDir(node, \"once\", true)) {\n if (seen$1.has(node) || context.inVOnce || context.inSSR) {\n return;\n }\n seen$1.add(node);\n context.inVOnce = true;\n context.helper(SET_BLOCK_TRACKING);\n return () => {\n context.inVOnce = false;\n const cur = context.currentNode;\n if (cur.codegenNode) {\n cur.codegenNode = context.cache(\n cur.codegenNode,\n true\n /* isVNode */\n );\n }\n };\n }\n};\n\nconst transformModel = (dir, node, context) => {\n const { exp, arg } = dir;\n if (!exp) {\n context.onError(\n createCompilerError(41, dir.loc)\n );\n return createTransformProps();\n }\n const rawExp = exp.loc.source.trim();\n const expString = exp.type === 4 ? exp.content : rawExp;\n const bindingType = context.bindingMetadata[rawExp];\n if (bindingType === \"props\" || bindingType === \"props-aliased\") {\n context.onError(createCompilerError(44, exp.loc));\n return createTransformProps();\n }\n const maybeRef = context.inline && (bindingType === \"setup-let\" || bindingType === \"setup-ref\" || bindingType === \"setup-maybe-ref\");\n if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) {\n context.onError(\n createCompilerError(42, exp.loc)\n );\n return createTransformProps();\n }\n if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) {\n context.onError(\n createCompilerError(43, exp.loc)\n );\n return createTransformProps();\n }\n const propName = arg ? arg : createSimpleExpression(\"modelValue\", true);\n const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared.camelize(arg.content)}` : createCompoundExpression(['\"onUpdate:\" + ', arg]) : `onUpdate:modelValue`;\n let assignmentExp;\n const eventArg = context.isTS ? `($event: any)` : `$event`;\n if (maybeRef) {\n if (bindingType === \"setup-ref\") {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n createSimpleExpression(rawExp, false, exp.loc),\n `).value = $event)`\n ]);\n } else {\n const altAssignment = bindingType === \"setup-let\" ? `${rawExp} = $event` : `null`;\n assignmentExp = createCompoundExpression([\n `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,\n createSimpleExpression(rawExp, false, exp.loc),\n `).value = $event : ${altAssignment})`\n ]);\n }\n } else {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n exp,\n `) = $event)`\n ]);\n }\n const props = [\n // modelValue: foo\n createObjectProperty(propName, dir.exp),\n // \"onUpdate:modelValue\": $event => (foo = $event)\n createObjectProperty(eventName, assignmentExp)\n ];\n if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) {\n props[1].value = context.cache(props[1].value);\n }\n if (dir.modifiers.length && node.tagType === 1) {\n const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);\n const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + \"Modifiers\"']) : `modelModifiers`;\n props.push(\n createObjectProperty(\n modifiersKey,\n createSimpleExpression(\n `{ ${modifiers} }`,\n false,\n dir.loc,\n 2\n )\n )\n );\n }\n return createTransformProps(props);\n};\nfunction createTransformProps(props = []) {\n return { props };\n}\n\nconst validDivisionCharRE = /[\\w).+\\-_$\\]]/;\nconst transformFilter = (node, context) => {\n if (!isCompatEnabled(\"COMPILER_FILTERS\", context)) {\n return;\n }\n if (node.type === 5) {\n rewriteFilter(node.content, context);\n } else if (node.type === 1) {\n node.props.forEach((prop) => {\n if (prop.type === 7 && prop.name !== \"for\" && prop.exp) {\n rewriteFilter(prop.exp, context);\n }\n });\n }\n};\nfunction rewriteFilter(node, context) {\n if (node.type === 4) {\n parseFilter(node, context);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (typeof child !== \"object\") continue;\n if (child.type === 4) {\n parseFilter(child, context);\n } else if (child.type === 8) {\n rewriteFilter(node, context);\n } else if (child.type === 5) {\n rewriteFilter(child.content, context);\n }\n }\n }\n}\nfunction parseFilter(node, context) {\n const exp = node.content;\n let inSingle = false;\n let inDouble = false;\n let inTemplateString = false;\n let inRegex = false;\n let curly = 0;\n let square = 0;\n let paren = 0;\n let lastFilterIndex = 0;\n let c, prev, i, expression, filters = [];\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 39 && prev !== 92) inSingle = false;\n } else if (inDouble) {\n if (c === 34 && prev !== 92) inDouble = false;\n } else if (inTemplateString) {\n if (c === 96 && prev !== 92) inTemplateString = false;\n } else if (inRegex) {\n if (c === 47 && prev !== 92) inRegex = false;\n } else if (c === 124 && // pipe\n exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {\n if (expression === void 0) {\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 34:\n inDouble = true;\n break;\n // \"\n case 39:\n inSingle = true;\n break;\n // '\n case 96:\n inTemplateString = true;\n break;\n // `\n case 40:\n paren++;\n break;\n // (\n case 41:\n paren--;\n break;\n // )\n case 91:\n square++;\n break;\n // [\n case 93:\n square--;\n break;\n // ]\n case 123:\n curly++;\n break;\n // {\n case 125:\n curly--;\n break;\n }\n if (c === 47) {\n let j = i - 1;\n let p;\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== \" \") break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === void 0) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n filters.push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters.length) {\n warnDeprecation(\n \"COMPILER_FILTERS\",\n context,\n node.loc\n );\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i], context);\n }\n node.content = expression;\n node.ast = void 0;\n }\n}\nfunction wrapFilter(exp, filter, context) {\n context.helper(RESOLVE_FILTER);\n const i = filter.indexOf(\"(\");\n if (i < 0) {\n context.filters.add(filter);\n return `${toValidAssetId(filter, \"filter\")}(${exp})`;\n } else {\n const name = filter.slice(0, i);\n const args = filter.slice(i + 1);\n context.filters.add(name);\n return `${toValidAssetId(name, \"filter\")}(${exp}${args !== \")\" ? \",\" + args : args}`;\n }\n}\n\nconst seen = /* @__PURE__ */ new WeakSet();\nconst transformMemo = (node, context) => {\n if (node.type === 1) {\n const dir = findDir(node, \"memo\");\n if (!dir || seen.has(node)) {\n return;\n }\n seen.add(node);\n return () => {\n const codegenNode = node.codegenNode || context.currentNode.codegenNode;\n if (codegenNode && codegenNode.type === 13) {\n if (node.tagType !== 1) {\n convertToBlock(codegenNode, context);\n }\n node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [\n dir.exp,\n createFunctionExpression(void 0, codegenNode),\n `_cache`,\n String(context.cached.length)\n ]);\n context.cached.push(null);\n }\n };\n }\n};\n\nfunction getBaseTransformPreset(prefixIdentifiers) {\n return [\n [\n transformOnce,\n transformIf,\n transformMemo,\n transformFor,\n ...[transformFilter] ,\n ...prefixIdentifiers ? [\n // order is important\n trackVForSlotScopes,\n transformExpression\n ] : [],\n transformSlotOutlet,\n transformElement,\n trackSlotScopes,\n transformText\n ],\n {\n on: transformOn,\n bind: transformBind,\n model: transformModel\n }\n ];\n}\nfunction baseCompile(source, options = {}) {\n const onError = options.onError || defaultOnError;\n const isModuleMode = options.mode === \"module\";\n const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode;\n if (!prefixIdentifiers && options.cacheHandlers) {\n onError(createCompilerError(49));\n }\n if (options.scopeId && !isModuleMode) {\n onError(createCompilerError(50));\n }\n const resolvedOptions = shared.extend({}, options, {\n prefixIdentifiers\n });\n const ast = shared.isString(source) ? baseParse(source, resolvedOptions) : source;\n const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers);\n if (options.isTS) {\n const { expressionPlugins } = options;\n if (!expressionPlugins || !expressionPlugins.includes(\"typescript\")) {\n options.expressionPlugins = [...expressionPlugins || [], \"typescript\"];\n }\n }\n transform(\n ast,\n shared.extend({}, resolvedOptions, {\n nodeTransforms: [\n ...nodeTransforms,\n ...options.nodeTransforms || []\n // user transforms\n ],\n directiveTransforms: shared.extend(\n {},\n directiveTransforms,\n options.directiveTransforms || {}\n // user transforms\n )\n })\n );\n return generate(ast, resolvedOptions);\n}\n\nconst BindingTypes = {\n \"DATA\": \"data\",\n \"PROPS\": \"props\",\n \"PROPS_ALIASED\": \"props-aliased\",\n \"SETUP_LET\": \"setup-let\",\n \"SETUP_CONST\": \"setup-const\",\n \"SETUP_REACTIVE_CONST\": \"setup-reactive-const\",\n \"SETUP_MAYBE_REF\": \"setup-maybe-ref\",\n \"SETUP_REF\": \"setup-ref\",\n \"OPTIONS\": \"options\",\n \"LITERAL_CONST\": \"literal-const\"\n};\n\nconst noopDirectiveTransform = () => ({ props: [] });\n\nexports.generateCodeFrame = shared.generateCodeFrame;\nexports.BASE_TRANSITION = BASE_TRANSITION;\nexports.BindingTypes = BindingTypes;\nexports.CAMELIZE = CAMELIZE;\nexports.CAPITALIZE = CAPITALIZE;\nexports.CREATE_BLOCK = CREATE_BLOCK;\nexports.CREATE_COMMENT = CREATE_COMMENT;\nexports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK;\nexports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE;\nexports.CREATE_SLOTS = CREATE_SLOTS;\nexports.CREATE_STATIC = CREATE_STATIC;\nexports.CREATE_TEXT = CREATE_TEXT;\nexports.CREATE_VNODE = CREATE_VNODE;\nexports.CompilerDeprecationTypes = CompilerDeprecationTypes;\nexports.ConstantTypes = ConstantTypes;\nexports.ElementTypes = ElementTypes;\nexports.ErrorCodes = ErrorCodes;\nexports.FRAGMENT = FRAGMENT;\nexports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS;\nexports.IS_MEMO_SAME = IS_MEMO_SAME;\nexports.IS_REF = IS_REF;\nexports.KEEP_ALIVE = KEEP_ALIVE;\nexports.MERGE_PROPS = MERGE_PROPS;\nexports.NORMALIZE_CLASS = NORMALIZE_CLASS;\nexports.NORMALIZE_PROPS = NORMALIZE_PROPS;\nexports.NORMALIZE_STYLE = NORMALIZE_STYLE;\nexports.Namespaces = Namespaces;\nexports.NodeTypes = NodeTypes;\nexports.OPEN_BLOCK = OPEN_BLOCK;\nexports.POP_SCOPE_ID = POP_SCOPE_ID;\nexports.PUSH_SCOPE_ID = PUSH_SCOPE_ID;\nexports.RENDER_LIST = RENDER_LIST;\nexports.RENDER_SLOT = RENDER_SLOT;\nexports.RESOLVE_COMPONENT = RESOLVE_COMPONENT;\nexports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE;\nexports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT;\nexports.RESOLVE_FILTER = RESOLVE_FILTER;\nexports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING;\nexports.SUSPENSE = SUSPENSE;\nexports.TELEPORT = TELEPORT;\nexports.TO_DISPLAY_STRING = TO_DISPLAY_STRING;\nexports.TO_HANDLERS = TO_HANDLERS;\nexports.TO_HANDLER_KEY = TO_HANDLER_KEY;\nexports.TS_NODE_TYPES = TS_NODE_TYPES;\nexports.UNREF = UNREF;\nexports.WITH_CTX = WITH_CTX;\nexports.WITH_DIRECTIVES = WITH_DIRECTIVES;\nexports.WITH_MEMO = WITH_MEMO;\nexports.advancePositionWithClone = advancePositionWithClone;\nexports.advancePositionWithMutation = advancePositionWithMutation;\nexports.assert = assert;\nexports.baseCompile = baseCompile;\nexports.baseParse = baseParse;\nexports.buildDirectiveArgs = buildDirectiveArgs;\nexports.buildProps = buildProps;\nexports.buildSlots = buildSlots;\nexports.checkCompatEnabled = checkCompatEnabled;\nexports.convertToBlock = convertToBlock;\nexports.createArrayExpression = createArrayExpression;\nexports.createAssignmentExpression = createAssignmentExpression;\nexports.createBlockStatement = createBlockStatement;\nexports.createCacheExpression = createCacheExpression;\nexports.createCallExpression = createCallExpression;\nexports.createCompilerError = createCompilerError;\nexports.createCompoundExpression = createCompoundExpression;\nexports.createConditionalExpression = createConditionalExpression;\nexports.createForLoopParams = createForLoopParams;\nexports.createFunctionExpression = createFunctionExpression;\nexports.createIfStatement = createIfStatement;\nexports.createInterpolation = createInterpolation;\nexports.createObjectExpression = createObjectExpression;\nexports.createObjectProperty = createObjectProperty;\nexports.createReturnStatement = createReturnStatement;\nexports.createRoot = createRoot;\nexports.createSequenceExpression = createSequenceExpression;\nexports.createSimpleExpression = createSimpleExpression;\nexports.createStructuralDirectiveTransform = createStructuralDirectiveTransform;\nexports.createTemplateLiteral = createTemplateLiteral;\nexports.createTransformContext = createTransformContext;\nexports.createVNodeCall = createVNodeCall;\nexports.errorMessages = errorMessages;\nexports.extractIdentifiers = extractIdentifiers;\nexports.findDir = findDir;\nexports.findProp = findProp;\nexports.forAliasRE = forAliasRE;\nexports.generate = generate;\nexports.getBaseTransformPreset = getBaseTransformPreset;\nexports.getConstantType = getConstantType;\nexports.getMemoedVNodeCall = getMemoedVNodeCall;\nexports.getVNodeBlockHelper = getVNodeBlockHelper;\nexports.getVNodeHelper = getVNodeHelper;\nexports.hasDynamicKeyVBind = hasDynamicKeyVBind;\nexports.hasScopeRef = hasScopeRef;\nexports.helperNameMap = helperNameMap;\nexports.injectProp = injectProp;\nexports.isCoreComponent = isCoreComponent;\nexports.isFnExpression = isFnExpression;\nexports.isFnExpressionBrowser = isFnExpressionBrowser;\nexports.isFnExpressionNode = isFnExpressionNode;\nexports.isFunctionType = isFunctionType;\nexports.isInDestructureAssignment = isInDestructureAssignment;\nexports.isInNewExpression = isInNewExpression;\nexports.isMemberExpression = isMemberExpression;\nexports.isMemberExpressionBrowser = isMemberExpressionBrowser;\nexports.isMemberExpressionNode = isMemberExpressionNode;\nexports.isReferencedIdentifier = isReferencedIdentifier;\nexports.isSimpleIdentifier = isSimpleIdentifier;\nexports.isSlotOutlet = isSlotOutlet;\nexports.isStaticArgOf = isStaticArgOf;\nexports.isStaticExp = isStaticExp;\nexports.isStaticProperty = isStaticProperty;\nexports.isStaticPropertyKey = isStaticPropertyKey;\nexports.isTemplateNode = isTemplateNode;\nexports.isText = isText$1;\nexports.isVSlot = isVSlot;\nexports.locStub = locStub;\nexports.noopDirectiveTransform = noopDirectiveTransform;\nexports.processExpression = processExpression;\nexports.processFor = processFor;\nexports.processIf = processIf;\nexports.processSlotOutlet = processSlotOutlet;\nexports.registerRuntimeHelpers = registerRuntimeHelpers;\nexports.resolveComponentType = resolveComponentType;\nexports.stringifyExpression = stringifyExpression;\nexports.toValidAssetId = toValidAssetId;\nexports.trackSlotScopes = trackSlotScopes;\nexports.trackVForSlotScopes = trackVForSlotScopes;\nexports.transform = transform;\nexports.transformBind = transformBind;\nexports.transformElement = transformElement;\nexports.transformExpression = transformExpression;\nexports.transformModel = transformModel;\nexports.transformOn = transformOn;\nexports.traverseNode = traverseNode;\nexports.unwrapTSNode = unwrapTSNode;\nexports.walkBlockDeclarations = walkBlockDeclarations;\nexports.walkFunctionParams = walkFunctionParams;\nexports.walkIdentifiers = walkIdentifiers;\nexports.warnDeprecation = warnDeprecation;\n",
24
- "/**\n* @vue/compiler-dom v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar compilerCore = require('@vue/compiler-core');\nvar shared = require('@vue/shared');\n\nconst V_MODEL_RADIO = Symbol(`vModelRadio` );\nconst V_MODEL_CHECKBOX = Symbol(\n `vModelCheckbox` \n);\nconst V_MODEL_TEXT = Symbol(`vModelText` );\nconst V_MODEL_SELECT = Symbol(\n `vModelSelect` \n);\nconst V_MODEL_DYNAMIC = Symbol(\n `vModelDynamic` \n);\nconst V_ON_WITH_MODIFIERS = Symbol(\n `vOnModifiersGuard` \n);\nconst V_ON_WITH_KEYS = Symbol(\n `vOnKeysGuard` \n);\nconst V_SHOW = Symbol(`vShow` );\nconst TRANSITION = Symbol(`Transition` );\nconst TRANSITION_GROUP = Symbol(\n `TransitionGroup` \n);\ncompilerCore.registerRuntimeHelpers({\n [V_MODEL_RADIO]: `vModelRadio`,\n [V_MODEL_CHECKBOX]: `vModelCheckbox`,\n [V_MODEL_TEXT]: `vModelText`,\n [V_MODEL_SELECT]: `vModelSelect`,\n [V_MODEL_DYNAMIC]: `vModelDynamic`,\n [V_ON_WITH_MODIFIERS]: `withModifiers`,\n [V_ON_WITH_KEYS]: `withKeys`,\n [V_SHOW]: `vShow`,\n [TRANSITION]: `Transition`,\n [TRANSITION_GROUP]: `TransitionGroup`\n});\n\nconst parserOptions = {\n parseMode: \"html\",\n isVoidTag: shared.isVoidTag,\n isNativeTag: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag),\n isPreTag: (tag) => tag === \"pre\",\n isIgnoreNewlineTag: (tag) => tag === \"pre\" || tag === \"textarea\",\n decodeEntities: void 0,\n isBuiltInComponent: (tag) => {\n if (tag === \"Transition\" || tag === \"transition\") {\n return TRANSITION;\n } else if (tag === \"TransitionGroup\" || tag === \"transition-group\") {\n return TRANSITION_GROUP;\n }\n },\n // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher\n getNamespace(tag, parent, rootNamespace) {\n let ns = parent ? parent.ns : rootNamespace;\n if (parent && ns === 2) {\n if (parent.tag === \"annotation-xml\") {\n if (tag === \"svg\") {\n return 1;\n }\n if (parent.props.some(\n (a) => a.type === 6 && a.name === \"encoding\" && a.value != null && (a.value.content === \"text/html\" || a.value.content === \"application/xhtml+xml\")\n )) {\n ns = 0;\n }\n } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== \"mglyph\" && tag !== \"malignmark\") {\n ns = 0;\n }\n } else if (parent && ns === 1) {\n if (parent.tag === \"foreignObject\" || parent.tag === \"desc\" || parent.tag === \"title\") {\n ns = 0;\n }\n }\n if (ns === 0) {\n if (tag === \"svg\") {\n return 1;\n }\n if (tag === \"math\") {\n return 2;\n }\n }\n return ns;\n }\n};\n\nconst transformStyle = (node) => {\n if (node.type === 1) {\n node.props.forEach((p, i) => {\n if (p.type === 6 && p.name === \"style\" && p.value) {\n node.props[i] = {\n type: 7,\n name: `bind`,\n arg: compilerCore.createSimpleExpression(`style`, true, p.loc),\n exp: parseInlineCSS(p.value.content, p.loc),\n modifiers: [],\n loc: p.loc\n };\n }\n });\n }\n};\nconst parseInlineCSS = (cssText, loc) => {\n const normalized = shared.parseStringStyle(cssText);\n return compilerCore.createSimpleExpression(\n JSON.stringify(normalized),\n false,\n loc,\n 3\n );\n};\n\nfunction createDOMCompilerError(code, loc) {\n return compilerCore.createCompilerError(\n code,\n loc,\n DOMErrorMessages \n );\n}\nconst DOMErrorCodes = {\n \"X_V_HTML_NO_EXPRESSION\": 53,\n \"53\": \"X_V_HTML_NO_EXPRESSION\",\n \"X_V_HTML_WITH_CHILDREN\": 54,\n \"54\": \"X_V_HTML_WITH_CHILDREN\",\n \"X_V_TEXT_NO_EXPRESSION\": 55,\n \"55\": \"X_V_TEXT_NO_EXPRESSION\",\n \"X_V_TEXT_WITH_CHILDREN\": 56,\n \"56\": \"X_V_TEXT_WITH_CHILDREN\",\n \"X_V_MODEL_ON_INVALID_ELEMENT\": 57,\n \"57\": \"X_V_MODEL_ON_INVALID_ELEMENT\",\n \"X_V_MODEL_ARG_ON_ELEMENT\": 58,\n \"58\": \"X_V_MODEL_ARG_ON_ELEMENT\",\n \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\": 59,\n \"59\": \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\",\n \"X_V_MODEL_UNNECESSARY_VALUE\": 60,\n \"60\": \"X_V_MODEL_UNNECESSARY_VALUE\",\n \"X_V_SHOW_NO_EXPRESSION\": 61,\n \"61\": \"X_V_SHOW_NO_EXPRESSION\",\n \"X_TRANSITION_INVALID_CHILDREN\": 62,\n \"62\": \"X_TRANSITION_INVALID_CHILDREN\",\n \"X_IGNORED_SIDE_EFFECT_TAG\": 63,\n \"63\": \"X_IGNORED_SIDE_EFFECT_TAG\",\n \"__EXTEND_POINT__\": 64,\n \"64\": \"__EXTEND_POINT__\"\n};\nconst DOMErrorMessages = {\n [53]: `v-html is missing expression.`,\n [54]: `v-html will override element children.`,\n [55]: `v-text is missing expression.`,\n [56]: `v-text will override element children.`,\n [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`,\n [58]: `v-model argument is not supported on plain elements.`,\n [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,\n [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,\n [61]: `v-show is missing expression.`,\n [62]: `<Transition> expects exactly one child element or component.`,\n [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`\n};\n\nconst transformVHtml = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(53, loc)\n );\n }\n if (node.children.length) {\n context.onError(\n createDOMCompilerError(54, loc)\n );\n node.children.length = 0;\n }\n return {\n props: [\n compilerCore.createObjectProperty(\n compilerCore.createSimpleExpression(`innerHTML`, true, loc),\n exp || compilerCore.createSimpleExpression(\"\", true)\n )\n ]\n };\n};\n\nconst transformVText = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(55, loc)\n );\n }\n if (node.children.length) {\n context.onError(\n createDOMCompilerError(56, loc)\n );\n node.children.length = 0;\n }\n return {\n props: [\n compilerCore.createObjectProperty(\n compilerCore.createSimpleExpression(`textContent`, true),\n exp ? compilerCore.getConstantType(exp, context) > 0 ? exp : compilerCore.createCallExpression(\n context.helperString(compilerCore.TO_DISPLAY_STRING),\n [exp],\n loc\n ) : compilerCore.createSimpleExpression(\"\", true)\n )\n ]\n };\n};\n\nconst transformModel = (dir, node, context) => {\n const baseResult = compilerCore.transformModel(dir, node, context);\n if (!baseResult.props.length || node.tagType === 1) {\n return baseResult;\n }\n if (dir.arg) {\n context.onError(\n createDOMCompilerError(\n 58,\n dir.arg.loc\n )\n );\n }\n function checkDuplicatedValue() {\n const value = compilerCore.findDir(node, \"bind\");\n if (value && compilerCore.isStaticArgOf(value.arg, \"value\")) {\n context.onError(\n createDOMCompilerError(\n 60,\n value.loc\n )\n );\n }\n }\n const { tag } = node;\n const isCustomElement = context.isCustomElement(tag);\n if (tag === \"input\" || tag === \"textarea\" || tag === \"select\" || isCustomElement) {\n let directiveToUse = V_MODEL_TEXT;\n let isInvalidType = false;\n if (tag === \"input\" || isCustomElement) {\n const type = compilerCore.findProp(node, `type`);\n if (type) {\n if (type.type === 7) {\n directiveToUse = V_MODEL_DYNAMIC;\n } else if (type.value) {\n switch (type.value.content) {\n case \"radio\":\n directiveToUse = V_MODEL_RADIO;\n break;\n case \"checkbox\":\n directiveToUse = V_MODEL_CHECKBOX;\n break;\n case \"file\":\n isInvalidType = true;\n context.onError(\n createDOMCompilerError(\n 59,\n dir.loc\n )\n );\n break;\n default:\n checkDuplicatedValue();\n break;\n }\n }\n } else if (compilerCore.hasDynamicKeyVBind(node)) {\n directiveToUse = V_MODEL_DYNAMIC;\n } else {\n checkDuplicatedValue();\n }\n } else if (tag === \"select\") {\n directiveToUse = V_MODEL_SELECT;\n } else {\n checkDuplicatedValue();\n }\n if (!isInvalidType) {\n baseResult.needRuntime = context.helper(directiveToUse);\n }\n } else {\n context.onError(\n createDOMCompilerError(\n 57,\n dir.loc\n )\n );\n }\n baseResult.props = baseResult.props.filter(\n (p) => !(p.key.type === 4 && p.key.content === \"modelValue\")\n );\n return baseResult;\n};\n\nconst isEventOptionModifier = /* @__PURE__ */ shared.makeMap(`passive,once,capture`);\nconst isNonKeyModifier = /* @__PURE__ */ shared.makeMap(\n // event propagation management\n `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`\n);\nconst maybeKeyModifier = /* @__PURE__ */ shared.makeMap(\"left,right\");\nconst isKeyboardEvent = /* @__PURE__ */ shared.makeMap(`onkeyup,onkeydown,onkeypress`);\nconst resolveModifiers = (key, modifiers, context, loc) => {\n const keyModifiers = [];\n const nonKeyModifiers = [];\n const eventOptionModifiers = [];\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i].content;\n if (modifier === \"native\" && compilerCore.checkCompatEnabled(\n \"COMPILER_V_ON_NATIVE\",\n context,\n loc\n )) {\n eventOptionModifiers.push(modifier);\n } else if (isEventOptionModifier(modifier)) {\n eventOptionModifiers.push(modifier);\n } else {\n if (maybeKeyModifier(modifier)) {\n if (compilerCore.isStaticExp(key)) {\n if (isKeyboardEvent(key.content.toLowerCase())) {\n keyModifiers.push(modifier);\n } else {\n nonKeyModifiers.push(modifier);\n }\n } else {\n keyModifiers.push(modifier);\n nonKeyModifiers.push(modifier);\n }\n } else {\n if (isNonKeyModifier(modifier)) {\n nonKeyModifiers.push(modifier);\n } else {\n keyModifiers.push(modifier);\n }\n }\n }\n }\n return {\n keyModifiers,\n nonKeyModifiers,\n eventOptionModifiers\n };\n};\nconst transformClick = (key, event) => {\n const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === \"onclick\";\n return isStaticClick ? compilerCore.createSimpleExpression(event, true) : key.type !== 4 ? compilerCore.createCompoundExpression([\n `(`,\n key,\n `) === \"onClick\" ? \"${event}\" : (`,\n key,\n `)`\n ]) : key;\n};\nconst transformOn = (dir, node, context) => {\n return compilerCore.transformOn(dir, node, context, (baseResult) => {\n const { modifiers } = dir;\n if (!modifiers.length) return baseResult;\n let { key, value: handlerExp } = baseResult.props[0];\n const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);\n if (nonKeyModifiers.includes(\"right\")) {\n key = transformClick(key, `onContextmenu`);\n }\n if (nonKeyModifiers.includes(\"middle\")) {\n key = transformClick(key, `onMouseup`);\n }\n if (nonKeyModifiers.length) {\n handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [\n handlerExp,\n JSON.stringify(nonKeyModifiers)\n ]);\n }\n if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard\n (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) {\n handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [\n handlerExp,\n JSON.stringify(keyModifiers)\n ]);\n }\n if (eventOptionModifiers.length) {\n const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join(\"\");\n key = compilerCore.isStaticExp(key) ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true) : compilerCore.createCompoundExpression([`(`, key, `) + \"${modifierPostfix}\"`]);\n }\n return {\n props: [compilerCore.createObjectProperty(key, handlerExp)]\n };\n });\n};\n\nconst transformShow = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(61, loc)\n );\n }\n return {\n props: [],\n needRuntime: context.helper(V_SHOW)\n };\n};\n\nconst transformTransition = (node, context) => {\n if (node.type === 1 && node.tagType === 1) {\n const component = context.isBuiltInComponent(node.tag);\n if (component === TRANSITION) {\n return () => {\n if (!node.children.length) {\n return;\n }\n if (hasMultipleChildren(node)) {\n context.onError(\n createDOMCompilerError(\n 62,\n {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n }\n )\n );\n }\n const child = node.children[0];\n if (child.type === 1) {\n for (const p of child.props) {\n if (p.type === 7 && p.name === \"show\") {\n node.props.push({\n type: 6,\n name: \"persisted\",\n nameLoc: node.loc,\n value: void 0,\n loc: node.loc\n });\n }\n }\n }\n };\n }\n }\n};\nfunction hasMultipleChildren(node) {\n const children = node.children = node.children.filter(\n (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim())\n );\n const child = children[0];\n return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);\n}\n\nconst expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g;\nconst stringifyStatic = (children, context, parent) => {\n if (context.scopes.vSlot > 0) {\n return;\n }\n const isParentCached = parent.type === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 20;\n let nc = 0;\n let ec = 0;\n const currentChunk = [];\n const stringifyCurrentChunk = (currentIndex) => {\n if (nc >= 20 || ec >= 5) {\n const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [\n JSON.stringify(\n currentChunk.map((node) => stringifyNode(node, context)).join(\"\")\n ).replace(expReplaceRE, `\" + $1 + \"`),\n // the 2nd argument indicates the number of DOM nodes this static vnode\n // will insert / hydrate\n String(currentChunk.length)\n ]);\n const deleteCount = currentChunk.length - 1;\n if (isParentCached) {\n children.splice(\n currentIndex - currentChunk.length,\n currentChunk.length,\n // @ts-expect-error\n staticCall\n );\n } else {\n currentChunk[0].codegenNode.value = staticCall;\n if (currentChunk.length > 1) {\n children.splice(currentIndex - currentChunk.length + 1, deleteCount);\n const cacheIndex = context.cached.indexOf(\n currentChunk[currentChunk.length - 1].codegenNode\n );\n if (cacheIndex > -1) {\n for (let i2 = cacheIndex; i2 < context.cached.length; i2++) {\n const c = context.cached[i2];\n if (c) c.index -= deleteCount;\n }\n context.cached.splice(cacheIndex - deleteCount + 1, deleteCount);\n }\n }\n }\n return deleteCount;\n }\n return 0;\n };\n let i = 0;\n for (; i < children.length; i++) {\n const child = children[i];\n const isCached = isParentCached || getCachedNode(child);\n if (isCached) {\n const result = analyzeNode(child);\n if (result) {\n nc += result[0];\n ec += result[1];\n currentChunk.push(child);\n continue;\n }\n }\n i -= stringifyCurrentChunk(i);\n nc = 0;\n ec = 0;\n currentChunk.length = 0;\n }\n stringifyCurrentChunk(i);\n};\nconst getCachedNode = (node) => {\n if ((node.type === 1 && node.tagType === 0 || node.type === 12) && node.codegenNode && node.codegenNode.type === 20) {\n return node.codegenNode;\n }\n};\nconst dataAriaRE = /^(data|aria)-/;\nconst isStringifiableAttr = (name, ns) => {\n return (ns === 0 ? shared.isKnownHtmlAttr(name) : ns === 1 ? shared.isKnownSvgAttr(name) : ns === 2 ? shared.isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);\n};\nconst isNonStringifiable = /* @__PURE__ */ shared.makeMap(\n `caption,thead,tr,th,tbody,td,tfoot,colgroup,col`\n);\nfunction analyzeNode(node) {\n if (node.type === 1 && isNonStringifiable(node.tag)) {\n return false;\n }\n if (node.type === 12) {\n return [1, 0];\n }\n let nc = 1;\n let ec = node.props.length > 0 ? 1 : 0;\n let bailed = false;\n const bail = () => {\n bailed = true;\n return false;\n };\n function walk(node2) {\n const isOptionTag = node2.tag === \"option\" && node2.ns === 0;\n for (let i = 0; i < node2.props.length; i++) {\n const p = node2.props[i];\n if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) {\n return bail();\n }\n if (p.type === 7 && p.name === \"bind\") {\n if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) {\n return bail();\n }\n if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) {\n return bail();\n }\n if (isOptionTag && compilerCore.isStaticArgOf(p.arg, \"value\") && p.exp && p.exp.ast && p.exp.ast.type !== \"StringLiteral\") {\n return bail();\n }\n }\n }\n for (let i = 0; i < node2.children.length; i++) {\n nc++;\n const child = node2.children[i];\n if (child.type === 1) {\n if (child.props.length > 0) {\n ec++;\n }\n walk(child);\n if (bailed) {\n return false;\n }\n }\n }\n return true;\n }\n return walk(node) ? [nc, ec] : false;\n}\nfunction stringifyNode(node, context) {\n if (shared.isString(node)) {\n return node;\n }\n if (shared.isSymbol(node)) {\n return ``;\n }\n switch (node.type) {\n case 1:\n return stringifyElement(node, context);\n case 2:\n return shared.escapeHtml(node.content);\n case 3:\n return `<!--${shared.escapeHtml(node.content)}-->`;\n case 5:\n return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content)));\n case 8:\n return shared.escapeHtml(evaluateConstant(node));\n case 12:\n return stringifyNode(node.content, context);\n default:\n return \"\";\n }\n}\nfunction stringifyElement(node, context) {\n let res = `<${node.tag}`;\n let innerHTML = \"\";\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n res += ` ${p.name}`;\n if (p.value) {\n res += `=\"${shared.escapeHtml(p.value.content)}\"`;\n }\n } else if (p.type === 7) {\n if (p.name === \"bind\") {\n const exp = p.exp;\n if (exp.content[0] === \"_\") {\n res += ` ${p.arg.content}=\"__VUE_EXP_START__${exp.content}__VUE_EXP_END__\"`;\n continue;\n }\n if (shared.isBooleanAttr(p.arg.content) && exp.content === \"false\") {\n continue;\n }\n let evaluated = evaluateConstant(exp);\n if (evaluated != null) {\n const arg = p.arg && p.arg.content;\n if (arg === \"class\") {\n evaluated = shared.normalizeClass(evaluated);\n } else if (arg === \"style\") {\n evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated));\n }\n res += ` ${p.arg.content}=\"${shared.escapeHtml(\n evaluated\n )}\"`;\n }\n } else if (p.name === \"html\") {\n innerHTML = evaluateConstant(p.exp);\n } else if (p.name === \"text\") {\n innerHTML = shared.escapeHtml(\n shared.toDisplayString(evaluateConstant(p.exp))\n );\n }\n }\n }\n if (context.scopeId) {\n res += ` ${context.scopeId}`;\n }\n res += `>`;\n if (innerHTML) {\n res += innerHTML;\n } else {\n for (let i = 0; i < node.children.length; i++) {\n res += stringifyNode(node.children[i], context);\n }\n }\n if (!shared.isVoidTag(node.tag)) {\n res += `</${node.tag}>`;\n }\n return res;\n}\nfunction evaluateConstant(exp) {\n if (exp.type === 4) {\n return new Function(`return (${exp.content})`)();\n } else {\n let res = ``;\n exp.children.forEach((c) => {\n if (shared.isString(c) || shared.isSymbol(c)) {\n return;\n }\n if (c.type === 2) {\n res += c.content;\n } else if (c.type === 5) {\n res += shared.toDisplayString(evaluateConstant(c.content));\n } else {\n res += evaluateConstant(c);\n }\n });\n return res;\n }\n}\n\nconst ignoreSideEffectTags = (node, context) => {\n if (node.type === 1 && node.tagType === 0 && (node.tag === \"script\" || node.tag === \"style\")) {\n context.onError(\n createDOMCompilerError(\n 63,\n node.loc\n )\n );\n context.removeNode();\n }\n};\n\nfunction isValidHTMLNesting(parent, child) {\n if (parent in onlyValidChildren) {\n return onlyValidChildren[parent].has(child);\n }\n if (child in onlyValidParents) {\n return onlyValidParents[child].has(parent);\n }\n if (parent in knownInvalidChildren) {\n if (knownInvalidChildren[parent].has(child)) return false;\n }\n if (child in knownInvalidParents) {\n if (knownInvalidParents[child].has(parent)) return false;\n }\n return true;\n}\nconst headings = /* @__PURE__ */ new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\nconst emptySet = /* @__PURE__ */ new Set([]);\nconst onlyValidChildren = {\n head: /* @__PURE__ */ new Set([\n \"base\",\n \"basefront\",\n \"bgsound\",\n \"link\",\n \"meta\",\n \"title\",\n \"noscript\",\n \"noframes\",\n \"style\",\n \"script\",\n \"template\"\n ]),\n optgroup: /* @__PURE__ */ new Set([\"option\"]),\n select: /* @__PURE__ */ new Set([\"optgroup\", \"option\", \"hr\"]),\n // table\n table: /* @__PURE__ */ new Set([\"caption\", \"colgroup\", \"tbody\", \"tfoot\", \"thead\"]),\n tr: /* @__PURE__ */ new Set([\"td\", \"th\"]),\n colgroup: /* @__PURE__ */ new Set([\"col\"]),\n tbody: /* @__PURE__ */ new Set([\"tr\"]),\n thead: /* @__PURE__ */ new Set([\"tr\"]),\n tfoot: /* @__PURE__ */ new Set([\"tr\"]),\n // these elements can not have any children elements\n script: emptySet,\n iframe: emptySet,\n option: emptySet,\n textarea: emptySet,\n style: emptySet,\n title: emptySet\n};\nconst onlyValidParents = {\n // sections\n html: emptySet,\n body: /* @__PURE__ */ new Set([\"html\"]),\n head: /* @__PURE__ */ new Set([\"html\"]),\n // table\n td: /* @__PURE__ */ new Set([\"tr\"]),\n colgroup: /* @__PURE__ */ new Set([\"table\"]),\n caption: /* @__PURE__ */ new Set([\"table\"]),\n tbody: /* @__PURE__ */ new Set([\"table\"]),\n tfoot: /* @__PURE__ */ new Set([\"table\"]),\n col: /* @__PURE__ */ new Set([\"colgroup\"]),\n th: /* @__PURE__ */ new Set([\"tr\"]),\n thead: /* @__PURE__ */ new Set([\"table\"]),\n tr: /* @__PURE__ */ new Set([\"tbody\", \"thead\", \"tfoot\"]),\n // data list\n dd: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n dt: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n // other\n figcaption: /* @__PURE__ */ new Set([\"figure\"]),\n // li: new Set([\"ul\", \"ol\"]),\n summary: /* @__PURE__ */ new Set([\"details\"]),\n area: /* @__PURE__ */ new Set([\"map\"])\n};\nconst knownInvalidChildren = {\n p: /* @__PURE__ */ new Set([\n \"address\",\n \"article\",\n \"aside\",\n \"blockquote\",\n \"center\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"fieldset\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"li\",\n \"main\",\n \"nav\",\n \"menu\",\n \"ol\",\n \"p\",\n \"pre\",\n \"section\",\n \"table\",\n \"ul\"\n ]),\n svg: /* @__PURE__ */ new Set([\n \"b\",\n \"blockquote\",\n \"br\",\n \"code\",\n \"dd\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"hr\",\n \"i\",\n \"img\",\n \"li\",\n \"menu\",\n \"meta\",\n \"ol\",\n \"p\",\n \"pre\",\n \"ruby\",\n \"s\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"table\",\n \"u\",\n \"ul\",\n \"var\"\n ])\n};\nconst knownInvalidParents = {\n a: /* @__PURE__ */ new Set([\"a\"]),\n button: /* @__PURE__ */ new Set([\"button\"]),\n dd: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n dt: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n form: /* @__PURE__ */ new Set([\"form\"]),\n li: /* @__PURE__ */ new Set([\"li\"]),\n h1: headings,\n h2: headings,\n h3: headings,\n h4: headings,\n h5: headings,\n h6: headings\n};\n\nconst validateHtmlNesting = (node, context) => {\n if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) {\n const error = new SyntaxError(\n `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`\n );\n error.loc = node.loc;\n context.onWarn(error);\n }\n};\n\nconst DOMNodeTransforms = [\n transformStyle,\n ...[transformTransition, validateHtmlNesting] \n];\nconst DOMDirectiveTransforms = {\n cloak: compilerCore.noopDirectiveTransform,\n html: transformVHtml,\n text: transformVText,\n model: transformModel,\n // override compiler-core\n on: transformOn,\n // override compiler-core\n show: transformShow\n};\nfunction compile(src, options = {}) {\n return compilerCore.baseCompile(\n src,\n shared.extend({}, parserOptions, options, {\n nodeTransforms: [\n // ignore <script> and <tag>\n // this is not put inside DOMNodeTransforms because that list is used\n // by compiler-ssr to generate vnode fallback branches\n ignoreSideEffectTags,\n ...DOMNodeTransforms,\n ...options.nodeTransforms || []\n ],\n directiveTransforms: shared.extend(\n {},\n DOMDirectiveTransforms,\n options.directiveTransforms || {}\n ),\n transformHoist: stringifyStatic\n })\n );\n}\nfunction parse(template, options = {}) {\n return compilerCore.baseParse(template, shared.extend({}, parserOptions, options));\n}\n\nexports.DOMDirectiveTransforms = DOMDirectiveTransforms;\nexports.DOMErrorCodes = DOMErrorCodes;\nexports.DOMErrorMessages = DOMErrorMessages;\nexports.DOMNodeTransforms = DOMNodeTransforms;\nexports.TRANSITION = TRANSITION;\nexports.TRANSITION_GROUP = TRANSITION_GROUP;\nexports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX;\nexports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC;\nexports.V_MODEL_RADIO = V_MODEL_RADIO;\nexports.V_MODEL_SELECT = V_MODEL_SELECT;\nexports.V_MODEL_TEXT = V_MODEL_TEXT;\nexports.V_ON_WITH_KEYS = V_ON_WITH_KEYS;\nexports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS;\nexports.V_SHOW = V_SHOW;\nexports.compile = compile;\nexports.createDOMCompilerError = createDOMCompilerError;\nexports.parse = parse;\nexports.parserOptions = parserOptions;\nexports.transformStyle = transformStyle;\nObject.keys(compilerCore).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = compilerCore[k];\n});\n",
25
- "/**\n* @vue/reactivity v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar shared = require('@vue/shared');\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || shared.hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n }\n if (dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (!dep.subs && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n shared.extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (activeSub.onTrack) {\n activeSub.onTrack(\n shared.extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (true) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n shared.extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n \"Object iterate\" \n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n \"Map keys iterate\" \n);\nconst ARRAY_ITERATE_KEY = Symbol(\n \"Array iterate\" \n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n {\n dep.track({\n target,\n type,\n key\n });\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = shared.isArray(target);\n const isArrayIndex = targetIsArray && shared.isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !shared.isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (shared.isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (shared.isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => shared.isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(shared.isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!shared.isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = shared.isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && shared.isIntegerKey(key) ? res : res.value;\n }\n if (shared.isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = shared.hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!shared.isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n shared.isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (shared.hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (shared.hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly2 = false) {\n target = target[\"__v_raw\"];\n !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (shared.hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = shared.isMap(target) ? new Map(target) : new Set(target) ;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly2, isShallow2) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = shared.isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${shared.capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add(value) {\n return add.call(this, value, true);\n },\n set(key, value) {\n return set.call(this, key, value, true);\n },\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = shared.toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(shared.toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!shared.isObject(target)) {\n {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!shared.hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n shared.def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => shared.isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => shared.isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (shared.hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return shared.isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = shared.isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (shared.isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (shared.isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n }\n }\n get value() {\n const link = this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) ;\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (shared.isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = shared.EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (shared.isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (shared.isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n warnInvalidSource(s);\n }\n });\n } else if (shared.isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = shared.NOOP;\n warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope) {\n shared.remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => shared.hasChanged(v, oldValue[i])) : shared.hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !shared.isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (shared.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (shared.isSet(value) || shared.isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (shared.isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexports.ARRAY_ITERATE_KEY = ARRAY_ITERATE_KEY;\nexports.EffectFlags = EffectFlags;\nexports.EffectScope = EffectScope;\nexports.ITERATE_KEY = ITERATE_KEY;\nexports.MAP_KEY_ITERATE_KEY = MAP_KEY_ITERATE_KEY;\nexports.ReactiveEffect = ReactiveEffect;\nexports.ReactiveFlags = ReactiveFlags;\nexports.TrackOpTypes = TrackOpTypes;\nexports.TriggerOpTypes = TriggerOpTypes;\nexports.WatchErrorCodes = WatchErrorCodes;\nexports.computed = computed;\nexports.customRef = customRef;\nexports.effect = effect;\nexports.effectScope = effectScope;\nexports.enableTracking = enableTracking;\nexports.getCurrentScope = getCurrentScope;\nexports.getCurrentWatcher = getCurrentWatcher;\nexports.isProxy = isProxy;\nexports.isReactive = isReactive;\nexports.isReadonly = isReadonly;\nexports.isRef = isRef;\nexports.isShallow = isShallow;\nexports.markRaw = markRaw;\nexports.onEffectCleanup = onEffectCleanup;\nexports.onScopeDispose = onScopeDispose;\nexports.onWatcherCleanup = onWatcherCleanup;\nexports.pauseTracking = pauseTracking;\nexports.proxyRefs = proxyRefs;\nexports.reactive = reactive;\nexports.reactiveReadArray = reactiveReadArray;\nexports.readonly = readonly;\nexports.ref = ref;\nexports.resetTracking = resetTracking;\nexports.shallowReactive = shallowReactive;\nexports.shallowReadArray = shallowReadArray;\nexports.shallowReadonly = shallowReadonly;\nexports.shallowRef = shallowRef;\nexports.stop = stop;\nexports.toRaw = toRaw;\nexports.toReactive = toReactive;\nexports.toReadonly = toReadonly;\nexports.toRef = toRef;\nexports.toRefs = toRefs;\nexports.toValue = toValue;\nexports.track = track;\nexports.traverse = traverse;\nexports.trigger = trigger;\nexports.triggerRef = triggerRef;\nexports.unref = unref;\nexports.watch = watch;\n",
26
- "/**\n* @vue/runtime-core v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar reactivity = require('@vue/reactivity');\nvar shared = require('@vue/shared');\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n reactivity.pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n reactivity.resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (shared.isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (reactivity.isRef(value)) {\n value = formatProp(key, reactivity.toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (shared.isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = reactivity.toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (shared.isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && shared.isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (shared.isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || shared.EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = ErrorTypeStrings$1[type] ;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n reactivity.pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n reactivity.resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!shared.isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = (job) => checkRecursiveUpdates(seen, job) ;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\n{\n shared.getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n shared.extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (shared.isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i];\n if (dir) {\n if (shared.isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n reactivity.traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n reactivity.pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n reactivity.resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (shared.isString(targetSelector)) {\n if (!select) {\n warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = createComment(\"teleport start\") ;\n const mainAnchor = n2.anchor = createComment(\"teleport end\") ;\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2);\n }\n } else if (!disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(mountToTarget, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.targetStart;\n while (node && node !== vnode.targetAnchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = reactivity.toRaw(props);\n const { mode } = rawProps;\n if (mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getInnerChild$1(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (shared.isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && shared.isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return shared.isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => shared.extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = reactivity.shallowRef(null);\n if (i) {\n const refs = i.refs === shared.EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = reactivity.readonly(r) ;\n {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (shared.isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (shared.isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === shared.EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = reactivity.toRaw(setupState);\n const canSetSetupRef = setupState === shared.EMPTY_OBJ ? () => false : (key) => {\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n return shared.hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (shared.isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (reactivity.isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (shared.isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = shared.isString(ref);\n const _isRef = reactivity.isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n shared.isArray(existing) && shared.remove(existing, refValue);\n } else {\n if (!shared.isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n {\n shared.def(node, \"__vnode\", vnode, true);\n shared.def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if (!hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if (// #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if (!hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = shared.normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = shared.isString(clientValue) ? clientValue : shared.stringifyStyle(shared.normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && shared.isKnownSvgAttr(key) || el instanceof HTMLElement && (shared.isBooleanAttr(key) || shared.isKnownHtmlAttr(key))) {\n if (shared.isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = shared.includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = shared.isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${shared.getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (shared.isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (shared.isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (comp && !shared.isObject(comp) && !shared.isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = reactivity.ref(false);\n const error = reactivity.ref();\n const delayed = reactivity.ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n shared.invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n shared.invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (shared.isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (shared.isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (shared.isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n shared.remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n reactivity.pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n reactivity.resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else {\n const apiName = shared.toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (shared.isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === shared.camelize(name) || selfName === shared.capitalize(shared.camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else {\n warn$1(\n `resolve${shared.capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[shared.camelize(name)] || registry[shared.capitalize(shared.camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = shared.isArray(source);\n if (sourceIsArray || shared.isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !reactivity.isShallow(source);\n source = reactivity.shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? reactivity.toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (shared.isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (shared.isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: (props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!shared.isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : shared.toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ shared.extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => reactivity.shallowReadonly(i.props) ,\n $attrs: (i) => reactivity.shallowReadonly(i.attrs) ,\n $slots: (i) => reactivity.shallowReadonly(i.slots) ,\n $refs: (i) => reactivity.shallowReadonly(i.refs) ,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => resolveMergedOptions(i) ,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => instanceWatch.bind(i) \n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== shared.EMPTY_OBJ && !state.__isScriptSetup && shared.hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && shared.hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n reactivity.track(instance.attrs, \"get\", \"\");\n markAttrsAccessed();\n } else if (key === \"$slots\") {\n reactivity.track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, shared.hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (currentRenderingInstance && (!shared.isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== shared.EMPTY_OBJ && isReservedPrefix(key[0]) && shared.hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (setupState.__isScriptSetup && shared.hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (shared.hasOwn(instance.props, key)) {\n warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== shared.EMPTY_OBJ && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && shared.hasOwn(normalizedProps, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (shared.hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\n{\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ shared.extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !shared.isGloballyAllowed(key);\n if (!has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n});\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: shared.NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: shared.NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(reactivity.toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: shared.NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return shared.isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\")) continue;\n let opt = props[key];\n if (opt) {\n if (shared.isArray(opt) || shared.isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b) return a || b;\n if (shared.isArray(a) && shared.isArray(b)) return a.concat(b);\n return shared.extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (shared.isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = createDuplicateChecker() ;\n {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (shared.isFunction(methodHandler)) {\n {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n }\n {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!shared.isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (shared.isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!shared.isObject(data)) {\n warn$1(`data() should return an object.`);\n } else {\n instance.data = reactivity.reactive(data);\n {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: shared.NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = shared.isFunction(opt) ? opt.bind(publicThis, publicThis) : shared.isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : shared.NOOP;\n if (get === shared.NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !shared.isFunction(opt) && shared.isFunction(opt.set) ? opt.set.bind(publicThis) : () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } ;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = shared.isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (shared.isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (shared.isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === shared.NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = shared.NOOP) {\n if (shared.isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (shared.isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (reactivity.isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n shared.isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (shared.isString(raw)) {\n const handler = ctx[raw];\n if (shared.isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (shared.isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (shared.isObject(raw)) {\n if (shared.isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = shared.isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (shared.isFunction(handler)) {\n watch(getter, handler, raw);\n } else {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (shared.isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (shared.extend)(\n shared.isFunction(to) ? to.call(this, this) : to,\n shared.isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (shared.isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? shared.extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (shared.isArray(to) && shared.isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return shared.extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = shared.extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: shared.NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!shared.isFunction(rootComponent)) {\n rootComponent = shared.extend({}, rootComponent);\n }\n if (rootProps != null && !shared.isObject(rootProps)) {\n warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && shared.isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (shared.isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n }\n return app;\n },\n component(name, component) {\n {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && shared.isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : reactivity.shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = reactivity.toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (shared.hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = shared.camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !shared.hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = shared.hyphenate(key)) === key || !shared.hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !shared.hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n reactivity.trigger(instance.attrs, \"set\", \"\");\n }\n {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (shared.isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && shared.hasOwn(options, camelKey = shared.camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = reactivity.toRaw(props);\n const castValues = rawCastValues || shared.EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !shared.hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = shared.hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && shared.isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === shared.hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (!shared.isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n shared.extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (shared.isObject(comp)) {\n cache.set(comp, shared.EMPTY_ARR);\n }\n return shared.EMPTY_ARR;\n }\n if (shared.isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!shared.isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = shared.camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = shared.EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!shared.isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = shared.camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = shared.isArray(opt) || shared.isFunction(opt) ? { type: opt } : shared.extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (shared.isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = shared.isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = shared.isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[0 /* shouldCast */] = shouldCast;\n prop[1 /* shouldCastTrue */] = shouldCastTrue;\n if (shouldCast || shared.hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (shared.isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !shared.isReservedProp(key)) {\n return true;\n } else {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = reactivity.toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n reactivity.shallowReadonly(resolvedValues) ,\n !shared.hasOwn(rawProps, key) && !shared.hasOwn(rawProps, shared.hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = shared.isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ shared.makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = shared.isObject(value);\n } else if (expectedType === \"Array\") {\n valid = shared.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(shared.capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = shared.toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => shared.isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (shared.isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || key !== \"_\") {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n shared.def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = shared.EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (isHmrUpdating) {\n assignSlots(slots, children, optimized);\n reactivity.trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n const target = shared.getGlobalThis();\n target.__VUE__ = true;\n {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = shared.NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !shared.isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n {\n shared.def(el, \"__vnode\", vnode, true);\n shared.def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || shared.EMPTY_OBJ;\n const newProps = n2.props || shared.EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== shared.EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!shared.isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (shared.isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (\n // #5523 dev root fragment may inherit directives\n isHmrUpdating || patchFlag & 2048\n ) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n {\n traverseStaticChildren(n1, n2);\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (instance.type.__hmrId) {\n registerHMR(instance);\n }\n {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n if (isHmrUpdating) initialVNode.el = null;\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n shared.invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n {\n endMeasure(instance, `render`);\n }\n {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode && type.__asyncHydrate) {\n type.__asyncHydrate(\n el,\n instance,\n hydrateSubTree\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (root.ce) {\n root.ce._injectChildStyle(type);\n }\n {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n {\n endMeasure(instance, `render`);\n }\n {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n shared.invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n {\n devtoolsComponentUpdated(instance);\n }\n {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect = instance.effect = new reactivity.ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect.run.bind(effect);\n const job = instance.job = effect.runIfDirty.bind(effect);\n job.i = instance;\n job.id = instance.uid;\n effect.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n {\n effect.onTrack = instance.rtc ? (e) => shared.invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => shared.invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n reactivity.pauseTracking();\n flushPreFlushCbs(instance);\n reactivity.resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || shared.EMPTY_ARR;\n c2 = c2 || shared.EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : shared.EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, job, subTree, um, m, a } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n shared.invokeArrayFns(bum);\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n if (allowed) {\n effect.flags |= 32;\n job.flags |= 4;\n } else {\n effect.flags &= ~32;\n job.flags &= ~4;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (shared.isArray(ch1) && shared.isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n shared.extend({}, options, { flush: \"post\" }) \n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n shared.extend({}, options, { flush: \"sync\" }) \n );\n}\nfunction watch(source, cb, options) {\n if (!shared.isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = shared.EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = shared.extend({}, options);\n baseWatchOptions.onWarn = warn$1;\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!cb || immediate) {\n baseWatchOptions.once = true;\n } else {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = shared.NOOP;\n watchStopHandle.resume = shared.NOOP;\n watchStopHandle.pause = shared.NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = reactivity.watch(source, cb, baseWatchOptions);\n if (ssrCleanup) ssrCleanup.push(watchHandle);\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = shared.isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (shared.isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nfunction useModel(props, name, options = shared.EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!i) {\n warn$1(`useModel() called without active instance.`);\n return reactivity.ref();\n }\n if (!i.propsOptions[0][name]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return reactivity.ref();\n }\n const camelizedName = shared.camelize(name);\n const hyphenatedName = shared.hyphenate(name);\n const modifiers = getModelModifiers(props, name);\n const res = reactivity.customRef((track, trigger) => {\n let localValue;\n let prevSetValue = shared.EMPTY_OBJ;\n let prevEmittedValue;\n watchSyncEffect(() => {\n const propValue = props[name];\n if (shared.hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const emittedValue = options.set ? options.set(value) : value;\n if (!shared.hasChanged(emittedValue, localValue) && !(prevSetValue !== shared.EMPTY_OBJ && shared.hasChanged(value, prevSetValue))) {\n return;\n }\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, emittedValue);\n if (shared.hasChanged(value, emittedValue) && shared.hasChanged(value, prevSetValue) && !shared.hasChanged(emittedValue, prevEmittedValue)) {\n trigger();\n }\n prevSetValue = value;\n prevEmittedValue = emittedValue;\n }\n };\n });\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? modifiers || shared.EMPTY_OBJ : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${shared.camelize(modelName)}Modifiers`] || props[`${shared.hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || shared.EMPTY_OBJ;\n {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(shared.toHandlerKey(shared.camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${shared.toHandlerKey(shared.camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (shared.isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => shared.isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(shared.looseToNumber);\n }\n }\n {\n devtoolsComponentEmit(instance, event, args);\n }\n {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[shared.toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${shared.hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = shared.toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = shared.toHandlerKey(shared.camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = shared.toHandlerKey(shared.hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (!shared.isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n shared.extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (shared.isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (shared.isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n shared.extend(normalized, raw);\n }\n if (shared.isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !shared.isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return shared.hasOwn(options, key[0].toLowerCase() + key.slice(1)) || shared.hasOwn(options, shared.hyphenate(key)) || shared.hasOwn(options, key);\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n true ? reactivity.shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n true ? reactivity.shallowReadonly(props) : props,\n true ? {\n get attrs() {\n markAttrsAccessed();\n return reactivity.shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n true ? reactivity.shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(shared.isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (shared.isOn(key)) {\n if (!shared.isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || shared.isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!shared.isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if ((prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (shared.isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : void 0;\n {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) === container2) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect, optimized2) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized2\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (shared.isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (shared.isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (shared.isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock) {\n currentBlock.hasOnce = true;\n }\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || shared.EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? shared.isString(ref) || reactivity.isRef(ref) || shared.isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= shared.isString(children) ? 8 : 16;\n }\n if (vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = createVNodeWithArgsTransform ;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !shared.isString(klass)) {\n props.class = shared.normalizeClass(klass);\n }\n if (shared.isObject(style)) {\n if (reactivity.isProxy(style) && !shared.isArray(style)) {\n style = shared.extend({}, style);\n }\n props.style = shared.normalizeStyle(style);\n }\n }\n const shapeFlag = shared.isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : shared.isObject(type) ? 4 : shared.isFunction(type) ? 2 : 0;\n if (shapeFlag & 4 && reactivity.isProxy(type)) {\n type = reactivity.toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? shared.isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: patchFlag === -1 && shared.isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (shared.isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (shared.isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (shared.isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (shared.isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = shared.normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = shared.normalizeStyle([ret.style, toMerge.style]);\n } else if (shared.isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(shared.isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new reactivity.EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: shared.EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: shared.EMPTY_OBJ,\n data: shared.EMPTY_OBJ,\n props: shared.EMPTY_OBJ,\n attrs: shared.EMPTY_OBJ,\n slots: shared.EMPTY_OBJ,\n refs: shared.EMPTY_OBJ,\n setupState: shared.EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n {\n instance.ctx = createDevRenderContext(instance);\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = shared.getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ shared.makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n reactivity.pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n reactivity.shallowReadonly(instance.props) ,\n setupContext\n ]\n );\n reactivity.resetTracking();\n reset();\n if (shared.isPromise(setupResult)) {\n if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (shared.isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (shared.isObject(setupResult)) {\n if (isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = reactivity.proxyRefs(setupResult);\n {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || resolveMergedOptions(instance).template;\n if (template) {\n {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = shared.extend(\n shared.extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || shared.NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n {\n const reset = setCurrentInstance(instance);\n reactivity.pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n reactivity.resetTracking();\n reset();\n }\n }\n if (!Component.render && instance.render === shared.NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (``)\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = {\n get(target, key) {\n markAttrsAccessed();\n reactivity.track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} ;\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n reactivity.track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (shared.isArray(exposed)) {\n exposedType = \"array\";\n } else if (reactivity.isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(reactivity.proxyRefs(reactivity.markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return shared.isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup);\n {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!shared.isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (reactivity.isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n // avoid debugger accessing value affecting behavior\n formatValue(\"_value\" in obj ? obj._value : obj),\n `>`\n ];\n } else if (reactivity.isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, reactivity.isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${reactivity.isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (reactivity.isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, reactivity.isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", reactivity.toRaw(instance.props)));\n }\n if (instance.setupState !== shared.EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== shared.EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", reactivity.toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = shared.extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (shared.isObject(v)) {\n return [\"object\", { object: asRaw ? reactivity.toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (shared.isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (shared.isArray(opts) && opts.includes(key) || shared.isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (reactivity.isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n ret.cacheIndex = index;\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (shared.hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.5.11\";\nconst warn = warn$1 ;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = devtools$1 ;\nconst setDevtoolsHook = setDevtoolsHook$1 ;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode,\n getComponentPublicInstance,\n ensureValidVNode,\n pushWarningContext,\n popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexports.EffectScope = reactivity.EffectScope;\nexports.ReactiveEffect = reactivity.ReactiveEffect;\nexports.TrackOpTypes = reactivity.TrackOpTypes;\nexports.TriggerOpTypes = reactivity.TriggerOpTypes;\nexports.customRef = reactivity.customRef;\nexports.effect = reactivity.effect;\nexports.effectScope = reactivity.effectScope;\nexports.getCurrentScope = reactivity.getCurrentScope;\nexports.getCurrentWatcher = reactivity.getCurrentWatcher;\nexports.isProxy = reactivity.isProxy;\nexports.isReactive = reactivity.isReactive;\nexports.isReadonly = reactivity.isReadonly;\nexports.isRef = reactivity.isRef;\nexports.isShallow = reactivity.isShallow;\nexports.markRaw = reactivity.markRaw;\nexports.onScopeDispose = reactivity.onScopeDispose;\nexports.onWatcherCleanup = reactivity.onWatcherCleanup;\nexports.proxyRefs = reactivity.proxyRefs;\nexports.reactive = reactivity.reactive;\nexports.readonly = reactivity.readonly;\nexports.ref = reactivity.ref;\nexports.shallowReactive = reactivity.shallowReactive;\nexports.shallowReadonly = reactivity.shallowReadonly;\nexports.shallowRef = reactivity.shallowRef;\nexports.stop = reactivity.stop;\nexports.toRaw = reactivity.toRaw;\nexports.toRef = reactivity.toRef;\nexports.toRefs = reactivity.toRefs;\nexports.toValue = reactivity.toValue;\nexports.triggerRef = reactivity.triggerRef;\nexports.unref = reactivity.unref;\nexports.camelize = shared.camelize;\nexports.capitalize = shared.capitalize;\nexports.normalizeClass = shared.normalizeClass;\nexports.normalizeProps = shared.normalizeProps;\nexports.normalizeStyle = shared.normalizeStyle;\nexports.toDisplayString = shared.toDisplayString;\nexports.toHandlerKey = shared.toHandlerKey;\nexports.BaseTransition = BaseTransition;\nexports.BaseTransitionPropsValidators = BaseTransitionPropsValidators;\nexports.Comment = Comment;\nexports.DeprecationTypes = DeprecationTypes;\nexports.ErrorCodes = ErrorCodes;\nexports.ErrorTypeStrings = ErrorTypeStrings;\nexports.Fragment = Fragment;\nexports.KeepAlive = KeepAlive;\nexports.Static = Static;\nexports.Suspense = Suspense;\nexports.Teleport = Teleport;\nexports.Text = Text;\nexports.assertNumber = assertNumber;\nexports.callWithAsyncErrorHandling = callWithAsyncErrorHandling;\nexports.callWithErrorHandling = callWithErrorHandling;\nexports.cloneVNode = cloneVNode;\nexports.compatUtils = compatUtils;\nexports.computed = computed;\nexports.createBlock = createBlock;\nexports.createCommentVNode = createCommentVNode;\nexports.createElementBlock = createElementBlock;\nexports.createElementVNode = createBaseVNode;\nexports.createHydrationRenderer = createHydrationRenderer;\nexports.createPropsRestProxy = createPropsRestProxy;\nexports.createRenderer = createRenderer;\nexports.createSlots = createSlots;\nexports.createStaticVNode = createStaticVNode;\nexports.createTextVNode = createTextVNode;\nexports.createVNode = createVNode;\nexports.defineAsyncComponent = defineAsyncComponent;\nexports.defineComponent = defineComponent;\nexports.defineEmits = defineEmits;\nexports.defineExpose = defineExpose;\nexports.defineModel = defineModel;\nexports.defineOptions = defineOptions;\nexports.defineProps = defineProps;\nexports.defineSlots = defineSlots;\nexports.devtools = devtools;\nexports.getCurrentInstance = getCurrentInstance;\nexports.getTransitionRawChildren = getTransitionRawChildren;\nexports.guardReactiveProps = guardReactiveProps;\nexports.h = h;\nexports.handleError = handleError;\nexports.hasInjectionContext = hasInjectionContext;\nexports.hydrateOnIdle = hydrateOnIdle;\nexports.hydrateOnInteraction = hydrateOnInteraction;\nexports.hydrateOnMediaQuery = hydrateOnMediaQuery;\nexports.hydrateOnVisible = hydrateOnVisible;\nexports.initCustomFormatter = initCustomFormatter;\nexports.inject = inject;\nexports.isMemoSame = isMemoSame;\nexports.isRuntimeOnly = isRuntimeOnly;\nexports.isVNode = isVNode;\nexports.mergeDefaults = mergeDefaults;\nexports.mergeModels = mergeModels;\nexports.mergeProps = mergeProps;\nexports.nextTick = nextTick;\nexports.onActivated = onActivated;\nexports.onBeforeMount = onBeforeMount;\nexports.onBeforeUnmount = onBeforeUnmount;\nexports.onBeforeUpdate = onBeforeUpdate;\nexports.onDeactivated = onDeactivated;\nexports.onErrorCaptured = onErrorCaptured;\nexports.onMounted = onMounted;\nexports.onRenderTracked = onRenderTracked;\nexports.onRenderTriggered = onRenderTriggered;\nexports.onServerPrefetch = onServerPrefetch;\nexports.onUnmounted = onUnmounted;\nexports.onUpdated = onUpdated;\nexports.openBlock = openBlock;\nexports.popScopeId = popScopeId;\nexports.provide = provide;\nexports.pushScopeId = pushScopeId;\nexports.queuePostFlushCb = queuePostFlushCb;\nexports.registerRuntimeCompiler = registerRuntimeCompiler;\nexports.renderList = renderList;\nexports.renderSlot = renderSlot;\nexports.resolveComponent = resolveComponent;\nexports.resolveDirective = resolveDirective;\nexports.resolveDynamicComponent = resolveDynamicComponent;\nexports.resolveFilter = resolveFilter;\nexports.resolveTransitionHooks = resolveTransitionHooks;\nexports.setBlockTracking = setBlockTracking;\nexports.setDevtoolsHook = setDevtoolsHook;\nexports.setTransitionHooks = setTransitionHooks;\nexports.ssrContextKey = ssrContextKey;\nexports.ssrUtils = ssrUtils;\nexports.toHandlers = toHandlers;\nexports.transformVNodeArgs = transformVNodeArgs;\nexports.useAttrs = useAttrs;\nexports.useId = useId;\nexports.useModel = useModel;\nexports.useSSRContext = useSSRContext;\nexports.useSlots = useSlots;\nexports.useTemplateRef = useTemplateRef;\nexports.useTransitionState = useTransitionState;\nexports.version = version;\nexports.warn = warn;\nexports.watch = watch;\nexports.watchEffect = watchEffect;\nexports.watchPostEffect = watchPostEffect;\nexports.watchSyncEffect = watchSyncEffect;\nexports.withAsyncContext = withAsyncContext;\nexports.withCtx = withCtx;\nexports.withDefaults = withDefaults;\nexports.withDirectives = withDirectives;\nexports.withMemo = withMemo;\nexports.withScopeId = withScopeId;\n",
27
- "/**\n* @vue/runtime-dom v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar runtimeCore = require('@vue/runtime-core');\nvar shared = require('@vue/shared');\n\nlet policy = void 0;\nconst tt = typeof window !== \"undefined\" && window.trustedTypes;\nif (tt) {\n try {\n policy = /* @__PURE__ */ tt.createPolicy(\"vue\", {\n createHTML: (val) => val\n });\n } catch (e) {\n runtimeCore.warn(`Error creating trusted types policy: ${e}`);\n }\n}\nconst unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling)) break;\n }\n } else {\n templateContainer.innerHTML = unsafeToTrustedHTML(\n namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content\n );\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = /* @__PURE__ */ shared.extend(\n {},\n runtimeCore.BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst decorate$1 = (t) => {\n t.displayName = \"Transition\";\n t.props = TransitionPropsValidators;\n return t;\n};\nconst Transition = /* @__PURE__ */ decorate$1(\n (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots)\n);\nconst callHook = (hook, args = []) => {\n if (shared.isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? shared.isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return shared.extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveActiveClass);\n forceReflow();\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (shared.isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = shared.toNumber(val);\n {\n runtimeCore.assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\") return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOriginalDisplay = Symbol(\"_vod\");\nconst vShowHidden = Symbol(\"_vsh\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue) return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\n{\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(\"CSS_VAR_TEXT\" );\nfunction useCssVars(getter) {\n return;\n}\n\nconst displayRE = /(^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = shared.isString(next);\n let hasControlledDisplay = false;\n if (next && !isCssString) {\n if (prev) {\n if (!shared.isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n } else {\n for (const prevStyle of prev.split(\";\")) {\n const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n }\n for (const key in next) {\n if (key === \"display\") {\n hasControlledDisplay = true;\n }\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n hasControlledDisplay = displayRE.test(next);\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOriginalDisplay in el) {\n el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n if (el[vShowHidden]) {\n style.display = \"none\";\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (shared.isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null) val = \"\";\n {\n if (semicolonRE.test(val)) {\n runtimeCore.warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n shared.hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = runtimeCore.camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = shared.capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecialBooleanAttr(key)) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (value == null || isBoolean && !shared.includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(\n key,\n isBoolean ? \"\" : shared.isSymbol(value) ? String(value) : value\n );\n }\n }\n}\n\nfunction patchDOMProp(el, key, value, parentComponent) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (value != null) {\n el[key] = key === \"innerHTML\" ? unsafeToTrustedHTML(value) : value;\n }\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n const newValue = value == null ? (\n // #11647: value should be set as empty string for null and undefined,\n // but <input type=\"checkbox\"> should be set as 'on'.\n el.type === \"checkbox\" ? \"on\" : \"\"\n ) : String(value);\n if (oldValue !== newValue || !(\"_value\" in el)) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n el._value = value;\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = shared.includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!needRemove) {\n runtimeCore.warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = sanitizeEventValue(nextValue, rawName) ;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(\n sanitizeEventValue(nextValue, rawName) ,\n instance\n );\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : shared.hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n runtimeCore.callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction sanitizeEventValue(value, propName) {\n if (shared.isFunction(value) || shared.isArray(value)) {\n return value;\n }\n runtimeCore.warn(\n `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`\n );\n return shared.NOOP;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (shared.isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(\n (fn) => (e2) => !e2._stopped && fn && fn(e2)\n );\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (shared.isOn(key)) {\n if (!shared.isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue);\n if (!el.tagName.includes(\"-\") && (key === \"value\" || key === \"checked\" || key === \"selected\")) {\n patchAttr(el, key, nextValue, isSVG, parentComponent, key !== \"value\");\n }\n } else if (\n // #11081 force set props for possible async custom element\n el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue))\n ) {\n patchDOMProp(el, shared.camelize(key), nextValue);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && shared.isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && shared.isString(value)) {\n return false;\n }\n return key in el;\n}\n\nconst REMOVAL = {};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, extraOptions, _createApp) {\n const Comp = runtimeCore.defineComponent(options, extraOptions);\n if (shared.isPlainObject(Comp)) shared.extend(Comp, extraOptions);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, _createApp);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {\n return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, _createApp = createApp) {\n super();\n this._def = _def;\n this._props = _props;\n this._createApp = _createApp;\n this._isVueCE = true;\n /**\n * @internal\n */\n this._instance = null;\n /**\n * @internal\n */\n this._app = null;\n /**\n * @internal\n */\n this._nonce = this._def.nonce;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._styleChildren = /* @__PURE__ */ new WeakSet();\n this._ob = null;\n if (this.shadowRoot && _createApp !== createApp) {\n this._root = this.shadowRoot;\n } else {\n if (this.shadowRoot) {\n runtimeCore.warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n if (_def.shadowRoot !== false) {\n this.attachShadow({ mode: \"open\" });\n this._root = this.shadowRoot;\n } else {\n this._root = this;\n }\n }\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n connectedCallback() {\n if (!this.isConnected) return;\n if (!this.shadowRoot) {\n this._parseSlots();\n }\n this._connected = true;\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n this._parent = parent;\n break;\n }\n }\n if (!this._instance) {\n if (this._resolved) {\n this._setParent();\n this._update();\n } else {\n if (parent && parent._pendingResolve) {\n this._pendingResolve = parent._pendingResolve.then(() => {\n this._pendingResolve = void 0;\n this._resolveDef();\n });\n } else {\n this._resolveDef();\n }\n }\n }\n }\n _setParent(parent = this._parent) {\n if (parent) {\n this._instance.parent = parent._instance;\n this._instance.provides = parent._instance.provides;\n }\n }\n disconnectedCallback() {\n this._connected = false;\n runtimeCore.nextTick(() => {\n if (!this._connected) {\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n this._app && this._app.unmount();\n if (this._instance) this._instance.ce = void 0;\n this._app = this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n if (this._pendingResolve) {\n return;\n }\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n this._resolved = true;\n this._pendingResolve = void 0;\n const { props, styles } = def;\n let numberProps;\n if (props && !shared.isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = shared.toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[shared.camelize(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n if (this.shadowRoot) {\n this._applyStyles(styles);\n } else if (styles) {\n runtimeCore.warn(\n \"Custom element style injection is not supported when using shadowRoot: false\"\n );\n }\n this._mount(def);\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n this._pendingResolve = asyncDef().then(\n (def) => resolve(this._def = def, true)\n );\n } else {\n resolve(this._def);\n }\n }\n _mount(def) {\n if (!def.name) {\n def.name = \"VueElement\";\n }\n this._app = this._createApp(def);\n if (def.configureApp) {\n def.configureApp(this._app);\n }\n this._app._ceVNode = this._createVNode();\n this._app.mount(this._root);\n const exposed = this._instance && this._instance.exposed;\n if (!exposed) return;\n for (const key in exposed) {\n if (!shared.hasOwn(this, key)) {\n Object.defineProperty(this, key, {\n // unwrap ref to be consistent with public instance behavior\n get: () => runtimeCore.unref(exposed[key])\n });\n } else {\n runtimeCore.warn(`Exposed property \"${key}\" already exists on custom element.`);\n }\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = shared.isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key]);\n }\n }\n for (const key of declaredPropKeys.map(shared.camelize)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val, true, true);\n }\n });\n }\n }\n _setAttr(key) {\n if (key.startsWith(\"data-v-\")) return;\n const has = this.hasAttribute(key);\n let value = has ? this.getAttribute(key) : REMOVAL;\n const camelKey = shared.camelize(key);\n if (has && this._numberProps && this._numberProps[camelKey]) {\n value = shared.toNumber(value);\n }\n this._setProp(camelKey, value, false, true);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = false) {\n if (val !== this._props[key]) {\n if (val === REMOVAL) {\n delete this._props[key];\n } else {\n this._props[key] = val;\n if (key === \"key\" && this._app) {\n this._app._ceVNode.key = val;\n }\n }\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(shared.hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(shared.hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(shared.hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this._root);\n }\n _createVNode() {\n const baseProps = {};\n if (!this.shadowRoot) {\n baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);\n }\n const vnode = runtimeCore.createVNode(this._def, shared.extend(baseProps, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.ce = this;\n instance.isCE = true;\n {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this._root.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(\n event,\n shared.isPlainObject(args[0]) ? shared.extend({ detail: args }, args[0]) : { detail: args }\n )\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (shared.hyphenate(event) !== event) {\n dispatch(shared.hyphenate(event), args);\n }\n };\n this._setParent();\n };\n }\n return vnode;\n }\n _applyStyles(styles, owner) {\n if (!styles) return;\n if (owner) {\n if (owner === this._def || this._styleChildren.has(owner)) {\n return;\n }\n this._styleChildren.add(owner);\n }\n const nonce = this._nonce;\n for (let i = styles.length - 1; i >= 0; i--) {\n const s = document.createElement(\"style\");\n if (nonce) s.setAttribute(\"nonce\", nonce);\n s.textContent = styles[i];\n this.shadowRoot.prepend(s);\n {\n if (owner) {\n if (owner.__hmrId) {\n if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();\n let entry = this._childStyles.get(owner.__hmrId);\n if (!entry) {\n this._childStyles.set(owner.__hmrId, entry = []);\n }\n entry.push(s);\n }\n } else {\n (this._styles || (this._styles = [])).push(s);\n }\n }\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _parseSlots() {\n const slots = this._slots = {};\n let n;\n while (n = this.firstChild) {\n const slotName = n.nodeType === 1 && n.getAttribute(\"slot\") || \"default\";\n (slots[slotName] || (slots[slotName] = [])).push(n);\n this.removeChild(n);\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _renderSlots() {\n const outlets = (this._teleportTarget || this).querySelectorAll(\"slot\");\n const scopeId = this._instance.type.__scopeId;\n for (let i = 0; i < outlets.length; i++) {\n const o = outlets[i];\n const slotName = o.getAttribute(\"name\") || \"default\";\n const content = this._slots[slotName];\n const parent = o.parentNode;\n if (content) {\n for (const n of content) {\n if (scopeId && n.nodeType === 1) {\n const id = scopeId + \"-s\";\n const walker = document.createTreeWalker(n, 1);\n n.setAttribute(id, \"\");\n let child;\n while (child = walker.nextNode()) {\n child.setAttribute(id, \"\");\n }\n }\n parent.insertBefore(n, o);\n }\n } else {\n while (o.firstChild) parent.insertBefore(o.firstChild, o);\n }\n parent.removeChild(o);\n }\n }\n /**\n * @internal\n */\n _injectChildStyle(comp) {\n this._applyStyles(comp.styles, comp);\n }\n /**\n * @internal\n */\n _removeChildStyle(comp) {\n {\n this._styleChildren.delete(comp);\n if (this._childStyles && comp.__hmrId) {\n const oldStyles = this._childStyles.get(comp.__hmrId);\n if (oldStyles) {\n oldStyles.forEach((s) => this._root.removeChild(s));\n oldStyles.length = 0;\n }\n }\n }\n }\n}\nfunction useHost(caller) {\n const instance = runtimeCore.getCurrentInstance();\n const el = instance && instance.ce;\n if (el) {\n return el;\n } else {\n if (!instance) {\n runtimeCore.warn(\n `${caller || \"useHost\"} called without an active component instance.`\n );\n } else {\n runtimeCore.warn(\n `${caller || \"useHost\"} can only be used in components defined via defineCustomElement.`\n );\n }\n }\n return null;\n}\nfunction useShadowRoot() {\n const el = useHost(\"useShadowRoot\") ;\n return el && el.shadowRoot;\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = runtimeCore.getCurrentInstance();\n if (!instance) {\n runtimeCore.warn(`useCssModule must be called inside setup()`);\n return shared.EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n runtimeCore.warn(`Current instance does not have CSS modules injected.`);\n return shared.EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n runtimeCore.warn(`Current instance does not have CSS module named \"${name}\".`);\n return shared.EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst decorate = (t) => {\n delete t.props.mode;\n return t;\n};\nconst TransitionGroupImpl = /* @__PURE__ */ decorate({\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = runtimeCore.getCurrentInstance();\n const state = runtimeCore.useTransitionState();\n let prevChildren;\n let children;\n runtimeCore.onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = runtimeCore.toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || runtimeCore.Fragment;\n prevChildren = [];\n if (children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.el && child.el instanceof Element) {\n prevChildren.push(child);\n runtimeCore.setTransitionHooks(\n child,\n runtimeCore.resolveTransitionHooks(\n child,\n cssTransitionProps,\n state,\n instance\n )\n );\n positionMap.set(\n child,\n child.el.getBoundingClientRect()\n );\n }\n }\n }\n children = slots.default ? runtimeCore.getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n runtimeCore.setTransitionHooks(\n child,\n runtimeCore.resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (child.type !== runtimeCore.Text) {\n runtimeCore.warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n return runtimeCore.createVNode(tag, null, children);\n };\n }\n});\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n return shared.isArray(fn) ? (value) => shared.invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing) return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = shared.looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing) return;\n const elValue = (number || el.type === \"number\") && !/^0\\d/.test(el.value) ? shared.looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy && value === oldValue) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (shared.isArray(modelValue)) {\n const index = shared.looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (shared.isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value }, vnode) {\n el._modelValue = value;\n let checked;\n if (shared.isArray(value)) {\n checked = shared.looseIndexOf(value, vnode.props.value) > -1;\n } else if (shared.isSet(value)) {\n checked = value.has(vnode.props.value);\n } else {\n checked = shared.looseEqual(value, getCheckboxValue(el, true));\n }\n if (el.checked !== checked) {\n el.checked = checked;\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = shared.looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = shared.looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = shared.isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? shared.looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n runtimeCore.nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value }) {\n if (!el._assigning) {\n setSelected(el, value);\n }\n }\n};\nfunction setSelected(el, value) {\n const isMultiple = el.multiple;\n const isArrayValue = shared.isArray(value);\n if (isMultiple && !isArrayValue && !shared.isSet(value)) {\n runtimeCore.warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.some((v) => String(v) === String(optionValue));\n } else {\n option.selected = shared.looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else if (shared.looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) el.selectedIndex = i;\n return;\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && shared.looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (shared.isArray(value)) {\n if (vnode.props && shared.looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (shared.isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers)) return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = shared.hyphenate(event.key);\n if (modifiers.some(\n (k) => k === eventKey || keyNames[k] === eventKey\n )) {\n return fn(event);\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ shared.extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = runtimeCore.createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : runtimeCore.createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container) return;\n const component = app._component;\n if (!shared.isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n }\n if (container.nodeType === 1) {\n container.textContent = \"\";\n }\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (runtimeCore.isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n runtimeCore.warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n runtimeCore.warn(msg);\n return compilerOptions;\n },\n set() {\n runtimeCore.warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (shared.isString(container)) {\n const res = document.querySelector(container);\n if (!res) {\n runtimeCore.warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n runtimeCore.warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nexports.Transition = Transition;\nexports.TransitionGroup = TransitionGroup;\nexports.VueElement = VueElement;\nexports.createApp = createApp;\nexports.createSSRApp = createSSRApp;\nexports.defineCustomElement = defineCustomElement;\nexports.defineSSRCustomElement = defineSSRCustomElement;\nexports.hydrate = hydrate;\nexports.initDirectivesForSSR = initDirectivesForSSR;\nexports.render = render;\nexports.useCssModule = useCssModule;\nexports.useCssVars = useCssVars;\nexports.useHost = useHost;\nexports.useShadowRoot = useShadowRoot;\nexports.vModelCheckbox = vModelCheckbox;\nexports.vModelDynamic = vModelDynamic;\nexports.vModelRadio = vModelRadio;\nexports.vModelSelect = vModelSelect;\nexports.vModelText = vModelText;\nexports.vShow = vShow;\nexports.withKeys = withKeys;\nexports.withModifiers = withModifiers;\nObject.keys(runtimeCore).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeCore[k];\n});\n",
28
- "/**\n* vue v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar compilerDom = require('@vue/compiler-dom');\nvar runtimeDom = require('@vue/runtime-dom');\nvar shared = require('@vue/shared');\n\nfunction _interopNamespaceDefault(e) {\n var n = Object.create(null);\n if (e) {\n for (var k in e) {\n n[k] = e[k];\n }\n }\n n.default = e;\n return Object.freeze(n);\n}\n\nvar runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom);\n\nconst compileCache = /* @__PURE__ */ Object.create(null);\nfunction compileToFunction(template, options) {\n if (!shared.isString(template)) {\n if (template.nodeType) {\n template = template.innerHTML;\n } else {\n runtimeDom.warn(`invalid template option: `, template);\n return shared.NOOP;\n }\n }\n const key = shared.genCacheKey(template, options);\n const cached = compileCache[key];\n if (cached) {\n return cached;\n }\n if (template[0] === \"#\") {\n const el = document.querySelector(template);\n if (!el) {\n runtimeDom.warn(`Template element not found or is empty: ${template}`);\n }\n template = el ? el.innerHTML : ``;\n }\n const opts = shared.extend(\n {\n hoistStatic: true,\n onError: onError ,\n onWarn: (e) => onError(e, true) \n },\n options\n );\n if (!opts.isCustomElement && typeof customElements !== \"undefined\") {\n opts.isCustomElement = (tag) => !!customElements.get(tag);\n }\n const { code } = compilerDom.compile(template, opts);\n function onError(err, asWarning = false) {\n const message = asWarning ? err.message : `Template compilation error: ${err.message}`;\n const codeFrame = err.loc && shared.generateCodeFrame(\n template,\n err.loc.start.offset,\n err.loc.end.offset\n );\n runtimeDom.warn(codeFrame ? `${message}\n${codeFrame}` : message);\n }\n const render = new Function(\"Vue\", code)(runtimeDom__namespace);\n render._rc = true;\n return compileCache[key] = render;\n}\nruntimeDom.registerRuntimeCompiler(compileToFunction);\n\nexports.compile = compileToFunction;\nObject.keys(runtimeDom).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k];\n});\n",
29
- "import type { UiEngine } from '@stacksjs/ui'\nimport { useStorage } from '@stacksjs/utils'\nimport { computed, type ComputedRef, type Ref, ref } from 'vue'\n\n// import { client as meilisearch } from './drivers/meilisearch'\nimport { determineState } from './helpers'\n\n// import type { Ref } from '@stacksjs/types'\n\nconst table = useStorage('table', determineState()).value\nconst totalHits = table.results?.estimatedTotalHits ?? 1\n\n// state\nconst pages: UiEngine.Ref<number[]> = ref([])\nexport const totalPages: Ref = ref(0)\nexport const currentPage: ComputedRef = computed(() => table.currentPage)\nexport const filterName: ComputedRef = computed(() => table.filterName)\n\nexport const filters: ComputedRef = computed(() => table.filters)\nexport const goToNextPage: ComputedRef = computed(() => table.goToNextPage)\nexport const goToPage: ComputedRef = computed(() => table.goToPage)\nexport const goToPrevPage: ComputedRef = computed(() => table.goToPrevPage)\nexport const hits: ComputedRef = computed(() => table.hits)\nexport const index: ComputedRef<string> = computed(() => table.index)\nexport const lastPageNumber: ComputedRef<number> = computed(() => table.lastPageNumber || 1)\nexport const perPage: ComputedRef<number> = computed(() => table.perPage || 10)\nexport const query: ComputedRef<string | undefined> = computed(() => table.query)\nexport const results: ComputedRef = computed(() => table.results)\nexport const searchFilters: ComputedRef = computed(() => table.searchFilters)\nexport const searchParams: ComputedRef = computed(() => table.searchParams)\nexport const setTotalHits: ComputedRef = computed(() => table.setTotalHits)\nexport const sort: ComputedRef = computed(() => table.sort)\nexport const sorts: ComputedRef = computed(() => table.sorts)\n\nexport function client(): string {\n // if (searchEngine.driver === 'meilisearch')\n // return meilisearch\n return 'wip-search-me'\n}\n\nexport function useSearchEngine(): string {\n return client()\n}\n\nexport function calculatePagination(): void {\n if (table.perPage)\n totalPages.value = Math.ceil(totalHits / table.perPage)\n\n const hitPages = Array.from({ length: totalPages.value }, (_, i) => i + 1)\n const offset = 2\n const currentPage = table.currentPage ?? 1\n const lastPage = hitPages[hitPages.length - 1]\n\n let from = currentPage - offset\n if (from < 1)\n from = 1\n\n let to = from + offset * 2\n if (to >= (lastPage as number))\n to = lastPage as number\n\n const allPages = []\n for (let page = from; page <= to; page++) allPages.push(page)\n\n pages.value = allPages\n}\n\n// it needs these exports\n// currentPage, filterName, filters, goToNextPage, goToPage, goToPrevPage, hits, index, lastPageNumber, perPage, query, results, search, searchFilters, searchParams, setTotalHits, sort, sorts, totalPages\n",
30
- "export * from './index.js'\n",
31
- "/**\n * This file is used to define the types/interfaces used in the project.\n */\n\nimport type { SearchEngineStore } from './types'\n\n// import { isString } from '@stacksjs/validation'\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string'\n}\n\nexport function determineState(): SearchEngineStore {\n const ls = localStorage.getItem('search-engine')\n\n if (isString(ls))\n return JSON.parse(ls) as SearchEngineStore\n\n return {\n // default state\n source: 'http://127.0.0.1:7700',\n index: '',\n perPage: 20,\n currentPage: 1,\n query: '',\n }\n}\n"
32
- ],
33
- "mappings": "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I,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,GAAI,GAAI,KAAM,GAAI,EAAG,GAAI,KAAM,EAAG,IAAK,KAAM,GAAI,KAAM,IAAK,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,KAAM,EAAG,KAAM,GAAI,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,KAAM,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,KAAM,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,KAAM,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,KAAM,MAAO,GAAI,KAAM,EAAG,IAAK,EAAG,KAAM,GAAI,KAAM,GAAI,IAAK,KAAM,IAAK,KAAM,KAAM,EAAG,IAAI,EAC/oE,GAAwB,CAAC,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,EAAG,EAAG,GAAI,MAAO,GAAI,KAAM,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,MAAO,EAAG,KAAM,EAAG,IAAK,GAAI,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,KAAM,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,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",
34
- "debugId": "8113B3EDF31593EA64756E2164756E21",
35
- "names": []
36
- }