{"version":3,"file":"DiTtixnH.js","sources":["../../../../node_modules/@unhead/vue/node_modules/@unhead/shared/dist/index.mjs","../../../../node_modules/@unhead/vue/dist/index.mjs","../../../../utils/DateHelper.ts","../../../../node_modules/base64-js/index.js","../../../../node_modules/ieee754/index.js","../../../../node_modules/buffer/index.js","../../../../utils/crypt.ts","../../../../storage/buyPreference.ts"],"sourcesContent":["function asArray$1(value) {\n return Array.isArray(value) ? value : [value];\n}\n\nconst SelfClosingTags = [\"meta\", \"link\", \"base\"];\nconst TagsWithInnerContent = [\"title\", \"titleTemplate\", \"script\", \"style\", \"noscript\"];\nconst HasElementTags = [\n \"base\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n];\nconst ValidHeadTags = [\n \"title\",\n \"titleTemplate\",\n \"templateParams\",\n \"base\",\n \"htmlAttrs\",\n \"bodyAttrs\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n];\nconst UniqueTags = [\"base\", \"title\", \"titleTemplate\", \"bodyAttrs\", \"htmlAttrs\", \"templateParams\"];\nconst TagConfigKeys = [\"tagPosition\", \"tagPriority\", \"tagDuplicateStrategy\", \"children\", \"innerHTML\", \"textContent\", \"processTemplateParams\"];\nconst IsBrowser = typeof window !== \"undefined\";\nconst composableNames = [\n \"getActiveHead\",\n \"useHead\",\n \"useSeoMeta\",\n \"useHeadSafe\",\n \"useServerHead\",\n \"useServerSeoMeta\",\n \"useServerHeadSafe\"\n];\n\nfunction defineHeadPlugin(plugin) {\n return plugin;\n}\n\nfunction hashCode(s) {\n let h = 9;\n for (let i = 0; i < s.length; )\n h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9);\n return ((h ^ h >>> 9) + 65536).toString(16).substring(1, 8).toLowerCase();\n}\nfunction hashTag(tag) {\n return tag._h || hashCode(tag._d ? tag._d : `${tag.tag}:${tag.textContent || tag.innerHTML || \"\"}:${Object.entries(tag.props).map(([key, value]) => `${key}:${String(value)}`).join(\",\")}`);\n}\n\nfunction tagDedupeKey(tag, fn) {\n const { props, tag: tagName } = tag;\n if (UniqueTags.includes(tagName))\n return tagName;\n if (tagName === \"link\" && props.rel === \"canonical\")\n return \"canonical\";\n if (props.charset)\n return \"charset\";\n const name = [\"id\"];\n if (tagName === \"meta\")\n name.push(...[\"name\", \"property\", \"http-equiv\"]);\n for (const n of name) {\n if (typeof props[n] !== \"undefined\") {\n const val = String(props[n]);\n if (fn && !fn(val))\n return false;\n return `${tagName}:${n}:${val}`;\n }\n }\n return false;\n}\n\nfunction resolveTitleTemplate(template, title) {\n if (template == null)\n return title || null;\n if (typeof template === \"function\")\n return template(title);\n return template;\n}\n\nfunction asArray(input) {\n return Array.isArray(input) ? input : [input];\n}\nconst InternalKeySymbol = \"_$key\";\nfunction packObject(input, options) {\n const keys = Object.keys(input);\n let [k, v] = keys;\n options = options || {};\n options.key = options.key || k;\n options.value = options.value || v;\n options.resolveKey = options.resolveKey || ((k2) => k2);\n const resolveKey = (index) => {\n const arr = asArray(options[index]);\n return arr.find((k2) => {\n if (typeof k2 === \"string\" && k2.includes(\".\")) {\n return k2;\n }\n return k2 && keys.includes(k2);\n });\n };\n const resolveValue = (k2, input2) => {\n if (k2.includes(\".\")) {\n const paths = k2.split(\".\");\n let val = input2;\n for (const path of paths)\n val = val[path];\n return val;\n }\n return input2[k2];\n };\n k = resolveKey(\"key\") || k;\n v = resolveKey(\"value\") || v;\n const dedupeKeyPrefix = input.key ? `${InternalKeySymbol}${input.key}-` : \"\";\n let keyValue = resolveValue(k, input);\n keyValue = options.resolveKey(keyValue);\n return {\n [`${dedupeKeyPrefix}${keyValue}`]: resolveValue(v, input)\n };\n}\n\nfunction packArray(input, options) {\n const packed = {};\n for (const i of input) {\n const packedObj = packObject(i, options);\n const pKey = Object.keys(packedObj)[0];\n const isDedupeKey = pKey.startsWith(InternalKeySymbol);\n if (!isDedupeKey && packed[pKey]) {\n packed[pKey] = Array.isArray(packed[pKey]) ? packed[pKey] : [packed[pKey]];\n packed[pKey].push(Object.values(packedObj)[0]);\n } else {\n packed[isDedupeKey ? pKey.split(\"-\").slice(1).join(\"-\") || pKey : pKey] = packedObj[pKey];\n }\n }\n return packed;\n}\n\nfunction unpackToArray(input, options) {\n const unpacked = [];\n const kFn = options.resolveKeyData || ((ctx) => ctx.key);\n const vFn = options.resolveValueData || ((ctx) => ctx.value);\n for (const [k, v] of Object.entries(input)) {\n unpacked.push(...(Array.isArray(v) ? v : [v]).map((i) => {\n const ctx = { key: k, value: i };\n const val = vFn(ctx);\n if (typeof val === \"object\")\n return unpackToArray(val, options);\n if (Array.isArray(val))\n return val;\n return {\n [typeof options.key === \"function\" ? options.key(ctx) : options.key]: kFn(ctx),\n [typeof options.value === \"function\" ? options.value(ctx) : options.value]: val\n };\n }).flat());\n }\n return unpacked;\n}\n\nfunction unpackToString(value, options) {\n return Object.entries(value).map(([key, value2]) => {\n if (typeof value2 === \"object\")\n value2 = unpackToString(value2, options);\n if (options.resolve) {\n const resolved = options.resolve({ key, value: value2 });\n if (typeof resolved !== \"undefined\")\n return resolved;\n }\n if (typeof value2 === \"number\")\n value2 = value2.toString();\n if (typeof value2 === \"string\" && options.wrapValue) {\n value2 = value2.replace(new RegExp(options.wrapValue, \"g\"), `\\\\${options.wrapValue}`);\n value2 = `${options.wrapValue}${value2}${options.wrapValue}`;\n }\n return `${key}${options.keyValueSeparator || \"\"}${value2}`;\n }).join(options.entrySeparator || \"\");\n}\n\nconst p = (p2) => ({ keyValue: p2, metaKey: \"property\" });\nconst k = (p2) => ({ keyValue: p2 });\nconst MetaPackingSchema = {\n appleItunesApp: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)}=${value}`;\n }\n }\n },\n articleExpirationTime: p(\"article:expiration_time\"),\n articleModifiedTime: p(\"article:modified_time\"),\n articlePublishedTime: p(\"article:published_time\"),\n bookReleaseDate: p(\"book:release_date\"),\n charset: {\n metaKey: \"charset\"\n },\n contentSecurityPolicy: {\n unpack: {\n entrySeparator: \"; \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)} ${value}`;\n }\n },\n metaKey: \"http-equiv\"\n },\n contentType: {\n metaKey: \"http-equiv\"\n },\n defaultStyle: {\n metaKey: \"http-equiv\"\n },\n fbAppId: p(\"fb:app_id\"),\n msapplicationConfig: k(\"msapplication-Config\"),\n msapplicationTileColor: k(\"msapplication-TileColor\"),\n msapplicationTileImage: k(\"msapplication-TileImage\"),\n ogAudioSecureUrl: p(\"og:audio:secure_url\"),\n ogAudioUrl: p(\"og:audio\"),\n ogImageSecureUrl: p(\"og:image:secure_url\"),\n ogImageUrl: p(\"og:image\"),\n ogSiteName: p(\"og:site_name\"),\n ogVideoSecureUrl: p(\"og:video:secure_url\"),\n ogVideoUrl: p(\"og:video\"),\n profileFirstName: p(\"profile:first_name\"),\n profileLastName: p(\"profile:last_name\"),\n profileUsername: p(\"profile:username\"),\n refresh: {\n metaKey: \"http-equiv\",\n unpack: {\n entrySeparator: \";\",\n resolve({ key, value }) {\n if (key === \"seconds\")\n return `${value}`;\n }\n }\n },\n robots: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n if (typeof value === \"boolean\")\n return `${fixKeyCase(key)}`;\n else\n return `${fixKeyCase(key)}:${value}`;\n }\n }\n },\n xUaCompatible: {\n metaKey: \"http-equiv\"\n }\n};\nconst openGraphNamespaces = [\n \"og\",\n \"book\",\n \"article\",\n \"profile\"\n];\nfunction resolveMetaKeyType(key) {\n const fKey = fixKeyCase(key).split(\":\")[0];\n if (openGraphNamespaces.includes(fKey))\n return \"property\";\n return MetaPackingSchema[key]?.metaKey || \"name\";\n}\nfunction resolveMetaKeyValue(key) {\n return MetaPackingSchema[key]?.keyValue || fixKeyCase(key);\n}\nfunction fixKeyCase(key) {\n const updated = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n const fKey = updated.split(\"-\")[0];\n if (openGraphNamespaces.includes(fKey) || fKey === \"twitter\")\n return key.replace(/([A-Z])/g, \":$1\").toLowerCase();\n return updated;\n}\nfunction changeKeyCasingDeep(input) {\n if (Array.isArray(input)) {\n return input.map((entry) => changeKeyCasingDeep(entry));\n }\n if (typeof input !== \"object\" || Array.isArray(input))\n return input;\n const output = {};\n for (const [key, value] of Object.entries(input))\n output[fixKeyCase(key)] = changeKeyCasingDeep(value);\n return output;\n}\nfunction resolvePackedMetaObjectValue(value, key) {\n const definition = MetaPackingSchema[key];\n if (key === \"refresh\")\n return `${value.seconds};url=${value.url}`;\n return unpackToString(\n changeKeyCasingDeep(value),\n {\n keyValueSeparator: \"=\",\n entrySeparator: \", \",\n resolve({ value: value2, key: key2 }) {\n if (value2 === null)\n return \"\";\n if (typeof value2 === \"boolean\")\n return `${key2}`;\n },\n ...definition?.unpack\n }\n );\n}\nconst ObjectArrayEntries = [\"og:image\", \"og:video\", \"og:audio\", \"twitter:image\"];\nfunction sanitize(input) {\n const out = {};\n Object.entries(input).forEach(([k2, v]) => {\n if (String(v) !== \"false\" && k2)\n out[k2] = v;\n });\n return out;\n}\nfunction handleObjectEntry(key, v) {\n const value = sanitize(v);\n const fKey = fixKeyCase(key);\n const attr = resolveMetaKeyType(fKey);\n if (ObjectArrayEntries.includes(fKey)) {\n const input = {};\n Object.entries(value).forEach(([k2, v2]) => {\n input[`${key}${k2 === \"url\" ? \"\" : `${k2.charAt(0).toUpperCase()}${k2.slice(1)}`}`] = v2;\n });\n return unpackMeta(input).sort((a, b) => (a[attr]?.length || 0) - (b[attr]?.length || 0));\n }\n return [{ [attr]: fKey, ...value }];\n}\nfunction unpackMeta(input) {\n const extras = [];\n const primitives = {};\n Object.entries(input).forEach(([key, value]) => {\n if (!Array.isArray(value)) {\n if (typeof value === \"object\" && value) {\n if (ObjectArrayEntries.includes(fixKeyCase(key))) {\n extras.push(...handleObjectEntry(key, value));\n return;\n }\n primitives[key] = sanitize(value);\n } else {\n primitives[key] = value;\n }\n return;\n }\n value.forEach((v) => {\n extras.push(...typeof v === \"string\" ? unpackMeta({ [key]: v }) : handleObjectEntry(key, v));\n });\n });\n const meta = unpackToArray(primitives, {\n key({ key }) {\n return resolveMetaKeyType(key);\n },\n value({ key }) {\n return key === \"charset\" ? \"charset\" : \"content\";\n },\n resolveKeyData({ key }) {\n return resolveMetaKeyValue(key);\n },\n resolveValueData({ value, key }) {\n if (value === null)\n return \"_null\";\n if (typeof value === \"object\")\n return resolvePackedMetaObjectValue(value, key);\n return typeof value === \"number\" ? value.toString() : value;\n }\n });\n return [...extras, ...meta].map((m) => {\n if (m.content === \"_null\")\n m.content = null;\n return m;\n });\n}\nfunction packMeta(inputs) {\n const mappedPackingSchema = Object.entries(MetaPackingSchema).map(([key, value]) => [key, value.keyValue]);\n return packArray(inputs, {\n key: [\"name\", \"property\", \"httpEquiv\", \"http-equiv\", \"charset\"],\n value: [\"content\", \"charset\"],\n resolveKey(k2) {\n let key = mappedPackingSchema.filter((sk) => sk[1] === k2)?.[0]?.[0] || k2;\n const replacer = (_, letter) => letter?.toUpperCase();\n key = key.replace(/:([a-z])/g, replacer).replace(/-([a-z])/g, replacer);\n return key;\n }\n });\n}\n\nconst WhitelistAttributes = {\n htmlAttrs: [\"id\", \"class\", \"lang\", \"dir\"],\n bodyAttrs: [\"id\", \"class\"],\n meta: [\"id\", \"name\", \"property\", \"charset\", \"content\"],\n noscript: [\"id\", \"textContent\"],\n script: [\"id\", \"type\", \"textContent\"],\n link: [\"id\", \"color\", \"crossorigin\", \"fetchpriority\", \"href\", \"hreflang\", \"imagesrcset\", \"imagesizes\", \"integrity\", \"media\", \"referrerpolicy\", \"rel\", \"sizes\", \"type\"]\n};\nfunction acceptDataAttrs(value) {\n const filtered = {};\n Object.keys(value || {}).filter((a) => a.startsWith(\"data-\")).forEach((a) => {\n filtered[a] = value[a];\n });\n return filtered;\n}\nfunction whitelistSafeInput(input) {\n const filtered = {};\n Object.keys(input).forEach((key) => {\n const tagValue = input[key];\n if (!tagValue)\n return;\n switch (key) {\n case \"title\":\n case \"titleTemplate\":\n case \"templateParams\":\n filtered[key] = tagValue;\n break;\n case \"htmlAttrs\":\n case \"bodyAttrs\":\n filtered[key] = acceptDataAttrs(tagValue);\n WhitelistAttributes[key].forEach((a) => {\n if (tagValue[a])\n filtered[key][a] = tagValue[a];\n });\n break;\n case \"meta\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const safeMeta = acceptDataAttrs(meta);\n WhitelistAttributes.meta.forEach((key2) => {\n if (meta[key2])\n safeMeta[key2] = meta[key2];\n });\n return safeMeta;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"link\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const link = acceptDataAttrs(meta);\n WhitelistAttributes.link.forEach((key2) => {\n const val = meta[key2];\n if (key2 === \"rel\" && [\"stylesheet\", \"canonical\", \"modulepreload\", \"prerender\", \"preload\", \"prefetch\"].includes(val))\n return;\n if (key2 === \"href\") {\n if (val.includes(\"javascript:\") || val.includes(\"data:\"))\n return;\n link[key2] = val;\n } else if (val) {\n link[key2] = val;\n }\n });\n return link;\n }).filter((link) => Object.keys(link).length > 1 && !!link.rel);\n }\n break;\n case \"noscript\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const noscript = acceptDataAttrs(meta);\n WhitelistAttributes.noscript.forEach((key2) => {\n if (meta[key2])\n noscript[key2] = meta[key2];\n });\n return noscript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"script\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((script) => {\n const safeScript = acceptDataAttrs(script);\n WhitelistAttributes.script.forEach((s) => {\n if (script[s]) {\n if (s === \"textContent\") {\n try {\n const jsonVal = typeof script[s] === \"string\" ? JSON.parse(script[s]) : script[s];\n safeScript[s] = JSON.stringify(jsonVal, null, 0);\n } catch (e) {\n }\n } else {\n safeScript[s] = script[s];\n }\n }\n });\n return safeScript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n }\n });\n return filtered;\n}\n\nasync function normaliseTag(tagName, input, e) {\n const tag = {\n tag: tagName,\n props: await normaliseProps(\n // explicitly check for an object\n // @ts-expect-error untyped\n typeof input === \"object\" && typeof input !== \"function\" && !(input instanceof Promise) ? { ...input } : { [[\"script\", \"noscript\", \"style\"].includes(tagName) ? \"innerHTML\" : \"textContent\"]: input },\n [\"templateParams\", \"titleTemplate\"].includes(tagName)\n )\n };\n TagConfigKeys.forEach((k) => {\n const val = typeof tag.props[k] !== \"undefined\" ? tag.props[k] : e[k];\n if (typeof val !== \"undefined\") {\n if (![\"innerHTML\", \"textContent\", \"children\"].includes(k) || TagsWithInnerContent.includes(tag.tag)) {\n tag[k === \"children\" ? \"innerHTML\" : k] = val;\n }\n delete tag.props[k];\n }\n });\n if (tag.props.body) {\n tag.tagPosition = \"bodyClose\";\n delete tag.props.body;\n }\n if (tag.tag === \"script\") {\n if (typeof tag.innerHTML === \"object\") {\n tag.innerHTML = JSON.stringify(tag.innerHTML);\n tag.props.type = tag.props.type || \"application/json\";\n }\n }\n return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag;\n}\nfunction normaliseStyleClassProps(key, v) {\n const sep = key === \"class\" ? \" \" : \";\";\n if (typeof v === \"object\" && !Array.isArray(v)) {\n v = Object.entries(v).filter(([, v2]) => v2).map(([k, v2]) => key === \"style\" ? `${k}:${v2}` : k);\n }\n return String(Array.isArray(v) ? v.join(sep) : v)?.split(sep).filter((c) => c.trim()).filter(Boolean).join(sep);\n}\nasync function normaliseProps(props, virtual) {\n for (const k of Object.keys(props)) {\n if ([\"class\", \"style\"].includes(k)) {\n props[k] = normaliseStyleClassProps(k, props[k]);\n continue;\n }\n if (props[k] instanceof Promise)\n props[k] = await props[k];\n if (!virtual && !TagConfigKeys.includes(k)) {\n const v = String(props[k]);\n const isDataKey = k.startsWith(\"data-\");\n if (v === \"true\" || v === \"\") {\n props[k] = isDataKey ? \"true\" : true;\n } else if (!props[k]) {\n if (isDataKey && v === \"false\")\n props[k] = \"false\";\n else\n delete props[k];\n }\n }\n }\n return props;\n}\nconst TagEntityBits = 10;\nasync function normaliseEntryTags(e) {\n const tagPromises = [];\n Object.entries(e.resolvedInput).filter(([k, v]) => typeof v !== \"undefined\" && ValidHeadTags.includes(k)).forEach(([k, value]) => {\n const v = asArray$1(value);\n tagPromises.push(...v.map((props) => normaliseTag(k, props, e)).flat());\n });\n return (await Promise.all(tagPromises)).flat().filter(Boolean).map((t, i) => {\n t._e = e._i;\n e.mode && (t._m = e.mode);\n t._p = (e._i << TagEntityBits) + i;\n return t;\n });\n}\n\nconst TAG_WEIGHTS = {\n // tags\n base: -10,\n title: 10\n};\nconst TAG_ALIASES = {\n // relative scores to their default values\n critical: -80,\n high: -10,\n low: 20\n};\nfunction tagWeight(tag) {\n let weight = 100;\n const priority = tag.tagPriority;\n if (typeof priority === \"number\")\n return priority;\n if (tag.tag === \"meta\") {\n if (tag.props[\"http-equiv\"] === \"content-security-policy\")\n weight = -30;\n if (tag.props.charset)\n weight = -20;\n if (tag.props.name === \"viewport\")\n weight = -15;\n } else if (tag.tag === \"link\" && tag.props.rel === \"preconnect\") {\n weight = 20;\n } else if (tag.tag in TAG_WEIGHTS) {\n weight = TAG_WEIGHTS[tag.tag];\n }\n if (typeof priority === \"string\" && priority in TAG_ALIASES) {\n return weight + TAG_ALIASES[priority];\n }\n return weight;\n}\nconst SortModifiers = [{ prefix: \"before:\", offset: -1 }, { prefix: \"after:\", offset: 1 }];\n\nconst NetworkEvents = [\"onload\", \"onerror\", \"onabort\", \"onprogress\", \"onloadstart\"];\nconst ScriptNetworkEvents = [\"onload\", \"onerror\"];\n\nconst sepSub = \"%separator\";\nfunction processTemplateParams(s, p, sep) {\n if (typeof s !== \"string\" || !s.includes(\"%\"))\n return s;\n function sub(token) {\n let val;\n if ([\"s\", \"pageTitle\"].includes(token)) {\n val = p.pageTitle;\n } else if (token.includes(\".\")) {\n val = token.split(\".\").reduce((acc, key) => acc ? acc[key] || void 0 : void 0, p);\n } else {\n val = p[token];\n }\n return typeof val !== \"undefined\" ? (val || \"\").replace(/\"/g, '\\\\\"') : false;\n }\n let decoded = s;\n try {\n decoded = decodeURI(s);\n } catch {\n }\n const tokens = (decoded.match(/%(\\w+\\.+\\w+)|%(\\w+)/g) || []).sort().reverse();\n tokens.forEach((token) => {\n const re = sub(token.slice(1));\n if (typeof re === \"string\") {\n s = s.replace(new RegExp(`\\\\${token}(\\\\W|$)`, \"g\"), (_, args) => `${re}${args}`).trim();\n }\n });\n if (s.includes(sepSub)) {\n if (s.endsWith(sepSub))\n s = s.slice(0, -sepSub.length).trim();\n if (s.startsWith(sepSub))\n s = s.slice(sepSub.length).trim();\n s = s.replace(new RegExp(`\\\\${sepSub}\\\\s*\\\\${sepSub}`, \"g\"), sepSub);\n s = processTemplateParams(s, { separator: sep }, sep);\n }\n return s;\n}\n\nexport { HasElementTags, IsBrowser, NetworkEvents, ScriptNetworkEvents, SelfClosingTags, SortModifiers, TAG_ALIASES, TAG_WEIGHTS, TagConfigKeys, TagEntityBits, TagsWithInnerContent, UniqueTags, ValidHeadTags, asArray$1 as asArray, composableNames, defineHeadPlugin, hashCode, hashTag, normaliseEntryTags, normaliseProps, normaliseStyleClassProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, resolveTitleTemplate, tagDedupeKey, tagWeight, unpackMeta, whitelistSafeInput };\n","import { useScript as useScript$1 } from 'unhead';\nexport { CapoPlugin, HashHydrationPlugin, createHeadCore } from 'unhead';\nimport { V as Vue3, h as headSymbol, i as injectHead } from './shared/vue.cf295fb1.mjs';\nexport { c as createHead, a as createServerHead, r as resolveUnrefHeadInput, s as setHeadInjectionHandler } from './shared/vue.cf295fb1.mjs';\nimport { getCurrentInstance, ref, onMounted } from 'vue';\nimport { u as useHead } from './shared/vue.f36acd1f.mjs';\nimport { composableNames, whitelistSafeInput, unpackMeta } from '@unhead/shared';\n\nconst VueHeadMixin = {\n created() {\n let source = false;\n if (Vue3) {\n const instance = getCurrentInstance();\n if (!instance)\n return;\n const options = instance.type;\n if (!options || !(\"head\" in options))\n return;\n source = typeof options.head === \"function\" ? () => options.head.call(instance.proxy) : options.head;\n } else {\n const head = this.$options.head;\n if (head) {\n source = typeof head === \"function\" ? () => head.call(this) : head;\n }\n }\n source && useHead(source);\n }\n};\n\nconst Vue2ProvideUnheadPlugin = function(_Vue, head) {\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n const origProvide = options.provide;\n options.provide = function() {\n let origProvideResult;\n if (typeof origProvide === \"function\")\n origProvideResult = origProvide.call(this);\n else\n origProvideResult = origProvide || {};\n return {\n ...origProvideResult,\n [headSymbol]: head\n };\n };\n }\n });\n};\n\nconst coreComposableNames = [\n \"injectHead\"\n];\nconst unheadVueComposablesImports = {\n \"@unhead/vue\": [...coreComposableNames, ...composableNames]\n};\n\nfunction useHeadSafe(input, options = {}) {\n return useHead(input, { ...options, transform: whitelistSafeInput });\n}\n\nfunction useSeoMeta(input, options) {\n const { title, titleTemplate, ...meta } = input;\n return useHead({\n title,\n titleTemplate,\n // @ts-expect-error runtime type\n _flatMeta: meta\n }, {\n ...options,\n transform(t) {\n const meta2 = unpackMeta({ ...t._flatMeta });\n delete t._flatMeta;\n return {\n // @ts-expect-error runtime type\n ...t,\n meta: meta2\n };\n }\n });\n}\n\nfunction useServerHead(input, options = {}) {\n const head = options.head || injectHead();\n delete options.head;\n if (head)\n return head.push(input, { ...options, mode: \"server\" });\n}\n\nfunction useServerHeadSafe(input, options = {}) {\n return useHeadSafe(input, { ...options, mode: \"server\" });\n}\n\nfunction useServerSeoMeta(input, options) {\n return useSeoMeta(input, { ...options || {}, mode: \"server\" });\n}\n\nfunction useScript(_input, _options) {\n const input = typeof _input === \"string\" ? { src: _input } : _input;\n const head = injectHead();\n const options = _options || {};\n options.head = head;\n options.eventContext = getCurrentInstance();\n const status = ref(\"awaitingLoad\");\n const stubOptions = options.stub;\n options.stub = ({ script, fn }) => {\n script.status = status;\n if (fn === \"$script\")\n return script;\n return stubOptions?.({ script, fn });\n };\n let instance;\n const _ = head.hooks.hook(\"script:updated\", ({ script }) => {\n if (instance && script.id === instance.$script.id) {\n status.value = script.status;\n script.status === \"removed\" && _();\n }\n });\n const scope = getCurrentInstance();\n if (scope && !options.trigger)\n options.trigger = onMounted;\n instance = useScript$1(input, options);\n return instance;\n}\n\nexport { Vue2ProvideUnheadPlugin, VueHeadMixin, injectHead, unheadVueComposablesImports, useHead, useHeadSafe, useScript, useSeoMeta, useServerHead, useServerHeadSafe, useServerSeoMeta };\n","import {capitalizeFirstLetter} from './CapitalizeLetters'\n\nconst getHour = (dateString: string) => {\n const date = new Date(dateString)\n const output = date.toLocaleString('es-es', { hour: 'numeric', minute: 'numeric', hour12: true })\n\n return capitalizeFirstLetter(output)\n}\n\nconst getDay = (dateString: string) => {\n const date = new Date(dateString)\n const output = date.toLocaleString('es-es', { weekday: 'long', day: 'numeric' })\n\n return capitalizeFirstLetter(output)\n}\n\nconst getMonth = (dateString: string) => {\n const date = new Date(dateString)\n const output = date.toLocaleString('es-es', { month: 'long'})\n\n return capitalizeFirstLetter(output)\n}\n\nconst getMonthAndYear = (dateString: string) => {\n const date = new Date(dateString)\n const output = date.toLocaleString('es-es', { month: 'long', year: 'numeric' })\n\n return capitalizeFirstLetter(output)\n}\n\nconst getDayMonthAndYear = (dateString: string) => {\n const date = new Date(dateString)\n const output = date.toLocaleString('es-es', { day: 'numeric' , month: 'long', year: 'numeric' })\n\n return capitalizeFirstLetter(output)\n}\n\nconst isDateToday = (dateString: string) => {\n const today = new Date()\n const currentDate = new Date(dateString)\n\n return currentDate.toDateString() === today.toDateString()\n}\n\nconst getDateStringFromIso = (dateTime: string) => {\n const d = new Date(dateTime)\n // Date string\n return d.getFullYear().toString().padStart(4, '0') + '-' + (d.getMonth() + 1).toString().padStart(2, '0') + '-' + d.getDate().toString().padStart(2, '0');\n}\n\n\nconst getTimeStringFromIso = (dateTime: string) => {\n const d = new Date(dateTime)\n // Time string\n return d.getHours().toString().padStart(2, '0') + ':' + d.getMinutes().toString().padStart(2, '0') + ':' + d.getSeconds().toString().padStart(2, '0');\n}\nexport {\n getDay,\n getMonth,\n getDayMonthAndYear,\n getMonthAndYear,\n getHour,\n isDateToday,\n getDateStringFromIso,\n getTimeStringFromIso,\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","import {Buffer} from 'buffer';\n\nconst base64Encode = (obj: object): string => {\n const jsonString = JSON.stringify(obj);\n const bufferObj = Buffer.from(jsonString);\n\n return bufferObj.toString('base64')\n}\n\nconst base64Decode = (base64Obj: string): object => {\n const decodedBufferObj = Buffer.from(base64Obj, 'base64');\n const decodedStringObj = decodedBufferObj.toString();\n\n return JSON.parse(JSON.parse(decodedStringObj))\n}\n\nexport {base64Encode,base64Decode}","import {defineStore} from 'pinia'\nimport type {ShowEventPublicOutput} from \"~/api/generated\";\n\nconst STORE_NAME = 'buyPreference';\n\ninterface buyPreference {\n preferenceData: string | undefined;\n enablePurchase: boolean;\n possibleTicketQuantity: number | undefined;\n possibleShowPriceId: number | undefined | null;\n possibleDonatePrice: number | undefined | null;\n}\n\nconst initialState = {\n preferenceData: undefined,\n enablePurchase: false,\n possibleTicketQuantity: undefined,\n possibleShowPriceId: undefined,\n possibleDonatePrice: undefined,\n} as buyPreference;\n\nexport const useBuyStore = defineStore(STORE_NAME, {\n state: () => (\n {preference: initialState as buyPreference}\n ),\n persist: {\n storage: persistedState.localStorage,\n },\n actions: {\n setBuyPreference(\n showEvent: ShowEventPublicOutput,\n possibleTicketQuantity: number,\n possibleShowPriceId: number | null,\n possibleDonatePrice: number | null,\n ) {\n this.$state.preference.preferenceData = base64Encode(JSON.stringify(showEvent))\n this.$state.preference.enablePurchase = true;\n this.$state.preference.possibleTicketQuantity = possibleTicketQuantity;\n this.$state.preference.possibleShowPriceId = possibleShowPriceId;\n this.$state.preference.possibleDonatePrice = possibleDonatePrice;\n },\n getPreference(): buyPreference {\n return this.$state.preference\n },\n getShowEvent(): ShowEventPublicOutput|undefined {\n if (this.$state.preference.preferenceData === undefined) {\n return undefined;\n }\n const possibleShowEvent = base64Decode(this.$state.preference.preferenceData??'')\n\n if (possibleShowEvent === undefined) {\n return undefined;\n }\n\n return possibleShowEvent as ShowEventPublicOutput;\n },\n _reset() {\n console.log('reset')\n // this.preference = initialState as buyPreference\n // this.$reset()\n this.$state.preference.preferenceData = undefined\n this.$state.preference.enablePurchase = false;\n this.$state.preference.possibleTicketQuantity = undefined;\n this.$state.preference.possibleShowPriceId = undefined;\n this.$state.preference.possibleDonatePrice = undefined;\n }\n }\n})\n"],"names":["unpackToArray","input","options","unpacked","kFn","ctx","vFn","k","v","i","val","unpackToString","value","key","value2","resolved","p","p2","MetaPackingSchema","fixKeyCase","openGraphNamespaces","resolveMetaKeyType","fKey","_a","resolveMetaKeyValue","updated","changeKeyCasingDeep","entry","output","resolvePackedMetaObjectValue","definition","key2","ObjectArrayEntries","sanitize","out","k2","handleObjectEntry","attr","v2","unpackMeta","a","b","_b","extras","primitives","meta","m","useSeoMeta","title","titleTemplate","useHead","t","meta2","getHour","dateString","capitalizeFirstLetter","getDay","getMonth","getMonthAndYear","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","extraBytes","parts","maxChunkLength","len2","ieee754","buffer","offset","isLE","mLen","nBytes","e","eLen","eMax","eBias","nBits","d","s","c","rt","base64","require$$0","require$$1","customInspectSymbol","exports","Buffer","SlowBuffer","K_MAX_LENGTH","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","ret","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","last","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","base64Encode","jsonString","base64Decode","base64Obj","decodedStringObj","STORE_NAME","initialState","useBuyStore","defineStore","persistedState","showEvent","possibleTicketQuantity","possibleShowPriceId","possibleDonatePrice","possibleShowEvent"],"mappings":"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","x_google_ignoreList":[0,1,3,4,5]}