The captcha solver made by and for japanese high school girls!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1 lines
870 KiB

{"version":3,"file":"main-es5.js","sources":["../node_modules/regenerator-runtime/runtime.js","../node_modules/rollup-plugin-node-polyfills/polyfills/global.js","../node_modules/rollup-plugin-node-polyfills/polyfills/buffer-es6.js","../node_modules/svelte/internal/index.mjs","../node_modules/svelte/store/index.mjs","../node_modules/crc-32/crc32.js","../node_modules/peek-readable/lib/EndOfFileStream.js","../node_modules/strtok3/lib/AbstractTokenizer.js","../node_modules/strtok3/lib/BufferTokenizer.js","../node_modules/strtok3/lib/core.js","../node_modules/token-types/lib/index.js","../node_modules/file-type/util.js","../node_modules/file-type/core.js","../node_modules/matroska/lib/schema.js","../node_modules/ebml-block/lib/vint.js","../node_modules/ebml-block/lib/buffer-reader.js","../node_modules/jpeg-js/lib/encoder.js","../node_modules/jpeg-js/lib/decoder.js","../node_modules/jpeg-js/index.js","../src/Components/Dialog.svelte","../src/Components/Tag.svelte","../src/Components/Tabs.svelte","../src/Components/TabList.svelte","../src/Components/Tab.svelte","../src/Components/TabPanel.svelte","../src/Components/Embedding.svelte","../src/Components/HydrusSearch.svelte","../src/Components/App.svelte","../src/Components/ScrollHighlighter.svelte","../src/Components/PostOptions.svelte","../src/Components/SettingsButton.svelte","../src/Components/Embeddings.svelte","../src/Components/EyeButton.svelte","../src/Components/NotificationsHandler.svelte","../node_modules/linkifyjs/dist/linkify.module.js","../node_modules/linkify-string/dist/linkify-string.module.js","../src/Components/TextEmbeddings.svelte"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","var lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\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 // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + 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 = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\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 output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (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\nfunction write (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\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <[email protected]> <http://feross.org>\n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\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(null, 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(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.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 that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0;\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.equals = function equals (b) {\n if (!internalIsBuffer(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 var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>'\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var 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 (isNaN(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 (internalIsBuffer(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1;\n var arrLength = arr.length;\n var 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 var i;\n if (dir) {\n var 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 var found = true;\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = '';\n var 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 var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\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 var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var 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 var i = byteLength;\n var mul = 1;\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var 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 var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\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 if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n 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 if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n 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 (!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('sourceStart out of bounds')\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 var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\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 } else if (typeof val === 'number') {\n val = val & 255;\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 var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var 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 var byteArray = [];\n for (var 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 var c, hi, lo;\n var byteArray = [];\n for (var 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\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nexport { Buffer, INSPECT_MAX_BYTES, SlowBuffer, isBuffer, _kMaxLength as kMaxLength };\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not <head>\n let children = target.childNodes;\n // If target is <head>, there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration();\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, bubbles = false) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor() {\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes) {\n super();\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '&quot;',\n \"'\": '&#39;',\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction escape_attribute_value(value) {\n return typeof value === 'string' ? escape(value) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.44.3' }, detail), true));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * <script lang=\"ts\">\n * \timport { MyComponent } from \"component-library\";\n * </script>\n * <MyComponent foo={'bar'} />\n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tif(typeof DO_NOT_EXPORT_CRC === 'undefined') {\n\t\tif('object' === typeof exports) {\n\t\t\tfactory(exports);\n\t\t} else if ('function' === typeof define && define.amd) {\n\t\t\tdefine(function () {\n\t\t\t\tvar module = {};\n\t\t\t\tfactory(module);\n\t\t\t\treturn module;\n\t\t\t});\n\t\t} else {\n\t\t\tfactory(CRC32 = {});\n\t\t}\n\t} else {\n\t\tfactory(CRC32 = {});\n\t}\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\n// $FlowIgnore\nCRC32.bstr = crc32_bstr;\n// $FlowIgnore\nCRC32.buf = crc32_buf;\n// $FlowIgnore\nCRC32.str = crc32_str;\n}));\n","export const defaultMessages = 'End-Of-Stream';\r\n/**\r\n * Thrown on read operation of the end of file or stream has been reached\r\n */\r\nexport class EndOfStreamError extends Error {\r\n constructor() {\r\n super(defaultMessages);\r\n }\r\n}\r\n","import { EndOfStreamError } from 'peek-readable';\r\nimport { Buffer } from 'node:buffer';\r\n/**\r\n * Core tokenizer\r\n */\r\nexport class AbstractTokenizer {\r\n constructor(fileInfo) {\r\n /**\r\n * Tokenizer-stream position\r\n */\r\n this.position = 0;\r\n this.numBuffer = new Uint8Array(8);\r\n this.fileInfo = fileInfo ? fileInfo : {};\r\n }\r\n /**\r\n * Read a token from the tokenizer-stream\r\n * @param token - The token to read\r\n * @param position - If provided, the desired position in the tokenizer-stream\r\n * @returns Promise with token data\r\n */\r\n async readToken(token, position = this.position) {\r\n const uint8Array = Buffer.alloc(token.len);\r\n const len = await this.readBuffer(uint8Array, { position });\r\n if (len < token.len)\r\n throw new EndOfStreamError();\r\n return token.get(uint8Array, 0);\r\n }\r\n /**\r\n * Peek a token from the tokenizer-stream.\r\n * @param token - Token to peek from the tokenizer-stream.\r\n * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.\r\n * @returns Promise with token data\r\n */\r\n async peekToken(token, position = this.position) {\r\n const uint8Array = Buffer.alloc(token.len);\r\n const len = await this.peekBuffer(uint8Array, { position });\r\n if (len < token.len)\r\n throw new EndOfStreamError();\r\n return token.get(uint8Array, 0);\r\n }\r\n /**\r\n * Read a numeric token from the stream\r\n * @param token - Numeric token\r\n * @returns Promise with number\r\n */\r\n async readNumber(token) {\r\n const len = await this.readBuffer(this.numBuffer, { length: token.len });\r\n if (len < token.len)\r\n throw new EndOfStreamError();\r\n return token.get(this.numBuffer, 0);\r\n }\r\n /**\r\n * Read a numeric token from the stream\r\n * @param token - Numeric token\r\n * @returns Promise with number\r\n */\r\n async peekNumber(token) {\r\n const len = await this.peekBuffer(this.numBuffer, { length: token.len });\r\n if (len < token.len)\r\n throw new EndOfStreamError();\r\n return token.get(this.numBuffer, 0);\r\n }\r\n /**\r\n * Ignore number of bytes, advances the pointer in under tokenizer-stream.\r\n * @param length - Number of bytes to ignore\r\n * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available\r\n */\r\n async ignore(length) {\r\n if (this.fileInfo.size !== undefined) {\r\n const bytesLeft = this.fileInfo.size - this.position;\r\n if (length > bytesLeft) {\r\n this.position += bytesLeft;\r\n return bytesLeft;\r\n }\r\n }\r\n this.position += length;\r\n return length;\r\n }\r\n async close() {\r\n // empty\r\n }\r\n normalizeOptions(uint8Array, options) {\r\n if (options && options.position !== undefined && options.position < this.position) {\r\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\r\n }\r\n if (options) {\r\n return {\r\n mayBeLess: options.mayBeLess === true,\r\n offset: options.offset ? options.offset : 0,\r\n length: options.length ? options.length : (uint8Array.length - (options.offset ? options.offset : 0)),\r\n position: options.position ? options.position : this.position\r\n };\r\n }\r\n return {\r\n mayBeLess: false,\r\n offset: 0,\r\n length: uint8Array.length,\r\n position: this.position\r\n };\r\n }\r\n}\r\n","import { EndOfStreamError } from 'peek-readable';\r\nimport { AbstractTokenizer } from './AbstractTokenizer.js';\r\nexport class BufferTokenizer extends AbstractTokenizer {\r\n /**\r\n * Construct BufferTokenizer\r\n * @param uint8Array - Uint8Array to tokenize\r\n * @param fileInfo - Pass additional file information to the tokenizer\r\n */\r\n constructor(uint8Array, fileInfo) {\r\n super(fileInfo);\r\n this.uint8Array = uint8Array;\r\n this.fileInfo.size = this.fileInfo.size ? this.fileInfo.size : uint8Array.length;\r\n }\r\n /**\r\n * Read buffer from tokenizer\r\n * @param uint8Array - Uint8Array to tokenize\r\n * @param options - Read behaviour options\r\n * @returns {Promise<number>}\r\n */\r\n async readBuffer(uint8Array, options) {\r\n if (options && options.position) {\r\n if (options.position < this.position) {\r\n throw new Error('`options.position` must be equal or greater than `tokenizer.position`');\r\n }\r\n this.position = options.position;\r\n }\r\n const bytesRead = await this.peekBuffer(uint8Array, options);\r\n this.position += bytesRead;\r\n return bytesRead;\r\n }\r\n /**\r\n * Peek (read ahead) buffer from tokenizer\r\n * @param uint8Array\r\n * @param options - Read behaviour options\r\n * @returns {Promise<number>}\r\n */\r\n async peekBuffer(uint8Array, options) {\r\n const normOptions = this.normalizeOptions(uint8Array, options);\r\n const bytes2read = Math.min(this.uint8Array.length - normOptions.position, normOptions.length);\r\n if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {\r\n throw new EndOfStreamError();\r\n }\r\n else {\r\n uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read), normOptions.offset);\r\n return bytes2read;\r\n }\r\n }\r\n async close() {\r\n // empty\r\n }\r\n}\r\n","import { ReadStreamTokenizer } from './ReadStreamTokenizer.js';\r\nimport { BufferTokenizer } from './BufferTokenizer.js';\r\nexport { EndOfStreamError } from 'peek-readable';\r\n/**\r\n * Construct ReadStreamTokenizer from given Stream.\r\n * Will set fileSize, if provided given Stream has set the .path property/\r\n * @param stream - Read from Node.js Stream.Readable\r\n * @param fileInfo - Pass the file information, like size and MIME-type of the corresponding stream.\r\n * @returns ReadStreamTokenizer\r\n */\r\nexport function fromStream(stream, fileInfo) {\r\n fileInfo = fileInfo ? fileInfo : {};\r\n return new ReadStreamTokenizer(stream, fileInfo);\r\n}\r\n/**\r\n * Construct ReadStreamTokenizer from given Buffer.\r\n * @param uint8Array - Uint8Array to tokenize\r\n * @param fileInfo - Pass additional file information to the tokenizer\r\n * @returns BufferTokenizer\r\n */\r\nexport function fromBuffer(uint8Array, fileInfo) {\r\n return new BufferTokenizer(uint8Array, fileInfo);\r\n}\r\n","import * as ieee754 from 'ieee754';\r\nimport { Buffer } from 'node:buffer';\r\n// Primitive types\r\nfunction dv(array) {\r\n return new DataView(array.buffer, array.byteOffset);\r\n}\r\n/**\r\n * 8-bit unsigned integer\r\n */\r\nexport const UINT8 = {\r\n len: 1,\r\n get(array, offset) {\r\n return dv(array).getUint8(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setUint8(offset, value);\r\n return offset + 1;\r\n }\r\n};\r\n/**\r\n * 16-bit unsigned integer, Little Endian byte order\r\n */\r\nexport const UINT16_LE = {\r\n len: 2,\r\n get(array, offset) {\r\n return dv(array).getUint16(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setUint16(offset, value, true);\r\n return offset + 2;\r\n }\r\n};\r\n/**\r\n * 16-bit unsigned integer, Big Endian byte order\r\n */\r\nexport const UINT16_BE = {\r\n len: 2,\r\n get(array, offset) {\r\n return dv(array).getUint16(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setUint16(offset, value);\r\n return offset + 2;\r\n }\r\n};\r\n/**\r\n * 24-bit unsigned integer, Little Endian byte order\r\n */\r\nexport const UINT24_LE = {\r\n len: 3,\r\n get(array, offset) {\r\n const dataView = dv(array);\r\n return dataView.getUint8(offset) + (dataView.getUint16(offset + 1, true) << 8);\r\n },\r\n put(array, offset, value) {\r\n const dataView = dv(array);\r\n dataView.setUint8(offset, value & 0xff);\r\n dataView.setUint16(offset + 1, value >> 8, true);\r\n return offset + 3;\r\n }\r\n};\r\n/**\r\n * 24-bit unsigned integer, Big Endian byte order\r\n */\r\nexport const UINT24_BE = {\r\n len: 3,\r\n get(array, offset) {\r\n const dataView = dv(array);\r\n return (dataView.getUint16(offset) << 8) + dataView.getUint8(offset + 2);\r\n },\r\n put(array, offset, value) {\r\n const dataView = dv(array);\r\n dataView.setUint16(offset, value >> 8);\r\n dataView.setUint8(offset + 2, value & 0xff);\r\n return offset + 3;\r\n }\r\n};\r\n/**\r\n * 32-bit unsigned integer, Little Endian byte order\r\n */\r\nexport const UINT32_LE = {\r\n len: 4,\r\n get(array, offset) {\r\n return dv(array).getUint32(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setUint32(offset, value, true);\r\n return offset + 4;\r\n }\r\n};\r\n/**\r\n * 32-bit unsigned integer, Big Endian byte order\r\n */\r\nexport const UINT32_BE = {\r\n len: 4,\r\n get(array, offset) {\r\n return dv(array).getUint32(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setUint32(offset, value);\r\n return offset + 4;\r\n }\r\n};\r\n/**\r\n * 8-bit signed integer\r\n */\r\nexport const INT8 = {\r\n len: 1,\r\n get(array, offset) {\r\n return dv(array).getInt8(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setInt8(offset, value);\r\n return offset + 2;\r\n }\r\n};\r\n/**\r\n * 16-bit signed integer, Big Endian byte order\r\n */\r\nexport const INT16_BE = {\r\n len: 2,\r\n get(array, offset) {\r\n return dv(array).getInt16(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setInt16(offset, value);\r\n return offset + 2;\r\n }\r\n};\r\n/**\r\n * 16-bit signed integer, Little Endian byte order\r\n */\r\nexport const INT16_LE = {\r\n len: 2,\r\n get(array, offset) {\r\n return dv(array).getInt16(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setInt16(offset, value, true);\r\n return offset + 2;\r\n }\r\n};\r\n/**\r\n * 24-bit signed integer, Little Endian byte order\r\n */\r\nexport const INT24_LE = {\r\n len: 3,\r\n get(array, offset) {\r\n const unsigned = UINT24_LE.get(array, offset);\r\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\r\n },\r\n put(array, offset, value) {\r\n const dataView = dv(array);\r\n dataView.setUint8(offset, value & 0xff);\r\n dataView.setUint16(offset + 1, value >> 8, true);\r\n return offset + 3;\r\n }\r\n};\r\n/**\r\n * 24-bit signed integer, Big Endian byte order\r\n */\r\nexport const INT24_BE = {\r\n len: 3,\r\n get(array, offset) {\r\n const unsigned = UINT24_BE.get(array, offset);\r\n return unsigned > 0x7fffff ? unsigned - 0x1000000 : unsigned;\r\n },\r\n put(array, offset, value) {\r\n const dataView = dv(array);\r\n dataView.setUint16(offset, value >> 8);\r\n dataView.setUint8(offset + 2, value & 0xff);\r\n return offset + 3;\r\n }\r\n};\r\n/**\r\n * 32-bit signed integer, Big Endian byte order\r\n */\r\nexport const INT32_BE = {\r\n len: 4,\r\n get(array, offset) {\r\n return dv(array).getInt32(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setInt32(offset, value);\r\n return offset + 4;\r\n }\r\n};\r\n/**\r\n * 32-bit signed integer, Big Endian byte order\r\n */\r\nexport const INT32_LE = {\r\n len: 4,\r\n get(array, offset) {\r\n return dv(array).getInt32(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setInt32(offset, value, true);\r\n return offset + 4;\r\n }\r\n};\r\n/**\r\n * 64-bit unsigned integer, Little Endian byte order\r\n */\r\nexport const UINT64_LE = {\r\n len: 8,\r\n get(array, offset) {\r\n return dv(array).getBigUint64(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setBigUint64(offset, value, true);\r\n return offset + 8;\r\n }\r\n};\r\n/**\r\n * 64-bit signed integer, Little Endian byte order\r\n */\r\nexport const INT64_LE = {\r\n len: 8,\r\n get(array, offset) {\r\n return dv(array).getBigInt64(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setBigInt64(offset, value, true);\r\n return offset + 8;\r\n }\r\n};\r\n/**\r\n * 64-bit unsigned integer, Big Endian byte order\r\n */\r\nexport const UINT64_BE = {\r\n len: 8,\r\n get(array, offset) {\r\n return dv(array).getBigUint64(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setBigUint64(offset, value);\r\n return offset + 8;\r\n }\r\n};\r\n/**\r\n * 64-bit signed integer, Big Endian byte order\r\n */\r\nexport const INT64_BE = {\r\n len: 8,\r\n get(array, offset) {\r\n return dv(array).getBigInt64(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setBigInt64(offset, value);\r\n return offset + 8;\r\n }\r\n};\r\n/**\r\n * IEEE 754 16-bit (half precision) float, big endian\r\n */\r\nexport const Float16_BE = {\r\n len: 2,\r\n get(dataView, offset) {\r\n return ieee754.read(dataView, offset, false, 10, this.len);\r\n },\r\n put(dataView, offset, value) {\r\n ieee754.write(dataView, value, offset, false, 10, this.len);\r\n return offset + this.len;\r\n }\r\n};\r\n/**\r\n * IEEE 754 16-bit (half precision) float, little endian\r\n */\r\nexport const Float16_LE = {\r\n len: 2,\r\n get(array, offset) {\r\n return ieee754.read(array, offset, true, 10, this.len);\r\n },\r\n put(array, offset, value) {\r\n ieee754.write(array, value, offset, true, 10, this.len);\r\n return offset + this.len;\r\n }\r\n};\r\n/**\r\n * IEEE 754 32-bit (single precision) float, big endian\r\n */\r\nexport const Float32_BE = {\r\n len: 4,\r\n get(array, offset) {\r\n return dv(array).getFloat32(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setFloat32(offset, value);\r\n return offset + 4;\r\n }\r\n};\r\n/**\r\n * IEEE 754 32-bit (single precision) float, little endian\r\n */\r\nexport const Float32_LE = {\r\n len: 4,\r\n get(array, offset) {\r\n return dv(array).getFloat32(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setFloat32(offset, value, true);\r\n return offset + 4;\r\n }\r\n};\r\n/**\r\n * IEEE 754 64-bit (double precision) float, big endian\r\n */\r\nexport const Float64_BE = {\r\n len: 8,\r\n get(array, offset) {\r\n return dv(array).getFloat64(offset);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setFloat64(offset, value);\r\n return offset + 8;\r\n }\r\n};\r\n/**\r\n * IEEE 754 64-bit (double precision) float, little endian\r\n */\r\nexport const Float64_LE = {\r\n len: 8,\r\n get(array, offset) {\r\n return dv(array).getFloat64(offset, true);\r\n },\r\n put(array, offset, value) {\r\n dv(array).setFloat64(offset, value, true);\r\n return offset + 8;\r\n }\r\n};\r\n/**\r\n * IEEE 754 80-bit (extended precision) float, big endian\r\n */\r\nexport const Float80_BE = {\r\n len: 10,\r\n get(array, offset) {\r\n return ieee754.read(array, offset, false, 63, this.len);\r\n },\r\n put(array, offset, value) {\r\n ieee754.write(array, value, offset, false, 63, this.len);\r\n return offset + this.len;\r\n }\r\n};\r\n/**\r\n * IEEE 754 80-bit (extended precision) float, little endian\r\n */\r\nexport const Float80_LE = {\r\n len: 10,\r\n get(array, offset) {\r\n return ieee754.read(array, offset, true, 63, this.len);\r\n },\r\n put(array, offset, value) {\r\n ieee754.write(array, value, offset, true, 63, this.len);\r\n return offset + this.len;\r\n }\r\n};\r\n/**\r\n * Ignore a given number of bytes\r\n */\r\nexport class IgnoreType {\r\n /**\r\n * @param len number of bytes to ignore\r\n */\r\n constructor(len) {\r\n this.len = len;\r\n }\r\n // ToDo: don't read, but skip data\r\n get(array, off) {\r\n }\r\n}\r\nexport class Uint8ArrayType {\r\n constructor(len) {\r\n this.len = len;\r\n }\r\n get(array, offset) {\r\n return array.subarray(offset, offset + this.len);\r\n }\r\n}\r\nexport class BufferType {\r\n constructor(len) {\r\n this.len = len;\r\n }\r\n get(buffer, off) {\r\n return buffer.slice(off, off + this.len);\r\n }\r\n}\r\n/**\r\n * Consume a fixed number of bytes from the stream and return a string with a specified encoding.\r\n */\r\nexport class StringType {\r\n constructor(len, encoding) {\r\n this.len = len;\r\n this.encoding = encoding;\r\n }\r\n get(uint8Array, offset) {\r\n return Buffer.from(uint8Array).toString(this.encoding, offset, offset + this.len);\r\n }\r\n}\r\n/**\r\n * ANSI Latin 1 String\r\n * Using windows-1252 / ISO 8859-1 decoding\r\n */\r\nexport class AnsiStringType {\r\n constructor(len) {\r\n this.len = len;\r\n }\r\n static decode(buffer, offset, until) {\r\n let str = '';\r\n for (let i = offset; i < until; ++i) {\r\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\r\n }\r\n return str;\r\n }\r\n static inRange(a, min, max) {\r\n return min <= a && a <= max;\r\n }\r\n static codePointToString(cp) {\r\n if (cp <= 0xFFFF) {\r\n return String.fromCharCode(cp);\r\n }\r\n else {\r\n cp -= 0x10000;\r\n return String.fromCharCode((cp >> 10) + 0xD800, (cp & 0x3FF) + 0xDC00);\r\n }\r\n }\r\n static singleByteDecoder(bite) {\r\n if (AnsiStringType.inRange(bite, 0x00, 0x7F)) {\r\n return bite;\r\n }\r\n const codePoint = AnsiStringType.windows1252[bite - 0x80];\r\n if (codePoint === null) {\r\n throw Error('invaliding encoding');\r\n }\r\n return codePoint;\r\n }\r\n get(buffer, offset = 0) {\r\n return AnsiStringType.decode(buffer, offset, offset + this.len);\r\n }\r\n}\r\nAnsiStringType.windows1252 = [8364, 129, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 352,\r\n 8249, 338, 141, 381, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732,\r\n 8482, 353, 8250, 339, 157, 382, 376, 160, 161, 162, 163, 164, 165, 166, 167, 168,\r\n 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,\r\n 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,\r\n 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,\r\n 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,\r\n 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,\r\n 248, 249, 250, 251, 252, 253, 254, 255];\r\n","export function stringToBytes(string) {\n\treturn [...string].map(character => character.charCodeAt(0));\n}\n\n/**\nChecks whether the TAR checksum is valid.\n\n@param {Buffer} buffer - The TAR header `[offset ... offset + 512]`.\n@param {number} offset - TAR header offset.\n@returns {boolean} `true` if the TAR checksum is valid, otherwise `false`.\n*/\nexport function tarHeaderChecksumMatches(buffer, offset = 0) {\n\tconst readSum = Number.parseInt(buffer.toString('utf8', 148, 154).replace(/\\0.*$/, '').trim(), 8); // Read sum in header\n\tif (Number.isNaN(readSum)) {\n\t\treturn false;\n\t}\n\n\tlet sum = 8 * 0x20; // Initialize signed bit sum\n\n\tfor (let i = offset; i < offset + 148; i++) {\n\t\tsum += buffer[i];\n\t}\n\n\tfor (let i = offset + 156; i < offset + 512; i++) {\n\t\tsum += buffer[i];\n\t}\n\n\treturn readSum === sum;\n}\n\n/**\nID3 UINT32 sync-safe tokenizer token.\n28 bits (representing up to 256MB) integer, the msb is 0 to avoid \"false syncsignals\".\n*/\nexport const uint32SyncSafeToken = {\n\tget: (buffer, offset) => (buffer[offset + 3] & 0x7F) | ((buffer[offset + 2]) << 7) | ((buffer[offset + 1]) << 14) | ((buffer[offset]) << 21),\n\tlen: 4,\n};\n","import {Buffer} from 'node:buffer';\nimport * as Token from 'token-types';\nimport * as strtok3 from 'strtok3/core';\nimport {\n\tstringToBytes,\n\ttarHeaderChecksumMatches,\n\tuint32SyncSafeToken,\n} from './util.js';\nimport {extensions, mimeTypes} from './supported.js';\n\nconst minimumBytes = 4100; // A fair amount of file-types are detectable within this range.\n\nexport async function fileTypeFromStream(stream) {\n\tconst tokenizer = await strtok3.fromStream(stream);\n\ttry {\n\t\treturn await fileTypeFromTokenizer(tokenizer);\n\t} finally {\n\t\tawait tokenizer.close();\n\t}\n}\n\nexport async function fileTypeFromBuffer(input) {\n\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer)) {\n\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`Buffer\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\tif (!(buffer && buffer.length > 1)) {\n\t\treturn;\n\t}\n\n\treturn fileTypeFromTokenizer(strtok3.fromBuffer(buffer));\n}\n\nfunction _check(buffer, headers, options) {\n\toptions = {\n\t\toffset: 0,\n\t\t...options,\n\t};\n\n\tfor (const [index, header] of headers.entries()) {\n\t\t// If a bitmask is set\n\t\tif (options.mask) {\n\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\tif (header !== (options.mask[index] & buffer[index + options.offset])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (header !== buffer[index + options.offset]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport async function fileTypeFromTokenizer(tokenizer) {\n\ttry {\n\t\treturn new FileTypeParser().parse(tokenizer);\n\t} catch (error) {\n\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nclass FileTypeParser {\n\tcheck(header, options) {\n\t\treturn _check(this.buffer, header, options);\n\t}\n\n\tcheckString(header, options) {\n\t\treturn this.check(stringToBytes(header), options);\n\t}\n\n\tasync parse(tokenizer) {\n\t\tthis.buffer = Buffer.alloc(minimumBytes);\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\t// Keep reading until EOF if the file size is unknown.\n\t\tif (tokenizer.fileInfo.size === undefined) {\n\t\t\ttokenizer.fileInfo.size = Number.MAX_SAFE_INTEGER;\n\t\t}\n\n\t\tthis.tokenizer = tokenizer;\n\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: 12, mayBeLess: true});\n\n\t\t// -- 2-byte signatures --\n\n\t\tif (this.check([0x42, 0x4D])) {\n\t\t\treturn {\n\t\t\t\text: 'bmp',\n\t\t\t\tmime: 'image/bmp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x0B, 0x77])) {\n\t\t\treturn {\n\t\t\t\text: 'ac3',\n\t\t\t\tmime: 'audio/vnd.dolby.dd-raw',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x78, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'dmg',\n\t\t\t\tmime: 'application/x-apple-diskimage',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4D, 0x5A])) {\n\t\t\treturn {\n\t\t\t\text: 'exe',\n\t\t\t\tmime: 'application/x-msdownload',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x25, 0x21])) {\n\t\t\tawait tokenizer.peekBuffer(this.buffer, {length: 24, mayBeLess: true});\n\n\t\t\tif (\n\t\t\t\tthis.checkString('PS-Adobe-', {offset: 2})\n\t\t\t\t&& this.checkString(' EPSF-', {offset: 14})\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'eps',\n\t\t\t\t\tmime: 'application/eps',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ps',\n\t\t\t\tmime: 'application/postscript',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x1F, 0xA0])\n\t\t\t|| this.check([0x1F, 0x9D])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'Z',\n\t\t\t\tmime: 'application/x-compress',\n\t\t\t};\n\t\t}\n\n\t\t// -- 3-byte signatures --\n\n\t\tif (this.check([0x47, 0x49, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'gif',\n\t\t\t\tmime: 'image/gif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xD8, 0xFF])) {\n\t\t\treturn {\n\t\t\t\text: 'jpg',\n\t\t\t\tmime: 'image/jpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x49, 0x49, 0xBC])) {\n\t\t\treturn {\n\t\t\t\text: 'jxr',\n\t\t\t\tmime: 'image/vnd.ms-photo',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x1F, 0x8B, 0x8])) {\n\t\t\treturn {\n\t\t\t\text: 'gz',\n\t\t\t\tmime: 'application/gzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x5A, 0x68])) {\n\t\t\treturn {\n\t\t\t\text: 'bz2',\n\t\t\t\tmime: 'application/x-bzip2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('ID3')) {\n\t\t\tawait tokenizer.ignore(6); // Skip ID3 header until the header size\n\t\t\tconst id3HeaderLength = await tokenizer.readToken(uint32SyncSafeToken);\n\t\t\tif (tokenizer.position + id3HeaderLength > tokenizer.fileInfo.size) {\n\t\t\t\t// Guess file type based on ID3 header for backward compatibility\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(id3HeaderLength);\n\t\t\treturn fileTypeFromTokenizer(tokenizer); // Skip ID3 header, recursion\n\t\t}\n\n\t\t// Musepack, SV7\n\t\tif (this.checkString('MP+')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t(this.buffer[0] === 0x43 || this.buffer[0] === 0x46)\n\t\t\t&& this.check([0x57, 0x53], {offset: 1})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'swf',\n\t\t\t\tmime: 'application/x-shockwave-flash',\n\t\t\t};\n\t\t}\n\n\t\t// -- 4-byte signatures --\n\n\t\tif (this.checkString('FLIF')) {\n\t\t\treturn {\n\t\t\t\text: 'flif',\n\t\t\t\tmime: 'image/flif',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('8BPS')) {\n\t\t\treturn {\n\t\t\t\text: 'psd',\n\t\t\t\tmime: 'image/vnd.adobe.photoshop',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('WEBP', {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'webp',\n\t\t\t\tmime: 'image/webp',\n\t\t\t};\n\t\t}\n\n\t\t// Musepack, SV8\n\t\tif (this.checkString('MPCK')) {\n\t\t\treturn {\n\t\t\t\text: 'mpc',\n\t\t\t\tmime: 'audio/x-musepack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('FORM')) {\n\t\t\treturn {\n\t\t\t\text: 'aif',\n\t\t\t\tmime: 'audio/aiff',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('icns', {offset: 0})) {\n\t\t\treturn {\n\t\t\t\text: 'icns',\n\t\t\t\tmime: 'image/icns',\n\t\t\t};\n\t\t}\n\n\t\t// Zip-based file formats\n\t\t// Need to be before the `zip` check\n\t\tif (this.check([0x50, 0x4B, 0x3, 0x4])) { // Local file header signature\n\t\t\ttry {\n\t\t\t\twhile (tokenizer.position + 30 < tokenizer.fileInfo.size) {\n\t\t\t\t\tawait tokenizer.readBuffer(this.buffer, {length: 30});\n\n\t\t\t\t\t// https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers\n\t\t\t\t\tconst zipHeader = {\n\t\t\t\t\t\tcompressedSize: this.buffer.readUInt32LE(18),\n\t\t\t\t\t\tuncompressedSize: this.buffer.readUInt32LE(22),\n\t\t\t\t\t\tfilenameLength: this.buffer.readUInt16LE(26),\n\t\t\t\t\t\textraFieldLength: this.buffer.readUInt16LE(28),\n\t\t\t\t\t};\n\n\t\t\t\t\tzipHeader.filename = await tokenizer.readToken(new Token.StringType(zipHeader.filenameLength, 'utf-8'));\n\t\t\t\t\tawait tokenizer.ignore(zipHeader.extraFieldLength);\n\n\t\t\t\t\t// Assumes signed `.xpi` from addons.mozilla.org\n\t\t\t\t\tif (zipHeader.filename === 'META-INF/mozilla.rsa') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'xpi',\n\t\t\t\t\t\t\tmime: 'application/x-xpinstall',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.endsWith('.rels') || zipHeader.filename.endsWith('.xml')) {\n\t\t\t\t\t\tconst type = zipHeader.filename.split('/')[0];\n\t\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\t\tcase '_rels':\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'word':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'docx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'ppt':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'pptx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'xl':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.startsWith('xl/')) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (zipHeader.filename.startsWith('3D/') && zipHeader.filename.endsWith('.model')) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: '3mf',\n\t\t\t\t\t\t\tmime: 'model/3mf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// The docx, xlsx and pptx file types extend the Office Open XML file format:\n\t\t\t\t\t// https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n\t\t\t\t\t// We look for:\n\t\t\t\t\t// - one entry named '[Content_Types].xml' or '_rels/.rels',\n\t\t\t\t\t// - one entry indicating specific type of file.\n\t\t\t\t\t// MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\t\t\t\t\tif (zipHeader.filename === 'mimetype' && zipHeader.compressedSize === zipHeader.uncompressedSize) {\n\t\t\t\t\t\tconst mimeType = await tokenizer.readToken(new Token.StringType(zipHeader.compressedSize, 'utf-8'));\n\n\t\t\t\t\t\tswitch (mimeType) {\n\t\t\t\t\t\t\tcase 'application/epub+zip':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'epub',\n\t\t\t\t\t\t\t\t\tmime: 'application/epub+zip',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.text':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'odt',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.text',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.spreadsheet':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'ods',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcase 'application/vnd.oasis.opendocument.presentation':\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\text: 'odp',\n\t\t\t\t\t\t\t\t\tmime: 'application/vnd.oasis.opendocument.presentation',\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Try to find next header manually when current one is corrupted\n\t\t\t\t\tif (zipHeader.compressedSize === 0) {\n\t\t\t\t\t\tlet nextHeaderIndex = -1;\n\n\t\t\t\t\t\twhile (nextHeaderIndex < 0 && (tokenizer.position < tokenizer.fileInfo.size)) {\n\t\t\t\t\t\t\tawait tokenizer.peekBuffer(this.buffer, {mayBeLess: true});\n\n\t\t\t\t\t\t\tnextHeaderIndex = this.buffer.indexOf('504B0304', 0, 'hex');\n\t\t\t\t\t\t\t// Move position to the next header if found, skip the whole buffer otherwise\n\t\t\t\t\t\t\tawait tokenizer.ignore(nextHeaderIndex >= 0 ? nextHeaderIndex : this.buffer.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait tokenizer.ignore(zipHeader.compressedSize);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!(error instanceof strtok3.EndOfStreamError)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('OggS')) {\n\t\t\t// This is an OGG container\n\t\t\tawait tokenizer.ignore(28);\n\t\t\tconst type = Buffer.alloc(8);\n\t\t\tawait tokenizer.readBuffer(type);\n\n\t\t\t// Needs to be before `ogg` check\n\t\t\tif (_check(type, [0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'opus',\n\t\t\t\t\tmime: 'audio/opus',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' theora' in header.\n\t\t\tif (_check(type, [0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogv',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01video' in header.\n\t\t\tif (_check(type, [0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogm',\n\t\t\t\t\tmime: 'video/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\t\tif (_check(type, [0x7F, 0x46, 0x4C, 0x41, 0x43])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'oga',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\t\tif (_check(type, [0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'spx',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If '\\x01vorbis' in header\n\t\t\tif (_check(type, [0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73])) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ogg',\n\t\t\t\t\tmime: 'audio/ogg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\t\treturn {\n\t\t\t\text: 'ogx',\n\t\t\t\tmime: 'application/ogg',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x50, 0x4B])\n\t\t\t&& (this.buffer[2] === 0x3 || this.buffer[2] === 0x5 || this.buffer[2] === 0x7)\n\t\t\t&& (this.buffer[3] === 0x4 || this.buffer[3] === 0x6 || this.buffer[3] === 0x8)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'zip',\n\t\t\t\tmime: 'application/zip',\n\t\t\t};\n\t\t}\n\n\t\t//\n\n\t\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\t\tif (\n\t\t\tthis.checkString('ftyp', {offset: 4})\n\t\t\t&& (this.buffer[8] & 0x60) !== 0x00 // Brand major, first character ASCII?\n\t\t) {\n\t\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\t\tconst brandMajor = this.buffer.toString('binary', 8, 12).replace('\\0', ' ').trim();\n\t\t\tswitch (brandMajor) {\n\t\t\t\tcase 'avif':\n\t\t\t\tcase 'avis':\n\t\t\t\t\treturn {ext: 'avif', mime: 'image/avif'};\n\t\t\t\tcase 'mif1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\t\tcase 'msf1':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\t\tcase 'heic':\n\t\t\t\tcase 'heix':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\t\tcase 'hevc':\n\t\t\t\tcase 'hevx':\n\t\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\t\tcase 'qt':\n\t\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\t\tcase 'M4V':\n\t\t\t\tcase 'M4VH':\n\t\t\t\tcase 'M4VP':\n\t\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\t\tcase 'M4P':\n\t\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\t\tcase 'M4B':\n\t\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'M4A':\n\t\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\t\tcase 'F4V':\n\t\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\t\tcase 'F4P':\n\t\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\t\tcase 'F4A':\n\t\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\t\tcase 'F4B':\n\t\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\t\tcase 'crx':\n\t\t\t\t\treturn {ext: 'cr3', mime: 'image/x-canon-cr3'};\n\t\t\t\tdefault:\n\t\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MThd')) {\n\t\t\treturn {\n\t\t\t\text: 'mid',\n\t\t\t\tmime: 'audio/midi',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOFF')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff',\n\t\t\t\tmime: 'font/woff',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('wOF2')\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x01, 0x00, 0x00], {offset: 4})\n\t\t\t\t|| this.checkString('OTTO', {offset: 4})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'woff2',\n\t\t\t\tmime: 'font/woff2',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD4, 0xC3, 0xB2, 0xA1]) || this.check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\t\treturn {\n\t\t\t\text: 'pcap',\n\t\t\t\tmime: 'application/vnd.tcpdump.pcap',\n\t\t\t};\n\t\t}\n\n\t\t// Sony DSD Stream File (DSF)\n\t\tif (this.checkString('DSD ')) {\n\t\t\treturn {\n\t\t\t\text: 'dsf',\n\t\t\t\tmime: 'audio/x-dsf', // Non-standard\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('LZIP')) {\n\t\t\treturn {\n\t\t\t\text: 'lz',\n\t\t\t\tmime: 'application/x-lzip',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('fLaC')) {\n\t\t\treturn {\n\t\t\t\text: 'flac',\n\t\t\t\tmime: 'audio/x-flac',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x50, 0x47, 0xFB])) {\n\t\t\treturn {\n\t\t\t\text: 'bpg',\n\t\t\t\tmime: 'image/bpg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('wvpk')) {\n\t\t\treturn {\n\t\t\t\text: 'wv',\n\t\t\t\tmime: 'audio/wavpack',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('%PDF')) {\n\t\t\tawait tokenizer.ignore(1350);\n\t\t\tconst maxBufferSize = 10 * 1024 * 1024;\n\t\t\tconst buffer = Buffer.alloc(Math.min(maxBufferSize, tokenizer.fileInfo.size));\n\t\t\tawait tokenizer.readBuffer(buffer, {mayBeLess: true});\n\n\t\t\t// Check if this is an Adobe Illustrator file\n\t\t\tif (buffer.includes(Buffer.from('AIPrivateData'))) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ai',\n\t\t\t\t\tmime: 'application/postscript',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Assume this is just a normal PDF\n\t\t\treturn {\n\t\t\t\text: 'pdf',\n\t\t\t\tmime: 'application/pdf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x61, 0x73, 0x6D])) {\n\t\t\treturn {\n\t\t\t\text: 'wasm',\n\t\t\t\tmime: 'application/wasm',\n\t\t\t};\n\t\t}\n\n\t\t// TIFF, little-endian type\n\t\tif (this.check([0x49, 0x49])) {\n\t\t\tconst fileType = await this.readTiffHeader(false);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\t// TIFF, big-endian type\n\t\tif (this.check([0x4D, 0x4D])) {\n\t\t\tconst fileType = await this.readTiffHeader(true);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('MAC ')) {\n\t\t\treturn {\n\t\t\t\text: 'ape',\n\t\t\t\tmime: 'audio/ape',\n\t\t\t};\n\t\t}\n\n\t\t// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\t\tif (this.check([0x1A, 0x45, 0xDF, 0xA3])) { // Root element: EBML\n\t\t\tasync function readField() {\n\t\t\t\tconst msb = await tokenizer.peekNumber(Token.UINT8);\n\t\t\t\tlet mask = 0x80;\n\t\t\t\tlet ic = 0; // 0 = A, 1 = B, 2 = C, 3\n\t\t\t\t// = D\n\n\t\t\t\twhile ((msb & mask) === 0) {\n\t\t\t\t\t++ic;\n\t\t\t\t\tmask >>= 1;\n\t\t\t\t}\n\n\t\t\t\tconst id = Buffer.alloc(ic + 1);\n\t\t\t\tawait tokenizer.readBuffer(id);\n\t\t\t\treturn id;\n\t\t\t}\n\n\t\t\tasync function readElement() {\n\t\t\t\tconst id = await readField();\n\t\t\t\tconst lengthField = await readField();\n\t\t\t\tlengthField[0] ^= 0x80 >> (lengthField.length - 1);\n\t\t\t\tconst nrLength = Math.min(6, lengthField.length); // JavaScript can max read 6 bytes integer\n\t\t\t\treturn {\n\t\t\t\t\tid: id.readUIntBE(0, id.length),\n\t\t\t\t\tlen: lengthField.readUIntBE(lengthField.length - nrLength, nrLength),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tasync function readChildren(level, children) {\n\t\t\t\twhile (children > 0) {\n\t\t\t\t\tconst element = await readElement();\n\t\t\t\t\tif (element.id === 0x42_82) {\n\t\t\t\t\t\tconst rawValue = await tokenizer.readToken(new Token.StringType(element.len, 'utf-8'));\n\t\t\t\t\t\treturn rawValue.replace(/\\00.*$/g, ''); // Return DocType\n\t\t\t\t\t}\n\n\t\t\t\t\tawait tokenizer.ignore(element.len); // ignore payload\n\t\t\t\t\t--children;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst re = await readElement();\n\t\t\tconst docType = await readChildren(1, re.len);\n\n\t\t\tswitch (docType) {\n\t\t\t\tcase 'webm':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'webm',\n\t\t\t\t\t\tmime: 'video/webm',\n\t\t\t\t\t};\n\n\t\t\t\tcase 'matroska':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mkv',\n\t\t\t\t\t\tmime: 'video/x-matroska',\n\t\t\t\t\t};\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// RIFF file format which might be AVI, WAV, QCP, etc\n\t\tif (this.check([0x52, 0x49, 0x46, 0x46])) {\n\t\t\tif (this.check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'avi',\n\t\t\t\t\tmime: 'video/vnd.avi',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'wav',\n\t\t\t\t\tmime: 'audio/vnd.wave',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// QLCM, QCP file\n\t\t\tif (this.check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'qcp',\n\t\t\t\t\tmime: 'audio/qcelp',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('SQLi')) {\n\t\t\treturn {\n\t\t\t\text: 'sqlite',\n\t\t\t\tmime: 'application/x-sqlite3',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\t\treturn {\n\t\t\t\text: 'nes',\n\t\t\t\tmime: 'application/x-nintendo-nes-rom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Cr24')) {\n\t\t\treturn {\n\t\t\t\text: 'crx',\n\t\t\t\tmime: 'application/x-google-chrome-extension',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('MSCF')\n\t\t\t|| this.checkString('ISc(')\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'cab',\n\t\t\t\tmime: 'application/vnd.ms-cab-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\t\treturn {\n\t\t\t\text: 'rpm',\n\t\t\t\tmime: 'application/x-rpm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xC5, 0xD0, 0xD3, 0xC6])) {\n\t\t\treturn {\n\t\t\t\text: 'eps',\n\t\t\t\tmime: 'application/eps',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x28, 0xB5, 0x2F, 0xFD])) {\n\t\t\treturn {\n\t\t\t\text: 'zst',\n\t\t\t\tmime: 'application/zstd',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x7F, 0x45, 0x4C, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'elf',\n\t\t\t\tmime: 'application/x-elf',\n\t\t\t};\n\t\t}\n\n\t\t// -- 5-byte signatures --\n\n\t\tif (this.check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'otf',\n\t\t\t\tmime: 'font/otf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('#!AMR')) {\n\t\t\treturn {\n\t\t\t\text: 'amr',\n\t\t\t\tmime: 'audio/amr',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('{\\\\rtf')) {\n\t\t\treturn {\n\t\t\t\text: 'rtf',\n\t\t\t\tmime: 'application/rtf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x46, 0x4C, 0x56, 0x01])) {\n\t\t\treturn {\n\t\t\t\text: 'flv',\n\t\t\t\tmime: 'video/x-flv',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('IMPM')) {\n\t\t\treturn {\n\t\t\t\text: 'it',\n\t\t\t\tmime: 'audio/x-it',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.checkString('-lh0-', {offset: 2})\n\t\t\t|| this.checkString('-lh1-', {offset: 2})\n\t\t\t|| this.checkString('-lh2-', {offset: 2})\n\t\t\t|| this.checkString('-lh3-', {offset: 2})\n\t\t\t|| this.checkString('-lh4-', {offset: 2})\n\t\t\t|| this.checkString('-lh5-', {offset: 2})\n\t\t\t|| this.checkString('-lh6-', {offset: 2})\n\t\t\t|| this.checkString('-lh7-', {offset: 2})\n\t\t\t|| this.checkString('-lzs-', {offset: 2})\n\t\t\t|| this.checkString('-lz4-', {offset: 2})\n\t\t\t|| this.checkString('-lz5-', {offset: 2})\n\t\t\t|| this.checkString('-lhd-', {offset: 2})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'lzh',\n\t\t\t\tmime: 'application/x-lzh-compressed',\n\t\t\t};\n\t\t}\n\n\t\t// MPEG program stream (PS or MPEG-PS)\n\t\tif (this.check([0x00, 0x00, 0x01, 0xBA])) {\n\t\t\t// MPEG-PS, MPEG-1 Part 1\n\t\t\tif (this.check([0x21], {offset: 4, mask: [0xF1]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .ps, .mpeg\n\t\t\t\t\tmime: 'video/MP1S',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG-PS, MPEG-2 Part 1\n\t\t\tif (this.check([0x44], {offset: 4, mask: [0xC4]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mpg', // May also be .mpg, .m2p, .vob or .sub\n\t\t\t\t\tmime: 'video/MP2P',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif (this.checkString('ITSF')) {\n\t\t\treturn {\n\t\t\t\text: 'chm',\n\t\t\t\tmime: 'application/vnd.ms-htmlhelp',\n\t\t\t};\n\t\t}\n\n\t\t// -- 6-byte signatures --\n\n\t\tif (this.check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'xz',\n\t\t\t\tmime: 'application/x-xz',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('<?xml ')) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\t\treturn {\n\t\t\t\text: '7z',\n\t\t\t\tmime: 'application/x-7z-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7])\n\t\t\t&& (this.buffer[6] === 0x0 || this.buffer[6] === 0x1)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'rar',\n\t\t\t\tmime: 'application/x-rar-compressed',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('solid ')) {\n\t\t\treturn {\n\t\t\t\text: 'stl',\n\t\t\t\tmime: 'model/stl',\n\t\t\t};\n\t\t}\n\n\t\t// -- 7-byte signatures --\n\n\t\tif (this.checkString('BLENDER')) {\n\t\t\treturn {\n\t\t\t\text: 'blend',\n\t\t\t\tmime: 'application/x-blender',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('!<arch>')) {\n\t\t\tawait tokenizer.ignore(8);\n\t\t\tconst string = await tokenizer.readToken(new Token.StringType(13, 'ascii'));\n\t\t\tif (string === 'debian-binary') {\n\t\t\t\treturn {\n\t\t\t\t\text: 'deb',\n\t\t\t\t\tmime: 'application/x-deb',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\text: 'ar',\n\t\t\t\tmime: 'application/x-unix-archive',\n\t\t\t};\n\t\t}\n\n\t\t// -- 8-byte signatures --\n\n\t\tif (this.check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t\t// Offset calculated as follows:\n\t\t\t// - 8 bytes: PNG signature\n\t\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\n\t\t\tawait tokenizer.ignore(8); // ignore PNG signature\n\n\t\t\tasync function readChunkHeader() {\n\t\t\t\treturn {\n\t\t\t\t\tlength: await tokenizer.readToken(Token.INT32_BE),\n\t\t\t\t\ttype: await tokenizer.readToken(new Token.StringType(4, 'binary')),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdo {\n\t\t\t\tconst chunk = await readChunkHeader();\n\t\t\t\tif (chunk.length < 0) {\n\t\t\t\t\treturn; // Invalid chunk length\n\t\t\t\t}\n\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase 'IDAT':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'png',\n\t\t\t\t\t\t\tmime: 'image/png',\n\t\t\t\t\t\t};\n\t\t\t\t\tcase 'acTL':\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'apng',\n\t\t\t\t\t\t\tmime: 'image/apng',\n\t\t\t\t\t\t};\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tawait tokenizer.ignore(chunk.length + 4); // Ignore chunk-data + CRC\n\t\t\t\t}\n\t\t\t} while (tokenizer.position + 8 < tokenizer.fileInfo.size);\n\n\t\t\treturn {\n\t\t\t\text: 'png',\n\t\t\t\tmime: 'image/png',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'arrow',\n\t\t\t\tmime: 'application/x-apache-arrow',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'glb',\n\t\t\t\tmime: 'model/gltf-binary',\n\t\t\t};\n\t\t}\n\n\t\t// `mov` format variants\n\t\tif (\n\t\t\tthis.check([0x66, 0x72, 0x65, 0x65], {offset: 4}) // `free`\n\t\t\t|| this.check([0x6D, 0x64, 0x61, 0x74], {offset: 4}) // `mdat` MJPEG\n\t\t\t|| this.check([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) // `moov`\n\t\t\t|| this.check([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mov',\n\t\t\t\tmime: 'video/quicktime',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xEF, 0xBB, 0xBF]) && this.checkString('<?xml', {offset: 3})) { // UTF-8-BOM\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\t// -- 9-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\t\treturn {\n\t\t\t\text: 'orf',\n\t\t\t\tmime: 'image/x-olympus-orf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('gimp xcf ')) {\n\t\t\treturn {\n\t\t\t\text: 'xcf',\n\t\t\t\tmime: 'image/x-xcf',\n\t\t\t};\n\t\t}\n\n\t\t// -- 12-byte signatures --\n\n\t\tif (this.check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\t\treturn {\n\t\t\t\text: 'rw2',\n\t\t\t\tmime: 'image/x-panasonic-rw2',\n\t\t\t};\n\t\t}\n\n\t\t// ASF_Header_Object first 80 bytes\n\t\tif (this.check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t\tasync function readHeader() {\n\t\t\t\tconst guid = Buffer.alloc(16);\n\t\t\t\tawait tokenizer.readBuffer(guid);\n\t\t\t\treturn {\n\t\t\t\t\tid: guid,\n\t\t\t\t\tsize: Number(await tokenizer.readToken(Token.UINT64_LE)),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tawait tokenizer.ignore(30);\n\t\t\t// Search for header should be in first 1KB of file.\n\t\t\twhile (tokenizer.position + 24 < tokenizer.fileInfo.size) {\n\t\t\t\tconst header = await readHeader();\n\t\t\t\tlet payload = header.size - 24;\n\t\t\t\tif (_check(header.id, [0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65])) {\n\t\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\t\tconst typeId = Buffer.alloc(16);\n\t\t\t\t\tpayload -= await tokenizer.readBuffer(typeId);\n\n\t\t\t\t\tif (_check(typeId, [0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found audio:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'audio/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_check(typeId, [0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B])) {\n\t\t\t\t\t\t// Found video:\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asf',\n\t\t\t\t\t\t\tmime: 'video/x-ms-asf',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tawait tokenizer.ignore(payload);\n\t\t\t}\n\n\t\t\t// Default to ASF generic extension\n\t\t\treturn {\n\t\t\t\text: 'asf',\n\t\t\t\tmime: 'application/vnd.ms-asf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t\treturn {\n\t\t\t\text: 'ktx',\n\t\t\t\tmime: 'image/ktx',\n\t\t\t};\n\t\t}\n\n\t\tif ((this.check([0x7E, 0x10, 0x04]) || this.check([0x7E, 0x18, 0x04])) && this.check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\t\treturn {\n\t\t\t\text: 'mie',\n\t\t\t\tmime: 'application/x-mie',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\t\treturn {\n\t\t\t\text: 'shp',\n\t\t\t\tmime: 'application/x-esri-shape',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t\t// JPEG-2000 family\n\n\t\t\tawait tokenizer.ignore(20);\n\t\t\tconst type = await tokenizer.readToken(new Token.StringType(4, 'ascii'));\n\t\t\tswitch (type) {\n\t\t\t\tcase 'jp2 ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jp2',\n\t\t\t\t\t\tmime: 'image/jp2',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpx ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpx',\n\t\t\t\t\t\tmime: 'image/jpx',\n\t\t\t\t\t};\n\t\t\t\tcase 'jpm ':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'jpm',\n\t\t\t\t\t\tmime: 'image/jpm',\n\t\t\t\t\t};\n\t\t\t\tcase 'mjp2':\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'mj2',\n\t\t\t\t\t\tmime: 'image/mj2',\n\t\t\t\t\t};\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFF, 0x0A])\n\t\t\t|| this.check([0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x4C, 0x20, 0x0D, 0x0A, 0x87, 0x0A])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'jxl',\n\t\t\t\tmime: 'image/jxl',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0xFE, 0xFF, 0, 60, 0, 63, 0, 120, 0, 109, 0, 108]) // UTF-16-BOM-LE\n\t\t\t|| this.check([0xFF, 0xFE, 60, 0, 63, 0, 120, 0, 109, 0, 108, 0]) // UTF-16-BOM-LE\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'xml',\n\t\t\t\tmime: 'application/xml',\n\t\t\t};\n\t\t}\n\n\t\t// -- Unsafe signatures --\n\n\t\tif (\n\t\t\tthis.check([0x0, 0x0, 0x1, 0xBA])\n\t\t\t|| this.check([0x0, 0x0, 0x1, 0xB3])\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mpg',\n\t\t\t\tmime: 'video/mpeg',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ttf',\n\t\t\t\tmime: 'font/ttf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x01, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'ico',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x00, 0x00, 0x02, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'cur',\n\t\t\t\tmime: 'image/x-icon',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n\t\t\t// Detected Microsoft Compound File Binary File (MS-CFB) Format.\n\t\t\treturn {\n\t\t\t\text: 'cfb',\n\t\t\t\tmime: 'application/x-cfb',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 12 to 256.\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(256, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// -- 15-byte signatures --\n\n\t\tif (this.checkString('BEGIN:')) {\n\t\t\tif (this.checkString('VCARD', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'vcf',\n\t\t\t\t\tmime: 'text/vcard',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (this.checkString('VCALENDAR', {offset: 6})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'ics',\n\t\t\t\t\tmime: 'text/calendar',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// `raf` is here just to keep all the raw image detectors together.\n\t\tif (this.checkString('FUJIFILMCCD-RAW')) {\n\t\t\treturn {\n\t\t\t\text: 'raf',\n\t\t\t\tmime: 'image/x-fujifilm-raf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Extended Module:')) {\n\t\t\treturn {\n\t\t\t\text: 'xm',\n\t\t\t\tmime: 'audio/x-xm',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('Creative Voice File')) {\n\t\t\treturn {\n\t\t\t\text: 'voc',\n\t\t\t\tmime: 'audio/x-voc',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x04, 0x00, 0x00, 0x00]) && this.buffer.length >= 16) { // Rough & quick check Pickle/ASAR\n\t\t\tconst jsonSize = this.buffer.readUInt32LE(12);\n\t\t\tif (jsonSize > 12 && this.buffer.length >= jsonSize + 16) {\n\t\t\t\ttry {\n\t\t\t\t\tconst header = this.buffer.slice(16, jsonSize + 16).toString();\n\t\t\t\t\tconst json = JSON.parse(header);\n\t\t\t\t\t// Check if Pickle is ASAR\n\t\t\t\t\tif (json.files) { // Final check, assuring Pickle/ASAR format\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\text: 'asar',\n\t\t\t\t\t\t\tmime: 'application/x-asar',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\n\t\tif (this.check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\t\treturn {\n\t\t\t\text: 'mxf',\n\t\t\t\tmime: 'application/mxf',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('SCRM', {offset: 44})) {\n\t\t\treturn {\n\t\t\t\text: 's3m',\n\t\t\t\tmime: 'audio/x-s3m',\n\t\t\t};\n\t\t}\n\n\t\t// Raw MPEG-2 transport stream (188-byte packets)\n\t\tif (this.check([0x47]) && this.check([0x47], {offset: 188})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\t// Blu-ray Disc Audio-Video (BDAV) MPEG-2 transport stream has 4-byte TP_extra_header before each 188-byte packet\n\t\tif (this.check([0x47], {offset: 4}) && this.check([0x47], {offset: 196})) {\n\t\t\treturn {\n\t\t\t\text: 'mts',\n\t\t\t\tmime: 'video/mp2t',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\t\treturn {\n\t\t\t\text: 'mobi',\n\t\t\t\tmime: 'application/x-mobipocket-ebook',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\t\treturn {\n\t\t\t\text: 'dcm',\n\t\t\t\tmime: 'application/dicom',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\t\treturn {\n\t\t\t\text: 'lnk',\n\t\t\t\tmime: 'application/x.ms.shortcut', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'alias',\n\t\t\t\tmime: 'application/x.apple.alias', // Invented by us\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tthis.check([0x4C, 0x50], {offset: 34})\n\t\t\t&& (\n\t\t\t\tthis.check([0x00, 0x00, 0x01], {offset: 8})\n\t\t\t\t|| this.check([0x01, 0x00, 0x02], {offset: 8})\n\t\t\t\t|| this.check([0x02, 0x00, 0x02], {offset: 8})\n\t\t\t)\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'eot',\n\t\t\t\tmime: 'application/vnd.ms-fontobject',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0x06, 0x06, 0xED, 0xF5, 0xD8, 0x1D, 0x46, 0xE5, 0xBD, 0x31, 0xEF, 0xE7, 0xFE, 0x74, 0xB7, 0x1D])) {\n\t\t\treturn {\n\t\t\t\text: 'indd',\n\t\t\t\tmime: 'application/x-indesign',\n\t\t\t};\n\t\t}\n\n\t\t// Increase sample size from 256 to 512\n\t\tawait tokenizer.peekBuffer(this.buffer, {length: Math.min(512, tokenizer.fileInfo.size), mayBeLess: true});\n\n\t\t// Requires a buffer size of 512 bytes\n\t\tif (tarHeaderChecksumMatches(this.buffer)) {\n\t\t\treturn {\n\t\t\t\text: 'tar',\n\t\t\t\tmime: 'application/x-tar',\n\t\t\t};\n\t\t}\n\n\t\tif (this.check([0xFF, 0xFE, 0xFF, 0x0E, 0x53, 0x00, 0x6B, 0x00, 0x65, 0x00, 0x74, 0x00, 0x63, 0x00, 0x68, 0x00, 0x55, 0x00, 0x70, 0x00, 0x20, 0x00, 0x4D, 0x00, 0x6F, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6C, 0x00])) {\n\t\t\treturn {\n\t\t\t\text: 'skp',\n\t\t\t\tmime: 'application/vnd.sketchup.skp',\n\t\t\t};\n\t\t}\n\n\t\tif (this.checkString('-----BEGIN PGP MESSAGE-----')) {\n\t\t\treturn {\n\t\t\t\text: 'pgp',\n\t\t\t\tmime: 'application/pgp-encrypted',\n\t\t\t};\n\t\t}\n\n\t\t// Check MPEG 1 or 2 Layer 3 header, or 'layer 0' for ADTS (MPEG sync-word 0xFFE)\n\t\tif (this.buffer.length >= 2 && this.check([0xFF, 0xE0], {offset: 0, mask: [0xFF, 0xE0]})) {\n\t\t\tif (this.check([0x10], {offset: 1, mask: [0x16]})) {\n\t\t\t\t// Check for (ADTS) MPEG-2\n\t\t\t\tif (this.check([0x08], {offset: 1, mask: [0x08]})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'aac',\n\t\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Must be (ADTS) MPEG-4\n\t\t\t\treturn {\n\t\t\t\t\text: 'aac',\n\t\t\t\t\tmime: 'audio/aac',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// MPEG 1 or 2 Layer 3 header\n\t\t\t// Check for MPEG layer 3\n\t\t\tif (this.check([0x02], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp3',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 2\n\t\t\tif (this.check([0x04], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp2',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check for MPEG layer 1\n\t\t\tif (this.check([0x06], {offset: 1, mask: [0x06]})) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mp1',\n\t\t\t\t\tmime: 'audio/mpeg',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffTag(bigEndian) {\n\t\tconst tagId = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tthis.tokenizer.ignore(10);\n\t\tswitch (tagId) {\n\t\t\tcase 50_341:\n\t\t\t\treturn {\n\t\t\t\t\text: 'arw',\n\t\t\t\t\tmime: 'image/x-sony-arw',\n\t\t\t\t};\n\t\t\tcase 50_706:\n\t\t\t\treturn {\n\t\t\t\t\text: 'dng',\n\t\t\t\t\tmime: 'image/x-adobe-dng',\n\t\t\t\t};\n\t\t\tdefault:\n\t\t}\n\t}\n\n\tasync readTiffIFD(bigEndian) {\n\t\tconst numberOfTags = await this.tokenizer.readToken(bigEndian ? Token.UINT16_BE : Token.UINT16_LE);\n\t\tfor (let n = 0; n < numberOfTags; ++n) {\n\t\t\tconst fileType = await this.readTiffTag(bigEndian);\n\t\t\tif (fileType) {\n\t\t\t\treturn fileType;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync readTiffHeader(bigEndian) {\n\t\tconst version = (bigEndian ? Token.UINT16_BE : Token.UINT16_LE).get(this.buffer, 2);\n\t\tconst ifdOffset = (bigEndian ? Token.UINT32_BE : Token.UINT32_LE).get(this.buffer, 4);\n\n\t\tif (version === 42) {\n\t\t\t// TIFF file header\n\t\t\tif (ifdOffset >= 6) {\n\t\t\t\tif (this.checkString('CR', {offset: 8})) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'cr2',\n\t\t\t\t\t\tmime: 'image/x-canon-cr2',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (ifdOffset >= 8 && (this.check([0x1C, 0x00, 0xFE, 0x00], {offset: 8}) || this.check([0x1F, 0x00, 0x0B, 0x00], {offset: 8}))) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'nef',\n\t\t\t\t\t\tmime: 'image/x-nikon-nef',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.tokenizer.ignore(ifdOffset);\n\t\t\tconst fileType = await this.readTiffIFD(false);\n\t\t\treturn fileType ? fileType : {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\n\t\tif (version === 43) {\t// Big TIFF file header\n\t\t\treturn {\n\t\t\t\text: 'tif',\n\t\t\t\tmime: 'image/tiff',\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport async function fileTypeStream(readableStream, {sampleSize = minimumBytes} = {}) {\n\t// eslint-disable-next-line node/no-unsupported-features/es-syntax\n\tconst {default: stream} = await import('node:stream');\n\n\treturn new Promise((resolve, reject) => {\n\t\treadableStream.on('error', reject);\n\n\t\treadableStream.once('readable', () => {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// Set up output stream\n\t\t\t\t\tconst pass = new stream.PassThrough();\n\t\t\t\t\tconst outputStream = stream.pipeline ? stream.pipeline(readableStream, pass, () => {}) : readableStream.pipe(pass);\n\n\t\t\t\t\t// Read the input stream and detect the filetype\n\t\t\t\t\tconst chunk = readableStream.read(sampleSize) || readableStream.read() || Buffer.alloc(0);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst fileType = await fileTypeFromBuffer(chunk);\n\t\t\t\t\t\tpass.fileType = fileType;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error instanceof strtok3.EndOfStreamError) {\n\t\t\t\t\t\t\tpass.fileType = undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(outputStream);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t})();\n\t\t});\n\t});\n}\n\nexport const supportedExtensions = new Set(extensions);\nexport const supportedMimeTypes = new Set(mimeTypes);\n","/*jslint node: true, vars: true, nomen: true */\r\n'use strict';\r\n\r\nvar byEbmlID = {\r\n\t0x80: {\r\n\t\tname: \"ChapterDisplay\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\tdescription: \"Contains all possible strings to use for the chapter display.\"\r\n\t},\r\n\t0x83: {\r\n\t\tname: \"TrackType\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\trange: \"1-254\",\r\n\t\tdescription: \"A set of track types coded on 8 bits (1: video, 2: audio, 3: complex, 0x10: logo, 0x11: subtitle, 0x12: buttons, 0x20: control).\"\r\n\t},\r\n\t0x85: {\r\n\t\tname: \"ChapString\",\r\n\t\tcppname: \"ChapterString\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"8\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\tdescription: \"Contains the string to use as the chapter atom.\"\r\n\t},\r\n\t0x86: {\r\n\t\tname: \"CodecID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"s\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"An ID corresponding to the codec, see the codec page for more info.\"\r\n\t},\r\n\t0x88: {\r\n\t\tname: \"FlagDefault\",\r\n\t\tcppname: \"TrackFlagDefault\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"default\": 1,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Set if that track (audio, video or subs) SHOULD be active if no language found matches the user preference. (1 bit)\"\r\n\t},\r\n\t0x89: {\r\n\t\tname: \"ChapterTrackNumber\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"UID of the Track to apply this chapter too. In the absense of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absense of this element indicates that the Chapter should be applied to any currently used Tracks.\"\r\n\t},\r\n\t0x91: {\r\n\t\tname: \"ChapterTimeStart\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\tdescription: \"Timestamp of the start of Chapter (not scaled).\"\r\n\t},\r\n\t0x92: {\r\n\t\tname: \"ChapterTimeEnd\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Timestamp of the end of Chapter (timestamp excluded, not scaled).\"\r\n\t},\r\n\t0x96: {\r\n\t\tname: \"CueRefTime\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 2,\r\n\t\twebm: false,\r\n\t\tdescription: \"Timestamp of the referenced Block.\"\r\n\t},\r\n\t0x97: {\r\n\t\tname: \"CueRefCluster\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\twebm: false,\r\n\t\tdescription: \"The Position of the Cluster containing the referenced Block.\"\r\n\t},\r\n\t0x98: {\r\n\t\tname: \"ChapterFlagHidden\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"If a chapter is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)\"\r\n\t},\r\n\t0x4254: {\r\n\t\tname: \"ContentCompAlgo\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\t// \"br\": [ \"\", \"\", \"\", \"\" ],\r\n\t\t// \"del\": [ \"1 - bzlib,\", \"2 - lzo1x\" ],\r\n\t\tdescription: \"The compression algorithm used. Algorithms that have been specified so far are: 0 - zlib, 3 - Header Stripping\"\r\n\t},\r\n\t0x4255: {\r\n\t\tname: \"ContentCompSettings\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Settings that might be needed by the decompressor. For Header Stripping (ContentCompAlgo=3), the bytes that were removed from the beggining of each frames of the track.\"\r\n\t},\r\n\t0x4282: {\r\n\t\tname: \"DocType\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"s\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": \"matroska\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"A string that describes the type of document that follows this EBML header. 'matroska' in our case or 'webm' for webm files.\"\r\n\t},\r\n\t0x4285: {\r\n\t\tname: \"DocTypeReadVersion\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": 1,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The minimum DocType version an interpreter has to support to read this file.\"\r\n\t},\r\n\t0x4286: {\r\n\t\tname: \"EBMLVersion\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": 1,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The version of EBML parser used to create the file.\"\r\n\t},\r\n\t0x4287: {\r\n\t\tname: \"DocTypeVersion\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": 1,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The version of DocType interpreter used to create the file.\"\r\n\t},\r\n\t0x4444: {\r\n\t\tname: \"SegmentFamily\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"b\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"A randomly generated unique ID that all segments related to each other must use (128 bits).\"\r\n\t},\r\n\t0x4461: {\r\n\t\tname: \"DateUTC\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"d\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"Date of the origin of timestamp (value 0), i.e. production date.\"\r\n\t},\r\n\t0x4484: {\r\n\t\tname: \"TagDefault\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 1,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Indication to know if this is the default/original language to use for the given tag. (1 bit)\"\r\n\t},\r\n\t0x4485: {\r\n\t\tname: \"TagBinary\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString.\"\r\n\t},\r\n\t0x4487: {\r\n\t\tname: \"TagString\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The value of the Element.\"\r\n\t},\r\n\t0x4489: {\r\n\t\tname: \"Duration\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"f\",\r\n\t\tminver: 1,\r\n\t\trange: \"> 0\",\r\n\t\tdescription: \"Duration of the segment (based on TimecodeScale).\"\r\n\t},\r\n\t0x4598: {\r\n\t\tname: \"ChapterFlagEnabled\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 1,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Specify wether the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie should skip all the content between the TimeStart and TimeEnd of this chapter (see flag notes). (1 bit)\"\r\n\t},\r\n\t0x4660: {\r\n\t\tname: \"FileMimeType\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"s\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"MIME type of the file.\"\r\n\t},\r\n\t0x4661: {\r\n\t\tname: \"FileUsedStartTime\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX font extension\"\r\n\t},\r\n\t0x4662: {\r\n\t\tname: \"FileUsedEndTime\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX font extension\"\r\n\t},\r\n\t0x4675: {\r\n\t\tname: \"FileReferral\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\twebm: false,\r\n\t\tdescription: \"A binary value that a track/codec can refer to when the attachment is needed.\"\r\n\t},\r\n\t0x5031: {\r\n\t\tname: \"ContentEncodingOrder\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"Tells when this modification was used during encoding/muxing starting with 0 and counting upwards. The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to be unique over all ContentEncodingOrder elements in the segment.\"\r\n\t},\r\n\t0x5032: {\r\n\t\tname: \"ContentEncodingScope\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 1,\r\n\t\trange: \"not 0\",\r\n\t\t// \"br\": [ \"\", \"\", \"\" ],\r\n\t\tdescription: \"A bit field that describes which elements have been modified in this way. Values (big endian) can be OR'ed. Possible values: 1 - all frame contents, 2 - the track's private data, 4 - the next ContentEncoding (next ContentEncodingOrder. Either the data inside ContentCompression and/or ContentEncryption)\"\r\n\t},\r\n\t0x5033: {\r\n\t\tname: \"ContentEncodingType\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\t// \"br\": [ \"\", \"\" ],\r\n\t\tdescription: \"A value describing what kind of transformation has been done. Possible values: 0 - compression, 1 - encryption\"\r\n\t},\r\n\t0x5034: {\r\n\t\tname: \"ContentCompression\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Settings describing the compression used. Must be present if the value of ContentEncodingType is 0 and absent otherwise. Each block must be decompressable even if no previous block is available in order not to prevent seeking.\"\r\n\t},\r\n\t0x5035: {\r\n\t\tname: \"ContentEncryption\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Settings describing the encryption used. Must be present if the value of ContentEncodingType is 1 and absent otherwise.\"\r\n\t},\r\n\t0x5378: {\r\n\t\tname: \"CueBlockNumber\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Number of the Block in the specified Cluster.\"\r\n\t},\r\n\t0x5654: {\r\n\t\tname: \"ChapterStringUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"8\",\r\n\t\tmandatory: false,\r\n\t\tminver: 3,\r\n\t\twebm: true,\r\n\t\tdescription: \"A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage.\"\r\n\t},\r\n\t0x5741: {\r\n\t\tname: \"WritingApp\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"8\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Writing application (\\\"mkvmerge-0.3.3\\\").\"\r\n\t},\r\n\t0x5854: {\r\n\t\tname: \"SilentTracks\",\r\n\t\tcppname: \"ClusterSilentTracks\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks on seeking. Then you should decide what track to use.\"\r\n\t},\r\n\t0x6240: {\r\n\t\tname: \"ContentEncoding\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Settings for one content encoding like compression or encryption.\"\r\n\t},\r\n\t0x6264: {\r\n\t\tname: \"BitDepth\",\r\n\t\tcppname: \"AudioBitDepth\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Bits per sample, mostly used for PCM.\"\r\n\t},\r\n\t0x6532: {\r\n\t\tname: \"SignedElement\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tmultiple: true,\r\n\t\twebm: false,\r\n\t\tdescription: \"An element ID whose data will be used to compute the signature.\"\r\n\t},\r\n\t0x6624: {\r\n\t\tname: \"TrackTranslate\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The track identification for the given Chapter Codec.\"\r\n\t},\r\n\t0x6911: {\r\n\t\tname: \"ChapProcessCommand\",\r\n\t\tcppname: \"ChapterProcessCommand\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains all the commands associated to the Atom.\"\r\n\t},\r\n\t0x6922: {\r\n\t\tname: \"ChapProcessTime\",\r\n\t\tcppname: \"ChapterProcessTime\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Defines when the process command should be handled (0: during the whole chapter, 1: before starting playback, 2: after playback of the chapter).\"\r\n\t},\r\n\t0x6924: {\r\n\t\tname: \"ChapterTranslate\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"A tuple of corresponding ID used by chapter codecs to represent this segment.\"\r\n\t},\r\n\t0x6933: {\r\n\t\tname: \"ChapProcessData\",\r\n\t\tcppname: \"ChapterProcessData\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains the command information. The data should be interpreted depending on the ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post commands.\"\r\n\t},\r\n\t0x6944: {\r\n\t\tname: \"ChapProcess\",\r\n\t\tcppname: \"ChapterProcess\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains all the commands associated to the Atom.\"\r\n\t},\r\n\t0x6955: {\r\n\t\tname: \"ChapProcessCodecID\",\r\n\t\tcppname: \"ChapterProcessCodecID\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"Contains the type of the codec used for the processing. A value of 0 means native Matroska processing (to be defined), a value of 1 means the DVD command set is used. More codec IDs can be added later.\"\r\n\t},\r\n\t0x7373: {\r\n\t\tname: \"Tag\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Element containing elements specific to Tracks/Chapters.\"\r\n\t},\r\n\t0x7384: {\r\n\t\tname: \"SegmentFilename\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"A filename corresponding to this segment.\"\r\n\t},\r\n\t0x7446: {\r\n\t\tname: \"AttachmentLink\",\r\n\t\tcppname: \"TrackAttachmentLink\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The UID of an attachment that is used by this codec.\"\r\n\t},\r\n\t0x258688: {\r\n\t\tname: \"CodecName\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"A human-readable string specifying the codec.\"\r\n\t},\r\n\t0x18538067: {\r\n\t\tname: \"Segment\",\r\n\t\tlevel: \"0\",\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"This element contains all other top-level (level 1) elements. Typically a Matroska file is composed of 1 segment.\"\r\n\t},\r\n\t0x447a: {\r\n\t\tname: \"TagLanguage\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"s\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": \"und\",\r\n\t\tdescription: \"Specifies the language of the tag specified, in the Matroska languages form.\"\r\n\t},\r\n\t0x45a3: {\r\n\t\tname: \"TagName\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"8\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The name of the Tag that is going to be stored.\"\r\n\t},\r\n\t0x67c8: {\r\n\t\tname: \"SimpleTag\",\r\n\t\tcppname: \"TagSimple\",\r\n\t\tlevel: 3,\r\n\t\t\"recursive\": \"1\",\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains general information about the target.\"\r\n\t},\r\n\t0x63c6: {\r\n\t\tname: \"TagAttachmentUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"A unique ID to identify the Attachment(s) the tags belong to. If the value is 0 at this level, the tags apply to all the attachments in the Segment.\"\r\n\t},\r\n\t0x63c4: {\r\n\t\tname: \"TagChapterUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"A unique ID to identify the Chapter(s) the tags belong to. If the value is 0 at this level, the tags apply to all chapters in the Segment.\"\r\n\t},\r\n\t0x63c9: {\r\n\t\tname: \"TagEditionUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"A unique ID to identify the EditionEntry(s) the tags belong to. If the value is 0 at this level, the tags apply to all editions in the Segment.\"\r\n\t},\r\n\t0x63c5: {\r\n\t\tname: \"TagTrackUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"A unique ID to identify the Track(s) the tags belong to. If the value is 0 at this level, the tags apply to all tracks in the Segment.\"\r\n\t},\r\n\t0x63ca: {\r\n\t\tname: \"TargetType\",\r\n\t\tcppname: \"TagTargetType\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"s\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"strong\": \"informational\",\r\n\t\tdescription: \"An string that can be used to display the logical level of the target like \\\"ALBUM\\\", \\\"TRACK\\\", \\\"MOVIE\\\", \\\"CHAPTER\\\", etc (see TargetType).\"\r\n\t},\r\n\t0x68ca: {\r\n\t\tname: \"TargetTypeValue\",\r\n\t\tcppname: \"TagTargetTypeValue\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 50,\r\n\t\tdescription: \"A number to indicate the logical level of the target (see TargetType).\"\r\n\t},\r\n\t0x63c0: {\r\n\t\tname: \"Targets\",\r\n\t\tcppname: \"TagTargets\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contain all UIDs where the specified meta data apply. It is empty to describe everything in the segment.\"\r\n\t},\r\n\t0x1254c367: {\r\n\t\tname: \"Tags\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Element containing elements specific to Tracks/Chapters. A list of valid tags can be found here.\"\r\n\t},\r\n\t0x450d: {\r\n\t\tname: \"ChapProcessPrivate\",\r\n\t\tcppname: \"ChapterProcessPrivate\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Some optional data attached to the ChapProcessCodecID information. For ChapProcessCodecID = 1, it is the \\\"DVD level\\\" equivalent.\"\r\n\t},\r\n\t0x437e: {\r\n\t\tname: \"ChapCountry\",\r\n\t\tcppname: \"ChapterCountry\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"s\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The countries corresponding to the string, same 2 octets as in Internet domains.\"\r\n\t},\r\n\t0x437c: {\r\n\t\tname: \"ChapLanguage\",\r\n\t\tcppname: \"ChapterLanguage\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"s\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\t\"default\": \"eng\",\r\n\t\tdescription: \"The languages corresponding to the string, in the bibliographic ISO-639-2 form.\"\r\n\t},\r\n\t0x8f: {\r\n\t\tname: \"ChapterTrack\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"List of tracks on which the chapter applies. If this element is not present, all tracks apply\"\r\n\t},\r\n\t0x63c3: {\r\n\t\tname: \"ChapterPhysicalEquiv\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Specify the physical equivalent of this ChapterAtom like \\\"DVD\\\" (60) or \\\"SIDE\\\" (50), see complete list of values.\"\r\n\t},\r\n\t0x6ebc: {\r\n\t\tname: \"ChapterSegmentEditionUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The EditionUID to play from the segment linked in ChapterSegmentUID.\"\r\n\t},\r\n\t0x6e67: {\r\n\t\tname: \"ChapterSegmentUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \">0\",\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"A segment to play in place of this chapter. Edition ChapterSegmentEditionUID should be used for this segment, otherwise no edition is used.\"\r\n\t},\r\n\t0x73c4: {\r\n\t\tname: \"ChapterUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"A unique ID to identify the Chapter.\"\r\n\t},\r\n\t0xb6: {\r\n\t\tname: \"ChapterAtom\",\r\n\t\tlevel: 3,\r\n\t\t\"recursive\": \"1\",\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\tdescription: \"Contains the atom information to use as the chapter atom (apply to all tracks).\"\r\n\t},\r\n\t0x45dd: {\r\n\t\tname: \"EditionFlagOrdered\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Specify if the chapters can be defined multiple times and the order to play them is enforced. (1 bit)\"\r\n\t},\r\n\t0x45db: {\r\n\t\tname: \"EditionFlagDefault\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"If a flag is set (1) the edition should be used as the default one. (1 bit)\"\r\n\t},\r\n\t0x45bd: {\r\n\t\tname: \"EditionFlagHidden\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"If an edition is hidden (1), it should not be available to the user interface (but still to Control Tracks; see flag notes). (1 bit)\"\r\n\t},\r\n\t0x45bc: {\r\n\t\tname: \"EditionUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"A unique ID to identify the edition. It's useful for tagging an edition.\"\r\n\t},\r\n\t0x45b9: {\r\n\t\tname: \"EditionEntry\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\tdescription: \"Contains all information about a segment edition.\"\r\n\t},\r\n\t0x1043a770: {\r\n\t\tname: \"Chapters\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: true,\r\n\t\tdescription: \"A system to define basic menus and partition data. For more detailed information, look at the Chapters Explanation.\"\r\n\t},\r\n\t0x46ae: {\r\n\t\tname: \"FileUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Unique ID representing the file, as random as possible.\"\r\n\t},\r\n\t0x465c: {\r\n\t\tname: \"FileData\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The data of the file.\"\r\n\t},\r\n\t0x466e: {\r\n\t\tname: \"FileName\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"8\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Filename of the attached file.\"\r\n\t},\r\n\t0x467e: {\r\n\t\tname: \"FileDescription\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"A human-friendly name for the attached file.\"\r\n\t},\r\n\t0x61a7: {\r\n\t\tname: \"AttachedFile\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"An attached file.\"\r\n\t},\r\n\t0x1941a469: {\r\n\t\tname: \"Attachments\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contain attached files.\"\r\n\t},\r\n\t0xeb: {\r\n\t\tname: \"CueRefCodecState\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The position of the Codec State corresponding to this referenced element. 0 means that the data is taken from the initial Track Entry.\"\r\n\t},\r\n\t0x535f: {\r\n\t\tname: \"CueRefNumber\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\twebm: false,\r\n\t\t\"default\": 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Number of the referenced Block of Track X in the specified Cluster.\"\r\n\t},\r\n\t0xdb: {\r\n\t\tname: \"CueReference\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 2,\r\n\t\twebm: false,\r\n\t\tdescription: \"The Clusters containing the required referenced Blocks.\"\r\n\t},\r\n\t0xea: {\r\n\t\tname: \"CueCodecState\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 2,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The position of the Codec State corresponding to this Cue element. 0 means that the data is taken from the initial Track Entry.\"\r\n\t},\r\n\t0xb2: {\r\n\t\tname: \"CueDuration\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: false,\r\n\t\tminver: 4,\r\n\t\twebm: false,\r\n\t\tdescription: \"The duration of the block according to the segment time base. If missing the track's DefaultDuration does not apply and no duration information is available in terms of the cues.\"\r\n\t},\r\n\t0xf0: {\r\n\t\tname: \"CueRelativePosition\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: false,\r\n\t\tminver: 4,\r\n\t\twebm: false,\r\n\t\tdescription: \"The relative position of the referenced block inside the cluster with 0 being the first possible position for an element inside that cluster.\",\r\n\t\tposition: \"clusterRelative\"\r\n\t},\r\n\t0xf1: {\r\n\t\tname: \"CueClusterPosition\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The position of the Cluster containing the required Block.\",\r\n\t\tposition: \"segment\",\r\n\t},\r\n\t0xf7: {\r\n\t\tname: \"CueTrack\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The track for which a position is given.\"\r\n\t},\r\n\t0xb7: {\r\n\t\tname: \"CueTrackPositions\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Contain positions for different tracks corresponding to the timestamp.\"\r\n\t},\r\n\t0xb3: {\r\n\t\tname: \"CueTime\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Absolute timestamp according to the segment time base.\"\r\n\t},\r\n\t0xbb: {\r\n\t\tname: \"CuePoint\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Contains all information relative to a seek point in the segment.\"\r\n\t},\r\n\t0x1c53bb6b: {\r\n\t\tname: \"Cues\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"A top-level element to speed seeking access. All entries are local to the segment. Should be mandatory for non \\\"live\\\" streams.\"\r\n\t},\r\n\t0x47e6: {\r\n\t\tname: \"ContentSigHashAlgo\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\t// \"br\": [ \"\", \"\" ],\r\n\t\tdescription: \"The hash algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - SHA1-160 2 - MD5\"\r\n\t},\r\n\t0x47e5: {\r\n\t\tname: \"ContentSigAlgo\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\t// \"br\": \"\",\r\n\t\tdescription: \"The algorithm used for the signature. A value of '0' means that the contents have not been signed but only encrypted. Predefined values: 1 - RSA\"\r\n\t},\r\n\t0x47e4: {\r\n\t\tname: \"ContentSigKeyID\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"This is the ID of the private key the data was signed with.\"\r\n\t},\r\n\t0x47e3: {\r\n\t\tname: \"ContentSignature\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"A cryptographic signature of the contents.\"\r\n\t},\r\n\t0x47e2: {\r\n\t\tname: \"ContentEncKeyID\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"For public key algorithms this is the ID of the public key the the data was encrypted with.\"\r\n\t},\r\n\t0x47e1: {\r\n\t\tname: \"ContentEncAlgo\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\t// \"br\": \"\",\r\n\t\tdescription: \"The encryption algorithm used. The value '0' means that the contents have not been encrypted but only signed. Predefined values: 1 - DES, 2 - 3DES, 3 - Twofish, 4 - Blowfish, 5 - AES\"\r\n\t},\r\n\t0x6d80: {\r\n\t\tname: \"ContentEncodings\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Settings for several content encoding mechanisms like compression or encryption.\"\r\n\t},\r\n\t0xc4: {\r\n\t\tname: \"TrickMasterTrackSegmentUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tdivx: true,\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xc7: {\r\n\t\tname: \"TrickMasterTrackUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xc6: {\r\n\t\tname: \"TrickTrackFlag\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tdivx: true,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xc1: {\r\n\t\tname: \"TrickTrackSegmentUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tdivx: true,\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xc0: {\r\n\t\tname: \"TrickTrackUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xed: {\r\n\t\tname: \"TrackJoinUID\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The trackUID number of a track whose blocks are used to create this virtual track.\"\r\n\t},\r\n\t0xe9: {\r\n\t\tname: \"TrackJoinBlocks\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains the list of all tracks whose Blocks need to be combined to create this virtual track\"\r\n\t},\r\n\t0xe6: {\r\n\t\tname: \"TrackPlaneType\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\tdescription: \"The kind of plane this track corresponds to (0: left eye, 1: right eye, 2: background).\"\r\n\t},\r\n\t0xe5: {\r\n\t\tname: \"TrackPlaneUID\",\r\n\t\tlevel: 6,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The trackUID number of the track representing the plane.\"\r\n\t},\r\n\t0xe4: {\r\n\t\tname: \"TrackPlane\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains a video plane track that need to be combined to create this 3D track\"\r\n\t},\r\n\t0xe3: {\r\n\t\tname: \"TrackCombinePlanes\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains the list of all video plane tracks that need to be combined to create this 3D track\"\r\n\t},\r\n\t0xe2: {\r\n\t\tname: \"TrackOperation\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tminver: 3,\r\n\t\twebm: false,\r\n\t\tdescription: \"Operation that needs to be applied on tracks to create this virtual track. For more details look at the Specification Notes on the subject.\"\r\n\t},\r\n\t0x7d7b: {\r\n\t\tname: \"ChannelPositions\",\r\n\t\tcppname: \"AudioPosition\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"b\",\r\n\t\twebm: false,\r\n\t\tdescription: \"Table of horizontal angles for each successive channel, see appendix.\"\r\n\t},\r\n\t0x9f: {\r\n\t\tname: \"Channels\",\r\n\t\tcppname: \"AudioChannels\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"default\": 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Numbers of channels in the track.\"\r\n\t},\r\n\t0x78b5: {\r\n\t\tname: \"OutputSamplingFrequency\",\r\n\t\tcppname: \"AudioOutputSamplingFreq\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"f\",\r\n\t\tminver: 1,\r\n\t\t\"default\": \"Sampling Frequency\",\r\n\t\trange: \"> 0\",\r\n\t\tdescription: \"Real output sampling frequency in Hz (used for SBR techniques).\"\r\n\t},\r\n\t0xb5: {\r\n\t\tname: \"SamplingFrequency\",\r\n\t\tcppname: \"AudioSamplingFreq\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"f\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"default\": 8000.0,\r\n\t\trange: \"> 0\",\r\n\t\tdescription: \"Sampling frequency in Hz.\"\r\n\t},\r\n\t0xe1: {\r\n\t\tname: \"Audio\",\r\n\t\tcppname: \"TrackAudio\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"Audio settings.\"\r\n\t},\r\n\t0x2383e3: {\r\n\t\tname: \"FrameRate\",\r\n\t\tcppname: \"VideoFrameRate\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"f\",\r\n\t\trange: \"> 0\",\r\n\t\t\"strong\": \"Informational\",\r\n\t\tdescription: \"Number of frames per second. only.\"\r\n\t},\r\n\t0x2fb523: {\r\n\t\tname: \"GammaValue\",\r\n\t\tcppname: \"VideoGamma\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"f\",\r\n\t\twebm: false,\r\n\t\trange: \"> 0\",\r\n\t\tdescription: \"Gamma Value.\"\r\n\t},\r\n\t0x2eb524: {\r\n\t\tname: \"ColourSpace\",\r\n\t\tcppname: \"VideoColourSpace\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tbytesize: 4,\r\n\t\tdescription: \"Same value as in AVI (32 bits).\"\r\n\t},\r\n\t0x54b3: {\r\n\t\tname: \"AspectRatioType\",\r\n\t\tcppname: \"VideoAspectRatio\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"Specify the possible modifications to the aspect ratio (0: free resizing, 1: keep aspect ratio, 2: fixed).\"\r\n\t},\r\n\t0x54b2: {\r\n\t\tname: \"DisplayUnit\",\r\n\t\tcppname: \"VideoDisplayUnit\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"How DisplayWidth & DisplayHeight should be interpreted (0: pixels, 1: centimeters, 2: inches, 3: Display Aspect Ratio).\"\r\n\t},\r\n\t0x54ba: {\r\n\t\tname: \"DisplayHeight\",\r\n\t\tcppname: \"VideoDisplayHeight\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": \"PixelHeight\",\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Height of the video frames to display. The default value is only valid when DisplayUnit is 0.\"\r\n\t},\r\n\t0x54b0: {\r\n\t\tname: \"DisplayWidth\",\r\n\t\tcppname: \"VideoDisplayWidth\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": \"PixelWidth\",\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Width of the video frames to display. The default value is only valid when DisplayUnit is 0.\"\r\n\t},\r\n\t0x54dd: {\r\n\t\tname: \"PixelCropRight\",\r\n\t\tcppname: \"VideoPixelCropRight\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The number of video pixels to remove on the right of the image.\"\r\n\t},\r\n\t0x54cc: {\r\n\t\tname: \"PixelCropLeft\",\r\n\t\tcppname: \"VideoPixelCropLeft\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The number of video pixels to remove on the left of the image.\"\r\n\t},\r\n\t0x54bb: {\r\n\t\tname: \"PixelCropTop\",\r\n\t\tcppname: \"VideoPixelCropTop\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The number of video pixels to remove at the top of the image.\"\r\n\t},\r\n\t0x54aa: {\r\n\t\tname: \"PixelCropBottom\",\r\n\t\tcppname: \"VideoPixelCropBottom\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The number of video pixels to remove at the bottom of the image (for HDTV content).\"\r\n\t},\r\n\t0xba: {\r\n\t\tname: \"PixelHeight\",\r\n\t\tcppname: \"VideoPixelHeight\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Height of the encoded video frames in pixels.\"\r\n\t},\r\n\t0xb0: {\r\n\t\tname: \"PixelWidth\",\r\n\t\tcppname: \"VideoPixelWidth\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Width of the encoded video frames in pixels.\"\r\n\t},\r\n\t0x53b9: {\r\n\t\tname: \"OldStereoMode\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\t\"maxver\": \"0\",\r\n\t\twebm: false,\r\n\t\tdivx: false,\r\n\t\tdescription: \"DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes).\"\r\n\t},\r\n\t0x53c0: {\r\n\t\tname: \"AlphaMode\",\r\n\t\tcppname: \"VideoAlphaMode\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 3,\r\n\t\twebm: true,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"Alpha Video Mode. Presence of this element indicates that the BlockAdditional element could contain Alpha data.\"\r\n\t},\r\n\t0x53b8: {\r\n\t\tname: \"StereoMode\",\r\n\t\tcppname: \"VideoStereoMode\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tminver: 3,\r\n\t\twebm: true,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"Stereo-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (right is first), 5: checkboard (left is first), 6: row interleaved (right is first), 7: row interleaved (left is first), 8: column interleaved (right is first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block (left eye is first), 14 both eyes laced in one Block (right eye is first)) . There are some more details on 3D support in the Specification Notes.\"\r\n\t},\r\n\t0x9a: {\r\n\t\tname: \"FlagInterlaced\",\r\n\t\tcppname: \"VideoFlagInterlaced\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 2,\r\n\t\twebm: true,\r\n\t\t\"default\": 0,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Set if the video is interlaced. (1 bit)\"\r\n\t},\r\n\t0xe0: {\r\n\t\tname: \"Video\",\r\n\t\tcppname: \"TrackVideo\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"Video settings.\"\r\n\t},\r\n\t0x66a5: {\r\n\t\tname: \"TrackTranslateTrackID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The binary value used to represent this track in the chapter codec data. The format depends on the ChapProcessCodecID used.\"\r\n\t},\r\n\t0x66bf: {\r\n\t\tname: \"TrackTranslateCodec\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu).\"\r\n\t},\r\n\t0x66fc: {\r\n\t\tname: \"TrackTranslateEditionUID\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Specify an edition UID on which this translation applies. When not specified, it means for all editions found in the segment.\"\r\n\t},\r\n\t0x56bb: {\r\n\t\tname: \"SeekPreRoll\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: false,\r\n\t\t\"default\": 0,\r\n\t\tminver: 4,\r\n\t\twebm: true,\r\n\t\tdescription: \"After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder must decode before the decoded data is valid.\"\r\n\t},\r\n\t0x56aa: {\r\n\t\tname: \"CodecDelay\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: false,\r\n\t\t\"default\": 0,\r\n\t\tminver: 4,\r\n\t\twebm: true,\r\n\t\tdescription: \"CodecDelay is The codec-built-in delay in nanoseconds. This value must be subtracted from each block timestamp in order to get the actual timestamp. The value should be small so the muxing of tracks with the same actual timestamp are in the same Cluster.\"\r\n\t},\r\n\t0x6fab: {\r\n\t\tname: \"TrackOverlay\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Specify that this track is an overlay track for the Track specified (in the u-integer). That means when this track has a gap (see SilentTracks) the overlay track should be used instead. The order of multiple TrackOverlay matters, the first one is the one that should be used. If not found it should be the second, etc.\"\r\n\t},\r\n\t0xaa: {\r\n\t\tname: \"CodecDecodeAll\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 2,\r\n\t\twebm: false,\r\n\t\t\"default\": 1,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"The codec can decode potentially damaged data (1 bit).\"\r\n\t},\r\n\t0x26b240: {\r\n\t\tname: \"CodecDownloadURL\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"s\",\r\n\t\tmultiple: true,\r\n\t\twebm: false,\r\n\t\tdescription: \"A URL to download about the codec used.\"\r\n\t},\r\n\t0x3b4040: {\r\n\t\tname: \"CodecInfoURL\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"s\",\r\n\t\tmultiple: true,\r\n\t\twebm: false,\r\n\t\tdescription: \"A URL to find information about the codec used.\"\r\n\t},\r\n\t0x3a9697: {\r\n\t\tname: \"CodecSettings\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"8\",\r\n\t\twebm: false,\r\n\t\tdescription: \"A string describing the encoding setting used.\"\r\n\t},\r\n\t0x63a2: {\r\n\t\tname: \"CodecPrivate\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"Private data only known to the codec.\"\r\n\t},\r\n\t0x22b59c: {\r\n\t\tname: \"Language\",\r\n\t\tcppname: \"TrackLanguage\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"s\",\r\n\t\tminver: 1,\r\n\t\t\"default\": \"eng\",\r\n\t\tdescription: \"Specifies the language of the track in the Matroska languages form.\"\r\n\t},\r\n\t0x536e: {\r\n\t\tname: \"Name\",\r\n\t\tcppname: \"TrackName\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"A human-readable track name.\"\r\n\t},\r\n\t0x55ee: {\r\n\t\tname: \"MaxBlockAdditionID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The maximum value of BlockAdditions for this track.\"\r\n\t},\r\n\t0x537f: {\r\n\t\tname: \"TrackOffset\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"i\",\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track.\"\r\n\t},\r\n\t0x23314f: {\r\n\t\tname: \"TrackTimecodeScale\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"f\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"maxver\": \"3\",\r\n\t\twebm: false,\r\n\t\t\"default\": 1.0,\r\n\t\trange: \"> 0\",\r\n\t\tdescription: \"DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other tracks (mostly used to adjust video speed when the audio length differs).\"\r\n\t},\r\n\t0x234e7a: {\r\n\t\tname: \"DefaultDecodedFieldDuration\",\r\n\t\tcppname: \"TrackDefaultDecodedFieldDuration\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 4,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The period in nanoseconds (not scaled by TimcodeScale)\\nbetween two successive fields at the output of the decoding process (see the notes)\"\r\n\t},\r\n\t0x23e383: {\r\n\t\tname: \"DefaultDuration\",\r\n\t\tcppname: \"TrackDefaultDuration\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"Number of nanoseconds (not scaled via TimecodeScale) per frame ('frame' in the Matroska sense -- one element put into a (Simple)Block).\"\r\n\t},\r\n\t0x6df8: {\r\n\t\tname: \"MaxCache\",\r\n\t\tcppname: \"TrackMaxCache\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The maximum cache size required to store referenced frames in and the current frame. 0 means no cache is needed.\"\r\n\t},\r\n\t0x6de7: {\r\n\t\tname: \"MinCache\",\r\n\t\tcppname: \"TrackMinCache\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The minimum number of frames a player should be able to cache during playback. If set to 0, the reference pseudo-cache system is not used.\"\r\n\t},\r\n\t0x9c: {\r\n\t\tname: \"FlagLacing\",\r\n\t\tcppname: \"TrackFlagLacing\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"default\": 1,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Set if the track may contain blocks using lacing. (1 bit)\"\r\n\t},\r\n\t0x55aa: {\r\n\t\tname: \"FlagForced\",\r\n\t\tcppname: \"TrackFlagForced\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Set if that track MUST be active during playback. There can be many forced track for a kind (audio, video or subs), the player should select the one which language matches the user preference or the default + forced track. Overlay MAY happen between a forced and non-forced track of the same kind. (1 bit)\"\r\n\t},\r\n\t0xb9: {\r\n\t\tname: \"FlagEnabled\",\r\n\t\tcppname: \"TrackFlagEnabled\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 2,\r\n\t\twebm: true,\r\n\t\t\"default\": 1,\r\n\t\trange: \"0-1\",\r\n\t\tdescription: \"Set if the track is usable. (1 bit)\"\r\n\t},\r\n\t0x73c5: {\r\n\t\tname: \"TrackUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"A unique ID to identify the Track. This should be kept the same when making a direct stream copy of the Track to another file.\"\r\n\t},\r\n\t0xd7: {\r\n\t\tname: \"TrackNumber\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"The track number as used in the Block Header (using more than 127 tracks is not encouraged, though the design allows an unlimited number).\"\r\n\t},\r\n\t0xae: {\r\n\t\tname: \"TrackEntry\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Describes a track with all elements.\"\r\n\t},\r\n\t0x1654ae6b: {\r\n\t\tname: \"Tracks\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"A top-level block of information with many tracks described.\"\r\n\t},\r\n\t0xaf: {\r\n\t\tname: \"EncryptedBlock\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"b\",\r\n\t\tmultiple: true,\r\n\t\twebm: false,\r\n\t\tdescription: \"Similar to EncryptedBlock Structure)\"\r\n\t},\r\n\t0xca: {\r\n\t\tname: \"ReferenceTimeCode\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: false,\r\n\t\tmandatory: true,\r\n\t\tminver: 0,\r\n\t\twebm: false,\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xc9: {\r\n\t\tname: \"ReferenceOffset\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: false,\r\n\t\tmandatory: true,\r\n\t\tminver: 0,\r\n\t\twebm: false,\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xc8: {\r\n\t\tname: \"ReferenceFrame\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: false,\r\n\t\tminver: 0,\r\n\t\twebm: false,\r\n\t\tdivx: true,\r\n\t\tdescription: \"DivX trick track extenstions\"\r\n\t},\r\n\t0xcf: {\r\n\t\tname: \"SliceDuration\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The (scaled) duration to apply to the element.\"\r\n\t},\r\n\t0xce: {\r\n\t\tname: \"Delay\",\r\n\t\tcppname: \"SliceDelay\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The (scaled) delay to apply to the element.\"\r\n\t},\r\n\t0xcb: {\r\n\t\tname: \"BlockAdditionID\",\r\n\t\tcppname: \"SliceBlockAddID\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The ID of the BlockAdditional element (0 is the main Block).\"\r\n\t},\r\n\t0xcd: {\r\n\t\tname: \"FrameNumber\",\r\n\t\tcppname: \"SliceFrameNumber\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"The number of the frame to generate from this lace with this delay (allow you to generate many frames from the same Block/Frame).\"\r\n\t},\r\n\t0xcc: {\r\n\t\tname: \"LaceNumber\",\r\n\t\tcppname: \"SliceLaceNumber\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": 0,\r\n\t\tdivx: false,\r\n\t\tdescription: \"The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback.\"\r\n\t},\r\n\t0xe8: {\r\n\t\tname: \"TimeSlice\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdivx: false,\r\n\t\tdescription: \"Contains extra time information about the data contained in the Block. While there are a few files in the wild with this element, it is no longer in use and has been deprecated. Being able to interpret this element is not required for playback.\"\r\n\t},\r\n\t0x8e: {\r\n\t\tname: \"Slices\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\tdivx: false,\r\n\t\tdescription: \"Contains slices description.\"\r\n\t},\r\n\t0x75a2: {\r\n\t\tname: \"DiscardPadding\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"i\",\r\n\t\tminver: 4,\r\n\t\twebm: true,\r\n\t\tdescription: \"Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and should be discarded during playback.\"\r\n\t},\r\n\t0xa4: {\r\n\t\tname: \"CodecState\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tminver: 2,\r\n\t\twebm: false,\r\n\t\tdescription: \"The new codec state to use. Data interpretation is private to the codec. This information should always be referenced by a seek entry.\"\r\n\t},\r\n\t0xfd: {\r\n\t\tname: \"ReferenceVirtual\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"i\",\r\n\t\twebm: false,\r\n\t\tdescription: \"Relative position of the data that should be in position of the virtual block.\"\r\n\t},\r\n\t0xfb: {\r\n\t\tname: \"ReferenceBlock\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"i\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Timestamp of another frame used as a reference (ie: B or P frame). The timestamp is relative to the block it's attached to.\"\r\n\t},\r\n\t0xfa: {\r\n\t\tname: \"ReferencePriority\",\r\n\t\tcppname: \"FlagReferenced\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 0,\r\n\t\tdescription: \"This frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced.\"\r\n\t},\r\n\t0x9b: {\r\n\t\tname: \"BlockDuration\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\t\"default\": \"TrackDuration\",\r\n\t\tdescription: \"The duration of the Block (based on TimecodeScale). This element is mandatory when DefaultDuration is set for the track (but can be omitted as other default values). When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in \\\"display\\\" order (not coding order). This element can be useful at the end of a Track (as there is not other Block available), or when there is a break in a track like for subtitle tracks. When set to 0 that means the frame is not a keyframe.\"\r\n\t},\r\n\t0xa5: {\r\n\t\tname: \"BlockAdditional\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Interpreted by the codec as it wishes (using the BlockAddID).\"\r\n\t},\r\n\t0xee: {\r\n\t\tname: \"BlockAddID\",\r\n\t\tlevel: 5,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\t\"default\": 1,\r\n\t\trange: \"not 0\",\r\n\t\tdescription: \"An ID to identify the BlockAdditional level.\"\r\n\t},\r\n\t0xa6: {\r\n\t\tname: \"BlockMore\",\r\n\t\tlevel: 4,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contain the BlockAdditional and some parameters.\"\r\n\t},\r\n\t0x75a1: {\r\n\t\tname: \"BlockAdditions\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"m\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data.\"\r\n\t},\r\n\t0xa2: {\r\n\t\tname: \"BlockVirtual\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\twebm: false,\r\n\t\tdescription: \"A Block with no data. It must be stored in the stream at the place the real Block should be in display order. (see Block Virtual)\"\r\n\t},\r\n\t0xa1: {\r\n\t\tname: \"Block\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Block containing the actual data to be rendered and a timestamp relative to the Cluster Timecode. (see Block Structure)\"\r\n\t},\r\n\t0xa0: {\r\n\t\tname: \"BlockGroup\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Basic container of information containing a single Block or BlockVirtual, and information specific to that Block/VirtualBlock.\"\r\n\t},\r\n\t0xa3: {\r\n\t\tname: \"SimpleBlock\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"b\",\r\n\t\tmultiple: true,\r\n\t\tminver: 2,\r\n\t\twebm: true,\r\n\t\tdivx: true,\r\n\t\tdescription: \"Similar to SimpleBlock Structure\"\r\n\t},\r\n\t0xab: {\r\n\t\tname: \"PrevSize\",\r\n\t\tcppname: \"ClusterPrevSize\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"Size of the previous Cluster, in octets. Can be useful for backward playing.\",\r\n\t\tposition: \"prevCluster\"\r\n\t},\r\n\t0xa7: {\r\n\t\tname: \"Position\",\r\n\t\tcppname: \"ClusterPosition\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"u\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The Position of the Cluster in the segment (0 in live broadcast streams). It might help to resynchronise offset on damaged streams.\",\r\n\t\tposition: \"segment\"\r\n\t},\r\n\t0x58d7: {\r\n\t\tname: \"SilentTrackNumber\",\r\n\t\tcppname: \"ClusterSilentTrackNumber\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"One of the track number that are not used from now on in the stream. It could change later if not specified as silent in a further Cluster.\"\r\n\t},\r\n\t0xe7: {\r\n\t\tname: \"Timecode\",\r\n\t\tcppname: \"ClusterTimecode\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Absolute timestamp of the cluster (based on TimecodeScale).\"\r\n\t},\r\n\t0x1f43b675: {\r\n\t\tname: \"Cluster\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The lower level element containing the (monolithic) Block structure.\"\r\n\t},\r\n\t0x4d80: {\r\n\t\tname: \"MuxingApp\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"8\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Muxing application or library (\\\"libmatroska-0.4.3\\\").\"\r\n\t},\r\n\t0x7ba9: {\r\n\t\tname: \"Title\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"General name of the segment.\"\r\n\t},\r\n\t0x2ad7b2: {\r\n\t\tname: \"TimecodeScaleDenominator\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 4,\r\n\t\t\"default\": \"1000000000\",\r\n\t\tdescription: \"Timestamp scale numerator, see TimecodeScale.\"\r\n\t},\r\n\t0x2ad7b1: {\r\n\t\tname: \"TimecodeScale\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\t\"default\": \"1000000\",\r\n\t\tdescription: \"Timestamp scale in nanoseconds (1.000.000 means all timestamps in the segment are expressed in milliseconds).\"\r\n\t},\r\n\t0x69a5: {\r\n\t\tname: \"ChapterTranslateID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The binary value used to represent this segment in the chapter codec data. The format depends on the ChapProcessCodecID used.\"\r\n\t},\r\n\t0x69bf: {\r\n\t\tname: \"ChapterTranslateCodec\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The chapter codec using this ID (0: Matroska Script, 1: DVD-menu).\"\r\n\t},\r\n\t0x69fc: {\r\n\t\tname: \"ChapterTranslateEditionUID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"Specify an edition UID on which this correspondance applies. When not specified, it means for all editions found in the segment.\"\r\n\t},\r\n\t0x3e83bb: {\r\n\t\tname: \"NextFilename\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"An escaped filename corresponding to the next segment.\"\r\n\t},\r\n\t0x3eb923: {\r\n\t\tname: \"NextUID\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"A unique ID to identify the next chained segment (128 bits).\"\r\n\t},\r\n\t0x3c83ab: {\r\n\t\tname: \"PrevFilename\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"8\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"An escaped filename corresponding to the previous segment.\"\r\n\t},\r\n\t0x3cb923: {\r\n\t\tname: \"PrevUID\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"A unique ID to identify the previous chained segment (128 bits).\"\r\n\t},\r\n\t0x73a4: {\r\n\t\tname: \"SegmentUID\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\trange: \"not 0\",\r\n\t\tbytesize: 16,\r\n\t\tdescription: \"A randomly generated unique ID to identify the current segment between many others (128 bits).\"\r\n\t},\r\n\t0x1549a966: {\r\n\t\tname: \"Info\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Contains miscellaneous general information and statistics on the file.\"\r\n\t},\r\n\t0x53ac: {\r\n\t\tname: \"SeekPosition\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The position of the element in the segment in octets (0 = first level 1 element).\",\r\n\t\tposition: \"segment\"\r\n\t},\r\n\t0x53ab: {\r\n\t\tname: \"SeekID\",\r\n\t\tlevel: 3,\r\n\t\ttype: \"b\",\r\n\t\tmandatory: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The binary ID corresponding to the element name.\",\r\n\t\ttype2: \"ebmlID\"\r\n\t},\r\n\t0x4dbb: {\r\n\t\tname: \"Seek\",\r\n\t\tcppname: \"SeekPoint\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Contains a single seek entry to an EBML element.\"\r\n\t},\r\n\t0x114d9b74: {\r\n\t\tname: \"SeekHead\",\r\n\t\tcppname: \"SeekHeader\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Contains the position of other level 1 elements.\"\r\n\t},\r\n\t0x7e7b: {\r\n\t\tname: \"SignatureElementList\",\r\n\t\tlevel: 2,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\twebm: false,\r\n\t\ti: \"Cluster|Block|BlockAdditional\",\r\n\t\tdescription: \"A list consists of a number of consecutive elements that represent one case where data is used in signature. Ex: means that the BlockAdditional of all Blocks in all Clusters is used for encryption.\"\r\n\t},\r\n\t0x7e5b: {\r\n\t\tname: \"SignatureElements\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"m\",\r\n\t\twebm: false,\r\n\t\tdescription: \"Contains elements that will be used to compute the signature.\"\r\n\t},\r\n\t0x7eb5: {\r\n\t\tname: \"Signature\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"b\",\r\n\t\twebm: false,\r\n\t\tdescription: \"The signature of the data (until a new.\"\r\n\t},\r\n\t0x7ea5: {\r\n\t\tname: \"SignaturePublicKey\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"b\",\r\n\t\twebm: false,\r\n\t\tdescription: \"The public key to use with the algorithm (in the case of a PKI-based signature).\"\r\n\t},\r\n\t0x7e9a: {\r\n\t\tname: \"SignatureHash\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\twebm: false,\r\n\t\tdescription: \"Hash algorithm used (1=SHA1-160, 2=MD5).\"\r\n\t},\r\n\t0x7e8a: {\r\n\t\tname: \"SignatureAlgo\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\twebm: false,\r\n\t\tdescription: \"Signature algorithm used (1=RSA, 2=elliptic).\"\r\n\t},\r\n\t0x1b538667: {\r\n\t\tname: \"SignatureSlot\",\r\n\t\tlevel: -1,\r\n\t\ttype: \"m\",\r\n\t\tmultiple: true,\r\n\t\twebm: false,\r\n\t\tdescription: \"Contain signature of some (coming) elements in the stream.\"\r\n\t},\r\n\t0xbf: {\r\n\t\tname: \"CRC-32\",\r\n\t\tlevel: -1,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\twebm: false,\r\n\t\tdescription: \"The CRC is computed on all the data of the Master element it's in. The CRC element should be the first in it's parent master for easier reading. All level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC32 Little Endian\",\r\n\t\tcrc: true\r\n\t},\r\n\t0xec: {\r\n\t\tname: \"Void\",\r\n\t\tlevel: -1,\r\n\t\ttype: \"b\",\r\n\t\tminver: 1,\r\n\t\tdescription: \"Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is discarded. Also used to reserve space in a sub-element for later use.\"\r\n\t},\r\n\t0x42f3: {\r\n\t\tname: \"EBMLMaxSizeLength\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": 8,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not override the element size indicated at the beginning of an element. Elements that have an indicated size which is larger than what is allowed by EBMLMaxSizeLength shall be considered invalid.\"\r\n\t},\r\n\t0x42f2: {\r\n\t\tname: \"EBMLMaxIDLength\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": 4,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The maximum length of the IDs you'll find in this file (4 or less in Matroska).\"\r\n\t},\r\n\t0x42f7: {\r\n\t\tname: \"EBMLReadVersion\",\r\n\t\tlevel: 1,\r\n\t\ttype: \"u\",\r\n\t\tmandatory: true,\r\n\t\t\"default\": 1,\r\n\t\tminver: 1,\r\n\t\tdescription: \"The minimum EBML version a parser has to support to read this file.\"\r\n\t},\r\n\t0x1a45dfa3: {\r\n\t\tname: \"EBML\",\r\n\t\tlevel: \"0\",\r\n\t\ttype: \"m\",\r\n\t\tmandatory: true,\r\n\t\tmultiple: true,\r\n\t\tminver: 1,\r\n\t\tdescription: \"Set the EBML characteristics of the data to follow. Each EBML document has to start with this.\"\r\n\t}\r\n};\r\n\r\nvar byName = {};\r\n\r\nvar schema = {\r\n\tbyEbmlID: byEbmlID,\r\n\tbyName: byName\r\n}\r\n\r\nfor ( var ebmlID in byEbmlID) {\r\n\tvar desc = byEbmlID[ebmlID];\r\n\tbyName[desc.name.replace('-', '_')] = parseInt(ebmlID, 10);\r\n}\r\n\r\nmodule.exports = schema;\r\n","// https://github.com/themasch/node-ebml/blob/master/lib/ebml/tools.js\nmodule.exports = function (buffer, start, signed) {\n start = start || 0\n for (var length = 1; length <= 8; length++) {\n if (buffer[start] >= Math.pow(2, 8 - length)) {\n break\n }\n }\n if (length > 8) {\n throw new Error('Unrepresentable length: ' + length + ' ' +\n buffer.toString('hex', start, start + length))\n }\n if (start + length > buffer.length) {\n return null\n }\n var i\n var value = buffer[start] & (1 << (8 - length)) - 1\n for (i = 1; i < length; i++) {\n if (i === 7) {\n if (value >= Math.pow(2, 53 - 8) && buffer[start + 7] > 0) {\n return {\n length: length,\n value: -1\n }\n }\n }\n value *= Math.pow(2, 8)\n value += buffer[start + i]\n }\n if (signed) {\n value -= Math.pow(2, length * 7 - 1) - 1\n }\n return {\n length: length,\n value: value\n }\n}\n","var vint = require('./vint')\n\nfunction BufferReader (buffer) {\n this.buffer = buffer\n this.offset = 0\n}\n\n// a super limited subset of the node buffer API\nBufferReader.prototype.nextInt16BE = function () {\n var value = this.buffer.readInt16BE(this.offset)\n this.offset += 2\n return value\n}\n\nBufferReader.prototype.nextUInt8 = function () {\n var value = this.buffer.readUInt8(this.offset)\n this.offset += 1\n return value\n}\n\n// EBML variable sized integers\nBufferReader.prototype.nextUIntV = function () {\n var v = vint(this.buffer, this.offset)\n this.offset += v.length\n return v.value\n}\n\nBufferReader.prototype.nextIntV = function () {\n var v = vint(this.buffer, this.offset, true)\n this.offset += v.length\n return v.value\n}\n\n// buffer slice\nBufferReader.prototype.nextBuffer = function (length) {\n var buffer = length\n ? this.buffer.slice(this.offset, this.offset + length)\n : this.buffer.slice(this.offset)\n this.offset += length || this.length\n return buffer\n}\n\n// remaining bytes to read\nObject.defineProperty(BufferReader.prototype, 'length', {\n get: function () { return this.buffer.length - this.offset }\n})\n\nmodule.exports = BufferReader\n","/*\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nvar btoa = btoa || function(buf) {\n return Buffer.from(buf).toString('base64');\n};\n\nfunction JPEGEncoder(quality) {\n var self = this;\n\tvar fround = Math.round;\n\tvar ffloor = Math.floor;\n\tvar YTable = new Array(64);\n\tvar UVTable = new Array(64);\n\tvar fdtbl_Y = new Array(64);\n\tvar fdtbl_UV = new Array(64);\n\tvar YDC_HT;\n\tvar UVDC_HT;\n\tvar YAC_HT;\n\tvar UVAC_HT;\n\t\n\tvar bitcode = new Array(65535);\n\tvar category = new Array(65535);\n\tvar outputfDCTQuant = new Array(64);\n\tvar DU = new Array(64);\n\tvar byteout = [];\n\tvar bytenew = 0;\n\tvar bytepos = 7;\n\t\n\tvar YDU = new Array(64);\n\tvar UDU = new Array(64);\n\tvar VDU = new Array(64);\n\tvar clt = new Array(256);\n\tvar RGB_YUV_TABLE = new Array(2048);\n\tvar currentQuality;\n\t\n\tvar ZigZag = [\n\t\t\t 0, 1, 5, 6,14,15,27,28,\n\t\t\t 2, 4, 7,13,16,26,29,42,\n\t\t\t 3, 8,12,17,25,30,41,43,\n\t\t\t 9,11,18,24,31,40,44,53,\n\t\t\t10,19,23,32,39,45,52,54,\n\t\t\t20,22,33,38,46,51,55,60,\n\t\t\t21,34,37,47,50,56,59,61,\n\t\t\t35,36,48,49,57,58,62,63\n\t\t];\n\t\n\tvar std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];\n\tvar std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];\n\tvar std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];\n\tvar std_ac_luminance_values = [\n\t\t\t0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,\n\t\t\t0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,\n\t\t\t0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,\n\t\t\t0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,\n\t\t\t0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,\n\t\t\t0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,\n\t\t\t0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,\n\t\t\t0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,\n\t\t\t0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,\n\t\t\t0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,\n\t\t\t0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,\n\t\t\t0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,\n\t\t\t0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,\n\t\t\t0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,\n\t\t\t0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,\n\t\t\t0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,\n\t\t\t0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,\n\t\t\t0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,\n\t\t\t0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,\n\t\t\t0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,\n\t\t\t0xf9,0xfa\n\t\t];\n\t\n\tvar std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];\n\tvar std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];\n\tvar std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];\n\tvar std_ac_chrominance_values = [\n\t\t\t0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,\n\t\t\t0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,\n\t\t\t0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,\n\t\t\t0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,\n\t\t\t0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,\n\t\t\t0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,\n\t\t\t0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,\n\t\t\t0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,\n\t\t\t0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,\n\t\t\t0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,\n\t\t\t0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,\n\t\t\t0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,\n\t\t\t0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,\n\t\t\t0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,\n\t\t\t0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,\n\t\t\t0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,\n\t\t\t0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,\n\t\t\t0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,\n\t\t\t0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,\n\t\t\t0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,\n\t\t\t0xf9,0xfa\n\t\t];\n\t\n\tfunction initQuantTables(sf){\n\t\t\tvar YQT = [\n\t\t\t\t16, 11, 10, 16, 24, 40, 51, 61,\n\t\t\t\t12, 12, 14, 19, 26, 58, 60, 55,\n\t\t\t\t14, 13, 16, 24, 40, 57, 69, 56,\n\t\t\t\t14, 17, 22, 29, 51, 87, 80, 62,\n\t\t\t\t18, 22, 37, 56, 68,109,103, 77,\n\t\t\t\t24, 35, 55, 64, 81,104,113, 92,\n\t\t\t\t49, 64, 78, 87,103,121,120,101,\n\t\t\t\t72, 92, 95, 98,112,100,103, 99\n\t\t\t];\n\t\t\t\n\t\t\tfor (var i = 0; i < 64; i++) {\n\t\t\t\tvar t = ffloor((YQT[i]*sf+50)/100);\n\t\t\t\tif (t < 1) {\n\t\t\t\t\tt = 1;\n\t\t\t\t} else if (t > 255) {\n\t\t\t\t\tt = 255;\n\t\t\t\t}\n\t\t\t\tYTable[ZigZag[i]] = t;\n\t\t\t}\n\t\t\tvar UVQT = [\n\t\t\t\t17, 18, 24, 47, 99, 99, 99, 99,\n\t\t\t\t18, 21, 26, 66, 99, 99, 99, 99,\n\t\t\t\t24, 26, 56, 99, 99, 99, 99, 99,\n\t\t\t\t47, 66, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99\n\t\t\t];\n\t\t\tfor (var j = 0; j < 64; j++) {\n\t\t\t\tvar u = ffloor((UVQT[j]*sf+50)/100);\n\t\t\t\tif (u < 1) {\n\t\t\t\t\tu = 1;\n\t\t\t\t} else if (u > 255) {\n\t\t\t\t\tu = 255;\n\t\t\t\t}\n\t\t\t\tUVTable[ZigZag[j]] = u;\n\t\t\t}\n\t\t\tvar aasf = [\n\t\t\t\t1.0, 1.387039845, 1.306562965, 1.175875602,\n\t\t\t\t1.0, 0.785694958, 0.541196100, 0.275899379\n\t\t\t];\n\t\t\tvar k = 0;\n\t\t\tfor (var row = 0; row < 8; row++)\n\t\t\t{\n\t\t\t\tfor (var col = 0; col < 8; col++)\n\t\t\t\t{\n\t\t\t\t\tfdtbl_Y[k] = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));\n\t\t\t\t\tfdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));\n\t\t\t\t\tk++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction computeHuffmanTbl(nrcodes, std_table){\n\t\t\tvar codevalue = 0;\n\t\t\tvar pos_in_table = 0;\n\t\t\tvar HT = new Array();\n\t\t\tfor (var k = 1; k <= 16; k++) {\n\t\t\t\tfor (var j = 1; j <= nrcodes[k]; j++) {\n\t\t\t\t\tHT[std_table[pos_in_table]] = [];\n\t\t\t\t\tHT[std_table[pos_in_table]][0] = codevalue;\n\t\t\t\t\tHT[std_table[pos_in_table]][1] = k;\n\t\t\t\t\tpos_in_table++;\n\t\t\t\t\tcodevalue++;\n\t\t\t\t}\n\t\t\t\tcodevalue*=2;\n\t\t\t}\n\t\t\treturn HT;\n\t\t}\n\t\t\n\t\tfunction initHuffmanTbl()\n\t\t{\n\t\t\tYDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);\n\t\t\tUVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);\n\t\t\tYAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);\n\t\t\tUVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);\n\t\t}\n\t\n\t\tfunction initCategoryNumber()\n\t\t{\n\t\t\tvar nrlower = 1;\n\t\t\tvar nrupper = 2;\n\t\t\tfor (var cat = 1; cat <= 15; cat++) {\n\t\t\t\t//Positive numbers\n\t\t\t\tfor (var nr = nrlower; nr<nrupper; nr++) {\n\t\t\t\t\tcategory[32767+nr] = cat;\n\t\t\t\t\tbitcode[32767+nr] = [];\n\t\t\t\t\tbitcode[32767+nr][1] = cat;\n\t\t\t\t\tbitcode[32767+nr][0] = nr;\n\t\t\t\t}\n\t\t\t\t//Negative numbers\n\t\t\t\tfor (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {\n\t\t\t\t\tcategory[32767+nrneg] = cat;\n\t\t\t\t\tbitcode[32767+nrneg] = [];\n\t\t\t\t\tbitcode[32767+nrneg][1] = cat;\n\t\t\t\t\tbitcode[32767+nrneg][0] = nrupper-1+nrneg;\n\t\t\t\t}\n\t\t\t\tnrlower <<= 1;\n\t\t\t\tnrupper <<= 1;\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction initRGBYUVTable() {\n\t\t\tfor(var i = 0; i < 256;i++) {\n\t\t\t\tRGB_YUV_TABLE[i] \t\t= 19595 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+ 256)>>0] \t= 38470 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+ 512)>>0] \t= 7471 * i + 0x8000;\n\t\t\t\tRGB_YUV_TABLE[(i+ 768)>>0] \t= -11059 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+1024)>>0] \t= -21709 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+1280)>>0] \t= 32768 * i + 0x807FFF;\n\t\t\t\tRGB_YUV_TABLE[(i+1536)>>0] \t= -27439 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+1792)>>0] \t= - 5329 * i;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// IO functions\n\t\tfunction writeBits(bs)\n\t\t{\n\t\t\tvar value = bs[0];\n\t\t\tvar posval = bs[1]-1;\n\t\t\twhile ( posval >= 0 ) {\n\t\t\t\tif (value & (1 << posval) ) {\n\t\t\t\t\tbytenew |= (1 << bytepos);\n\t\t\t\t}\n\t\t\t\tposval--;\n\t\t\t\tbytepos--;\n\t\t\t\tif (bytepos < 0) {\n\t\t\t\t\tif (bytenew == 0xFF) {\n\t\t\t\t\t\twriteByte(0xFF);\n\t\t\t\t\t\twriteByte(0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\twriteByte(bytenew);\n\t\t\t\t\t}\n\t\t\t\t\tbytepos=7;\n\t\t\t\t\tbytenew=0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\tfunction writeByte(value)\n\t\t{\n\t\t\t//byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n\t\t}\n\t\n\t\tfunction writeWord(value)\n\t\t{\n\t\t\twriteByte((value>>8)&0xFF);\n\t\t\twriteByte((value )&0xFF);\n\t\t}\n\t\t\n\t\t// DCT & quantization core\n\t\tfunction fDCTQuant(data, fdtbl)\n\t\t{\n\t\t\tvar d0, d1, d2, d3, d4, d5, d6, d7;\n\t\t\t/* Pass 1: process rows. */\n\t\t\tvar dataOff=0;\n\t\t\tvar i;\n\t\t\tvar I8 = 8;\n\t\t\tvar I64 = 64;\n\t\t\tfor (i=0; i<I8; ++i)\n\t\t\t{\n\t\t\t\td0 = data[dataOff];\n\t\t\t\td1 = data[dataOff+1];\n\t\t\t\td2 = data[dataOff+2];\n\t\t\t\td3 = data[dataOff+3];\n\t\t\t\td4 = data[dataOff+4];\n\t\t\t\td5 = data[dataOff+5];\n\t\t\t\td6 = data[dataOff+6];\n\t\t\t\td7 = data[dataOff+7];\n\t\t\t\t\n\t\t\t\tvar tmp0 = d0 + d7;\n\t\t\t\tvar tmp7 = d0 - d7;\n\t\t\t\tvar tmp1 = d1 + d6;\n\t\t\t\tvar tmp6 = d1 - d6;\n\t\t\t\tvar tmp2 = d2 + d5;\n\t\t\t\tvar tmp5 = d2 - d5;\n\t\t\t\tvar tmp3 = d3 + d4;\n\t\t\t\tvar tmp4 = d3 - d4;\n\t\n\t\t\t\t/* Even part */\n\t\t\t\tvar tmp10 = tmp0 + tmp3;\t/* phase 2 */\n\t\t\t\tvar tmp13 = tmp0 - tmp3;\n\t\t\t\tvar tmp11 = tmp1 + tmp2;\n\t\t\t\tvar tmp12 = tmp1 - tmp2;\n\t\n\t\t\t\tdata[dataOff] = tmp10 + tmp11; /* phase 3 */\n\t\t\t\tdata[dataOff+4] = tmp10 - tmp11;\n\t\n\t\t\t\tvar z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n\t\t\t\tdata[dataOff+2] = tmp13 + z1; /* phase 5 */\n\t\t\t\tdata[dataOff+6] = tmp13 - z1;\n\t\n\t\t\t\t/* Odd part */\n\t\t\t\ttmp10 = tmp4 + tmp5; /* phase 2 */\n\t\t\t\ttmp11 = tmp5 + tmp6;\n\t\t\t\ttmp12 = tmp6 + tmp7;\n\t\n\t\t\t\t/* The rotator is modified from fig 4-8 to avoid extra negations. */\n\t\t\t\tvar z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n\t\t\t\tvar z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */\n\t\t\t\tvar z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n\t\t\t\tvar z3 = tmp11 * 0.707106781; /* c4 */\n\t\n\t\t\t\tvar z11 = tmp7 + z3;\t/* phase 5 */\n\t\t\t\tvar z13 = tmp7 - z3;\n\t\n\t\t\t\tdata[dataOff+5] = z13 + z2;\t/* phase 6 */\n\t\t\t\tdata[dataOff+3] = z13 - z2;\n\t\t\t\tdata[dataOff+1] = z11 + z4;\n\t\t\t\tdata[dataOff+7] = z11 - z4;\n\t\n\t\t\t\tdataOff += 8; /* advance pointer to next row */\n\t\t\t}\n\t\n\t\t\t/* Pass 2: process columns. */\n\t\t\tdataOff = 0;\n\t\t\tfor (i=0; i<I8; ++i)\n\t\t\t{\n\t\t\t\td0 = data[dataOff];\n\t\t\t\td1 = data[dataOff + 8];\n\t\t\t\td2 = data[dataOff + 16];\n\t\t\t\td3 = data[dataOff + 24];\n\t\t\t\td4 = data[dataOff + 32];\n\t\t\t\td5 = data[dataOff + 40];\n\t\t\t\td6 = data[dataOff + 48];\n\t\t\t\td7 = data[dataOff + 56];\n\t\t\t\t\n\t\t\t\tvar tmp0p2 = d0 + d7;\n\t\t\t\tvar tmp7p2 = d0 - d7;\n\t\t\t\tvar tmp1p2 = d1 + d6;\n\t\t\t\tvar tmp6p2 = d1 - d6;\n\t\t\t\tvar tmp2p2 = d2 + d5;\n\t\t\t\tvar tmp5p2 = d2 - d5;\n\t\t\t\tvar tmp3p2 = d3 + d4;\n\t\t\t\tvar tmp4p2 = d3 - d4;\n\t\n\t\t\t\t/* Even part */\n\t\t\t\tvar tmp10p2 = tmp0p2 + tmp3p2;\t/* phase 2 */\n\t\t\t\tvar tmp13p2 = tmp0p2 - tmp3p2;\n\t\t\t\tvar tmp11p2 = tmp1p2 + tmp2p2;\n\t\t\t\tvar tmp12p2 = tmp1p2 - tmp2p2;\n\t\n\t\t\t\tdata[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n\t\t\t\tdata[dataOff+32] = tmp10p2 - tmp11p2;\n\t\n\t\t\t\tvar z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n\t\t\t\tdata[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */\n\t\t\t\tdata[dataOff+48] = tmp13p2 - z1p2;\n\t\n\t\t\t\t/* Odd part */\n\t\t\t\ttmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n\t\t\t\ttmp11p2 = tmp5p2 + tmp6p2;\n\t\t\t\ttmp12p2 = tmp6p2 + tmp7p2;\n\t\n\t\t\t\t/* The rotator is modified from fig 4-8 to avoid extra negations. */\n\t\t\t\tvar z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n\t\t\t\tvar z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */\n\t\t\t\tvar z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n\t\t\t\tvar z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\t\n\t\t\t\tvar z11p2 = tmp7p2 + z3p2;\t/* phase 5 */\n\t\t\t\tvar z13p2 = tmp7p2 - z3p2;\n\t\n\t\t\t\tdata[dataOff+40] = z13p2 + z2p2; /* phase 6 */\n\t\t\t\tdata[dataOff+24] = z13p2 - z2p2;\n\t\t\t\tdata[dataOff+ 8] = z11p2 + z4p2;\n\t\t\t\tdata[dataOff+56] = z11p2 - z4p2;\n\t\n\t\t\t\tdataOff++; /* advance pointer to next column */\n\t\t\t}\n\t\n\t\t\t// Quantize/descale the coefficients\n\t\t\tvar fDCTQuant;\n\t\t\tfor (i=0; i<I64; ++i)\n\t\t\t{\n\t\t\t\t// Apply the quantization and scaling factor & Round to nearest integer\n\t\t\t\tfDCTQuant = data[i]*fdtbl[i];\n\t\t\t\toutputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);\n\t\t\t\t//outputfDCTQuant[i] = fround(fDCTQuant);\n\n\t\t\t}\n\t\t\treturn outputfDCTQuant;\n\t\t}\n\t\t\n\t\tfunction writeAPP0()\n\t\t{\n\t\t\twriteWord(0xFFE0); // marker\n\t\t\twriteWord(16); // length\n\t\t\twriteByte(0x4A); // J\n\t\t\twriteByte(0x46); // F\n\t\t\twriteByte(0x49); // I\n\t\t\twriteByte(0x46); // F\n\t\t\twriteByte(0); // = \"JFIF\",'\\0'\n\t\t\twriteByte(1); // versionhi\n\t\t\twriteByte(1); // versionlo\n\t\t\twriteByte(0); // xyunits\n\t\t\twriteWord(1); // xdensity\n\t\t\twriteWord(1); // ydensity\n\t\t\twriteByte(0); // thumbnwidth\n\t\t\twriteByte(0); // thumbnheight\n\t\t}\n\n\t\tfunction writeAPP1(exifBuffer) {\n\t\t\tif (!exifBuffer) return;\n\n\t\t\twriteWord(0xFFE1); // APP1 marker\n\n\t\t\tif (exifBuffer[0] === 0x45 &&\n\t\t\t\t\texifBuffer[1] === 0x78 &&\n\t\t\t\t\texifBuffer[2] === 0x69 &&\n\t\t\t\t\texifBuffer[3] === 0x66) {\n\t\t\t\t// Buffer already starts with EXIF, just use it directly\n\t\t\t\twriteWord(exifBuffer.length + 2); // length is buffer + length itself!\n\t\t\t} else {\n\t\t\t\t// Buffer doesn't start with EXIF, write it for them\n\t\t\t\twriteWord(exifBuffer.length + 5 + 2); // length is buffer + EXIF\\0 + length itself!\n\t\t\t\twriteByte(0x45); // E\n\t\t\t\twriteByte(0x78); // X\n\t\t\t\twriteByte(0x69); // I\n\t\t\t\twriteByte(0x66); // F\n\t\t\t\twriteByte(0); // = \"EXIF\",'\\0'\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < exifBuffer.length; i++) {\n\t\t\t\twriteByte(exifBuffer[i]);\n\t\t\t}\n\t\t}\n\n\t\tfunction writeSOF0(width, height)\n\t\t{\n\t\t\twriteWord(0xFFC0); // marker\n\t\t\twriteWord(17); // length, truecolor YUV JPG\n\t\t\twriteByte(8); // precision\n\t\t\twriteWord(height);\n\t\t\twriteWord(width);\n\t\t\twriteByte(3); // nrofcomponents\n\t\t\twriteByte(1); // IdY\n\t\t\twriteByte(0x11); // HVY\n\t\t\twriteByte(0); // QTY\n\t\t\twriteByte(2); // IdU\n\t\t\twriteByte(0x11); // HVU\n\t\t\twriteByte(1); // QTU\n\t\t\twriteByte(3); // IdV\n\t\t\twriteByte(0x11); // HVV\n\t\t\twriteByte(1); // QTV\n\t\t}\n\t\n\t\tfunction writeDQT()\n\t\t{\n\t\t\twriteWord(0xFFDB); // marker\n\t\t\twriteWord(132);\t // length\n\t\t\twriteByte(0);\n\t\t\tfor (var i=0; i<64; i++) {\n\t\t\t\twriteByte(YTable[i]);\n\t\t\t}\n\t\t\twriteByte(1);\n\t\t\tfor (var j=0; j<64; j++) {\n\t\t\t\twriteByte(UVTable[j]);\n\t\t\t}\n\t\t}\n\t\n\t\tfunction writeDHT()\n\t\t{\n\t\t\twriteWord(0xFFC4); // marker\n\t\t\twriteWord(0x01A2); // length\n\t\n\t\t\twriteByte(0); // HTYDCinfo\n\t\t\tfor (var i=0; i<16; i++) {\n\t\t\t\twriteByte(std_dc_luminance_nrcodes[i+1]);\n\t\t\t}\n\t\t\tfor (var j=0; j<=11; j++) {\n\t\t\t\twriteByte(std_dc_luminance_values[j]);\n\t\t\t}\n\t\n\t\t\twriteByte(0x10); // HTYACinfo\n\t\t\tfor (var k=0; k<16; k++) {\n\t\t\t\twriteByte(std_ac_luminance_nrcodes[k+1]);\n\t\t\t}\n\t\t\tfor (var l=0; l<=161; l++) {\n\t\t\t\twriteByte(std_ac_luminance_values[l]);\n\t\t\t}\n\t\n\t\t\twriteByte(1); // HTUDCinfo\n\t\t\tfor (var m=0; m<16; m++) {\n\t\t\t\twriteByte(std_dc_chrominance_nrcodes[m+1]);\n\t\t\t}\n\t\t\tfor (var n=0; n<=11; n++) {\n\t\t\t\twriteByte(std_dc_chrominance_values[n]);\n\t\t\t}\n\t\n\t\t\twriteByte(0x11); // HTUACinfo\n\t\t\tfor (var o=0; o<16; o++) {\n\t\t\t\twriteByte(std_ac_chrominance_nrcodes[o+1]);\n\t\t\t}\n\t\t\tfor (var p=0; p<=161; p++) {\n\t\t\t\twriteByte(std_ac_chrominance_values[p]);\n\t\t\t}\n\t\t}\n\t\n\t\tfunction writeSOS()\n\t\t{\n\t\t\twriteWord(0xFFDA); // marker\n\t\t\twriteWord(12); // length\n\t\t\twriteByte(3); // nrofcomponents\n\t\t\twriteByte(1); // IdY\n\t\t\twriteByte(0); // HTY\n\t\t\twriteByte(2); // IdU\n\t\t\twriteByte(0x11); // HTU\n\t\t\twriteByte(3); // IdV\n\t\t\twriteByte(0x11); // HTV\n\t\t\twriteByte(0); // Ss\n\t\t\twriteByte(0x3f); // Se\n\t\t\twriteByte(0); // Bf\n\t\t}\n\t\t\n\t\tfunction processDU(CDU, fdtbl, DC, HTDC, HTAC){\n\t\t\tvar EOB = HTAC[0x00];\n\t\t\tvar M16zeroes = HTAC[0xF0];\n\t\t\tvar pos;\n\t\t\tvar I16 = 16;\n\t\t\tvar I63 = 63;\n\t\t\tvar I64 = 64;\n\t\t\tvar DU_DCT = fDCTQuant(CDU, fdtbl);\n\t\t\t//ZigZag reorder\n\t\t\tfor (var j=0;j<I64;++j) {\n\t\t\t\tDU[ZigZag[j]]=DU_DCT[j];\n\t\t\t}\n\t\t\tvar Diff = DU[0] - DC; DC = DU[0];\n\t\t\t//Encode DC\n\t\t\tif (Diff==0) {\n\t\t\t\twriteBits(HTDC[0]); // Diff might be 0\n\t\t\t} else {\n\t\t\t\tpos = 32767+Diff;\n\t\t\t\twriteBits(HTDC[category[pos]]);\n\t\t\t\twriteBits(bitcode[pos]);\n\t\t\t}\n\t\t\t//Encode ACs\n\t\t\tvar end0pos = 63; // was const... which is crazy\n\t\t\tfor (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};\n\t\t\t//end0pos = first element in reverse order !=0\n\t\t\tif ( end0pos == 0) {\n\t\t\t\twriteBits(EOB);\n\t\t\t\treturn DC;\n\t\t\t}\n\t\t\tvar i = 1;\n\t\t\tvar lng;\n\t\t\twhile ( i <= end0pos ) {\n\t\t\t\tvar startpos = i;\n\t\t\t\tfor (; (DU[i]==0) && (i<=end0pos); ++i) {}\n\t\t\t\tvar nrzeroes = i-startpos;\n\t\t\t\tif ( nrzeroes >= I16 ) {\n\t\t\t\t\tlng = nrzeroes>>4;\n\t\t\t\t\tfor (var nrmarker=1; nrmarker <= lng; ++nrmarker)\n\t\t\t\t\t\twriteBits(M16zeroes);\n\t\t\t\t\tnrzeroes = nrzeroes&0xF;\n\t\t\t\t}\n\t\t\t\tpos = 32767+DU[i];\n\t\t\t\twriteBits(HTAC[(nrzeroes<<4)+category[pos]]);\n\t\t\t\twriteBits(bitcode[pos]);\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif ( end0pos != I63 ) {\n\t\t\t\twriteBits(EOB);\n\t\t\t}\n\t\t\treturn DC;\n\t\t}\n\n\t\tfunction initCharLookupTable(){\n\t\t\tvar sfcc = String.fromCharCode;\n\t\t\tfor(var i=0; i < 256; i++){ ///// ACHTUNG // 255\n\t\t\t\tclt[i] = sfcc(i);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.encode = function(image,quality) // image data object\n\t\t{\n\t\t\tvar time_start = new Date().getTime();\n\t\t\t\n\t\t\tif(quality) setQuality(quality);\n\t\t\t\n\t\t\t// Initialize bit writer\n\t\t\tbyteout = new Array();\n\t\t\tbytenew=0;\n\t\t\tbytepos=7;\n\t\n\t\t\t// Add JPEG headers\n\t\t\twriteWord(0xFFD8); // SOI\n\t\t\twriteAPP0();\n\t\t\twriteAPP1(image.exifBuffer);\n\t\t\twriteDQT();\n\t\t\twriteSOF0(image.width,image.height);\n\t\t\twriteDHT();\n\t\t\twriteSOS();\n\n\t\n\t\t\t// Encode 8x8 macroblocks\n\t\t\tvar DCY=0;\n\t\t\tvar DCU=0;\n\t\t\tvar DCV=0;\n\t\t\t\n\t\t\tbytenew=0;\n\t\t\tbytepos=7;\n\t\t\t\n\t\t\t\n\t\t\tthis.encode.displayName = \"_encode_\";\n\n\t\t\tvar imageData = image.data;\n\t\t\tvar width = image.width;\n\t\t\tvar height = image.height;\n\n\t\t\tvar quadWidth = width*4;\n\t\t\tvar tripleWidth = width*3;\n\t\t\t\n\t\t\tvar x, y = 0;\n\t\t\tvar r, g, b;\n\t\t\tvar start,p, col,row,pos;\n\t\t\twhile(y < height){\n\t\t\t\tx = 0;\n\t\t\t\twhile(x < quadWidth){\n\t\t\t\tstart = quadWidth * y + x;\n\t\t\t\tp = start;\n\t\t\t\tcol = -1;\n\t\t\t\trow = 0;\n\t\t\t\t\n\t\t\t\tfor(pos=0; pos < 64; pos++){\n\t\t\t\t\trow = pos >> 3;// /8\n\t\t\t\t\tcol = ( pos & 7 ) * 4; // %8\n\t\t\t\t\tp = start + ( row * quadWidth ) + col;\t\t\n\t\t\t\t\t\n\t\t\t\t\tif(y+row >= height){ // padding bottom\n\t\t\t\t\t\tp-= (quadWidth*(y+1+row-height));\n\t\t\t\t\t}\n\n\t\t\t\t\tif(x+col >= quadWidth){ // padding right\t\n\t\t\t\t\t\tp-= ((x+col) - quadWidth +4)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tr = imageData[ p++ ];\n\t\t\t\t\tg = imageData[ p++ ];\n\t\t\t\t\tb = imageData[ p++ ];\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t/* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\t\t\t\t\t\n\t\t\t\t\t// use lookup table (slightly faster)\n\t\t\t\t\tYDU[pos] = ((RGB_YUV_TABLE[r] + RGB_YUV_TABLE[(g + 256)>>0] + RGB_YUV_TABLE[(b + 512)>>0]) >> 16)-128;\n\t\t\t\t\tUDU[pos] = ((RGB_YUV_TABLE[(r + 768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;\n\t\t\t\t\tVDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tDCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n\t\t\t\tDCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n\t\t\t\tDCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n\t\t\t\tx+=32;\n\t\t\t\t}\n\t\t\t\ty+=8;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t////////////////////////////////////////////////////////////////\n\t\n\t\t\t// Do the bit alignment of the EOI marker\n\t\t\tif ( bytepos >= 0 ) {\n\t\t\t\tvar fillbits = [];\n\t\t\t\tfillbits[1] = bytepos+1;\n\t\t\t\tfillbits[0] = (1<<(bytepos+1))-1;\n\t\t\t\twriteBits(fillbits);\n\t\t\t}\n\t\n\t\t\twriteWord(0xFFD9); //EOI\n\n\t\t\tif (typeof module === 'undefined') return new Uint8Array(byteout);\n return Buffer.from(byteout);\n\n\t\t\tvar jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));\n\t\t\t\n\t\t\tbyteout = [];\n\t\t\t\n\t\t\t// benchmarking\n\t\t\tvar duration = new Date().getTime() - time_start;\n \t\t//console.log('Encoding time: '+ duration + 'ms');\n \t\t//\n\t\t\t\n\t\t\treturn jpegDataUri\t\t\t\n\t}\n\t\n\tfunction setQuality(quality){\n\t\tif (quality <= 0) {\n\t\t\tquality = 1;\n\t\t}\n\t\tif (quality > 100) {\n\t\t\tquality = 100;\n\t\t}\n\t\t\n\t\tif(currentQuality == quality) return // don't recalc if unchanged\n\t\t\n\t\tvar sf = 0;\n\t\tif (quality < 50) {\n\t\t\tsf = Math.floor(5000 / quality);\n\t\t} else {\n\t\t\tsf = Math.floor(200 - quality*2);\n\t\t}\n\t\t\n\t\tinitQuantTables(sf);\n\t\tcurrentQuality = quality;\n\t\t//console.log('Quality set to: '+quality +'%');\n\t}\n\t\n\tfunction init(){\n\t\tvar time_start = new Date().getTime();\n\t\tif(!quality) quality = 50;\n\t\t// Create tables\n\t\tinitCharLookupTable()\n\t\tinitHuffmanTbl();\n\t\tinitCategoryNumber();\n\t\tinitRGBYUVTable();\n\t\t\n\t\tsetQuality(quality);\n\t\tvar duration = new Date().getTime() - time_start;\n \t//console.log('Initialization '+ duration + 'ms');\n\t}\n\t\n\tinit();\n\t\n};\n\nif (typeof module !== 'undefined') {\n\tmodule.exports = encode;\n} else if (typeof window !== 'undefined') {\n\twindow['jpeg-js'] = window['jpeg-js'] || {};\n\twindow['jpeg-js'].encode = encode;\n}\n\nfunction encode(imgData, qu) {\n if (typeof qu === 'undefined') qu = 50;\n var encoder = new JPEGEncoder(qu);\n\tvar data = encoder.encode(imgData, qu);\n return {\n data: data,\n width: imgData.width,\n height: imgData.height\n };\n}\n\n// helper function to get the imageData of an existing image on the current page.\nfunction getImageDataFromImage(idOrElement){\n\tvar theImg = (typeof(idOrElement)=='string')? document.getElementById(idOrElement):idOrElement;\n\tvar cvs = document.createElement('canvas');\n\tcvs.width = theImg.width;\n\tcvs.height = theImg.height;\n\tvar ctx = cvs.getContext(\"2d\");\n\tctx.drawImage(theImg,0,0);\n\t\n\treturn (ctx.getImageData(0, 0, cvs.width, cvs.height));\n}\n","/* -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/*\n Copyright 2011 notmasteryet\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nvar JpegImage = (function jpegImage() {\n \"use strict\";\n var dctZigZag = new Int32Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n ]);\n\n var dctCos1 = 4017 // cos(pi/16)\n var dctSin1 = 799 // sin(pi/16)\n var dctCos3 = 3406 // cos(3*pi/16)\n var dctSin3 = 2276 // sin(3*pi/16)\n var dctCos6 = 1567 // cos(6*pi/16)\n var dctSin6 = 3784 // sin(6*pi/16)\n var dctSqrt2 = 5793 // sqrt(2)\n var dctSqrt1d2 = 2896 // sqrt(2) / 2\n\n function constructor() {\n }\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({children: [], index: 0});\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error('Could not recreate Huffman Table');\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = {children: [], index: 0});\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push(q = {children: [], index: 0});\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n\n function decodeScan(data, offset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 0xFF) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error(\"unexpected marker: \" + ((bitsData << 8) | nextByte).toString(16));\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === 'number')\n return node;\n if (typeof node !== 'object')\n throw new Error(\"invalid huffman sequence\");\n }\n return null;\n }\n function receive(length) {\n var n = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null) return;\n n = (n << 1) | bit;\n length--;\n }\n return n;\n }\n function receiveAndExtend(length) {\n var n = receive(length);\n if (n >= 1 << (length - 1))\n return n;\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, zz) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0]= (component.pred += diff);\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n zz[z] = receiveAndExtend(s);\n k++;\n }\n }\n function decodeDCFirst(component, zz) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n zz[0] = (component.pred += diff);\n }\n function decodeDCSuccessive(component, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart, e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component, zz) {\n var k = spectralStart, e = spectralEnd, r = 0;\n while (k <= e) {\n var z = dctZigZag[k];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error(\"invalid ACn encoding\");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3: // set value for a zero item\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = (mcu / mcusPerLine) | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n // If the block is missing and we're in tolerant mode, just skip it.\n if (component.blocks[blockRow] === undefined && opts.tolerantDecoding)\n return;\n decode(component, component.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component, decode, mcu) {\n var blockRow = (mcu / component.blocksPerLine) | 0;\n var blockCol = mcu % component.blocksPerLine;\n // If the block is missing and we're in tolerant mode, just skip it.\n if (component.blocks[blockRow] === undefined && opts.tolerantDecoding)\n return;\n decode(component, component.blocks[blockRow][blockCol]);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval) resetInterval = mcuExpected;\n\n var h, v;\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n\n // If we've reached our expected MCU's, stop decoding\n if (mcu === mcuExpected) break;\n }\n }\n\n if (mcu === mcuExpected) {\n // Skip trailing bytes at the end of the scan - until we reach the next marker\n do {\n if (data[offset] === 0xFF) {\n if (data[offset + 1] !== 0x00) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker < 0xFF00) {\n throw new Error(\"marker was not found\");\n }\n\n if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n offset += 2;\n }\n else\n break;\n }\n\n return offset - startOffset;\n }\n\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n // Only 1 used per invocation of this function and garbage collected after invocation, so no need to account for its memory footprint.\n var R = new Int32Array(64), r = new Uint8Array(64);\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i;\n\n // dequant\n for (i = 0; i < 64; i++)\n p[i] = zz[i] * qt[i];\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n var row = 8 * i;\n\n // check for all-zero AC coefficients\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 &&\n p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 &&\n p[7 + row] == 0) {\n t = (dctSqrt2 * p[0 + row] + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;\n v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1+ 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n var col = i;\n\n // check for all-zero AC coefficients\n if (p[1*8 + col] == 0 && p[2*8 + col] == 0 && p[3*8 + col] == 0 &&\n p[4*8 + col] == 0 && p[5*8 + col] == 0 && p[6*8 + col] == 0 &&\n p[7*8 + col] == 0) {\n t = (dctSqrt2 * dataIn[i+0] + 8192) >> 14;\n p[0*8 + col] = t;\n p[1*8 + col] = t;\n p[2*8 + col] = t;\n p[3*8 + col] = t;\n p[4*8 + col] = t;\n p[5*8 + col] = t;\n p[6*8 + col] = t;\n p[7*8 + col] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0*8 + col] + 2048) >> 12;\n v1 = (dctSqrt2 * p[4*8 + col] + 2048) >> 12;\n v2 = p[2*8 + col];\n v3 = p[6*8 + col];\n v4 = (dctSqrt1d2 * (p[1*8 + col] - p[7*8 + col]) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p[1*8 + col] + p[7*8 + col]) + 2048) >> 12;\n v5 = p[3*8 + col];\n v6 = p[5*8 + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0*8 + col] = v0 + v7;\n p[7*8 + col] = v0 - v7;\n p[1*8 + col] = v1 + v6;\n p[6*8 + col] = v1 - v6;\n p[2*8 + col] = v2 + v5;\n p[5*8 + col] = v2 - v5;\n p[3*8 + col] = v3 + v4;\n p[4*8 + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n var sample = 128 + ((p[i] + 8) >> 4);\n dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample;\n }\n }\n\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", path, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = (function() {\n // TODO catch parse error\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }).bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1000 * 1000;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length = readUint16();\n var array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n var maxH = 0, maxV = 0;\n var component, componentId;\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n if (maxH < component.h) maxH = component.h;\n if (maxV < component.v) maxV = component.v;\n }\n }\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n\n // Each block is a Int32Array of length 64 (4 x 64 = 256 bytes)\n requestMemoryAllocation(blocksToAllocate * 256);\n\n for (var i = 0; i < blocksPerColumnForMcu; i++) {\n var row = [];\n for (var j = 0; j < blocksPerLineForMcu; j++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n component.blocks = blocks;\n }\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 0xFFD8) { // SOI (Start of Image)\n throw new Error(\"SOI not found\");\n }\n\n fileMarker = readUint16();\n while (fileMarker != 0xFFD9) { // EOI (End of image)\n var i, j, l;\n switch(fileMarker) {\n case 0xFF00: break;\n case 0xFFE0: // APP0 (Application Specific)\n case 0xFFE1: // APP1\n case 0xFFE2: // APP2\n case 0xFFE3: // APP3\n case 0xFFE4: // APP4\n case 0xFFE5: // APP5\n case 0xFFE6: // APP6\n case 0xFFE7: // APP7\n case 0xFFE8: // APP8\n case 0xFFE9: // APP9\n case 0xFFEA: // APP10\n case 0xFFEB: // APP11\n case 0xFFEC: // APP12\n case 0xFFED: // APP13\n case 0xFFEE: // APP14\n case 0xFFEF: // APP15\n case 0xFFFE: // COM (Comment)\n var appData = readDataBlock();\n\n if (fileMarker === 0xFFFE) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 &&\n appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xFFE1) {\n if (appData[0] === 0x45 &&\n appData[1] === 0x78 &&\n appData[2] === 0x69 &&\n appData[3] === 0x66 &&\n appData[4] === 0) { // 'EXIF\\x00'\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F &&\n appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\n adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n\n case 0xFFDB: // DQT (Define Quantization Tables)\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if ((quantizationTableSpec >> 4) === 1) { //16 bit\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error(\"DQT: invalid table spec\");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\n case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)\n readUint16(); // skip data length\n frame = {};\n frame.extended = (fileMarker === 0xFFC1);\n frame.progressive = (fileMarker === 0xFFC2);\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h: h,\n v: v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n\n case 0xFFC4: // DHT (Define Huffman Tables)\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += (codeLengths[j] = data[offset]);\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n\n ((huffmanTableSpec >> 4) === 0 ?\n huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =\n buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xFFDD: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n resetInterval = readUint16();\n break;\n\n case 0xFFDC: // Number of Lines marker\n readUint16() // skip data length\n readUint16() // Ignore this data since it represents the image height\n break;\n \n case 0xFFDA: // SOS (Start of Scan)\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n\n case 0xFFFF: // Fill bytes\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 0xFF &&\n data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n else if (fileMarker === 0xE0 || fileMarker == 0xE1) {\n // Recover from malformed APP1 markers popular in some phone models.\n // See https://github.com/eugeneware/jpeg-js/issues/82\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 0xFF) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error(\"unknown JPEG marker \" + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error(\"only single frame JPEGs supported\");\n\n // set each frame's components quantization table\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n // PDF might compress two component data in custom colorspace\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n data[offset++] = Y;\n Y = component2Line[0 | (x * component2.scaleX * scaleX)];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n // The default transform for three components is true\n colorTransform = true;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== 'undefined')\n colorTransform = !!this.opts.colorTransform;\n\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | (x * component1.scaleX * scaleX)];\n G = component2Line[0 | (x * component2.scaleX * scaleX)];\n B = component3Line[0 | (x * component3.scaleX * scaleX)];\n } else {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n Cb = component2Line[0 | (x * component2.scaleX * scaleX)];\n Cr = component3Line[0 | (x * component3.scaleX * scaleX)];\n\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error('Unsupported color mode (4 components)');\n // The default transform for four components is false\n colorTransform = false;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== 'undefined')\n colorTransform = !!this.opts.colorTransform;\n\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];\n component4Line = component4.lines[0 | (y * component4.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | (x * component1.scaleX * scaleX)];\n M = component2Line[0 | (x * component2.scaleX * scaleX)];\n Ye = component3Line[0 | (x * component3.scaleX * scaleX)];\n K = component4Line[0 | (x * component4.scaleX * scaleX)];\n } else {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n Cb = component2Line[0 | (x * component2.scaleX * scaleX)];\n Cr = component3Line[0 | (x * component3.scaleX * scaleX)];\n K = component4Line[0 | (x * component4.scaleX * scaleX)];\n\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255-C;\n data[offset++] = 255-M;\n data[offset++] = 255-Ye;\n data[offset++] = 255-K;\n }\n }\n break;\n default:\n throw new Error('Unsupported color mode');\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error('Unsupported color mode');\n }\n }\n };\n\n\n // We cap the amount of memory used by jpeg-js to avoid unexpected OOMs from untrusted content.\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n\n constructor.resetMaxMemoryUsage = function (maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n\n constructor.getBytesAllocated = function () {\n return totalBytesAllocated;\n };\n\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n\n return constructor;\n})();\n\nif (typeof module !== 'undefined') {\n\tmodule.exports = decode;\n} else if (typeof window !== 'undefined') {\n\twindow['jpeg-js'] = window['jpeg-js'] || {};\n\twindow['jpeg-js'].decode = decode;\n}\n\nfunction decode(jpegData, userOpts = {}) {\n var defaultOpts = {\n // \"undefined\" means \"Choose whether to transform colors based on the image’s color model.\"\n colorTransform: undefined,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100, // Don't decode more than 100 megapixels\n maxMemoryUsageInMB: 512, // Don't decode if memory footprint is more than 512MB\n };\n\n var opts = {...defaultOpts, ...userOpts};\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n // If this constructor ever supports async decoding this will need to be done differently.\n // Until then, treating as singleton limit is fine.\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n\n var channels = (opts.formatAsRGBA) ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ?\n new Uint8Array(bytesNeeded) :\n Buffer.alloc(bytesNeeded)\n };\n if(decoder.comments.length > 0) {\n image[\"comments\"] = decoder.comments;\n }\n } catch (err){\n if (err instanceof RangeError){\n throw new Error(\"Could not allocate enough memory for the image. \" +\n \"Required: \" + bytesNeeded);\n } else {\n throw err;\n }\n }\n\n decoder.copyToImageData(image, opts.formatAsRGBA);\n\n return image;\n}\n","var encode = require('./lib/encoder'),\n decode = require('./lib/decoder');\n\nmodule.exports = {\n encode: encode,\n decode: decode\n};\n","<script lang=\"ts\">\n import { createEventDispatcher } from 'svelte'\n\n export let pos = [0, 0]\n let visible = false\n\n export function toggle() {\n visible = !visible\n }\n\n export function setPos(p: [number, number]) {\n //pos = p;\n }\n</script>\n\n{#if visible}\n <div style=\"top: {pos[1]}px; left: {pos[0]}px\" class=\"dialog\">\n <slot />\n </div>\n{/if}\n\n<style scoped>\n .dialog {\n position: relative;\n }\n</style>\n","<script lang=\"ts\">\n import { createEventDispatcher } from \"svelte\";\n\n export let tag: string;\n export let toggleable = false;\n\n export let toggled = false;\n\n const dispatch = createEventDispatcher();\n</script>\n\n<span\n class:toggle={toggleable}\n class:toggled={toggleable && toggled}\n on:click={() => dispatch(\"toggle\")}\n class=\"tag\"\n>\n {tag}\n {#if toggleable}\n <span on:click={(e) => (e.preventDefault(), dispatch(\"remove\"))}>x</span>\n {/if}\n</span>\n\n<style scoped>\n .tag {\n padding: 5px;\n border: 1px solid;\n border-radius: 55px;\n cursor: pointer;\n display: inline-flex;\n }\n\n .tag.toggled {\n background-color: rgb(213, 255, 212);\n }\n\n span.tag > span {\n margin-left: 5px;\n border-left: 1px solid;\n padding-left: 5px;\n }\n\n .tag.toggled:hover {\n color: white;\n background-color: rgb(255 156 156 / 80%);\n color: white;\n }\n\n .tag:not(.toggled):hover {\n color: white;\n background-color: rgb(213, 255, 212);\n color: white;\n }\n</style>\n","<script context=\"module\">\n export const TABS = {}\n</script>\n\n<script lang=\"ts\">\n import { setContext, onDestroy } from 'svelte'\n import { writable } from 'svelte/store'\n import type Tab from './Tab.svelte'\n import type TabPanel from './TabPanel.svelte'\n\n const tabs: Tab[] = []\n const panels: TabPanel[] = []\n const selectedTab = writable<Tab | null>(null)\n const selectedPanel = writable<TabPanel | null>(null)\n\n setContext(TABS, {\n registerTab: (tab: Tab) => {\n tabs.push(tab)\n selectedTab.update((current) => current || tab)\n\n onDestroy(() => {\n const i = tabs.indexOf(tab)\n tabs.splice(i, 1)\n selectedTab.update((current) =>\n current === tab ? tabs[i] || tabs[tabs.length - 1] : current,\n )\n })\n },\n\n registerPanel: (panel: TabPanel) => {\n panels.push(panel)\n selectedPanel.update((current) => current || panel)\n\n onDestroy(() => {\n const i = panels.indexOf(panel)\n panels.splice(i, 1)\n selectedPanel.update((current) =>\n current === panel ? panels[i] || panels[panels.length - 1] : current,\n )\n })\n },\n\n selectTab: (tab: Tab) => {\n const i = tabs.indexOf(tab)\n selectedTab.set(tab)\n selectedPanel.set(panels[i])\n },\n\n selectedTab,\n selectedPanel,\n })\n</script>\n\n<div class=\"tabs\">\n <slot />\n</div>\n\n<style scoped>\n .tabs {\n display: flex;\n flex-direction: column;\n gap: 5px;\n }\n</style>\n","<div class=\"tab-list\">\n <slot />\n</div>\n\n<style>\n .tab-list {\n border-bottom: 1px solid;\n }\n</style>\n","<script lang=\"ts\">\n import { getContext } from 'svelte'\n import { TABS } from './Tabs.svelte'\n\n const tab = {}\n const { registerTab, selectTab, selectedTab } = getContext(TABS)\n\n registerTab(tab)\n</script>\n\n<button class:selected={$selectedTab === tab} on:click={() => selectTab(tab)}>\n <slot />\n</button>\n\n<style>\n button {\n background: none;\n border: none;\n border-bottom: 2px solid white;\n border-radius: 0;\n margin: 0;\n color: unset;\n }\n\n button:hover {\n cursor: pointer;\n background-color: #8d8d8d80;\n }\n\n .selected {\n border-bottom: 2px solid;\n color: #f6ff76;\n }\n</style>\n","<script lang=\"ts\">\n import { getContext } from 'svelte'\n import { TABS } from './Tabs.svelte'\n const panel = {}\n const { registerPanel, selectedPanel } = getContext(TABS)\n\n registerPanel(panel)\n</script>\n\n{#if $selectedPanel === panel}\n <slot />\n{/if}\n","<script lang=\"ts\">\n import { fileTypeFromBuffer, FileTypeResult } from \"file-type\";\n import { settings, appState } from \"../stores\";\n import { beforeUpdate, tick } from \"svelte\";\n import type { EmbeddedFile } from \"../main\";\n import { createEventDispatcher } from \"svelte\";\n import { Buffer } from \"buffer\";\n import { getHeaders, Platform } from \"../platform\";\n\n export const dispatch = createEventDispatcher();\n\n export let file: EmbeddedFile;\n\n let isVideo = false;\n let isImage = false;\n let isAudio = false;\n let isText = false;\n let url = \"\";\n let settled = false;\n let contracted = true;\n let hovering = false;\n let ftype = \"\";\n\n let place: HTMLDivElement;\n let hoverElem: HTMLDivElement;\n let imgElem: HTMLImageElement;\n let videoElem: HTMLVideoElement;\n let hoverVideo: HTMLVideoElement;\n let dims: [number, number] = [0, 0];\n let furl: string | undefined = undefined;\n\n let visible = false;\n export const isNotChrome = !navigator.userAgent.includes(\"Chrome/\");\n\n export let id = \"\";\n document.addEventListener(\"reveal\", (e: any) => {\n if (e.detail.id == id) visible = !visible;\n });\n\n export function isContracted() {\n return contracted;\n }\n\n let content: Blob;\n beforeUpdate(async () => {\n if (settled) return;\n settled = true;\n\n const thumb = file.thumbnail || file.data;\n let type: FileTypeResult | undefined;\n if (typeof thumb != \"string\") {\n let buff = Buffer.isBuffer(thumb) ? thumb : await thumb();\n type = await fileTypeFromBuffer(buff);\n if (\n !type &&\n file.filename.endsWith(\".txt\") &&\n file.filename.startsWith(\"message\")\n ) {\n type = { ext: \"txt\", mime: \"text/plain\" } as any;\n }\n content = new Blob([buff], { type: type && type.mime });\n url = URL.createObjectURL(content);\n if (!type) return;\n } else {\n let head = await getHeaders(thumb);\n url = thumb;\n type = {\n ext: \"\" as any,\n mime: head[\"content-type\"].split(\";\")[0].trim() as any,\n };\n }\n ftype = type.mime;\n isVideo = type.mime.startsWith(\"video/\");\n isAudio = type.mime.startsWith(\"audio/\");\n isImage = type.mime.startsWith(\"image/\");\n isText = type.mime.startsWith(\"text/plain\");\n dispatch(\"fileinfo\", { type });\n\n if (isImage) {\n contracted = !$settings.xpi;\n }\n if (isVideo) {\n contracted = !$settings.xpv && !$appState.isCatalog;\n }\n if ($appState.isCatalog) contracted = true;\n if ($settings.pre) {\n unzip(); // not awaiting on purpose\n }\n\n if ($settings.prev) {\n let obs = new IntersectionObserver(\n (entries, obs) => {\n for (const item of entries) {\n if (!item.isIntersecting) continue;\n unzip();\n obs.unobserve(place);\n }\n },\n { root: null, rootMargin: \"0px\", threshold: 0.01 }\n );\n obs.observe(place);\n }\n });\n\n let unzipping = false;\n let progress = [0, 0];\n async function unzip() {\n if (!file.thumbnail) return;\n if (unzipping) return;\n\n let type: FileTypeResult | undefined;\n if (typeof file.data != \"string\") {\n unzipping = true;\n let lisn = new EventTarget();\n lisn.addEventListener(\"progress\", (e: any) => {\n progress = e.detail;\n });\n let full = Buffer.isBuffer(file.data) ? file.data : await file.data(lisn);\n type = await fileTypeFromBuffer(full);\n if (\n !type &&\n file.filename.endsWith(\".txt\") &&\n file.filename.startsWith(\"message\")\n ) {\n type = { ext: \"txt\", mime: \"text/plain\" } as any;\n }\n content = new Blob([full], { type: type && type.mime });\n furl = URL.createObjectURL(content);\n } else {\n url = file.data;\n furl = file.data;\n let head = await getHeaders(file.data);\n type = {\n ext: \"\" as any,\n mime: head[\"content-type\"].split(\";\")[0].trim() as any,\n };\n }\n if (!type) return;\n ftype = type.mime;\n isVideo = type.mime.startsWith(\"video/\");\n isAudio = type.mime.startsWith(\"audio/\");\n isImage = type.mime.startsWith(\"image/\");\n isText = type.mime.startsWith(\"text/plain\");\n unzipping = false;\n\n dispatch(\"fileinfo\", { type });\n\n if (hovering) {\n // reset hovering to recompute proper image coordinates\n setTimeout(async () => {\n do {\n hoverUpdate();\n await new Promise((_) => setTimeout(_, 20));\n } while (dims[0] == 0 && dims[1] == 0);\n }, 20);\n }\n }\n\n function hasAudio(video: any) {\n return (\n video.mozHasAudio ||\n !!video.webkitAudioDecodedByteCount ||\n !!(video.audioTracks && video.audioTracks.length)\n );\n }\n\n export let inhibitExpand: boolean = false;\n\n export async function bepis(ev: MouseEvent) {\n dispatch(\"click\");\n if (inhibitExpand) return;\n if ($appState.isCatalog) return;\n\n if (ev.button == 0) {\n contracted = !contracted;\n if (hovering) hoverStop();\n if (contracted && isVideo) {\n videoElem.controls = false;\n videoElem.pause();\n }\n if (!contracted && isVideo) {\n videoElem.controls = true;\n // has to be delayed\n setTimeout(async () => {\n videoElem.currentTime = hoverVideo.currentTime || 0;\n await videoElem.play();\n }, 10);\n }\n if (file.thumbnail && !furl) {\n // don't know how you managed to click before hovering but oh well\n unzip();\n }\n ev.preventDefault();\n } else if (ev.button == 1) {\n // middle click\n let src = furl || url;\n if (ev.altKey && file.source) {\n src = file.source;\n }\n if (ev.shiftKey && file.page) {\n src = file.page.url;\n }\n ev.preventDefault();\n if (isNotChrome) {\n window.open(src, \"_blank\");\n } else await Platform.openInTab(src, { active: false, insert: true });\n }\n }\n\n const getViewport = () =>\n (typeof visualViewport != \"undefined\"\n ? () => [visualViewport.width, visualViewport.height]\n : () => [\n document.documentElement.clientWidth,\n document.documentElement.clientHeight,\n ])();\n\n function recompute() {\n const [sw, sh] = getViewport();\n\n let [iw, ih] = [0, 0];\n if (isImage) {\n [iw, ih] = [imgElem.naturalWidth, imgElem.naturalHeight];\n } else if (isVideo) {\n [iw, ih] = [videoElem.videoWidth, videoElem.videoHeight];\n }\n let scale = Math.min(1, sw / iw, sh / ih);\n dims = [~~(iw * scale), ~~(ih * scale)];\n\n hoverElem.style.width = `${dims[0]}px`;\n hoverElem.style.height = `${dims[1]}px`;\n }\n\n async function hoverStart(ev?: MouseEvent) {\n if (!(isVideo || isImage)) return;\n if ($settings.dh) return;\n if (file.thumbnail && !furl) {\n unzip();\n }\n\n if (!isImage && !isVideo) return;\n if (!contracted) return;\n\n recompute();\n hovering = true;\n\n if (isVideo) {\n try {\n await hoverVideo.play();\n } catch (e) {\n // probably didn't interact with document error, mute the video and try again?\n hoverVideo.muted = true;\n hoverVideo.volume = 0;\n await hoverVideo.play();\n }\n }\n }\n\n function hoverStop(ev?: MouseEvent) {\n if ($settings.dh) return;\n hovering = false;\n if (isVideo) hoverVideo.pause();\n }\n\n let lastev: MouseEvent | undefined;\n function hoverUpdate(ev?: MouseEvent) {\n lastev = lastev || ev;\n if ($settings.dh) return;\n if (!contracted) return;\n if (!(isVideo || isImage)) return;\n recompute(); // yeah I gave up\n const [sw, sh] = [visualViewport.width, visualViewport.height];\n // shamelessly stolen from 4chanX\n if (dims[0] == 0 && dims[1] == 0) recompute();\n let width = dims[0];\n let height = dims[1] + 25;\n let { clientX, clientY } = ev || lastev!;\n let top = Math.max(0, (clientY * (sh - height)) / sh);\n let threshold = sw / 2;\n let marginX: number | string =\n (clientX <= threshold ? clientX : sw - clientX) + 45;\n marginX = Math.min(marginX, sw - width);\n marginX = marginX + \"px\";\n let [left, right] = clientX <= threshold ? [marginX, \"\"] : [\"\", marginX];\n let { style } = hoverElem;\n style.top = top + \"px\";\n style.left = left;\n style.right = right;\n }\n\n function adjustAudio(ev: WheelEvent) {\n if (!$settings.ca) return;\n if (!isVideo) return;\n if ($settings.dh && contracted) return;\n if (!hasAudio(videoElem)) return;\n let vol = videoElem.volume * (ev.deltaY > 0 ? 0.9 : 1.1);\n vol = Math.max(0, Math.min(1, vol));\n videoElem.volume = vol;\n hoverVideo.volume = videoElem.volume;\n hoverVideo.muted = vol < 0;\n ev.preventDefault();\n }\n</script>\n\n{#if !isText}\n {#if !$settings.eye || visible}\n <!-- svelte-ignore a11y-mouse-events-have-key-events -->\n <div\n class:contract={contracted}\n class=\"place\"\n on:click={(e) => e.preventDefault()}\n on:auxclick={(e) => e.preventDefault()}\n on:mousedown={bepis}\n on:mouseover={hoverStart}\n on:mouseout={hoverStop}\n on:mousemove={hoverUpdate}\n on:wheel={adjustAudio}\n bind:this={place}\n >\n {#if isImage}\n <!-- svelte-ignore a11y-missing-attribute -->\n <img\n referrerpolicy=\"no-referrer\"\n bind:this={imgElem}\n alt={file.filename}\n src={furl || url}\n />\n {/if}\n {#if isAudio}\n <audio\n referrerpolicy=\"no-referrer\"\n controls\n src={furl || url}\n loop={$settings.loop}\n alt={file.filename}\n >\n <source src={furl || url} type={ftype} />\n </audio>\n {/if}\n {#if isVideo}\n <!-- svelte-ignore a11y-media-has-caption -->\n <!-- svelte-ignore a11y-missing-attribute -->\n <video\n type={ftype}\n referrerpolicy=\"no-referrer\"\n loop={$settings.loop}\n bind:this={videoElem}\n >\n <source referrerpolicy=\"no-referrer\" src={furl || url} />\n </video>\n <!-- assoom videos will never be loaded from thumbnails -->\n {/if}\n </div>\n <div\n bind:this={hoverElem}\n class:visible={hovering && contracted}\n class:unzipping\n class=\"hoverer\"\n >\n {#if unzipping}<span class=\"progress\"\n >[{progress[0]} / {progress[1]}]</span\n >{/if}\n\n {#if isImage}\n <img alt={file.filename} src={furl || url} />\n {/if}\n {#if isVideo}\n <!-- svelte-ignore a11y-media-has-caption -->\n <video loop={$settings.loop} bind:this={hoverVideo}>\n <source type={ftype} src={furl || url} data-test />\n </video>\n <!-- assoom videos will never be loaded from thumbnails -->\n {/if}\n </div>\n {/if}\n{/if}\n\n<style scoped>\n .place {\n cursor: pointer;\n max-width: 100vw;\n max-height: 100vh;\n }\n\n .unzipping > img {\n filter: brightness(0.5) blur(10px);\n }\n\n .progress {\n color: black;\n -webkit-text-stroke: 0.7px white;\n font-weight: bold;\n left: 50%;\n top: 50%;\n font-size: larger;\n display: inline-block;\n position: absolute;\n z-index: 10;\n }\n\n .hoverer {\n display: none;\n position: fixed;\n pointer-events: none;\n }\n\n .visible {\n display: block;\n z-index: 9;\n }\n\n .contract img,\n .contract video {\n max-width: 125px !important;\n max-height: 125px !important;\n width: auto;\n height: auto;\n }\n\n .place:not(.contract) video,\n .place:not(.contract) img,\n .hoverer > video,\n .hoverer > img {\n max-width: 100vw;\n max-height: 100vh;\n }\n</style>\n","<script lang=\"ts\">\n import { onMount } from \"svelte/internal\";\n\n import type { EmbeddedFile } from \"../main\";\n import { appState } from \"../stores\";\n import { addToEmbeds, getFileFromHydrus } from \"../utils\";\n import Embedding from \"./Embedding.svelte\";\n\n import Tag from \"./Tag.svelte\";\n\n let tags: string[] = [];\n\n let loading = false;\n\n function removeTag(t: string) {\n tags = tags.filter((e) => e != t);\n update();\n }\n let maps: [number, EmbeddedFile][] = [];\n\n async function update() {\n loading = true;\n if ($appState.client) {\n try {\n if (tags.length == 0) {\n maps = [];\n loading = false;\n return;\n }\n maps = await getFileFromHydrus(\n $appState.client,\n tags.concat([\"system:limit=32\"]),\n { file_sort_type: 4 }\n );\n } catch {}\n }\n loading = false;\n }\n\n onMount(() => {\n return update();\n });\n</script>\n\n<div class=\"cont\">\n <input\n type=\"text\"\n placeholder=\"Input a tag here, then press enter\"\n on:keydown={(ev) => {\n if (ev.key == \"Enter\") {\n if (ev.currentTarget.value)\n tags = [...tags, ev.currentTarget.value];\n ev.currentTarget.value = \"\";\n update();\n }\n }}\n />\n <details>\n <summary>Tips</summary>\n Press enter without entering a tag to refresh. <br />\n Files are picked randomly <br />\n Click on a file to embed it <br />\n </details>\n <div class=\"tagcont\">\n {#each tags as tag}\n <Tag {tag} on:toggle={() => removeTag(tag)} />\n {/each}\n </div>\n {#if loading}\n Loading...\n {:else}\n <div class=\"results\">\n {#each maps as map (map[0])}\n <Embedding\n on:click={() => addToEmbeds(map[1])}\n inhibitExpand={true}\n id={\"only\"}\n file={map[1]}\n />\n {/each}\n </div>\n {/if}\n</div>\n\n<style scoped>\n .results {\n display: flex;\n flex-wrap: wrap;\n max-height: 30vh;\n gap: 10px;\n overflow-y: auto;\n align-items: center;\n justify-content: center;\n }\n\n .tagcont {\n display: flex;\n gap: 5px;\n }\n\n .cont {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n details {\n border: 1px solid #aaa;\n border-radius: 4px;\n padding: 0.5em 0.5em 0;\n }\n\n summary {\n font-weight: bold;\n margin: -0.5em -0.5em 0;\n padding: 0.5em;\n cursor: pointer;\n }\n\n details[open] {\n padding: 0.5em;\n }\n\n details[open] summary {\n border-bottom: 1px solid #aaa;\n margin-bottom: 0.5em;\n }\n</style>\n","<script lang=\"ts\">\n import { hasContext, onDestroy } from \"svelte\";\n import Dialog from \"./Dialog.svelte\";\n\n import Tag from \"./Tag.svelte\";\n import type { Booru } from \"../thirdeye\";\n import Tabs from \"./Tabs.svelte\";\n import TabList from \"./TabList.svelte\";\n import Tab from \"./Tab.svelte\";\n import TabPanel from \"./TabPanel.svelte\";\n\n import { settings, appState } from \"../stores\";\n import { filehosts } from \"../filehosts\";\n import HydrusSearch from \"./HydrusSearch.svelte\";\n\n let newbooru: Partial<Omit<Booru, \"quirks\"> & { view: string }> = {};\n let dial: Dialog;\n\n function appendBooru() {\n $settings.rsources = [...$settings.rsources, newbooru as any];\n dial.toggle();\n newbooru = {};\n }\n\n let visible = false;\n let penisEvent = () => {\n visible = !visible;\n };\n document.addEventListener(\"penis\", penisEvent);\n console.log(\"app loaded\");\n\n function removeTag(t: string) {\n $settings.blacklist = $settings.blacklist.filter((e: any) => e != t);\n }\n\n function removeBooru(t: string) {\n const idx = $settings.rsources.findIndex((e) => e.domain == t);\n const rep = prompt(\"You DO know what you're doing, right? (type 'y')\");\n if (!rep || rep != \"y\") return;\n if (idx >= 0) $settings.rsources.splice(idx, 1);\n $settings.rsources = $settings.rsources;\n }\n\n const boardname = location.pathname.match(/\\/([^/]*)\\//)![1];\n let updating = false;\n let threads: { id: number; cnt: number }[] = [];\n async function updateThreads() {\n updating = true;\n let params = \"\";\n if ($settings.phash) {\n params = \"?mdist=\" + $settings.mdist;\n }\n let res = await fetch(\n \"https://shoujo.coom.tech/listing/\" + boardname + params\n );\n threads = await res.json();\n updating = false;\n }\n\n function toggleBooru(t: string) {\n const elem = $settings.rsources.find((e) => e.domain == t);\n if (elem) elem.disabled = !elem.disabled;\n $settings.rsources = $settings.rsources;\n }\n\n onDestroy(() => {\n document.removeEventListener(\"penis\", penisEvent);\n });\n</script>\n\n<div class=\"backpanel\" class:enabled={visible} class:disabled={!visible}>\n <div class=\"content\">\n <h1>PEE Settings</h1>\n <hr />\n <Tabs>\n <TabList>\n <Tab>General</Tab>\n <Tab>External</Tab>\n <Tab>File Host</Tab>\n <Tab>Thread Watcher</Tab>\n {#if $appState.akValid}\n <Tab>Hydrus</Tab>\n {/if}\n </TabList>\n <TabPanel>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.vercheck} />\n Check for new versions at startup.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.xpi} />\n Autoexpand Images on opening.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.xpv} />\n Autoexpand Videos on opening.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.loop} />\n Loop media content.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.dh} />\n Disable hover preview.\n </label>\n\n <label>\n <input type=\"checkbox\" bind:checked={$settings.eye} />\n Hide embedded content behind an eye.\n </label>\n {#if $settings.eye}\n <label>\n <input type=\"checkbox\" bind:checked={$settings.ho} />\n Hide original content when hidden content is visible.\n </label>\n {/if}\n <label>\n <input type=\"checkbox\" bind:checked={$settings.pre} />\n Preload external files.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.prev} />\n Preload external files when they are in view.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.hotlink} />\n Hotlink content.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.ca} />\n Control audio on videos with mouse wheel.\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.sh} />\n Show Minimap\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.ep} />\n <!-- svelte-ignore a11y-missing-attribute -->\n Disable embedded file preloading<a\n title=\"You might still want to enable 'preload external files'\">?</a\n >\n </label>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.hyd} />\n <!-- svelte-ignore a11y-missing-attribute -->\n Enable Hydrus Integration\n </label>\n {#if $settings.hyd}\n {#if $appState.herror}\n <span class=\"error\">{$appState.herror}</span>\n {/if}\n <label>\n Hydrus Access Key\n <!-- svelte-ignore a11y-missing-attribute -->\n <a\n title=\"Only requires Search Files permission. See Hydrus docs on where to set this up.\"\n >?</a\n >\n <input type=\"text\" bind:value={$settings.ak} />\n </label>\n {#if $appState.akValid}\n <label>\n Auto-embed <input\n style=\"width: 5ch;\"\n type=\"number\"\n bind:value={$settings.auto_embed}\n />\n random files\n <!-- svelte-ignore a11y-missing-attribute -->\n </label>\n <label>\n <!-- svelte-ignore a11y-missing-attribute -->\n <input\n placeholder=\"Restrict to these tags (space to separate tags, _ to separate words)\"\n type=\"text\"\n bind:value={$settings.auto_tags}\n />\n </label>\n {/if}\n {/if}\n </TabPanel>\n <TabPanel>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.te} />\n Disable third-eye.\n </label>\n {#if !$settings.te}\n <label>\n <input type=\"checkbox\" bind:checked={$settings.phash} />\n Enable perceptual hash-based filtering\n </label>\n {#if $settings.phash}\n <label>\n <input type=\"number\" bind:value={$settings.mdist} />\n Minimum distance required (5 recommended)\n <!-- svelte-ignore a11y-missing-attribute -->\n <a\n title=\"Higher will filter more potentially different images, lower will let more identical images through\"\n >?</a\n >\n </label>\n {/if}\n <h3>Booru sources</h3>\n <div class=\"tagcont\">\n {#each $settings.rsources as source, i}\n <Tag\n tag={source.name}\n on:remove={() => removeBooru(source.domain)}\n on:toggle={() => toggleBooru(source.domain)}\n toggleable={true}\n toggled={(() => {\n const e = $settings.rsources.find(\n (e) => e.domain == source.domain\n );\n return !(e && e.disabled);\n })()}\n />\n {/each}\n </div>\n <button\n on:click={(ev) => {\n dial.setPos([ev.clientX, ev.clientY]);\n dial.toggle();\n }}>Add a source</button\n >\n <Dialog bind:this={dial}>\n <div class=\"form\">\n <label>\n Name\n <input\n type=\"text\"\n placeholder=\"Gelbooru\"\n bind:value={newbooru.name}\n />\n </label>\n <label>\n Domain\n <input\n type=\"text\"\n placeholder=\"gelbooru.com\"\n bind:value={newbooru.domain}\n />\n </label>\n <label>\n API Endpoint\n <input\n type=\"text\"\n placeholder=\"/post.json?tags=md5:\"\n bind:value={newbooru.endpoint}\n />\n </label>\n <label>\n Post page prefix (for sources)\n <input\n type=\"text\"\n placeholder=\"https://yande.re/post/show/\"\n bind:value={newbooru.view}\n />\n </label>\n <button on:click={appendBooru}>Add</button>\n </div>\n </Dialog>\n\n <hr />\n <h3>Blacklisted tags</h3>\n <div class=\"tagcont\">\n {#each $settings.blacklist as tag, i}\n <Tag {tag} on:toggle={() => removeTag(tag)} />\n {/each}\n </div>\n <input\n placeholder=\"Press enter after typing your tag\"\n on:keydown={(ev) => {\n if (ev.key == \"Enter\") {\n $settings.blacklist = [\n ...$settings.blacklist,\n ev.currentTarget.value,\n ];\n ev.currentTarget.value = \"\";\n }\n }}\n />\n {/if}\n </TabPanel>\n <TabPanel>\n <p>Host to use when uploading files (Only permanent hosts)</p>\n <select bind:value={$settings.fhost}>\n {#each filehosts as fh, i}\n <option value={i}>{fh.domain}</option>\n {/each}\n </select>\n <label>\n Maximum number of embedded links to display\n <input type=\"number\" bind:value={$settings.maxe} />\n </label>\n </TabPanel>\n <TabPanel>\n <label>\n <input type=\"checkbox\" bind:checked={$settings.tm} />\n <!-- svelte-ignore a11y-missing-attribute -->\n Contribute to help keep this list up to date. [<a\n title=\"This will make PEE automatically send the\n post number of posts you find with embedded content\">?</a\n >]\n </label>\n\n <button on:click={updateThreads} disabled={updating}>Refresh</button>\n\n {#if !updating}\n <div class=\"bepis\">\n {#each threads as thread}\n <div class=\"mbepis\">\n <a\n href={\"https://boards.4chan.org/\" +\n boardname +\n \"/thread/\" +\n thread.id}>>>{thread.id}</a\n >\n ({thread.cnt} embeds)\n </div>\n {/each}\n </div>\n {:else}\n <p>Loading...</p>\n {/if}\n </TabPanel>\n {#if $appState.akValid}\n <TabPanel>\n <HydrusSearch />\n </TabPanel>\n {/if}\n </Tabs>\n </div>\n</div>\n\n<style scoped>\n .bepis {\n max-height: 260px;\n overflow-y: auto;\n }\n\n .tagcont {\n display: flex;\n gap: 5px;\n margin-bottom: 10px;\n flex-wrap: wrap;\n }\n\n label > input[type=\"text\"],\n label > input[type=\"number\"] {\n width: 95%;\n }\n\n .enabled {\n display: block;\n }\n\n .disabled {\n display: none;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n }\n\n .error {\n color: red;\n }\n\n hr {\n width: 100%;\n }\n\n h1 {\n text-align: center;\n }\n .form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n position: absolute;\n padding: 15px;\n border: 1px solid white;\n background-color: inherit;\n border-radius: 10px;\n }\n\n .form > label {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .backpanel {\n position: absolute;\n right: 32px;\n padding: 10px;\n width: 15%;\n top: 32px;\n border: 1px solid;\n border-radius: 5px;\n background-color: rgba(0, 0, 0, 0.2);\n pointer-events: all;\n backdrop-filter: blur(9px);\n max-height: 80vh;\n min-width: 321px;\n }\n</style>\n","<script lang=\"ts\">\nimport { onDestroy, onMount } from 'svelte';\nimport { settings, appState } from '../stores'\n\nfunction getOffset(el: HTMLElement | null) {\n var _x = 0;\n var _y = 0;\n while(el && el instanceof HTMLElement) {\n _x += el.offsetLeft - el.scrollLeft;\n _y += el.offsetTop - el.scrollTop;\n el = el.offsetParent as HTMLElement;\n }\n return { top: _y, left: _x };\n}\n\nlet positions:[number, number, number, string][] = [];\nconst getViewport = () => (typeof visualViewport != \"undefined\" ? () => [visualViewport.width, visualViewport.height] : () => [document.documentElement.clientWidth, document.documentElement.clientHeight])();\nconst getDistFromTop = () => (typeof visualViewport != \"undefined\" ? () => visualViewport.pageTop : () => document.documentElement.scrollTop)();\nlet viewhint: HTMLSpanElement;\n\nconst updatePositions = (v: typeof $appState) => {\n const [sw, sh] = getViewport();\n const containerScrollHeight = document.documentElement.scrollHeight;\n positions = v.foundPosts.map(v => {\n const coords = getOffset(v);\n const top = sh * (coords.top / containerScrollHeight);\n const bot = sh * ((coords.top + v.offsetHeight) / containerScrollHeight);\n const hei = (bot - top);\n return [top, hei, coords.top, getComputedStyle(v)['borderRightColor']];\n })\n}\n\nconst updateViewhint = () => {\n if (!$settings.sh) return;\n const [sw, sh] = getViewport();\n const fromtop = getDistFromTop();\n const containerScrollHeight = document.documentElement.scrollHeight;\n const top = sh * (fromtop / containerScrollHeight);\n const bot = sh * ((fromtop + sh) / containerScrollHeight);\n const hei = (bot - top);\n viewhint.style.top = top + 'px';\n viewhint.style.height = hei + 'px';\n}\n\nappState.subscribe(v => updatePositions(v));\n\nconst handleResize = () => {\n updatePositions($appState);\n};\n\nlet locked = false;\nconst handleScroll = async () => {\n if (locked) return;\n locked = true;\n updateViewhint();\n await new Promise(_ => requestAnimationFrame(_));\n locked = false;\n};\n\nconst docRszObserver = new ResizeObserver(e => {\n updatePositions($appState)\n updateViewhint();\n});\n\nonMount(() => {\n window.addEventListener('resize', handleResize);\n document.addEventListener('scroll', handleScroll);\n updateViewhint();\n docRszObserver.observe(document.documentElement);\n});\n\nonDestroy(() => {\n window.removeEventListener('resize', handleResize);\n document.addEventListener('scroll', handleScroll);\n docRszObserver.unobserve(document.documentElement);\n})\n\n</script>\n\n{#if $settings.sh}\n <div class=\"scroll-container\">\n {#each $appState.foundPosts as post, i}\n <span\n on:click={() => window.scrollTo(0, positions[i][2])}\n style=\"top: {positions[i][0]}px; height: {positions[\n i\n ][1]}px; background-color: {positions[i][3]}\"\n class=\"marker\"\n />\n {/each}\n <span class=\"hint\" bind:this={viewhint} />\n </div>\n{/if}\n\n<style scoped>\n .hint {\n background-color: rgb(222 222 222 / 80%);\n z-index: -1;\n pointer-events: none;\n }\n\n .scroll-container {\n position: fixed;\n height: 100%;\n width: 12px;\n /* pointer-events: none; */\n top: 0;\n right: 0;\n z-index: 1000;\n }\n\n .scroll-container span {\n /* markers */\n position: absolute;\n right: 0;\n width: 33%;\n cursor: pointer;\n transition: width 200ms;\n }\n\n .scroll-container:hover span {\n width: 100%;\n }\n</style>\n","<script lang=\"ts\">\n import { appState, settings } from \"../stores\";\n import type { ImageProcessor } from \"../main\";\n\n import {\n addToEmbeds,\n embeddedToBlob,\n fireNotification,\n getFileFromHydrus,\n uploadFiles,\n } from \"../utils\";\n\n export let processors: ImageProcessor[] = [];\n export let textinput: HTMLTextAreaElement;\n\n export let links: string[] = [];\n\n const addContent = async (...newfiles: File[]) => {\n links = [...links, ...(await uploadFiles(newfiles))];\n return embedContent({} as any);\n };\n\n let original: File | undefined;\n let currentEmbed: { file: Blob; name: string } | undefined;\n\n function restore() {\n document.dispatchEvent(\n new CustomEvent(\"QRSetFile\", {\n detail: { file: original },\n })\n );\n }\n\n // This is an event to signal a change in the container file\n document.addEventListener(\"PEEFile\", async (e) => {\n let file = (e as any).detail as File;\n if (currentEmbed && currentEmbed.file != file) {\n original = file;\n if ($settings.auto_embed && $appState.client) {\n const tags = $settings.auto_tags\n .split(\" \")\n .map((e) => e.replaceAll(\"_\", \" \"));\n const efs = await getFileFromHydrus(\n $appState.client,\n tags.concat([\"system:limit=\" + $settings.auto_embed]),\n { file_sort_type: 4 }\n );\n const files = await embeddedToBlob(...efs.map(e => e[1]));\n const nlinks = await uploadFiles(files);\n links = [...links, ...nlinks];\n }\n embedContent(e);\n }\n });\n\n document.addEventListener(\"QRPostSuccessful\", () => {\n if (currentEmbed) {\n links = []; // cleanup\n currentEmbed = undefined;\n original = undefined;\n }\n });\n\n document.addEventListener(\"AddPEE\", (e) => {\n let link = (e as any).detail as string | string[];\n links = links.concat(link);\n embedContent(e);\n });\n\n const embedText = async (e: Event) => {\n if (textinput.value == \"\") return;\n if (textinput.value.length > 2000) {\n fireNotification(\n \"error\",\n \"Message attachments are limited to 2000 characters\"\n );\n return;\n }\n await addContent(\n new File(\n [new Blob([textinput.value], { type: \"text/plain\" })],\n `message${links.length}.txt`\n )\n );\n textinput.value = \"\";\n };\n\n const embedContent = async (e: Event) => {\n const file = original;\n if (!file) return;\n if (links.length == 0) return;\n const type = file.type;\n try {\n const proc = processors\n .filter((e) => e.inject)\n .find((e) => e.match(file.name));\n if (!proc) throw new Error(\"Container filetype not supported\");\n const buff = await proc.inject!(file, links.slice(0, $settings.maxe));\n currentEmbed = {\n file: new Blob([buff], { type }),\n name: file.name,\n } as unknown as { file: Blob; name: string };\n document.dispatchEvent(\n new CustomEvent(\"QRSetFile\", {\n detail: currentEmbed,\n })\n );\n fireNotification(\n \"success\",\n `File${links.length > 1 ? \"s\" : \"\"} successfully embedded!`\n );\n } catch (err) {\n const e = err as Error;\n fireNotification(\"error\", \"Couldn't embed file: \" + e.message);\n }\n };\n\n const embedFile = async (e: Event) => {\n const input = document.createElement(\"input\") as HTMLInputElement;\n input.setAttribute(\"type\", \"file\");\n input.multiple = true;\n input.onchange = async (ev) => {\n if (input.files) {\n addContent(...input.files);\n }\n };\n input.click();\n };\n</script>\n\n<div class=\"root\">\n <!-- svelte-ignore a11y-missing-attribute -->\n <a on:click={embedFile} title=\"Add a file\">\n <i class=\"fa fa-magnet\"> {$appState.is4chanX ? \"\" : \"🧲\"} </i>\n </a>\n <div class=\"additionnal\">\n <!-- svelte-ignore a11y-missing-attribute -->\n <a\n on:click={embedText}\n title=\"Add a message (this uses the content of the comment text box)\"\n >\n <i class=\"fa fa-pencil\"> {$appState.is4chanX ? \"\" : \"🖉\"} </i>\n </a>\n {#if links.length}\n <!-- svelte-ignore a11y-missing-attribute -->\n <a\n on:click={() => ((links = []), restore())}\n title=\"Discard ALL {links.length} files\"\n >\n <i class=\"fa fa-times\"> {$appState.is4chanX ? \"\" : \"❌\"} </i>\n </a>\n {/if}\n </div>\n</div>\n\n<style scoped>\n a i {\n font-style: normal;\n }\n a {\n cursor: pointer;\n }\n\n .root {\n position: relative;\n }\n\n .additionnal {\n display: none;\n position: absolute;\n flex-direction: column;\n gap: 5px;\n outline: 1px solid #ce3d08;\n padding: 5px;\n background-color: #fffdee;\n border-radius: 5px;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .root:hover > .additionnal {\n display: flex;\n }\n</style>\n","<script lang=\"ts\">\n let visible = false;\n function opensettings() {\n visible = !visible\n document.dispatchEvent(new CustomEvent(\"penis\"));\n }\n</script>\n\n<span class=\"clickable\" class:glow={visible} on:click={() => opensettings()}>\n [PEE Settings]\n</span>\n\n<style scoped>\n\n .glow {\n text-shadow: 0 0 4px red;\n }\n\n .clickable {\n cursor: pointer;\n }\n\n .clickable:hover {\n text-shadow: 0 0 4px palevioletred;\n }\n</style>\n","<script lang=\"ts\">\n import type { EmbeddedFile } from '../main';\n\timport { createEventDispatcher } from 'svelte';\n import Embedding from './Embedding.svelte';\n\n export const dispatch = createEventDispatcher();\n\n export let files: EmbeddedFile[]\n export let id: string = '';\n\n let children: {[k in number]: Embedding}= {}\n export async function bepis(ev: MouseEvent) {\n for (let child of Object.values(children))\n child.bepis(ev);\n }\n</script>\n\n{#each files as file, i}\n <Embedding on:fileinfo bind:this={children[i]} {id} {file} />\n{/each}\n\n<style scoped>\n</style>\n","<script lang=\"ts\">\n import { fileTypeFromBuffer } from \"file-type\";\n import { Buffer } from \"buffer\";\n import type Embedding from \"./Embedding.svelte\";\n import type Embeddings from \"./Embeddings.svelte\";\n\n import type { EmbeddedFile } from \"../main\";\n\n import { appState, settings } from \"../stores\";\n\n export let id = \"\";\n export let files: EmbeddedFile[];\n export let inst: Embedding | Embeddings;\n\n let isVideo = false;\n\n inst.$on(\"fileinfo\", (info) => {\n isVideo = isVideo || info.detail.type.mime.startsWith(\"video/\");\n });\n\n let visible = false;\n function reveal() {\n visible = !visible;\n document.dispatchEvent(new CustomEvent(\"reveal\", { detail: { id } }));\n }\n const isNotChrome = !navigator.userAgent.includes(\"Chrome/\");\n\n async function downloadFile(file: EmbeddedFile) {\n const a = document.createElement(\"a\") as HTMLAnchorElement;\n document.body.appendChild(a);\n a.style.display = \"none\";\n let url: string;\n if (typeof file.data != \"string\") {\n const thumb = Buffer.isBuffer(file.data) ? file.data : await file.data();\n const type = await fileTypeFromBuffer(thumb);\n url = URL.createObjectURL(new Blob([thumb], { type: type && type.mime }));\n } else url = file.data;\n a.href = url;\n a.download = file.filename;\n a.click();\n window.URL.revokeObjectURL(url);\n }\n</script>\n\n{#if $settings.eye}\n <span\n on:click={reveal}\n class:fa-eye={!visible}\n class:fa-eye-slash={visible}\n class=\"fa clickable\"\n >\n {$appState.is4chanX ? \"\" : !visible ? \"👁\" : \"🤦\"}\n </span>\n{/if}\n{#each files as file}\n <span\n title={file.filename}\n on:click={() => downloadFile(file)}\n class=\"fa fa-download clickable\"\n >\n {$appState.is4chanX ? \"\" : \"🖫\"}\n </span>\n {#if file.source}\n <!-- svelte-ignore a11y-missing-content -->\n <a href={file.source} target=\"_blank\" class=\"clickable\">Source</a>\n {/if}\n {#if file.page}\n <!-- svelte-ignore a11y-missing-content -->\n <a href={file.page.url} target=\"_blank\" class=\"clickable\"\n >{file.page.title}</a\n >\n {/if}\n {#if isNotChrome && isVideo}\n <!-- svelte-ignore a11y-missing-attribute -->\n <a\n on:click={(ev) => {\n inst.bepis(ev);\n }}\n alt=\"By clicking this you agree to stay hydrated\"\n class=\"clickable\">[PEE contract]</a\n >\n {/if}\n{/each}\n\n<style scoped>\n .clickable {\n cursor: pointer;\n margin-left: 5px;\n }\n\n .clickable:hover {\n text-shadow: 0 0 4px palevioletred;\n }\n</style>\n","<script lang=\"ts\">\n import type { fireNotification } from '../utils'\n\n type t = Parameters<typeof fireNotification>\n type Notification = {\n type: t[0]\n content: t[1]\n lifetime: t[2]\n }\n\n export let nots: (Notification & { id: number })[] = []\n\n const removeId = (id: number) => (nots = nots.filter((e) => e.id != id))\n\n let gid = 0\n document.addEventListener('CreateNotification', <any>((\n e: CustomEvent<Notification>,\n ) => {\n const id = gid++\n nots = [...nots, { ...e.detail, id }]\n setTimeout(() => removeId(id), (e.detail.lifetime || 3) * 1000)\n }))\n</script>\n\n<div class=\"root\">\n {#each nots as not (not.id)}\n <span class={not.type}\n >{not.content}<span on:click={() => removeId(not.id)} class=\"clickable\"\n >X</span\n ></span\n >\n {/each}\n</div>\n\n<style scoped>\n\n .clickable {\n cursor: pointer;\n float: right;\n }\n\n .root > span {\n display: flex;\n gap: 10px;\n border: 1px solid;\n padding: 10px;\n border-radius: 5px;\n font-weight: bolder;\n color: white;\n min-width: 45vw;\n }\n\n .root {\n position: fixed;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .error {\n background-color: /*KING*/ crimson;\n }\n\n .info {\n background-color: cornflowerblue;\n }\n\n .warning {\n background-color: darkgoldenrod;\n }\n\n .success {\n background-color: green;\n }\n</style>\n","/**\n * Finite State Machine generation utilities\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n * @param {string|class} token to emit\n */\nfunction State(token) {\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n this.jr = [];\n this.jd = null;\n this.t = token;\n}\n/**\n * Take the transition from this state to the next one on the given input.\n * If this state does not exist deterministically, will create it.\n *\n * @param {string} input character or token to transition on\n * @param {string|class} [token] token or multi-token to emit when reaching\n * this state\n */\n\nState.prototype = {\n /**\n * @param {State} state\n */\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * @param {string} input character or token to transition on\n * @param {Token|State} tokenOrState transition to a matching state\n * @returns State taken after the given input\n */\n tt: function tt(input, tokenOrState) {\n if (tokenOrState && tokenOrState.j) {\n // State, default a basic transition\n this.j[input] = tokenOrState;\n return tokenOrState;\n } // See if there's a direct state transition (not regex or default)\n\n\n var token = tokenOrState;\n var nextState = this.j[input];\n\n if (nextState) {\n if (token) {\n nextState.t = token;\n } // overrwites previous token\n\n\n return nextState;\n } // Create a new state for this input\n\n\n nextState = makeState(); // Take the transition using the usual default mechanisms\n\n var templateState = takeT(this, input);\n\n if (templateState) {\n // Some default state transition, make a prime state based on this one\n Object.assign(nextState.j, templateState.j);\n nextState.jr.append(templateState.jr);\n nextState.jr = templateState.jd;\n nextState.t = token || templateState.t;\n } else {\n nextState.t = token;\n }\n\n this.j[input] = nextState;\n return nextState;\n }\n};\n/**\n * Utility function to create state without using new keyword (reduced file size\n * when minified)\n */\n\nvar makeState = function makeState() {\n return new State();\n};\n/**\n * Similar to previous except it is an accepting state that emits a token\n * @param {Token} token\n */\n\nvar makeAcceptingState = function makeAcceptingState(token) {\n return new State(token);\n};\n/**\n * Create a transition from startState to nextState via the given character\n * @param {State} startState transition from thie starting state\n * @param {Token} input via this input character or other concrete token type\n * @param {State} nextState to this next state\n */\n\nvar makeT = function makeT(startState, input, nextState) {\n // IMPLEMENTATION 1: Add to object (fast)\n if (!startState.j[input]) {\n startState.j[input] = nextState;\n } // IMPLEMENTATION 2: Add to array (slower)\n // startState.j.push([input, nextState]);\n\n};\n/**\n *\n * @param {State} startState stransition from this starting state\n * @param {RegExp} regex Regular expression to match on input\n * @param {State} nextState transition to this next state if there's are regex match\n */\n\nvar makeRegexT = function makeRegexT(startState, regex, nextState) {\n startState.jr.push([regex, nextState]);\n};\n/**\n * Follow the transition from the given character to the next state\n * @param {State} state\n * @param {Token} input character or other concrete token type to transition\n * @returns {?State} the next state, if any\n */\n\nvar takeT = function takeT(state, input) {\n // IMPLEMENTATION 1: Object key lookup (faster)\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n } // IMPLEMENTATION 2: List lookup (slower)\n // Loop through all the state transitions and see if there's a match\n // for (let i = 0; i < state.j.length; i++) {\n //\tconst val = state.j[i][0];\n //\tconst nextState = state.j[i][1];\n // \tif (input === val) { return nextState; }\n // }\n\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1];\n\n if (regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n};\n/**\n * Similar to makeT, but takes a list of characters that all transition to the\n * same nextState startState\n * @param {State} startState\n * @param {Array} chars\n * @param {State} nextState\n */\n\nvar makeMultiT = function makeMultiT(startState, chars, nextState) {\n for (var i = 0; i < chars.length; i++) {\n makeT(startState, chars[i], nextState);\n }\n};\n/**\n * Set up a list of multiple transitions at once. transitions is a list of\n * tuples, where the first element is the transitions character and the second\n * is the state to transition to\n * @param {State} startState\n * @param {Array} transitions\n */\n\nvar makeBatchT = function makeBatchT(startState, transitions) {\n for (var i = 0; i < transitions.length; i++) {\n var input = transitions[i][0];\n var nextState = transitions[i][1];\n makeT(startState, input, nextState);\n }\n};\n/**\n * For state machines that transition on characters only; given a non-empty\n * target string, generates states (if required) for each consecutive substring\n * of characters starting from the beginning of the string. The final state will\n * have a special value, as specified in options. All other \"in between\"\n * substrings will have a default end state.\n *\n * This turns the state machine into a Trie-like data structure (rather than a\n * intelligently-designed DFA).\n * @param {State} state\n * @param {string} str\n * @param {Token} endStateFactory\n * @param {Token} defaultStateFactory\n */\n\nvar makeChainT = function makeChainT(state, str, endState, defaultStateFactory) {\n var i = 0,\n len = str.length,\n nextState; // Find the next state without a jump to the next character\n\n while (i < len && (nextState = state.j[str[i]])) {\n state = nextState;\n i++;\n }\n\n if (i >= len) {\n return [];\n } // no new tokens were added\n\n\n while (i < len - 1) {\n nextState = defaultStateFactory();\n makeT(state, str[i], nextState);\n state = nextState;\n i++;\n }\n\n makeT(state, str[len - 1], endState);\n};\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n// A valid web domain token\nvar DOMAIN = 'DOMAIN';\nvar LOCALHOST = 'LOCALHOST'; // special case of domain\n// Valid top-level domain (see tlds.js)\n\nvar TLD = 'TLD'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // A web URL protocol. Supported types include\n// - `http:`\n// - `https:`\n// - `ftp:`\n// - `ftps:`\n// - user-defined custom protocols\n\nvar PROTOCOL = 'PROTOCOL'; // Start of the email URI protocol\n\nvar MAILTO = 'MAILTO'; // mailto:\n// Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar text = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tDOMAIN: DOMAIN,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tNUM: NUM,\n\tPROTOCOL: PROTOCOL,\n\tMAILTO: MAILTO,\n\tWS: WS,\n\tNL: NL,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tSYM: SYM\n});\n\n// NOTE: punycode versions of IDNs are not included here because these will not\n// be as commonly used without the http prefix anyway and linkify will already\n// force-encode those.\n// To be updated with the values in this list\n// http://data.iana.org/TLD/tlds-alpha-by-domain.txt\n// Version 2021022800, Last Updated Sun Feb 28 07:07:01 2021 UTC\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafamilycompany \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbudapest \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncsc \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\nduck \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfujixerox \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglade \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\niveco \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlixil \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnationwide \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noff \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nonyourside \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nqvc \\\nracing \\\nradio \\\nraid \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nrmit \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscjohnson \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nspreadbetting \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiftcover \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw \\\nvermögensberater-ctb \\\nvermögensberatung-pwb \\\nελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nқаз \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nგე \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبھارت \\\nبيتك \\\nپاکستان \\\nڀارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국 \\\nアマゾン \\\nグーグル \\\nクラウド \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\nみんな \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大众汽车 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港'.split(' ');\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEDD-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7C\\uDE80-\\uDE86\\uDE90-\\uDEAC\\uDEB0-\\uDEBA\\uDEC0-\\uDEC5\\uDED0-\\uDED9\\uDEE0-\\uDEE7\\uDEF0-\\uDEF6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION = /\\uFE0F/; // Variation selector, follows heart and others\n\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n/**\n * Initialize the scanner character-based state machine for the given start state\n * @return {State} scanner starting state\n */\n\nfunction init$2() {\n var customProtocols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // Frequently used states\n var S_START = makeState();\n var S_NUM = makeAcceptingState(NUM);\n var S_DOMAIN = makeAcceptingState(DOMAIN);\n var S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\n\n var S_WS = makeAcceptingState(WS);\n var DOMAIN_REGEX_TRANSITIONS = [[DIGIT, S_DOMAIN], [LETTER, S_DOMAIN], [EMOJI, S_DOMAIN], [EMOJI_VARIATION, S_DOMAIN]]; // Create a state which emits a domain token\n\n var makeDomainState = function makeDomainState() {\n var state = makeAcceptingState(DOMAIN);\n state.j = {\n '-': S_DOMAIN_HYPHEN\n };\n state.jr = [].concat(DOMAIN_REGEX_TRANSITIONS);\n return state;\n }; // Create a state which does not emit a domain state but the usual alphanumeric\n // transitions are domains\n\n\n var makeNearDomainState = function makeNearDomainState(token) {\n var state = makeDomainState();\n state.t = token;\n return state;\n }; // States for special URL symbols that accept immediately after start\n\n\n makeBatchT(S_START, [[\"'\", makeAcceptingState(APOSTROPHE)], ['{', makeAcceptingState(OPENBRACE)], ['[', makeAcceptingState(OPENBRACKET)], ['<', makeAcceptingState(OPENANGLEBRACKET)], ['(', makeAcceptingState(OPENPAREN)], ['}', makeAcceptingState(CLOSEBRACE)], [']', makeAcceptingState(CLOSEBRACKET)], ['>', makeAcceptingState(CLOSEANGLEBRACKET)], [')', makeAcceptingState(CLOSEPAREN)], ['&', makeAcceptingState(AMPERSAND)], ['*', makeAcceptingState(ASTERISK)], ['@', makeAcceptingState(AT)], ['`', makeAcceptingState(BACKTICK)], ['^', makeAcceptingState(CARET)], [':', makeAcceptingState(COLON)], [',', makeAcceptingState(COMMA)], ['$', makeAcceptingState(DOLLAR)], ['.', makeAcceptingState(DOT)], ['=', makeAcceptingState(EQUALS)], ['!', makeAcceptingState(EXCLAMATION)], ['-', makeAcceptingState(HYPHEN)], ['%', makeAcceptingState(PERCENT)], ['|', makeAcceptingState(PIPE)], ['+', makeAcceptingState(PLUS)], ['#', makeAcceptingState(POUND)], ['?', makeAcceptingState(QUERY)], ['\"', makeAcceptingState(QUOTE)], ['/', makeAcceptingState(SLASH)], [';', makeAcceptingState(SEMI)], ['~', makeAcceptingState(TILDE)], ['_', makeAcceptingState(UNDERSCORE)], ['\\\\', makeAcceptingState(BACKSLASH)]]); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n\n makeT(S_START, '\\n', makeAcceptingState(NL));\n makeRegexT(S_START, SPACE, S_WS); // If any whitespace except newline, more whitespace!\n\n makeT(S_WS, '\\n', makeState()); // non-accepting state\n\n makeRegexT(S_WS, SPACE, S_WS); // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n for (var i = 0; i < tlds.length; i++) {\n makeChainT(S_START, tlds[i], makeNearDomainState(TLD), makeDomainState);\n } // Collect the states generated by different protocls\n\n\n var S_PROTOCOL_FILE = makeDomainState();\n var S_PROTOCOL_FTP = makeDomainState();\n var S_PROTOCOL_HTTP = makeDomainState();\n var S_MAILTO = makeDomainState();\n makeChainT(S_START, 'file', S_PROTOCOL_FILE, makeDomainState);\n makeChainT(S_START, 'ftp', S_PROTOCOL_FTP, makeDomainState);\n makeChainT(S_START, 'http', S_PROTOCOL_HTTP, makeDomainState);\n makeChainT(S_START, 'mailto', S_MAILTO, makeDomainState); // Protocol states\n\n var S_PROTOCOL_SECURE = makeDomainState();\n var S_FULL_PROTOCOL = makeAcceptingState(PROTOCOL); // Full protocol ends with COLON\n\n var S_FULL_MAILTO = makeAcceptingState(MAILTO); // Mailto ends with COLON\n // Secure protocols (end with 's')\n\n makeT(S_PROTOCOL_FTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_FTP, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_HTTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_HTTP, ':', S_FULL_PROTOCOL); // Become protocol tokens after a COLON\n\n makeT(S_PROTOCOL_FILE, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_SECURE, ':', S_FULL_PROTOCOL);\n makeT(S_MAILTO, ':', S_FULL_MAILTO); // Register custom protocols\n\n var S_CUSTOM_PROTOCOL = makeDomainState();\n\n for (var _i = 0; _i < customProtocols.length; _i++) {\n makeChainT(S_START, customProtocols[_i], S_CUSTOM_PROTOCOL, makeDomainState);\n }\n\n makeT(S_CUSTOM_PROTOCOL, ':', S_FULL_PROTOCOL); // Localhost\n\n makeChainT(S_START, 'localhost', makeNearDomainState(LOCALHOST), makeDomainState); // Everything else\n // DOMAINs make more DOMAINs\n // Number and character transitions\n\n makeRegexT(S_START, DIGIT, S_NUM);\n makeRegexT(S_START, LETTER, S_DOMAIN);\n makeRegexT(S_START, EMOJI, S_DOMAIN);\n makeRegexT(S_START, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_NUM, DIGIT, S_NUM);\n makeRegexT(S_NUM, LETTER, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI_VARIATION, S_DOMAIN); // number becomes DOMAIN\n\n makeT(S_NUM, '-', S_DOMAIN_HYPHEN); // Default domain transitions\n\n makeT(S_DOMAIN, '-', S_DOMAIN_HYPHEN);\n makeT(S_DOMAIN_HYPHEN, '-', S_DOMAIN_HYPHEN);\n makeRegexT(S_DOMAIN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI_VARIATION, S_DOMAIN); // Set default transition for start state (some symbol)\n\n S_START.jd = makeAcceptingState(SYM);\n return S_START;\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {{t: string, v: string, s: number, l: number}[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns the regular case though) Uses selective `toLowerCase`\n // is used because lowercasing the entire string causes the length and\n // character position to vary in some non-English strings with V8-based\n // runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = takeT(state, iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n // TODO: If possible, don't output v, instead output range where values ocur\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.substr(cursor - tokenLength, tokenLength),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\n/**\n * @property {string} defaultProtocol\n * @property {{[string]: (event) => void}]} [events]\n */\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: 0,\n className: null,\n attributes: null,\n ignoreTags: []\n};\n/**\n * @class Options\n * @param {Object} [opts] Set option properties besides the defaults\n */\n\nfunction Options(opts) {\n opts = opts || {};\n this.defaultProtocol = 'defaultProtocol' in opts ? opts.defaultProtocol : defaults.defaultProtocol;\n this.events = 'events' in opts ? opts.events : defaults.events;\n this.format = 'format' in opts ? opts.format : defaults.format;\n this.formatHref = 'formatHref' in opts ? opts.formatHref : defaults.formatHref;\n this.nl2br = 'nl2br' in opts ? opts.nl2br : defaults.nl2br;\n this.tagName = 'tagName' in opts ? opts.tagName : defaults.tagName;\n this.target = 'target' in opts ? opts.target : defaults.target;\n this.rel = 'rel' in opts ? opts.rel : defaults.rel;\n this.validate = 'validate' in opts ? opts.validate : defaults.validate;\n this.truncate = 'truncate' in opts ? opts.truncate : defaults.truncate;\n this.className = 'className' in opts ? opts.className : defaults.className;\n this.attributes = opts.attributes || defaults.attributes;\n this.ignoreTags = []; // Make all tags names upper case\n\n var ignoredTags = 'ignoreTags' in opts ? opts.ignoreTags : defaults.ignoreTags;\n\n for (var i = 0; i < ignoredTags.length; i++) {\n this.ignoreTags.push(ignoredTags[i].toUpperCase());\n }\n}\nOptions.prototype = {\n /**\n * Given the token, return all options for how it should be displayed\n */\n resolve: function resolve(token) {\n var href = token.toHref(this.defaultProtocol);\n return {\n formatted: this.get('format', token.toString(), token),\n formattedHref: this.get('formatHref', href, token),\n tagName: this.get('tagName', href, token),\n className: this.get('className', href, token),\n target: this.get('target', href, token),\n rel: this.get('rel', href, token),\n events: this.getObject('events', href, token),\n attributes: this.getObject('attributes', href, token),\n truncate: this.get('truncate', href, token)\n };\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {string} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n get: function get(key, operator, token) {\n var option = this[key];\n\n if (!option) {\n return option;\n }\n\n var optionValue;\n\n switch (_typeof(option)) {\n case 'function':\n return option(operator, token.t);\n\n case 'object':\n optionValue = token.t in option ? option[token.t] : defaults[key];\n return typeof optionValue === 'function' ? optionValue(operator, token.t) : optionValue;\n }\n\n return option;\n },\n getObject: function getObject(key, operator, token) {\n var option = this[key];\n return typeof option === 'function' ? option(operator, token.t) : option;\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\nfunction inherits(parent, child) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var extended = Object.create(parent.prototype);\n\n for (var p in props) {\n extended[p] = props[p];\n }\n\n extended.constructor = child;\n child.prototype = extended;\n return child;\n}\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@param {string} value\n\t@param {{t: string, v: string, s: number, e: number}[]} tokens\n\t@abstract\n*/\n\n\nfunction MultiToken() {}\nMultiToken.prototype = {\n /**\n \tString representing the type for this token\n \t@property t\n \t@default 'token'\n */\n t: 'token',\n\n /**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n isLink: false,\n\n /**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {string}\n */\n toHref: function toHref() {\n return this.toString();\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n return {\n type: this.t,\n value: this.v,\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {(value: string, tokens: {t: string, v: string, s: number, e: number}) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n function Token(value, tokens) {\n this.t = type;\n this.v = value;\n this.tk = tokens;\n }\n\n inherits(MultiToken, Token, props);\n return Token;\n}\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MailtoEmail\n\t@extends MultiToken\n*/\n\nvar MailtoEmail = createTokenClass('email', {\n isLink: true\n});\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class Email\n\t@extends MultiToken\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n\t@class Text\n\t@extends MultiToken\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n\t@extends MultiToken\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n\t@extends MultiToken\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {string} protocol\n \t@return {string}\n */\n toHref: function toHref() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n var tokens = this.tk;\n var hasProtocol = false;\n var hasSlashSlash = false;\n var result = [];\n var i = 0; // Make the first part of the domain lowercase\n // Lowercase protocol\n\n while (tokens[i].t === PROTOCOL) {\n hasProtocol = true;\n result.push(tokens[i].v);\n i++;\n } // Skip slash-slash\n\n\n while (tokens[i].t === SLASH) {\n hasSlashSlash = true;\n result.push(tokens[i].v);\n i++;\n } // Continue pushing characters\n\n\n for (; i < tokens.length; i++) {\n result.push(tokens[i].v);\n }\n\n result = result.join('');\n\n if (!(hasProtocol || hasSlashSlash)) {\n result = \"\".concat(protocol, \"://\").concat(result);\n }\n\n return result;\n },\n hasProtocol: function hasProtocol() {\n return this.tk[0].t === PROTOCOL;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tMailtoEmail: MailtoEmail,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n/**\n * Generate the parser multi token-based state machine\n * @returns {State} the starting state\n */\n\nfunction init$1() {\n // The universal starting state.\n var S_START = makeState(); // Intermediate states for URLs. Note that domains that begin with a protocol\n // are treated slighly differently from those that don't.\n\n var S_PROTOCOL = makeState(); // e.g., 'http:'\n\n var S_MAILTO = makeState(); // 'mailto:'\n\n var S_PROTOCOL_SLASH = makeState(); // e.g., 'http:/''\n\n var S_PROTOCOL_SLASH_SLASH = makeState(); // e.g.,'http://'\n\n var S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\n\n var S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\n\n var S_TLD = makeAcceptingState(Url); // (A) Simplest possible URL with no query string\n\n var S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\n\n var S_TLD_PORT = makeAcceptingState(Url); // TLD followed by a port number\n\n var S_URL = makeAcceptingState(Url); // Long URL with optional port and maybe query string\n\n var S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n var S_URL_OPENBRACE = makeState(); // URL followed by {\n\n var S_URL_OPENBRACKET = makeState(); // URL followed by [\n\n var S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\n\n var S_URL_OPENPAREN = makeState(); // URL followed by (\n\n var S_URL_OPENBRACE_Q = makeAcceptingState(Url); // URL followed by { and some symbols that the URL can end it\n\n var S_URL_OPENBRACKET_Q = makeAcceptingState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var S_URL_OPENANGLEBRACKET_Q = makeAcceptingState(Url); // URL followed by < and some symbols that the URL can end it\n\n var S_URL_OPENPAREN_Q = makeAcceptingState(Url); // URL followed by ( and some symbols that the URL can end it\n\n var S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\n\n var S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\n\n var S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\n\n var S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\n\n var S_EMAIL = makeAcceptingState(Email); // (C) Possible email address (could have more tlds)\n\n var S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\n\n var S_EMAIL_PORT = makeAcceptingState(Email); // (C) Email address with a port\n\n var S_MAILTO_EMAIL = makeAcceptingState(MailtoEmail); // Email that begins with the mailto prefix (D)\n\n var S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\n\n var S_LOCALPART = makeState(); // Local part of the email address\n\n var S_LOCALPART_AT = makeState(); // Local part of the email address plus @\n\n var S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\n\n var S_NL = makeAcceptingState(Nl); // single new line\n // Make path from start to protocol (with '//')\n\n makeT(S_START, NL, S_NL);\n makeT(S_START, PROTOCOL, S_PROTOCOL);\n makeT(S_START, MAILTO, S_MAILTO);\n makeT(S_PROTOCOL, SLASH, S_PROTOCOL_SLASH);\n makeT(S_PROTOCOL_SLASH, SLASH, S_PROTOCOL_SLASH_SLASH); // The very first potential domain name\n\n makeT(S_START, TLD, S_DOMAIN);\n makeT(S_START, DOMAIN, S_DOMAIN);\n makeT(S_START, LOCALHOST, S_TLD);\n makeT(S_START, NUM, S_DOMAIN); // Force URL for protocol followed by anything sane\n\n makeT(S_PROTOCOL_SLASH_SLASH, TLD, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, DOMAIN, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, NUM, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, LOCALHOST, S_URL); // Account for dots and hyphens\n // hyphens are usually parts of domain names\n\n makeT(S_DOMAIN, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL_DOMAIN, DOT, S_EMAIL_DOMAIN_DOT); // Hyphen can jump back to a domain name\n // After the first domain and a dot, we can find either a URL or another domain\n\n makeT(S_DOMAIN_DOT, TLD, S_TLD);\n makeT(S_DOMAIN_DOT, DOMAIN, S_DOMAIN);\n makeT(S_DOMAIN_DOT, NUM, S_DOMAIN);\n makeT(S_DOMAIN_DOT, LOCALHOST, S_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, TLD, S_EMAIL);\n makeT(S_EMAIL_DOMAIN_DOT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, NUM, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, LOCALHOST, S_EMAIL_DOMAIN); // S_TLD accepts! But the URL could be longer, try to find a match greedily\n // The `run` function should be able to \"rollback\" to the accepting state\n\n makeT(S_TLD, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL, DOT, S_EMAIL_DOMAIN_DOT); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here PSS and non-PSS converge\n\n makeT(S_TLD, COLON, S_TLD_COLON);\n makeT(S_TLD, SLASH, S_URL);\n makeT(S_TLD_COLON, NUM, S_TLD_PORT);\n makeT(S_TLD_PORT, SLASH, S_URL);\n makeT(S_EMAIL, COLON, S_EMAIL_COLON);\n makeT(S_EMAIL_COLON, NUM, S_EMAIL_PORT); // Types of characters the URL can definitely end in\n\n var qsAccepting = [AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, DOMAIN, EQUALS, HYPHEN, LOCALHOST, NUM, PERCENT, PIPE, PLUS, POUND, PROTOCOL, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // These states are responsible primarily for determining whether or not to\n // include the final round bracket.\n // URL, followed by an opening bracket\n\n makeT(S_URL, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL, OPENPAREN, S_URL_OPENPAREN); // URL with extra symbols at the end, followed by an opening bracket\n\n makeT(S_URL_NON_ACCEPTING, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL_NON_ACCEPTING, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENPAREN, S_URL_OPENPAREN); // Closing bracket component. This character WILL be included in the URL\n\n makeT(S_URL_OPENBRACE, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_Q, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_Q, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_Q, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_Q, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_SYMS, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_SYMS, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_SYMS, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_SYMS, CLOSEPAREN, S_URL); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n // has a single opening bracket for some reason).\n\n makeMultiT(S_URL_OPENBRACE, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN, qsNonAccepting, S_URL_OPENPAREN_SYMS); // URL that begins with an opening bracket, followed by some symbols\n\n makeMultiT(S_URL_OPENBRACE_Q, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_Q, qsNonAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsNonAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsNonAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsNonAccepting, S_URL_OPENPAREN_SYMS); // Account for the query string\n\n makeMultiT(S_URL, qsAccepting, S_URL);\n makeMultiT(S_URL_NON_ACCEPTING, qsAccepting, S_URL);\n makeMultiT(S_URL, qsNonAccepting, S_URL_NON_ACCEPTING);\n makeMultiT(S_URL_NON_ACCEPTING, qsNonAccepting, S_URL_NON_ACCEPTING); // Email address-specific state definitions\n // Note: We are not allowing '/' in email addresses since this would interfere\n // with real URLs\n // For addresses with the mailto prefix\n // 'mailto:' followed by anything sane is a valid email\n\n makeT(S_MAILTO, TLD, S_MAILTO_EMAIL);\n makeT(S_MAILTO, DOMAIN, S_MAILTO_EMAIL);\n makeT(S_MAILTO, NUM, S_MAILTO_EMAIL);\n makeT(S_MAILTO, LOCALHOST, S_MAILTO_EMAIL); // Greedily get more potential valid email values\n\n makeMultiT(S_MAILTO_EMAIL, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING); // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, DOMAIN, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Some of the tokens in `localpartAccepting` are already accounted for here and\n // will not be overwritten (don't worry)\n\n makeMultiT(S_DOMAIN, localpartAccepting, S_LOCALPART);\n makeT(S_DOMAIN, AT, S_LOCALPART_AT);\n makeMultiT(S_TLD, localpartAccepting, S_LOCALPART);\n makeT(S_TLD, AT, S_LOCALPART_AT);\n makeMultiT(S_DOMAIN_DOT, localpartAccepting, S_LOCALPART); // Now in localpart of address\n // TODO: IP addresses and what if the email starts with numbers?\n\n makeMultiT(S_LOCALPART, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART, AT, S_LOCALPART_AT); // close to an email address now\n\n makeT(S_LOCALPART, DOT, S_LOCALPART_DOT);\n makeMultiT(S_LOCALPART_DOT, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART_AT, TLD, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, NUM, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, LOCALHOST, S_EMAIL); // States following `@` defined above\n\n return S_START;\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {{t: string, v: string, s: number, e: number}[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = takeT(state, tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || takeT(state, tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token\n // Add all the tokens we looked at to the text tokens array\n for (var i = cursor - multiLength; i < cursor; i++) {\n textTokens.push(tokens[i]);\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(parserCreateMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {Class<MultiToken>} Multi class to instantiate\n * @param {string} input original input string\n * @param {{t: string, v: string, s: number, e: number}[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction parserCreateMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.substr(startIdx, endIdx - startIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {}; // Side-effect initialization state\n\n\nvar INIT = {\n scanner: null,\n parser: null,\n pluginQueue: [],\n customProtocols: [],\n initialized: false\n};\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n INIT.scanner = null;\n INIT.parser = null;\n INIT.pluginQueue = [];\n INIT.customProtocols = [];\n INIT.initialized = false;\n}\n/**\n * Register a linkify extension plugin\n * @param {string} name of plugin to register\n * @param {Function} plugin function that accepts mutable linkify state\n */\n\nfunction registerPlugin(name, plugin) {\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\".concat(name, \"\\\" already registered - will be overwritten\"));\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\".concat(name, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all plugins before invoking linkify the first time.\"));\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything following\n * \"protocol:\" will be considered a link.\n * @param {string} protocol\n */\n\nfunction registerCustomProtocol(protocol) {\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom protocol \\\"\".concat(protocol, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all custom protocols before invoking linkify the first time.\"));\n }\n\n if (!/^[a-z-]+$/.test(protocol)) {\n throw Error('linkifyjs: protocols containing characters other than a-z or - (hyphen) are not supported');\n }\n\n INIT.customProtocols.push(protocol);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize state machines\n INIT.scanner = {\n start: init$2(INIT.customProtocols),\n tokens: text\n };\n INIT.parser = {\n start: init$1(),\n tokens: multi\n };\n var utils = {\n createTokenClass: createTokenClass\n }; // Initialize plugins\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser,\n utils: utils\n });\n }\n\n INIT.initialized = true;\n}\n/**\n\tParse a string into tokens that represent linkable and non-linkable sub-components\n\t@param {string} str\n\t@return {MultiToken[]} tokens\n*/\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n\tFind a list of linkable items in the given string.\n\t@param {string} str string to find links in\n\t@param {string} [type] (optional) only find links of a specific type, e.g.,\n\t'url' or 'email'\n*/\n\nfunction find(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toObject());\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { Options, find, init, options, registerCustomProtocol, registerPlugin, reset, test, tokenize };\n","import { Options, tokenize } from 'linkifyjs';\n\n/**\n\tConvert strings of text into linkable HTML text\n*/\n\nfunction escapeText(text) {\n return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n\nfunction escapeAttr(href) {\n return href.replace(/\"/g, '&quot;');\n}\n\nfunction attributesToString(attributes) {\n if (!attributes) {\n return '';\n }\n\n var result = [];\n\n for (var attr in attributes) {\n var val = attributes[attr] + '';\n result.push(\"\".concat(attr, \"=\\\"\").concat(escapeAttr(val), \"\\\"\"));\n }\n\n return result.join(' ');\n}\n/**\n * Convert a plan text string to an HTML string with links. Expects that the\n * given strings does not contain any HTML entities. Use the linkify-html\n * interface if you need to parse HTML entities.\n *\n * @param {string} str string to linkify\n * @param {object} [opts] overridable options\n * @returns {string}\n */\n\n\nfunction linkifyStr(str) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n opts = new Options(opts);\n var tokens = tokenize(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && opts.nl2br) {\n result.push('<br>\\n');\n continue;\n } else if (!token.isLink || !opts.check(token)) {\n result.push(escapeText(token.toString()));\n continue;\n }\n\n var _opts$resolve = opts.resolve(token),\n formatted = _opts$resolve.formatted,\n formattedHref = _opts$resolve.formattedHref,\n tagName = _opts$resolve.tagName,\n className = _opts$resolve.className,\n target = _opts$resolve.target,\n rel = _opts$resolve.rel,\n attributes = _opts$resolve.attributes;\n\n var link = [\"<\".concat(tagName, \" href=\\\"\").concat(escapeAttr(formattedHref), \"\\\"\")];\n\n if (className) {\n link.push(\" class=\\\"\".concat(escapeAttr(className), \"\\\"\"));\n }\n\n if (target) {\n link.push(\" target=\\\"\".concat(escapeAttr(target), \"\\\"\"));\n }\n\n if (rel) {\n link.push(\" rel=\\\"\".concat(escapeAttr(rel), \"\\\"\"));\n }\n\n if (attributes) {\n link.push(\" \".concat(attributesToString(attributes)));\n }\n\n link.push(\">\".concat(escapeText(formatted), \"</\").concat(tagName, \">\"));\n result.push(link.join(''));\n }\n\n return result.join('');\n}\n\nif (!String.prototype.linkify) {\n Object.defineProperty(String.prototype, 'linkify', {\n writable: false,\n value: function linkify(options) {\n return linkifyStr(this, options);\n }\n });\n}\n\nexport { linkifyStr as default };\n","<script lang=\"ts\">\n import type { EmbeddedFile } from \"../main\";\n import sanLink from 'linkify-string'\n\n export let files: EmbeddedFile[];\n\n let contents = files.map((e) => (e.data as Buffer).toString());\n</script>\n\n{#each contents as content}\n <div class=\"additionnal\">\n {@html sanLink(content)}\n </div>\n{/each}\n\n<style scoped>\n .additionnal {\n border-top: 2px dashed;\n clear: both;\n margin-top: 10px;\n padding-top: 10px;\n white-space: pre-wrap;\n }\n</style>\n"],"names":["undefined","init","Buffer","global","noop","run","text","strtok3.fromBuffer","strtok3.EndOfStreamError","Token.StringType","Token.UINT8","Token.INT32_BE","Token.UINT64_LE","Token.UINT16_BE","Token.UINT16_LE","Token.UINT32_BE","Token.UINT32_LE","byEbmlID","vint","require$$0","encode","decode","create_if_block","create_if_block_1","create_if_block_7","create_if_block_6","create_if_block_5","create_if_block_4","create_if_block_3","create_if_block_2","sanLink"],"mappings":"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CAAC,IAAI,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACzE,CAAC,IAAI,yBAAyB,GAAG;CACjC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;CAC1C,GAAG,IAAI,CAAC,IAA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CAAC,KAAK,EAAE,KAAK;CACb,CAAC,IAAI,EAAE,IAAI;CACX,CAAC,KAAK,EAAE,KAAK;CACb,CAAC,KAAK,EAAE,KAAK;CACb,CAAC,UAAU,EAAE,UAAU;CACvB,CAAC,GAAG,EAAE,GAAG;CACT,CAAC,CAAC,CAAC;AACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,IAAI,GAAG;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACf;CACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;AACA;CACA,IAAI,MAAM,GAAG,6qPAA6qP,CAAC;AAC3rP;CACA,IAAI,KAAK,GAAG,o9CAAo9C,CAAC;AACj+C;CACA,IAAI,eAAe,GAAG,QAAQ,CAAC;AAC/B;CACA,IAAI,KAAK,GAAG,IAAI,CAAC;CACjB,IAAI,KAAK,GAAG,IAAI,CAAC;CACjB;CACA;CACA;CACA;AACA;CACA,SAAS,MAAM,GAAG;CAClB,EAAE,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;CAC/F;CACA,EAAE,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;CAC5B,EAAE,IAAI,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;CACtC,EAAE,IAAI,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;CAC5C,EAAE,IAAI,eAAe,GAAG,SAAS,EAAE,CAAC;AACpC;CACA,EAAE,IAAI,IAAI,GAAG,kBAAkB,CA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}