From 84c81382fbffb4d09d5bfaa2dc927f02c7f0cedf Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Sun, 14 Aug 2022 16:31:36 +0200 Subject: [PATCH] chore: Update SDK and add webworker support for web --- .gitignore | 1 + .../settings_emotes/settings_emotes.dart | 7 +- lib/utils/client_manager.dart | 6 +- pubspec.lock | 2 +- pubspec.yaml | 2 +- web/native_executor.js | 33445 ++++++++++++++++ 6 files changed, 33457 insertions(+), 6 deletions(-) create mode 100644 web/native_executor.js diff --git a/.gitignore b/.gitignore index 2f82071e..66aa9a5d 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ ios/Podfile.lock /linux/out /macos/out .vs +assets/js/package/olm.js diff --git a/lib/pages/settings_emotes/settings_emotes.dart b/lib/pages/settings_emotes/settings_emotes.dart index 708edfa7..49a2aa5f 100644 --- a/lib/pages/settings_emotes/settings_emotes.dart +++ b/lib/pages/settings_emotes/settings_emotes.dart @@ -7,6 +7,7 @@ import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:matrix/matrix.dart'; import 'package:vrouter/vrouter.dart'; +import 'package:fluffychat/utils/client_manager.dart'; import '../../widgets/matrix.dart'; import 'settings_emotes_view.dart'; @@ -206,10 +207,10 @@ class EmotesSettingsController extends State { ); try { file = (await file.generateThumbnail( - compute: Matrix.of(context).client.runInBackground, + nativeImplementations: ClientManager.nativeImplementations, ))!; - } catch (_) { - // do nothing + } catch (e, s) { + Logs().w('Unable to create thumbnail', e, s); } final uploadResp = await showFutureLoadingDialog( context: context, diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart index af80a616..062d6dc0 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -83,6 +83,10 @@ abstract class ClientManager { await Store().setItem(clientNamespace, jsonEncode(clientNamesList)); } + static NativeImplementations get nativeImplementations => kIsWeb + ? NativeImplementationsWebWorker(Uri.parse('native_executor.js')) + : NativeImplementationsIsolate(compute); + static Client createClient(String clientName) { return Client( clientName, @@ -109,7 +113,7 @@ abstract class ClientManager { PlatformInfos.isMacOS) AuthenticationTypes.sso }, - compute: compute, + nativeImplementations: nativeImplementations, customImageResizer: PlatformInfos.isMobile ? customImageResizer : null, ); } diff --git a/pubspec.lock b/pubspec.lock index 5a693be5..3dfa787d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1063,7 +1063,7 @@ packages: name: matrix url: "https://pub.dartlang.org" source: hosted - version: "0.11.0" + version: "0.11.2" matrix_api_lite: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5f2c71f1..76b3d0d6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,7 +61,7 @@ dependencies: keyboard_shortcuts: ^0.1.4 localstorage: ^4.0.0+1 lottie: ^1.2.2 - matrix: ^0.11.0 + matrix: ^0.11.2 matrix_homeserver_recommendations: ^0.3.0 matrix_link_text: ^1.0.2 native_imaging: diff --git a/web/native_executor.js b/web/native_executor.js new file mode 100644 index 00000000..77b0b504 --- /dev/null +++ b/web/native_executor.js @@ -0,0 +1,33445 @@ +// Generated by dart2js (NullSafetyMode.sound, csp), the Dart to JavaScript compiler version: 2.17.6. +// The code supports the following hooks: +// dartPrint(message): +// if this function is defined it is called instead of the Dart [print] +// method. +// +// dartMainRunner(main, args): +// if this function is defined, the Dart [main] method will not be invoked +// directly. Instead, a closure that will invoke [main], and its arguments +// [args] is passed to [dartMainRunner]. +// +// dartDeferredLibraryLoader(uri, successCallback, errorCallback, loadId): +// if this function is defined, it will be called when a deferred library +// is loaded. It should load and eval the javascript of `uri`, and call +// successCallback. If it fails to do so, it should call errorCallback with +// an error. The loadId argument is the deferred import that resulted in +// this uri being loaded. +// +// dartCallInstrumentation(id, qualifiedName): +// if this function is defined, it will be called at each entry of a +// method or constructor. Used only when compiling programs with +// --experiment-call-instrumentation. +(function dartProgram() { + function copyProperties(from, to) { + var keys = Object.keys(from); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + to[key] = from[key]; + } + } + function mixinPropertiesHard(from, to) { + var keys = Object.keys(from); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!to.hasOwnProperty(key)) + to[key] = from[key]; + } + } + function mixinPropertiesEasy(from, to) { + Object.assign(to, from); + } + var supportsDirectProtoAccess = function() { + var cls = function() { + }; + cls.prototype = {p: {}}; + var object = new cls(); + if (!(object.__proto__ && object.__proto__.p === cls.prototype.p)) + return false; + try { + if (typeof navigator != "undefined" && typeof navigator.userAgent == "string" && navigator.userAgent.indexOf("Chrome/") >= 0) + return true; + if (typeof version == "function" && version.length == 0) { + var v = version(); + if (/^\d+\.\d+\.\d+\.\d+$/.test(v)) + return true; + } + } catch (_) { + } + return false; + }(); + function inherit(cls, sup) { + cls.prototype.constructor = cls; + cls.prototype["$is" + cls.name] = cls; + if (sup != null) { + if (supportsDirectProtoAccess) { + cls.prototype.__proto__ = sup.prototype; + return; + } + var clsPrototype = Object.create(sup.prototype); + copyProperties(cls.prototype, clsPrototype); + cls.prototype = clsPrototype; + } + } + function inheritMany(sup, classes) { + for (var i = 0; i < classes.length; i++) + inherit(classes[i], sup); + } + function mixinEasy(cls, mixin) { + mixinPropertiesEasy(mixin.prototype, cls.prototype); + cls.prototype.constructor = cls; + } + function mixinHard(cls, mixin) { + mixinPropertiesHard(mixin.prototype, cls.prototype); + cls.prototype.constructor = cls; + } + function lazyOld(holder, name, getterName, initializer) { + var uninitializedSentinel = holder; + holder[name] = uninitializedSentinel; + holder[getterName] = function() { + holder[getterName] = function() { + A.throwCyclicInit(name); + }; + var result; + var sentinelInProgress = initializer; + try { + if (holder[name] === uninitializedSentinel) { + result = holder[name] = sentinelInProgress; + result = holder[name] = initializer(); + } else + result = holder[name]; + } finally { + if (result === sentinelInProgress) + holder[name] = null; + holder[getterName] = function() { + return this[name]; + }; + } + return result; + }; + } + function lazy(holder, name, getterName, initializer) { + var uninitializedSentinel = holder; + holder[name] = uninitializedSentinel; + holder[getterName] = function() { + if (holder[name] === uninitializedSentinel) + holder[name] = initializer(); + holder[getterName] = function() { + return this[name]; + }; + return holder[name]; + }; + } + function lazyFinal(holder, name, getterName, initializer) { + var uninitializedSentinel = holder; + holder[name] = uninitializedSentinel; + holder[getterName] = function() { + if (holder[name] === uninitializedSentinel) { + var value = initializer(); + if (holder[name] !== uninitializedSentinel) + A.throwLateFieldADI(name); + holder[name] = value; + } + var finalValue = holder[name]; + holder[getterName] = function() { + return finalValue; + }; + return finalValue; + }; + } + function makeConstList(list) { + list.immutable$list = Array; + list.fixed$length = Array; + return list; + } + function convertToFastObject(properties) { + function t() { + } + t.prototype = properties; + new t(); + return properties; + } + function convertAllToFastObject(arrayOfObjects) { + for (var i = 0; i < arrayOfObjects.length; ++i) + convertToFastObject(arrayOfObjects[i]); + } + var functionCounter = 0; + function instanceTearOffGetter(isIntercepted, parameters) { + var cache = null; + return isIntercepted ? function(receiver) { + if (cache === null) + cache = A.closureFromTearOff(parameters); + return new cache(receiver, this); + } : function() { + if (cache === null) + cache = A.closureFromTearOff(parameters); + return new cache(this, null); + }; + } + function staticTearOffGetter(parameters) { + var cache = null; + return function() { + if (cache === null) + cache = A.closureFromTearOff(parameters).prototype; + return cache; + }; + } + var typesOffset = 0; + function tearOffParameters(container, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { + if (typeof funType == "number") + funType += typesOffset; + return {co: container, iS: isStatic, iI: isIntercepted, rC: requiredParameterCount, dV: optionalParameterDefaultValues, cs: callNames, fs: funsOrNames, fT: funType, aI: applyIndex || 0, nDA: needsDirectAccess}; + } + function installStaticTearOff(holder, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) { + var parameters = tearOffParameters(holder, true, false, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, false); + var getterFunction = staticTearOffGetter(parameters); + holder[getterName] = getterFunction; + } + function installInstanceTearOff(prototype, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { + isIntercepted = !!isIntercepted; + var parameters = tearOffParameters(prototype, false, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, !!needsDirectAccess); + var getterFunction = instanceTearOffGetter(isIntercepted, parameters); + prototype[getterName] = getterFunction; + } + function setOrUpdateInterceptorsByTag(newTags) { + var tags = init.interceptorsByTag; + if (!tags) { + init.interceptorsByTag = newTags; + return; + } + copyProperties(newTags, tags); + } + function setOrUpdateLeafTags(newTags) { + var tags = init.leafTags; + if (!tags) { + init.leafTags = newTags; + return; + } + copyProperties(newTags, tags); + } + function updateTypes(newTypes) { + var types = init.types; + var length = types.length; + types.push.apply(types, newTypes); + return length; + } + function updateHolder(holder, newHolder) { + copyProperties(newHolder, holder); + return holder; + } + var hunkHelpers = function() { + var mkInstance = function(isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) { + return function(container, getterName, name, funType) { + return installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex, false); + }; + }, + mkStatic = function(requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) { + return function(container, getterName, name, funType) { + return installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex); + }; + }; + return {inherit: inherit, inheritMany: inheritMany, mixin: mixinEasy, mixinHard: mixinHard, installStaticTearOff: installStaticTearOff, installInstanceTearOff: installInstanceTearOff, _instance_0u: mkInstance(0, 0, null, ["call$0"], 0), _instance_1u: mkInstance(0, 1, null, ["call$1"], 0), _instance_2u: mkInstance(0, 2, null, ["call$2"], 0), _instance_0i: mkInstance(1, 0, null, ["call$0"], 0), _instance_1i: mkInstance(1, 1, null, ["call$1"], 0), _instance_2i: mkInstance(1, 2, null, ["call$2"], 0), _static_0: mkStatic(0, null, ["call$0"], 0), _static_1: mkStatic(1, null, ["call$1"], 0), _static_2: mkStatic(2, null, ["call$2"], 0), makeConstList: makeConstList, lazy: lazy, lazyFinal: lazyFinal, lazyOld: lazyOld, updateHolder: updateHolder, convertToFastObject: convertToFastObject, updateTypes: updateTypes, setOrUpdateInterceptorsByTag: setOrUpdateInterceptorsByTag, setOrUpdateLeafTags: setOrUpdateLeafTags}; + }(); + function initializeDeferredHunk(hunk) { + typesOffset = init.types.length; + hunk(hunkHelpers, init, holders, $); + } + var A = {JS_CONST: function JS_CONST() { + }, + LateError$fieldNI(fieldName) { + return new A.LateError("Field '" + fieldName + "' has not been initialized."); + }, + SystemHash_combine(hash, value) { + hash = hash + value & 536870911; + hash = hash + ((hash & 524287) << 10) & 536870911; + return hash ^ hash >>> 6; + }, + SystemHash_finish(hash) { + hash = hash + ((hash & 67108863) << 3) & 536870911; + hash ^= hash >>> 11; + return hash + ((hash & 16383) << 15) & 536870911; + }, + checkNotNullable(value, $name, $T) { + return value; + }, + SubListIterable$(_iterable, _start, _endOrLength, $E) { + A.RangeError_checkNotNegative(_start, "start"); + if (_endOrLength != null) { + A.RangeError_checkNotNegative(_endOrLength, "end"); + if (_start > _endOrLength) + A.throwExpression(A.RangeError$range(_start, 0, _endOrLength, "start", null)); + } + return new A.SubListIterable(_iterable, _start, _endOrLength, $E._eval$1("SubListIterable<0>")); + }, + MappedIterable_MappedIterable(iterable, $function, $S, $T) { + if (type$.EfficientLengthIterable_dynamic._is(iterable)) + return new A.EfficientLengthMappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>")); + return new A.MappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("MappedIterable<1,2>")); + }, + IterableElementError_noElement() { + return new A.StateError("No element"); + }, + IterableElementError_tooFew() { + return new A.StateError("Too few elements"); + }, + LateError: function LateError(t0) { + this._message = t0; + }, + CodeUnits: function CodeUnits(t0) { + this._string = t0; + }, + SentinelValue: function SentinelValue() { + }, + EfficientLengthIterable: function EfficientLengthIterable() { + }, + ListIterable: function ListIterable() { + }, + SubListIterable: function SubListIterable(t0, t1, t2, t3) { + var _ = this; + _.__internal$_iterable = t0; + _._start = t1; + _._endOrLength = t2; + _.$ti = t3; + }, + ListIterator: function ListIterator(t0, t1, t2) { + var _ = this; + _.__internal$_iterable = t0; + _.__internal$_length = t1; + _.__internal$_index = 0; + _.__internal$_current = null; + _.$ti = t2; + }, + MappedIterable: function MappedIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + EfficientLengthMappedIterable: function EfficientLengthMappedIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + MappedIterator: function MappedIterator(t0, t1, t2) { + var _ = this; + _.__internal$_current = null; + _._iterator = t0; + _._f = t1; + _.$ti = t2; + }, + MappedListIterable: function MappedListIterable(t0, t1, t2) { + this._source = t0; + this._f = t1; + this.$ti = t2; + }, + EmptyIterable: function EmptyIterable(t0) { + this.$ti = t0; + }, + EmptyIterator: function EmptyIterator(t0) { + this.$ti = t0; + }, + WhereTypeIterable: function WhereTypeIterable(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + WhereTypeIterator: function WhereTypeIterator(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + FixedLengthListMixin: function FixedLengthListMixin() { + }, + UnmodifiableListMixin: function UnmodifiableListMixin() { + }, + UnmodifiableListBase: function UnmodifiableListBase() { + }, + Symbol: function Symbol(t0) { + this._name = t0; + }, + GeneralConstantMap__constantMapHashCode(key) { + if (typeof key == "number") + return B.JSNumber_methods.get$hashCode(key); + if (type$.Symbol._is(key)) + return key.get$hashCode(key); + if (type$.Type._is(key)) + return A.Primitives_objectHashCode(key); + return A.objectHashCode(key); + }, + GeneralConstantMap__typeTest($T) { + return new A.GeneralConstantMap__typeTest_closure($T); + }, + unminifyOrTag(rawClassName) { + var preserved = init.mangledGlobalNames[rawClassName]; + if (preserved != null) + return preserved; + return rawClassName; + }, + isJsIndexable(object, record) { + var result; + if (record != null) { + result = record.x; + if (result != null) + return result; + } + return type$.JavaScriptIndexingBehavior_dynamic._is(object); + }, + S(value) { + var result; + if (typeof value == "string") + return value; + if (typeof value == "number") { + if (value !== 0) + return "" + value; + } else if (true === value) + return "true"; + else if (false === value) + return "false"; + else if (value == null) + return "null"; + result = J.toString$0$(value); + return result; + }, + Primitives_objectHashCode(object) { + var hash, + property = $.Primitives__identityHashCodeProperty; + if (property == null) + property = $.Primitives__identityHashCodeProperty = Symbol("identityHashCode"); + hash = object[property]; + if (hash == null) { + hash = Math.random() * 0x3fffffff | 0; + object[property] = hash; + } + return hash; + }, + Primitives_objectTypeName(object) { + return A.Primitives__objectTypeNameNewRti(object); + }, + Primitives__objectTypeNameNewRti(object) { + var interceptor, dispatchName, t1, $constructor, constructorName; + if (object instanceof A.Object) + return A._rtiToString(A.instanceType(object), null); + interceptor = J.getInterceptor$(object); + if (interceptor === B.Interceptor_methods || interceptor === B.JavaScriptObject_methods || type$.UnknownJavaScriptObject._is(object)) { + dispatchName = B.C_JS_CONST(object); + t1 = dispatchName !== "Object" && dispatchName !== ""; + if (t1) + return dispatchName; + $constructor = object.constructor; + if (typeof $constructor == "function") { + constructorName = $constructor.name; + if (typeof constructorName == "string") + t1 = constructorName !== "Object" && constructorName !== ""; + else + t1 = false; + if (t1) + return constructorName; + } + } + return A._rtiToString(A.instanceType(object), null); + }, + Primitives__fromCharCodeApply(array) { + var result, i, i0, chunkEnd, + end = array.length; + if (end <= 500) + return String.fromCharCode.apply(null, array); + for (result = "", i = 0; i < end; i = i0) { + i0 = i + 500; + chunkEnd = i0 < end ? i0 : end; + result += String.fromCharCode.apply(null, array.slice(i, chunkEnd)); + } + return result; + }, + Primitives_stringFromCodePoints(codePoints) { + var t1, _i, i, + a = A._setArrayType([], type$.JSArray_int); + for (t1 = codePoints.length, _i = 0; _i < codePoints.length; codePoints.length === t1 || (0, A.throwConcurrentModificationError)(codePoints), ++_i) { + i = codePoints[_i]; + if (!A._isInt(i)) + throw A.wrapException(A.argumentErrorValue(i)); + if (i <= 65535) + B.JSArray_methods.add$1(a, i); + else if (i <= 1114111) { + B.JSArray_methods.add$1(a, 55296 + (B.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1023)); + B.JSArray_methods.add$1(a, 56320 + (i & 1023)); + } else + throw A.wrapException(A.argumentErrorValue(i)); + } + return A.Primitives__fromCharCodeApply(a); + }, + Primitives_stringFromCharCodes(charCodes) { + var t1, _i, i; + for (t1 = charCodes.length, _i = 0; _i < t1; ++_i) { + i = charCodes[_i]; + if (!A._isInt(i)) + throw A.wrapException(A.argumentErrorValue(i)); + if (i < 0) + throw A.wrapException(A.argumentErrorValue(i)); + if (i > 65535) + return A.Primitives_stringFromCodePoints(charCodes); + } + return A.Primitives__fromCharCodeApply(charCodes); + }, + Primitives_stringFromNativeUint8List(charCodes, start, end) { + var i, result, i0, chunkEnd; + if (end <= 500 && start === 0 && end === charCodes.length) + return String.fromCharCode.apply(null, charCodes); + for (i = start, result = ""; i < end; i = i0) { + i0 = i + 500; + chunkEnd = i0 < end ? i0 : end; + result += String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd)); + } + return result; + }, + Primitives_stringFromCharCode(charCode) { + var bits; + if (charCode <= 65535) + return String.fromCharCode(charCode); + if (charCode <= 1114111) { + bits = charCode - 65536; + return String.fromCharCode((B.JSInt_methods._shrOtherPositive$1(bits, 10) | 55296) >>> 0, bits & 1023 | 56320); + } + throw A.wrapException(A.RangeError$range(charCode, 0, 1114111, null, null)); + }, + Primitives_lazyAsJsDate(receiver) { + if (receiver.date === void 0) + receiver.date = new Date(receiver._core$_value); + return receiver.date; + }, + Primitives_getYear(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCFullYear() + 0 : A.Primitives_lazyAsJsDate(receiver).getFullYear() + 0; + }, + Primitives_getMonth(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCMonth() + 1 : A.Primitives_lazyAsJsDate(receiver).getMonth() + 1; + }, + Primitives_getDay(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCDate() + 0 : A.Primitives_lazyAsJsDate(receiver).getDate() + 0; + }, + Primitives_getHours(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCHours() + 0 : A.Primitives_lazyAsJsDate(receiver).getHours() + 0; + }, + Primitives_getMinutes(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCMinutes() + 0 : A.Primitives_lazyAsJsDate(receiver).getMinutes() + 0; + }, + Primitives_getSeconds(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCSeconds() + 0 : A.Primitives_lazyAsJsDate(receiver).getSeconds() + 0; + }, + Primitives_getMilliseconds(receiver) { + return receiver.isUtc ? A.Primitives_lazyAsJsDate(receiver).getUTCMilliseconds() + 0 : A.Primitives_lazyAsJsDate(receiver).getMilliseconds() + 0; + }, + Primitives_functionNoSuchMethod($function, positionalArguments, namedArguments) { + var $arguments, namedArgumentList, t1 = {}; + t1.argumentCount = 0; + $arguments = []; + namedArgumentList = []; + t1.argumentCount = positionalArguments.length; + B.JSArray_methods.addAll$1($arguments, positionalArguments); + t1.names = ""; + if (namedArguments != null && namedArguments._length !== 0) + namedArguments.forEach$1(0, new A.Primitives_functionNoSuchMethod_closure(t1, namedArgumentList, $arguments)); + return J.noSuchMethod$1$($function, new A.JSInvocationMirror(B.Symbol_call, 0, $arguments, namedArgumentList, 0)); + }, + Primitives_applyFunction($function, positionalArguments, namedArguments) { + var t1, argumentCount, jsStub; + if (Array.isArray(positionalArguments)) + t1 = namedArguments == null || namedArguments._length === 0; + else + t1 = false; + if (t1) { + argumentCount = positionalArguments.length; + if (argumentCount === 0) { + if (!!$function.call$0) + return $function.call$0(); + } else if (argumentCount === 1) { + if (!!$function.call$1) + return $function.call$1(positionalArguments[0]); + } else if (argumentCount === 2) { + if (!!$function.call$2) + return $function.call$2(positionalArguments[0], positionalArguments[1]); + } else if (argumentCount === 3) { + if (!!$function.call$3) + return $function.call$3(positionalArguments[0], positionalArguments[1], positionalArguments[2]); + } else if (argumentCount === 4) { + if (!!$function.call$4) + return $function.call$4(positionalArguments[0], positionalArguments[1], positionalArguments[2], positionalArguments[3]); + } else if (argumentCount === 5) + if (!!$function.call$5) + return $function.call$5(positionalArguments[0], positionalArguments[1], positionalArguments[2], positionalArguments[3], positionalArguments[4]); + jsStub = $function["call" + "$" + argumentCount]; + if (jsStub != null) + return jsStub.apply($function, positionalArguments); + } + return A.Primitives__generalApplyFunction($function, positionalArguments, namedArguments); + }, + Primitives__generalApplyFunction($function, positionalArguments, namedArguments) { + var defaultValuesClosure, t1, defaultValues, interceptor, jsFunction, maxArguments, missingDefaults, keys, _i, defaultValue, used, key, + $arguments = Array.isArray(positionalArguments) ? positionalArguments : A.List_List$of(positionalArguments, true, type$.dynamic), + argumentCount = $arguments.length, + requiredParameterCount = $function.$requiredArgCount; + if (argumentCount < requiredParameterCount) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + defaultValuesClosure = $function.$defaultValues; + t1 = defaultValuesClosure == null; + defaultValues = !t1 ? defaultValuesClosure() : null; + interceptor = J.getInterceptor$($function); + jsFunction = interceptor["call*"]; + if (typeof jsFunction == "string") + jsFunction = interceptor[jsFunction]; + if (t1) { + if (namedArguments != null && namedArguments._length !== 0) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + if (argumentCount === requiredParameterCount) + return jsFunction.apply($function, $arguments); + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + } + if (Array.isArray(defaultValues)) { + if (namedArguments != null && namedArguments._length !== 0) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + maxArguments = requiredParameterCount + defaultValues.length; + if (argumentCount > maxArguments) + return A.Primitives_functionNoSuchMethod($function, $arguments, null); + if (argumentCount < maxArguments) { + missingDefaults = defaultValues.slice(argumentCount - requiredParameterCount); + if ($arguments === positionalArguments) + $arguments = A.List_List$of($arguments, true, type$.dynamic); + B.JSArray_methods.addAll$1($arguments, missingDefaults); + } + return jsFunction.apply($function, $arguments); + } else { + if (argumentCount > requiredParameterCount) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + if ($arguments === positionalArguments) + $arguments = A.List_List$of($arguments, true, type$.dynamic); + keys = Object.keys(defaultValues); + if (namedArguments == null) + for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) { + defaultValue = defaultValues[A._asString(keys[_i])]; + if (B.C__Required === defaultValue) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + B.JSArray_methods.add$1($arguments, defaultValue); + } + else { + for (t1 = keys.length, used = 0, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) { + key = A._asString(keys[_i]); + if (namedArguments.containsKey$1(0, key)) { + ++used; + B.JSArray_methods.add$1($arguments, namedArguments.$index(0, key)); + } else { + defaultValue = defaultValues[key]; + if (B.C__Required === defaultValue) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + B.JSArray_methods.add$1($arguments, defaultValue); + } + } + if (used !== namedArguments._length) + return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments); + } + return jsFunction.apply($function, $arguments); + } + }, + iae(argument) { + throw A.wrapException(A.argumentErrorValue(argument)); + }, + ioore(receiver, index) { + if (receiver == null) + J.get$length$asx(receiver); + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + }, + diagnoseIndexError(indexable, index) { + var $length, _s5_ = "index", _null = null; + if (!A._isInt(index)) + return new A.ArgumentError(true, index, _s5_, _null); + $length = A._asInt(J.get$length$asx(indexable)); + if (index < 0 || index >= $length) + return A.IndexError$(index, indexable, _s5_, _null, $length); + return new A.RangeError(_null, _null, true, index, _s5_, "Value not in range"); + }, + diagnoseRangeError(start, end, $length) { + if (start < 0 || start > $length) + return A.RangeError$range(start, 0, $length, "start", null); + if (end != null) + if (end < start || end > $length) + return A.RangeError$range(end, start, $length, "end", null); + return new A.ArgumentError(true, end, "end", null); + }, + argumentErrorValue(object) { + return new A.ArgumentError(true, object, null, null); + }, + wrapException(ex) { + var wrapper, t1; + if (ex == null) + ex = new A.NullThrownError(); + wrapper = new Error(); + wrapper.dartException = ex; + t1 = A.toStringWrapper; + if ("defineProperty" in Object) { + Object.defineProperty(wrapper, "message", {get: t1}); + wrapper.name = ""; + } else + wrapper.toString = t1; + return wrapper; + }, + toStringWrapper() { + return J.toString$0$(this.dartException); + }, + throwExpression(ex) { + throw A.wrapException(ex); + }, + throwConcurrentModificationError(collection) { + throw A.wrapException(A.ConcurrentModificationError$(collection)); + }, + TypeErrorDecoder_extractPattern(message) { + var match, $arguments, argumentsExpr, expr, method, receiver; + message = A.quoteStringForRegExp(message.replace(String({}), "$receiver$")); + match = message.match(/\\\$[a-zA-Z]+\\\$/g); + if (match == null) + match = A._setArrayType([], type$.JSArray_String); + $arguments = match.indexOf("\\$arguments\\$"); + argumentsExpr = match.indexOf("\\$argumentsExpr\\$"); + expr = match.indexOf("\\$expr\\$"); + method = match.indexOf("\\$method\\$"); + receiver = match.indexOf("\\$receiver\\$"); + return new A.TypeErrorDecoder(message.replace(new RegExp("\\\\\\$arguments\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$", "g"), "((?:x|[^x])*)"), $arguments, argumentsExpr, expr, method, receiver); + }, + TypeErrorDecoder_provokeCallErrorOn(expression) { + return function($expr$) { + var $argumentsExpr$ = "$arguments$"; + try { + $expr$.$method$($argumentsExpr$); + } catch (e) { + return e.message; + } + }(expression); + }, + TypeErrorDecoder_provokePropertyErrorOn(expression) { + return function($expr$) { + try { + $expr$.$method$; + } catch (e) { + return e.message; + } + }(expression); + }, + JsNoSuchMethodError$(_message, match) { + var t1 = match == null, + t2 = t1 ? null : match.method; + return new A.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver); + }, + unwrapException(ex) { + var t1; + if (ex == null) + return new A.NullThrownFromJavaScriptException(ex); + if (ex instanceof A.ExceptionAndStackTrace) { + t1 = ex.dartException; + return A.saveStackTrace(ex, t1 == null ? type$.Object._as(t1) : t1); + } + if (typeof ex !== "object") + return ex; + if ("dartException" in ex) + return A.saveStackTrace(ex, ex.dartException); + return A._unwrapNonDartException(ex); + }, + saveStackTrace(ex, error) { + if (type$.Error._is(error)) + if (error.$thrownJsError == null) + error.$thrownJsError = ex; + return error; + }, + _unwrapNonDartException(ex) { + var message, number, ieErrorCode, t1, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match, _null = null; + if (!("message" in ex)) + return ex; + message = ex.message; + if ("number" in ex && typeof ex.number == "number") { + number = ex.number; + ieErrorCode = number & 65535; + if ((B.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10) + switch (ieErrorCode) { + case 438: + return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A.S(message) + " (Error " + ieErrorCode + ")", _null)); + case 445: + case 5007: + t1 = A.S(message); + return A.saveStackTrace(ex, new A.NullError(t1 + " (Error " + ieErrorCode + ")", _null)); + } + } + if (ex instanceof TypeError) { + nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern(); + notClosure = $.$get$TypeErrorDecoder_notClosurePattern(); + nullCall = $.$get$TypeErrorDecoder_nullCallPattern(); + nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern(); + undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern(); + undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern(); + nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern(); + $.$get$TypeErrorDecoder_nullLiteralPropertyPattern(); + undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern(); + undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyPattern(); + match = nsme.matchTypeError$1(message); + if (match != null) + return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A._asString(message), match)); + else { + match = notClosure.matchTypeError$1(message); + if (match != null) { + match.method = "call"; + return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A._asString(message), match)); + } else { + match = nullCall.matchTypeError$1(message); + if (match == null) { + match = nullLiteralCall.matchTypeError$1(message); + if (match == null) { + match = undefCall.matchTypeError$1(message); + if (match == null) { + match = undefLiteralCall.matchTypeError$1(message); + if (match == null) { + match = nullProperty.matchTypeError$1(message); + if (match == null) { + match = nullLiteralCall.matchTypeError$1(message); + if (match == null) { + match = undefProperty.matchTypeError$1(message); + if (match == null) { + match = undefLiteralProperty.matchTypeError$1(message); + t1 = match != null; + } else + t1 = true; + } else + t1 = true; + } else + t1 = true; + } else + t1 = true; + } else + t1 = true; + } else + t1 = true; + } else + t1 = true; + if (t1) { + A._asString(message); + return A.saveStackTrace(ex, new A.NullError(message, match == null ? _null : match.method)); + } + } + } + return A.saveStackTrace(ex, new A.UnknownJsTypeError(typeof message == "string" ? message : "")); + } + if (ex instanceof RangeError) { + if (typeof message == "string" && message.indexOf("call stack") !== -1) + return new A.StackOverflowError(); + message = function(ex) { + try { + return String(ex); + } catch (e) { + } + return null; + }(ex); + return A.saveStackTrace(ex, new A.ArgumentError(false, _null, _null, typeof message == "string" ? message.replace(/^RangeError:\s*/, "") : message)); + } + if (typeof InternalError == "function" && ex instanceof InternalError) + if (typeof message == "string" && message === "too much recursion") + return new A.StackOverflowError(); + return ex; + }, + getTraceFromException(exception) { + var trace; + if (exception instanceof A.ExceptionAndStackTrace) + return exception.stackTrace; + if (exception == null) + return new A._StackTrace(exception); + trace = exception.$cachedTrace; + if (trace != null) + return trace; + return exception.$cachedTrace = new A._StackTrace(exception); + }, + objectHashCode(object) { + if (object == null || typeof object != "object") + return J.get$hashCode$(object); + else + return A.Primitives_objectHashCode(object); + }, + fillLiteralMap(keyValuePairs, result) { + var index, index0, index1, + $length = keyValuePairs.length; + for (index = 0; index < $length; index = index1) { + index0 = index + 1; + index1 = index0 + 1; + result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]); + } + return result; + }, + invokeClosure(closure, numberOfArguments, arg1, arg2, arg3, arg4) { + type$.Function._as(closure); + switch (A._asInt(numberOfArguments)) { + case 0: + return closure.call$0(); + case 1: + return closure.call$1(arg1); + case 2: + return closure.call$2(arg1, arg2); + case 3: + return closure.call$3(arg1, arg2, arg3); + case 4: + return closure.call$4(arg1, arg2, arg3, arg4); + } + throw A.wrapException(A.Exception_Exception("Unsupported number of arguments for wrapped closure")); + }, + convertDartClosureToJS(closure, arity) { + var $function = closure.$identity; + if (!!$function) + return $function; + $function = function(closure, arity, invoke) { + return function(a1, a2, a3, a4) { + return invoke(closure, arity, a1, a2, a3, a4); + }; + }(closure, arity, A.invokeClosure); + closure.$identity = $function; + return $function; + }, + Closure_fromTearOff(parameters) { + var $prototype, $constructor, t2, trampoline, applyTrampoline, i, stub, stub0, stubName, stubCallName, + container = parameters.co, + isStatic = parameters.iS, + isIntercepted = parameters.iI, + needsDirectAccess = parameters.nDA, + applyTrampolineIndex = parameters.aI, + funsOrNames = parameters.fs, + callNames = parameters.cs, + $name = funsOrNames[0], + callName = callNames[0], + $function = container[$name], + t1 = parameters.fT; + t1.toString; + $prototype = isStatic ? Object.create(new A.StaticClosure().constructor.prototype) : Object.create(new A.BoundClosure(null, null).constructor.prototype); + $prototype.$initialize = $prototype.constructor; + if (isStatic) + $constructor = function static_tear_off() { + this.$initialize(); + }; + else + $constructor = function tear_off(a, b) { + this.$initialize(a, b); + }; + $prototype.constructor = $constructor; + $constructor.prototype = $prototype; + $prototype.$_name = $name; + $prototype.$_target = $function; + t2 = !isStatic; + if (t2) + trampoline = A.Closure_forwardCallTo($name, $function, isIntercepted, needsDirectAccess); + else { + $prototype.$static_name = $name; + trampoline = $function; + } + $prototype.$signature = A.Closure__computeSignatureFunctionNewRti(t1, isStatic, isIntercepted); + $prototype[callName] = trampoline; + for (applyTrampoline = trampoline, i = 1; i < funsOrNames.length; ++i) { + stub = funsOrNames[i]; + if (typeof stub == "string") { + stub0 = container[stub]; + stubName = stub; + stub = stub0; + } else + stubName = ""; + stubCallName = callNames[i]; + if (stubCallName != null) { + if (t2) + stub = A.Closure_forwardCallTo(stubName, stub, isIntercepted, needsDirectAccess); + $prototype[stubCallName] = stub; + } + if (i === applyTrampolineIndex) + applyTrampoline = stub; + } + $prototype["call*"] = applyTrampoline; + $prototype.$requiredArgCount = parameters.rC; + $prototype.$defaultValues = parameters.dV; + return $constructor; + }, + Closure__computeSignatureFunctionNewRti(functionType, isStatic, isIntercepted) { + if (typeof functionType == "number") + return functionType; + if (typeof functionType == "string") { + if (isStatic) + throw A.wrapException("Cannot compute signature for static tearoff."); + return function(recipe, evalOnReceiver) { + return function() { + return evalOnReceiver(this, recipe); + }; + }(functionType, A.BoundClosure_evalRecipe); + } + throw A.wrapException("Error in functionType of tearoff"); + }, + Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function) { + var getReceiver = A.BoundClosure_receiverOf; + switch (needsDirectAccess ? -1 : arity) { + case 0: + return function(entry, receiverOf) { + return function() { + return receiverOf(this)[entry](); + }; + }(stubName, getReceiver); + case 1: + return function(entry, receiverOf) { + return function(a) { + return receiverOf(this)[entry](a); + }; + }(stubName, getReceiver); + case 2: + return function(entry, receiverOf) { + return function(a, b) { + return receiverOf(this)[entry](a, b); + }; + }(stubName, getReceiver); + case 3: + return function(entry, receiverOf) { + return function(a, b, c) { + return receiverOf(this)[entry](a, b, c); + }; + }(stubName, getReceiver); + case 4: + return function(entry, receiverOf) { + return function(a, b, c, d) { + return receiverOf(this)[entry](a, b, c, d); + }; + }(stubName, getReceiver); + case 5: + return function(entry, receiverOf) { + return function(a, b, c, d, e) { + return receiverOf(this)[entry](a, b, c, d, e); + }; + }(stubName, getReceiver); + default: + return function(f, receiverOf) { + return function() { + return f.apply(receiverOf(this), arguments); + }; + }($function, getReceiver); + } + }, + Closure_forwardCallTo(stubName, $function, isIntercepted, needsDirectAccess) { + var arity, t1; + if (isIntercepted) + return A.Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess); + arity = $function.length; + t1 = A.Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function); + return t1; + }, + Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function) { + var getReceiver = A.BoundClosure_receiverOf, + getInterceptor = A.BoundClosure_interceptorOf; + switch (needsDirectAccess ? -1 : arity) { + case 0: + throw A.wrapException(new A.RuntimeError("Intercepted function with no arguments.")); + case 1: + return function(entry, interceptorOf, receiverOf) { + return function() { + return interceptorOf(this)[entry](receiverOf(this)); + }; + }(stubName, getInterceptor, getReceiver); + case 2: + return function(entry, interceptorOf, receiverOf) { + return function(a) { + return interceptorOf(this)[entry](receiverOf(this), a); + }; + }(stubName, getInterceptor, getReceiver); + case 3: + return function(entry, interceptorOf, receiverOf) { + return function(a, b) { + return interceptorOf(this)[entry](receiverOf(this), a, b); + }; + }(stubName, getInterceptor, getReceiver); + case 4: + return function(entry, interceptorOf, receiverOf) { + return function(a, b, c) { + return interceptorOf(this)[entry](receiverOf(this), a, b, c); + }; + }(stubName, getInterceptor, getReceiver); + case 5: + return function(entry, interceptorOf, receiverOf) { + return function(a, b, c, d) { + return interceptorOf(this)[entry](receiverOf(this), a, b, c, d); + }; + }(stubName, getInterceptor, getReceiver); + case 6: + return function(entry, interceptorOf, receiverOf) { + return function(a, b, c, d, e) { + return interceptorOf(this)[entry](receiverOf(this), a, b, c, d, e); + }; + }(stubName, getInterceptor, getReceiver); + default: + return function(f, interceptorOf, receiverOf) { + return function() { + var a = [receiverOf(this)]; + Array.prototype.push.apply(a, arguments); + return f.apply(interceptorOf(this), a); + }; + }($function, getInterceptor, getReceiver); + } + }, + Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess) { + var arity, t1; + if ($.BoundClosure__interceptorFieldNameCache == null) + $.BoundClosure__interceptorFieldNameCache = A.BoundClosure__computeFieldNamed("interceptor"); + if ($.BoundClosure__receiverFieldNameCache == null) + $.BoundClosure__receiverFieldNameCache = A.BoundClosure__computeFieldNamed("receiver"); + arity = $function.length; + t1 = A.Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function); + return t1; + }, + closureFromTearOff(parameters) { + return A.Closure_fromTearOff(parameters); + }, + BoundClosure_evalRecipe(closure, recipe) { + return A._Universe_evalInEnvironment(init.typeUniverse, A.instanceType(closure._receiver), recipe); + }, + BoundClosure_receiverOf(closure) { + return closure._receiver; + }, + BoundClosure_interceptorOf(closure) { + return closure._interceptor; + }, + BoundClosure__computeFieldNamed(fieldName) { + var t1, i, $name, + template = new A.BoundClosure("receiver", "interceptor"), + names = J.JSArray_markFixedList(Object.getOwnPropertyNames(template), type$.nullable_Object); + for (t1 = names.length, i = 0; i < t1; ++i) { + $name = names[i]; + if (template[$name] === fieldName) + return $name; + } + throw A.wrapException(A.ArgumentError$("Field name " + fieldName + " not found.", null)); + }, + boolConversionCheck(value) { + if (value == null) + A.assertThrow("boolean expression must not be null"); + return value; + }, + assertThrow(message) { + throw A.wrapException(new A._AssertionError(message)); + }, + throwCyclicInit(staticName) { + throw A.wrapException(new A.CyclicInitializationError(staticName)); + }, + getIsolateAffinityTag($name) { + return init.getIsolateTag($name); + }, + LinkedHashMapKeyIterator$(_map, _modifications, $E) { + var t1 = new A.LinkedHashMapKeyIterator(_map, _modifications, $E._eval$1("LinkedHashMapKeyIterator<0>")); + t1._cell = _map._first; + return t1; + }, + defineProperty(obj, property, value) { + Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true}); + }, + lookupAndCacheInterceptor(obj) { + var interceptor, interceptorClass, altTag, mark, t1, + tag = A._asString($.getTagFunction.call$1(obj)), + record = $.dispatchRecordsForInstanceTags[tag]; + if (record != null) { + Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + return record.i; + } + interceptor = $.interceptorsForUncacheableTags[tag]; + if (interceptor != null) + return interceptor; + interceptorClass = init.interceptorsByTag[tag]; + if (interceptorClass == null) { + altTag = A._asStringQ($.alternateTagFunction.call$2(obj, tag)); + if (altTag != null) { + record = $.dispatchRecordsForInstanceTags[altTag]; + if (record != null) { + Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + return record.i; + } + interceptor = $.interceptorsForUncacheableTags[altTag]; + if (interceptor != null) + return interceptor; + interceptorClass = init.interceptorsByTag[altTag]; + tag = altTag; + } + } + if (interceptorClass == null) + return null; + interceptor = interceptorClass.prototype; + mark = tag[0]; + if (mark === "!") { + record = A.makeLeafDispatchRecord(interceptor); + $.dispatchRecordsForInstanceTags[tag] = record; + Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + return record.i; + } + if (mark === "~") { + $.interceptorsForUncacheableTags[tag] = interceptor; + return interceptor; + } + if (mark === "-") { + t1 = A.makeLeafDispatchRecord(interceptor); + Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); + return t1.i; + } + if (mark === "+") + return A.patchInteriorProto(obj, interceptor); + if (mark === "*") + throw A.wrapException(A.UnimplementedError$(tag)); + if (init.leafTags[tag] === true) { + t1 = A.makeLeafDispatchRecord(interceptor); + Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); + return t1.i; + } else + return A.patchInteriorProto(obj, interceptor); + }, + patchInteriorProto(obj, interceptor) { + var proto = Object.getPrototypeOf(obj); + Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDispatchRecord(interceptor, proto, null, null), enumerable: false, writable: true, configurable: true}); + return interceptor; + }, + makeLeafDispatchRecord(interceptor) { + return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); + }, + makeDefaultDispatchRecord(tag, interceptorClass, proto) { + var interceptor = interceptorClass.prototype; + if (init.leafTags[tag] === true) + return A.makeLeafDispatchRecord(interceptor); + else + return J.makeDispatchRecord(interceptor, proto, null, null); + }, + initNativeDispatch() { + if (true === $.initNativeDispatchFlag) + return; + $.initNativeDispatchFlag = true; + A.initNativeDispatchContinue(); + }, + initNativeDispatchContinue() { + var map, tags, fun, i, tag, proto, record, interceptorClass; + $.dispatchRecordsForInstanceTags = Object.create(null); + $.interceptorsForUncacheableTags = Object.create(null); + A.initHooks(); + map = init.interceptorsByTag; + tags = Object.getOwnPropertyNames(map); + if (typeof window != "undefined") { + window; + fun = function() { + }; + for (i = 0; i < tags.length; ++i) { + tag = tags[i]; + proto = $.prototypeForTagFunction.call$1(tag); + if (proto != null) { + record = A.makeDefaultDispatchRecord(tag, map[tag], proto); + if (record != null) { + Object.defineProperty(proto, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + fun.prototype = proto; + } + } + } + } + for (i = 0; i < tags.length; ++i) { + tag = tags[i]; + if (/^[A-Za-z_]/.test(tag)) { + interceptorClass = map[tag]; + map["!" + tag] = interceptorClass; + map["~" + tag] = interceptorClass; + map["-" + tag] = interceptorClass; + map["+" + tag] = interceptorClass; + map["*" + tag] = interceptorClass; + } + } + }, + initHooks() { + var transformers, i, transformer, getTag, getUnknownTag, prototypeForTag, + hooks = B.C_JS_CONST0(); + hooks = A.applyHooksTransformer(B.C_JS_CONST1, A.applyHooksTransformer(B.C_JS_CONST2, A.applyHooksTransformer(B.C_JS_CONST3, A.applyHooksTransformer(B.C_JS_CONST3, A.applyHooksTransformer(B.C_JS_CONST4, A.applyHooksTransformer(B.C_JS_CONST5, A.applyHooksTransformer(B.C_JS_CONST6(B.C_JS_CONST), hooks))))))); + if (typeof dartNativeDispatchHooksTransformer != "undefined") { + transformers = dartNativeDispatchHooksTransformer; + if (typeof transformers == "function") + transformers = [transformers]; + if (transformers.constructor == Array) + for (i = 0; i < transformers.length; ++i) { + transformer = transformers[i]; + if (typeof transformer == "function") + hooks = transformer(hooks) || hooks; + } + } + getTag = hooks.getTag; + getUnknownTag = hooks.getUnknownTag; + prototypeForTag = hooks.prototypeForTag; + $.getTagFunction = new A.initHooks_closure(getTag); + $.alternateTagFunction = new A.initHooks_closure0(getUnknownTag); + $.prototypeForTagFunction = new A.initHooks_closure1(prototypeForTag); + }, + applyHooksTransformer(transformer, hooks) { + return transformer(hooks) || hooks; + }, + quoteStringForRegExp(string) { + if (/[[\]{}()*+?.\\^$|]/.test(string)) + return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&"); + return string; + }, + ConstantMapView: function ConstantMapView(t0, t1) { + this._collection$_map = t0; + this.$ti = t1; + }, + ConstantMap: function ConstantMap() { + }, + ConstantStringMap: function ConstantStringMap(t0, t1, t2, t3) { + var _ = this; + _._length = t0; + _._jsObject = t1; + _._keys = t2; + _.$ti = t3; + }, + _ConstantMapKeyIterable: function _ConstantMapKeyIterable(t0, t1) { + this._map = t0; + this.$ti = t1; + }, + GeneralConstantMap: function GeneralConstantMap(t0, t1) { + this._jsData = t0; + this.$ti = t1; + }, + GeneralConstantMap__typeTest_closure: function GeneralConstantMap__typeTest_closure(t0) { + this.T = t0; + }, + Instantiation: function Instantiation() { + }, + Instantiation1: function Instantiation1(t0, t1) { + this._genericClosure = t0; + this.$ti = t1; + }, + JSInvocationMirror: function JSInvocationMirror(t0, t1, t2, t3, t4) { + var _ = this; + _._memberName = t0; + _.__js_helper$_kind = t1; + _._arguments = t2; + _._namedArgumentNames = t3; + _._typeArgumentCount = t4; + }, + Primitives_functionNoSuchMethod_closure: function Primitives_functionNoSuchMethod_closure(t0, t1, t2) { + this._box_0 = t0; + this.namedArgumentList = t1; + this.$arguments = t2; + }, + TypeErrorDecoder: function TypeErrorDecoder(t0, t1, t2, t3, t4, t5) { + var _ = this; + _._pattern = t0; + _._arguments = t1; + _._argumentsExpr = t2; + _._expr = t3; + _._method = t4; + _._receiver = t5; + }, + NullError: function NullError(t0, t1) { + this.__js_helper$_message = t0; + this._method = t1; + }, + JsNoSuchMethodError: function JsNoSuchMethodError(t0, t1, t2) { + this.__js_helper$_message = t0; + this._method = t1; + this._receiver = t2; + }, + UnknownJsTypeError: function UnknownJsTypeError(t0) { + this.__js_helper$_message = t0; + }, + NullThrownFromJavaScriptException: function NullThrownFromJavaScriptException(t0) { + this._irritant = t0; + }, + ExceptionAndStackTrace: function ExceptionAndStackTrace(t0, t1) { + this.dartException = t0; + this.stackTrace = t1; + }, + _StackTrace: function _StackTrace(t0) { + this._exception = t0; + this._trace = null; + }, + Closure: function Closure() { + }, + Closure0Args: function Closure0Args() { + }, + Closure2Args: function Closure2Args() { + }, + TearOffClosure: function TearOffClosure() { + }, + StaticClosure: function StaticClosure() { + }, + BoundClosure: function BoundClosure(t0, t1) { + this._receiver = t0; + this._interceptor = t1; + }, + RuntimeError: function RuntimeError(t0) { + this.message = t0; + }, + _AssertionError: function _AssertionError(t0) { + this.message = t0; + }, + _Required: function _Required() { + }, + JsLinkedHashMap: function JsLinkedHashMap(t0) { + var _ = this; + _._length = 0; + _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null; + _._modifications = 0; + _.$ti = t0; + }, + JsLinkedHashMap_values_closure: function JsLinkedHashMap_values_closure(t0) { + this.$this = t0; + }, + LinkedHashMapCell: function LinkedHashMapCell(t0, t1) { + this.hashMapCellKey = t0; + this.hashMapCellValue = t1; + this._next = null; + }, + LinkedHashMapKeyIterable: function LinkedHashMapKeyIterable(t0, t1) { + this._map = t0; + this.$ti = t1; + }, + LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2) { + var _ = this; + _._map = t0; + _._modifications = t1; + _.__js_helper$_current = _._cell = null; + _.$ti = t2; + }, + initHooks_closure: function initHooks_closure(t0) { + this.getTag = t0; + }, + initHooks_closure0: function initHooks_closure0(t0) { + this.getUnknownTag = t0; + }, + initHooks_closure1: function initHooks_closure1(t0) { + this.prototypeForTag = t0; + }, + throwLateFieldADI(fieldName) { + return A.throwExpression(new A.LateError("Field '" + fieldName + "' has been assigned during initialization.")); + }, + _Cell$named(_name) { + var t1 = new A._Cell(_name); + return t1._value = t1; + }, + _lateReadCheck(value, $name) { + if (value === $) + throw A.wrapException(A.LateError$fieldNI($name)); + return value; + }, + _Cell: function _Cell(t0) { + this.__late_helper$_name = t0; + this._value = null; + }, + _checkViewArguments(buffer, offsetInBytes, $length) { + }, + _ensureNativeList(list) { + return list; + }, + NativeFloat32List_NativeFloat32List($length) { + return new Float32Array($length); + }, + NativeFloat32List_NativeFloat32List$view(buffer, offsetInBytes, $length) { + A._checkViewArguments(buffer, offsetInBytes, $length); + $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - offsetInBytes, 4); + return new Float32Array(buffer, offsetInBytes, $length); + }, + NativeInt32List_NativeInt32List($length) { + return new Int32Array($length); + }, + NativeInt8List_NativeInt8List($length) { + return new Int8Array($length); + }, + NativeUint16List_NativeUint16List($length) { + return new Uint16Array($length); + }, + NativeUint32List_NativeUint32List($length) { + return new Uint32Array($length); + }, + NativeUint32List_NativeUint32List$view(buffer, offsetInBytes, $length) { + A._checkViewArguments(buffer, offsetInBytes, $length); + $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - offsetInBytes, 4); + return new Uint32Array(buffer, offsetInBytes, $length); + }, + NativeUint8List_NativeUint8List($length) { + return new Uint8Array($length); + }, + NativeUint8List_NativeUint8List$view(buffer, offsetInBytes, $length) { + A._checkViewArguments(buffer, offsetInBytes, $length); + return $length == null ? new Uint8Array(buffer, offsetInBytes) : new Uint8Array(buffer, offsetInBytes, $length); + }, + _checkValidIndex(index, list, $length) { + if (index >>> 0 !== index || index >= $length) + throw A.wrapException(A.diagnoseIndexError(list, index)); + }, + _checkValidRange(start, end, $length) { + var t1; + if (!(start >>> 0 !== start)) + if (end == null) + t1 = start > $length; + else + t1 = end >>> 0 !== end || start > end || end > $length; + else + t1 = true; + if (t1) + throw A.wrapException(A.diagnoseRangeError(start, end, $length)); + if (end == null) + return $length; + return end; + }, + NativeTypedData: function NativeTypedData() { + }, + NativeTypedArray: function NativeTypedArray() { + }, + NativeTypedArrayOfDouble: function NativeTypedArrayOfDouble() { + }, + NativeTypedArrayOfInt: function NativeTypedArrayOfInt() { + }, + NativeFloat32List: function NativeFloat32List() { + }, + NativeFloat64List: function NativeFloat64List() { + }, + NativeInt16List: function NativeInt16List() { + }, + NativeInt32List: function NativeInt32List() { + }, + NativeInt8List: function NativeInt8List() { + }, + NativeUint16List: function NativeUint16List() { + }, + NativeUint32List: function NativeUint32List() { + }, + NativeUint8ClampedList: function NativeUint8ClampedList() { + }, + NativeUint8List: function NativeUint8List() { + }, + _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin() { + }, + _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin() { + }, + _NativeTypedArrayOfInt_NativeTypedArray_ListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin() { + }, + _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin() { + }, + Rti__getQuestionFromStar(universe, rti) { + var question = rti._precomputed1; + return question == null ? rti._precomputed1 = A._Universe__lookupQuestionRti(universe, rti._primary, true) : question; + }, + Rti__getFutureFromFutureOr(universe, rti) { + var future = rti._precomputed1; + return future == null ? rti._precomputed1 = A._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future; + }, + Rti__isUnionOfFunctionType(rti) { + var kind = rti._kind; + if (kind === 6 || kind === 7 || kind === 8) + return A.Rti__isUnionOfFunctionType(rti._primary); + return kind === 11 || kind === 12; + }, + Rti__getCanonicalRecipe(rti) { + return rti._canonicalRecipe; + }, + findType(recipe) { + return A._Universe_eval(init.typeUniverse, recipe, false); + }, + instantiatedGenericFunctionType(genericFunctionRti, instantiationRti) { + var t1, cache, key, probe, rti; + if (genericFunctionRti == null) + return null; + t1 = instantiationRti._rest; + cache = genericFunctionRti._bindCache; + if (cache == null) + cache = genericFunctionRti._bindCache = new Map(); + key = instantiationRti._canonicalRecipe; + probe = cache.get(key); + if (probe != null) + return probe; + rti = A._substitute(init.typeUniverse, genericFunctionRti._primary, t1, 0); + cache.set(key, rti); + return rti; + }, + _substitute(universe, rti, typeArguments, depth) { + var baseType, substitutedBaseType, interfaceTypeArguments, substitutedInterfaceTypeArguments, base, substitutedBase, $arguments, substitutedArguments, returnType, substitutedReturnType, functionParameters, substitutedFunctionParameters, bounds, substitutedBounds, index, argument, + kind = rti._kind; + switch (kind) { + case 5: + case 1: + case 2: + case 3: + case 4: + return rti; + case 6: + baseType = rti._primary; + substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); + if (substitutedBaseType === baseType) + return rti; + return A._Universe__lookupStarRti(universe, substitutedBaseType, true); + case 7: + baseType = rti._primary; + substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); + if (substitutedBaseType === baseType) + return rti; + return A._Universe__lookupQuestionRti(universe, substitutedBaseType, true); + case 8: + baseType = rti._primary; + substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); + if (substitutedBaseType === baseType) + return rti; + return A._Universe__lookupFutureOrRti(universe, substitutedBaseType, true); + case 9: + interfaceTypeArguments = rti._rest; + substitutedInterfaceTypeArguments = A._substituteArray(universe, interfaceTypeArguments, typeArguments, depth); + if (substitutedInterfaceTypeArguments === interfaceTypeArguments) + return rti; + return A._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments); + case 10: + base = rti._primary; + substitutedBase = A._substitute(universe, base, typeArguments, depth); + $arguments = rti._rest; + substitutedArguments = A._substituteArray(universe, $arguments, typeArguments, depth); + if (substitutedBase === base && substitutedArguments === $arguments) + return rti; + return A._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments); + case 11: + returnType = rti._primary; + substitutedReturnType = A._substitute(universe, returnType, typeArguments, depth); + functionParameters = rti._rest; + substitutedFunctionParameters = A._substituteFunctionParameters(universe, functionParameters, typeArguments, depth); + if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters) + return rti; + return A._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters); + case 12: + bounds = rti._rest; + depth += bounds.length; + substitutedBounds = A._substituteArray(universe, bounds, typeArguments, depth); + base = rti._primary; + substitutedBase = A._substitute(universe, base, typeArguments, depth); + if (substitutedBounds === bounds && substitutedBase === base) + return rti; + return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true); + case 13: + index = rti._primary; + if (index < depth) + return rti; + argument = typeArguments[index - depth]; + if (argument == null) + return rti; + return argument; + default: + throw A.wrapException(A.AssertionError$("Attempted to substitute unexpected RTI kind " + kind)); + } + }, + _substituteArray(universe, rtiArray, typeArguments, depth) { + var changed, i, rti, substitutedRti, + $length = rtiArray.length, + result = A._Utils_newArrayOrEmpty($length); + for (changed = false, i = 0; i < $length; ++i) { + rti = rtiArray[i]; + substitutedRti = A._substitute(universe, rti, typeArguments, depth); + if (substitutedRti !== rti) + changed = true; + result[i] = substitutedRti; + } + return changed ? result : rtiArray; + }, + _substituteNamed(universe, namedArray, typeArguments, depth) { + var changed, i, t1, t2, rti, substitutedRti, + $length = namedArray.length, + result = A._Utils_newArrayOrEmpty($length); + for (changed = false, i = 0; i < $length; i += 3) { + t1 = namedArray[i]; + t2 = namedArray[i + 1]; + rti = namedArray[i + 2]; + substitutedRti = A._substitute(universe, rti, typeArguments, depth); + if (substitutedRti !== rti) + changed = true; + result.splice(i, 3, t1, t2, substitutedRti); + } + return changed ? result : namedArray; + }, + _substituteFunctionParameters(universe, functionParameters, typeArguments, depth) { + var result, + requiredPositional = functionParameters._requiredPositional, + substitutedRequiredPositional = A._substituteArray(universe, requiredPositional, typeArguments, depth), + optionalPositional = functionParameters._optionalPositional, + substitutedOptionalPositional = A._substituteArray(universe, optionalPositional, typeArguments, depth), + named = functionParameters._named, + substitutedNamed = A._substituteNamed(universe, named, typeArguments, depth); + if (substitutedRequiredPositional === requiredPositional && substitutedOptionalPositional === optionalPositional && substitutedNamed === named) + return functionParameters; + result = new A._FunctionParameters(); + result._requiredPositional = substitutedRequiredPositional; + result._optionalPositional = substitutedOptionalPositional; + result._named = substitutedNamed; + return result; + }, + _setArrayType(target, rti) { + target[init.arrayRti] = rti; + return target; + }, + closureFunctionType(closure) { + var signature = closure.$signature; + if (signature != null) { + if (typeof signature == "number") + return A.getTypeFromTypesTable(signature); + return closure.$signature(); + } + return null; + }, + instanceOrFunctionType(object, testRti) { + var rti; + if (A.Rti__isUnionOfFunctionType(testRti)) + if (object instanceof A.Closure) { + rti = A.closureFunctionType(object); + if (rti != null) + return rti; + } + return A.instanceType(object); + }, + instanceType(object) { + var rti; + if (object instanceof A.Object) { + rti = object.$ti; + return rti != null ? rti : A._instanceTypeFromConstructor(object); + } + if (Array.isArray(object)) + return A._arrayInstanceType(object); + return A._instanceTypeFromConstructor(J.getInterceptor$(object)); + }, + _arrayInstanceType(object) { + var rti = object[init.arrayRti], + defaultRti = type$.JSArray_dynamic; + if (rti == null) + return defaultRti; + if (rti.constructor !== defaultRti.constructor) + return defaultRti; + return rti; + }, + _instanceType(object) { + var rti = object.$ti; + return rti != null ? rti : A._instanceTypeFromConstructor(object); + }, + _instanceTypeFromConstructor(instance) { + var $constructor = instance.constructor, + probe = $constructor.$ccache; + if (probe != null) + return probe; + return A._instanceTypeFromConstructorMiss(instance, $constructor); + }, + _instanceTypeFromConstructorMiss(instance, $constructor) { + var effectiveConstructor = instance instanceof A.Closure ? instance.__proto__.__proto__.constructor : $constructor, + rti = A._Universe_findErasedType(init.typeUniverse, effectiveConstructor.name); + $constructor.$ccache = rti; + return rti; + }, + getTypeFromTypesTable(index) { + var rti, + table = init.types, + type = table[index]; + if (typeof type == "string") { + rti = A._Universe_eval(init.typeUniverse, type, false); + table[index] = rti; + return rti; + } + return type; + }, + getRuntimeType(object) { + var rti = object instanceof A.Closure ? A.closureFunctionType(object) : null; + return A.createRuntimeType(rti == null ? A.instanceType(object) : rti); + }, + createRuntimeType(rti) { + var recipe, starErasedRecipe, starErasedRti, + type = rti._cachedRuntimeType; + if (type != null) + return type; + recipe = rti._canonicalRecipe; + starErasedRecipe = recipe.replace(/\*/g, ""); + if (starErasedRecipe === recipe) + return rti._cachedRuntimeType = new A._Type(rti); + starErasedRti = A._Universe_eval(init.typeUniverse, starErasedRecipe, true); + type = starErasedRti._cachedRuntimeType; + return rti._cachedRuntimeType = type == null ? starErasedRti._cachedRuntimeType = new A._Type(starErasedRti) : type; + }, + typeLiteral(recipe) { + return A.createRuntimeType(A._Universe_eval(init.typeUniverse, recipe, false)); + }, + _installSpecializedIsTest(object) { + var t1, unstarred, isFn, $name, testRti = this; + if (testRti === type$.Object) + return A._finishIsFn(testRti, object, A._isObject); + if (!A.isStrongTopType(testRti)) + if (!(testRti === type$.legacy_Object)) + t1 = false; + else + t1 = true; + else + t1 = true; + if (t1) + return A._finishIsFn(testRti, object, A._isTop); + t1 = testRti._kind; + unstarred = t1 === 6 ? testRti._primary : testRti; + if (unstarred === type$.int) + isFn = A._isInt; + else if (unstarred === type$.double || unstarred === type$.num) + isFn = A._isNum; + else if (unstarred === type$.String) + isFn = A._isString; + else + isFn = unstarred === type$.bool ? A._isBool : null; + if (isFn != null) + return A._finishIsFn(testRti, object, isFn); + if (unstarred._kind === 9) { + $name = unstarred._primary; + if (unstarred._rest.every(A.isTopType)) { + testRti._specializedTestResource = "$is" + $name; + if ($name === "List") + return A._finishIsFn(testRti, object, A._isListTestViaProperty); + return A._finishIsFn(testRti, object, A._isTestViaProperty); + } + } else if (t1 === 7) + return A._finishIsFn(testRti, object, A._generalNullableIsTestImplementation); + return A._finishIsFn(testRti, object, A._generalIsTestImplementation); + }, + _finishIsFn(testRti, object, isFn) { + testRti._is = isFn; + return testRti._is(object); + }, + _installSpecializedAsCheck(object) { + var t1, testRti = this, + asFn = A._generalAsCheckImplementation; + if (!A.isStrongTopType(testRti)) + if (!(testRti === type$.legacy_Object)) + t1 = false; + else + t1 = true; + else + t1 = true; + if (t1) + asFn = A._asTop; + else if (testRti === type$.Object) + asFn = A._asObject; + else { + t1 = A.isNullable(testRti); + if (t1) + asFn = A._generalNullableAsCheckImplementation; + } + testRti._as = asFn; + return testRti._as(object); + }, + _nullIs(testRti) { + var t1, + kind = testRti._kind; + if (!A.isStrongTopType(testRti)) + if (!(testRti === type$.legacy_Object)) + if (!(testRti === type$.legacy_Never)) + if (kind !== 7) + t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull; + else + t1 = true; + else + t1 = true; + else + t1 = true; + else + t1 = true; + return t1; + }, + _generalIsTestImplementation(object) { + var testRti = this; + if (object == null) + return A._nullIs(testRti); + return A._isSubtype(init.typeUniverse, A.instanceOrFunctionType(object, testRti), null, testRti, null); + }, + _generalNullableIsTestImplementation(object) { + if (object == null) + return true; + return this._primary._is(object); + }, + _isTestViaProperty(object) { + var tag, testRti = this; + if (object == null) + return A._nullIs(testRti); + tag = testRti._specializedTestResource; + if (object instanceof A.Object) + return !!object[tag]; + return !!J.getInterceptor$(object)[tag]; + }, + _isListTestViaProperty(object) { + var tag, testRti = this; + if (object == null) + return A._nullIs(testRti); + if (typeof object != "object") + return false; + if (Array.isArray(object)) + return true; + tag = testRti._specializedTestResource; + if (object instanceof A.Object) + return !!object[tag]; + return !!J.getInterceptor$(object)[tag]; + }, + _generalAsCheckImplementation(object) { + var t1, testRti = this; + if (object == null) { + t1 = A.isNullable(testRti); + if (t1) + return object; + } else if (testRti._is(object)) + return object; + A._failedAsCheck(object, testRti); + }, + _generalNullableAsCheckImplementation(object) { + var testRti = this; + if (object == null) + return object; + else if (testRti._is(object)) + return object; + A._failedAsCheck(object, testRti); + }, + _failedAsCheck(object, testRti) { + throw A.wrapException(A._TypeError$fromMessage(A._Error_compose(object, A.instanceOrFunctionType(object, testRti), A._rtiToString(testRti, null)))); + }, + checkTypeBound(type, bound, variable, methodName) { + var _null = null; + if (A._isSubtype(init.typeUniverse, type, _null, bound, _null)) + return type; + throw A.wrapException(A._TypeError$fromMessage("The type argument '" + A._rtiToString(type, _null) + "' is not a subtype of the type variable bound '" + A._rtiToString(bound, _null) + "' of type variable '" + variable + "' in '" + methodName + "'.")); + }, + _Error_compose(object, objectRti, checkedTypeDescription) { + var objectDescription = A.Error_safeToString(object); + return objectDescription + ": type '" + A._rtiToString(objectRti == null ? A.instanceType(object) : objectRti, null) + "' is not a subtype of type '" + checkedTypeDescription + "'"; + }, + _TypeError$fromMessage(message) { + return new A._TypeError("TypeError: " + message); + }, + _TypeError__TypeError$forType(object, type) { + return new A._TypeError("TypeError: " + A._Error_compose(object, null, type)); + }, + _isObject(object) { + return object != null; + }, + _asObject(object) { + if (object != null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "Object")); + }, + _isTop(object) { + return true; + }, + _asTop(object) { + return object; + }, + _isBool(object) { + return true === object || false === object; + }, + _asBool(object) { + if (true === object) + return true; + if (false === object) + return false; + throw A.wrapException(A._TypeError__TypeError$forType(object, "bool")); + }, + _asBoolS(object) { + if (true === object) + return true; + if (false === object) + return false; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "bool")); + }, + _asBoolQ(object) { + if (true === object) + return true; + if (false === object) + return false; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "bool?")); + }, + _asDouble(object) { + if (typeof object == "number") + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "double")); + }, + _asDoubleS(object) { + if (typeof object == "number") + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "double")); + }, + _asDoubleQ(object) { + if (typeof object == "number") + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "double?")); + }, + _isInt(object) { + return typeof object == "number" && Math.floor(object) === object; + }, + _asInt(object) { + if (typeof object == "number" && Math.floor(object) === object) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "int")); + }, + _asIntS(object) { + if (typeof object == "number" && Math.floor(object) === object) + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "int")); + }, + _asIntQ(object) { + if (typeof object == "number" && Math.floor(object) === object) + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "int?")); + }, + _isNum(object) { + return typeof object == "number"; + }, + _asNum(object) { + if (typeof object == "number") + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "num")); + }, + _asNumS(object) { + if (typeof object == "number") + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "num")); + }, + _asNumQ(object) { + if (typeof object == "number") + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "num?")); + }, + _isString(object) { + return typeof object == "string"; + }, + _asString(object) { + if (typeof object == "string") + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "String")); + }, + _asStringS(object) { + if (typeof object == "string") + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "String")); + }, + _asStringQ(object) { + if (typeof object == "string") + return object; + if (object == null) + return object; + throw A.wrapException(A._TypeError__TypeError$forType(object, "String?")); + }, + _rtiArrayToString(array, genericContext) { + var s, sep, i; + for (s = "", sep = "", i = 0; i < array.length; ++i, sep = ", ") + s += sep + A._rtiToString(array[i], genericContext); + return s; + }, + _functionRtiToString(functionType, genericContext, bounds) { + var boundsLength, outerContextLength, offset, i, t1, t2, typeParametersText, typeSep, t3, t4, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", "; + if (bounds != null) { + boundsLength = bounds.length; + if (genericContext == null) { + genericContext = A._setArrayType([], type$.JSArray_String); + outerContextLength = null; + } else + outerContextLength = genericContext.length; + offset = genericContext.length; + for (i = boundsLength; i > 0; --i) + B.JSArray_methods.add$1(genericContext, "T" + (offset + i)); + for (t1 = type$.nullable_Object, t2 = type$.legacy_Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) { + t3 = genericContext.length; + t4 = t3 - 1 - i; + if (!(t4 >= 0)) + return A.ioore(genericContext, t4); + typeParametersText = B.JSString_methods.$add(typeParametersText + typeSep, genericContext[t4]); + boundRti = bounds[i]; + kind = boundRti._kind; + if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1)) + if (!(boundRti === t2)) + t3 = false; + else + t3 = true; + else + t3 = true; + if (!t3) + typeParametersText += " extends " + A._rtiToString(boundRti, genericContext); + } + typeParametersText += ">"; + } else { + typeParametersText = ""; + outerContextLength = null; + } + t1 = functionType._primary; + parameters = functionType._rest; + requiredPositional = parameters._requiredPositional; + requiredPositionalLength = requiredPositional.length; + optionalPositional = parameters._optionalPositional; + optionalPositionalLength = optionalPositional.length; + named = parameters._named; + namedLength = named.length; + returnTypeText = A._rtiToString(t1, genericContext); + for (argumentsText = "", sep = "", i = 0; i < requiredPositionalLength; ++i, sep = _s2_) + argumentsText += sep + A._rtiToString(requiredPositional[i], genericContext); + if (optionalPositionalLength > 0) { + argumentsText += sep + "["; + for (sep = "", i = 0; i < optionalPositionalLength; ++i, sep = _s2_) + argumentsText += sep + A._rtiToString(optionalPositional[i], genericContext); + argumentsText += "]"; + } + if (namedLength > 0) { + argumentsText += sep + "{"; + for (sep = "", i = 0; i < namedLength; i += 3, sep = _s2_) { + argumentsText += sep; + if (named[i + 1]) + argumentsText += "required "; + argumentsText += A._rtiToString(named[i + 2], genericContext) + " " + named[i]; + } + argumentsText += "}"; + } + if (outerContextLength != null) { + genericContext.toString; + genericContext.length = outerContextLength; + } + return typeParametersText + "(" + argumentsText + ") => " + returnTypeText; + }, + _rtiToString(rti, genericContext) { + var s, questionArgument, argumentKind, $name, $arguments, t1, t2, + kind = rti._kind; + if (kind === 5) + return "erased"; + if (kind === 2) + return "dynamic"; + if (kind === 3) + return "void"; + if (kind === 1) + return "Never"; + if (kind === 4) + return "any"; + if (kind === 6) { + s = A._rtiToString(rti._primary, genericContext); + return s; + } + if (kind === 7) { + questionArgument = rti._primary; + s = A._rtiToString(questionArgument, genericContext); + argumentKind = questionArgument._kind; + return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?"; + } + if (kind === 8) + return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">"; + if (kind === 9) { + $name = A._unminifyOrTag(rti._primary); + $arguments = rti._rest; + return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name; + } + if (kind === 11) + return A._functionRtiToString(rti, genericContext, null); + if (kind === 12) + return A._functionRtiToString(rti._primary, genericContext, rti._rest); + if (kind === 13) { + t1 = rti._primary; + t2 = genericContext.length; + t1 = t2 - 1 - t1; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(genericContext, t1); + return genericContext[t1]; + } + return "?"; + }, + _unminifyOrTag(rawClassName) { + var preserved = init.mangledGlobalNames[rawClassName]; + if (preserved != null) + return preserved; + return rawClassName; + }, + _Universe_findRule(universe, targetType) { + var rule = universe.tR[targetType]; + for (; typeof rule == "string";) + rule = universe.tR[rule]; + return rule; + }, + _Universe_findErasedType(universe, cls) { + var $length, erased, $arguments, i, $interface, + t1 = universe.eT, + probe = t1[cls]; + if (probe == null) + return A._Universe_eval(universe, cls, false); + else if (typeof probe == "number") { + $length = probe; + erased = A._Universe__lookupTerminalRti(universe, 5, "#"); + $arguments = A._Utils_newArrayOrEmpty($length); + for (i = 0; i < $length; ++i) + $arguments[i] = erased; + $interface = A._Universe__lookupInterfaceRti(universe, cls, $arguments); + t1[cls] = $interface; + return $interface; + } else + return probe; + }, + _Universe_addRules(universe, rules) { + return A._Utils_objectAssign(universe.tR, rules); + }, + _Universe_addErasedTypes(universe, types) { + return A._Utils_objectAssign(universe.eT, types); + }, + _Universe_eval(universe, recipe, normalize) { + var rti, + t1 = universe.eC, + probe = t1.get(recipe); + if (probe != null) + return probe; + rti = A._Parser_parse(A._Parser_create(universe, null, recipe, normalize)); + t1.set(recipe, rti); + return rti; + }, + _Universe_evalInEnvironment(universe, environment, recipe) { + var probe, rti, + cache = environment._evalCache; + if (cache == null) + cache = environment._evalCache = new Map(); + probe = cache.get(recipe); + if (probe != null) + return probe; + rti = A._Parser_parse(A._Parser_create(universe, environment, recipe, true)); + cache.set(recipe, rti); + return rti; + }, + _Universe_bind(universe, environment, argumentsRti) { + var argumentsRecipe, probe, rti, + cache = environment._bindCache; + if (cache == null) + cache = environment._bindCache = new Map(); + argumentsRecipe = argumentsRti._canonicalRecipe; + probe = cache.get(argumentsRecipe); + if (probe != null) + return probe; + rti = A._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 10 ? argumentsRti._rest : [argumentsRti]); + cache.set(argumentsRecipe, rti); + return rti; + }, + _Universe__installTypeTests(universe, rti) { + rti._as = A._installSpecializedAsCheck; + rti._is = A._installSpecializedIsTest; + return rti; + }, + _Universe__lookupTerminalRti(universe, kind, key) { + var rti, t1, + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = kind; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupStarRti(universe, baseType, normalize) { + var t1, + key = baseType._canonicalRecipe + "*", + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createStarRti(universe, baseType, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createStarRti(universe, baseType, key, normalize) { + var baseKind, t1, rti; + if (normalize) { + baseKind = baseType._kind; + if (!A.isStrongTopType(baseType)) + t1 = baseType === type$.Null || baseType === type$.JSNull || baseKind === 7 || baseKind === 6; + else + t1 = true; + if (t1) + return baseType; + } + rti = new A.Rti(null, null); + rti._kind = 6; + rti._primary = baseType; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Universe__lookupQuestionRti(universe, baseType, normalize) { + var t1, + key = baseType._canonicalRecipe + "?", + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createQuestionRti(universe, baseType, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createQuestionRti(universe, baseType, key, normalize) { + var baseKind, t1, starArgument, rti; + if (normalize) { + baseKind = baseType._kind; + if (!A.isStrongTopType(baseType)) + if (!(baseType === type$.Null || baseType === type$.JSNull)) + if (baseKind !== 7) + t1 = baseKind === 8 && A.isNullable(baseType._primary); + else + t1 = true; + else + t1 = true; + else + t1 = true; + if (t1) + return baseType; + else if (baseKind === 1 || baseType === type$.legacy_Never) + return type$.Null; + else if (baseKind === 6) { + starArgument = baseType._primary; + if (starArgument._kind === 8 && A.isNullable(starArgument._primary)) + return starArgument; + else + return A.Rti__getQuestionFromStar(universe, baseType); + } + } + rti = new A.Rti(null, null); + rti._kind = 7; + rti._primary = baseType; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Universe__lookupFutureOrRti(universe, baseType, normalize) { + var t1, + key = baseType._canonicalRecipe + "/", + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createFutureOrRti(universe, baseType, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createFutureOrRti(universe, baseType, key, normalize) { + var t1, t2, rti; + if (normalize) { + t1 = baseType._kind; + if (!A.isStrongTopType(baseType)) + if (!(baseType === type$.legacy_Object)) + t2 = false; + else + t2 = true; + else + t2 = true; + if (t2 || baseType === type$.Object) + return baseType; + else if (t1 === 1) + return A._Universe__lookupInterfaceRti(universe, "Future", [baseType]); + else if (baseType === type$.Null || baseType === type$.JSNull) + return type$.nullable_Future_Null; + } + rti = new A.Rti(null, null); + rti._kind = 8; + rti._primary = baseType; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Universe__lookupGenericFunctionParameterRti(universe, index) { + var rti, t1, + key = "" + index + "^", + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 13; + rti._primary = index; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__canonicalRecipeJoin($arguments) { + var s, sep, i, + $length = $arguments.length; + for (s = "", sep = "", i = 0; i < $length; ++i, sep = ",") + s += sep + $arguments[i]._canonicalRecipe; + return s; + }, + _Universe__canonicalRecipeJoinNamed($arguments) { + var s, sep, i, t1, nameSep, + $length = $arguments.length; + for (s = "", sep = "", i = 0; i < $length; i += 3, sep = ",") { + t1 = $arguments[i]; + nameSep = $arguments[i + 1] ? "!" : ":"; + s += sep + t1 + nameSep + $arguments[i + 2]._canonicalRecipe; + } + return s; + }, + _Universe__lookupInterfaceRti(universe, $name, $arguments) { + var probe, rti, t1, + s = $name; + if ($arguments.length > 0) + s += "<" + A._Universe__canonicalRecipeJoin($arguments) + ">"; + probe = universe.eC.get(s); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 9; + rti._primary = $name; + rti._rest = $arguments; + if ($arguments.length > 0) + rti._precomputed1 = $arguments[0]; + rti._canonicalRecipe = s; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(s, t1); + return t1; + }, + _Universe__lookupBindingRti(universe, base, $arguments) { + var newBase, newArguments, key, probe, rti, t1; + if (base._kind === 10) { + newBase = base._primary; + newArguments = base._rest.concat($arguments); + } else { + newArguments = $arguments; + newBase = base; + } + key = newBase._canonicalRecipe + (";<" + A._Universe__canonicalRecipeJoin(newArguments) + ">"); + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 10; + rti._primary = newBase; + rti._rest = newArguments; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupFunctionRti(universe, returnType, parameters) { + var sep, key, probe, rti, t1, + s = returnType._canonicalRecipe, + requiredPositional = parameters._requiredPositional, + requiredPositionalLength = requiredPositional.length, + optionalPositional = parameters._optionalPositional, + optionalPositionalLength = optionalPositional.length, + named = parameters._named, + namedLength = named.length, + recipe = "(" + A._Universe__canonicalRecipeJoin(requiredPositional); + if (optionalPositionalLength > 0) { + sep = requiredPositionalLength > 0 ? "," : ""; + recipe += sep + "[" + A._Universe__canonicalRecipeJoin(optionalPositional) + "]"; + } + if (namedLength > 0) { + sep = requiredPositionalLength > 0 ? "," : ""; + recipe += sep + "{" + A._Universe__canonicalRecipeJoinNamed(named) + "}"; + } + key = s + (recipe + ")"); + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 11; + rti._primary = returnType; + rti._rest = parameters; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupGenericFunctionRti(universe, baseFunctionType, bounds, normalize) { + var t1, + key = baseFunctionType._canonicalRecipe + ("<" + A._Universe__canonicalRecipeJoin(bounds) + ">"), + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize) { + var $length, typeArguments, count, i, bound, substitutedBase, substitutedBounds, rti; + if (normalize) { + $length = bounds.length; + typeArguments = A._Utils_newArrayOrEmpty($length); + for (count = 0, i = 0; i < $length; ++i) { + bound = bounds[i]; + if (bound._kind === 1) { + typeArguments[i] = bound; + ++count; + } + } + if (count > 0) { + substitutedBase = A._substitute(universe, baseFunctionType, typeArguments, 0); + substitutedBounds = A._substituteArray(universe, bounds, typeArguments, 0); + return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, bounds !== substitutedBounds); + } + } + rti = new A.Rti(null, null); + rti._kind = 12; + rti._primary = baseFunctionType; + rti._rest = bounds; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Parser_create(universe, environment, recipe, normalize) { + return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize}; + }, + _Parser_parse(parser) { + var t2, i, ch, t3, array, head, base, parameters, optionalPositional, named, item, + source = parser.r, + t1 = parser.s; + for (t2 = source.length, i = 0; i < t2;) { + ch = source.charCodeAt(i); + if (ch >= 48 && ch <= 57) + i = A._Parser_handleDigit(i + 1, ch, source, t1); + else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36) + i = A._Parser_handleIdentifier(parser, i, source, t1, false); + else if (ch === 46) + i = A._Parser_handleIdentifier(parser, i, source, t1, true); + else { + ++i; + switch (ch) { + case 44: + break; + case 58: + t1.push(false); + break; + case 33: + t1.push(true); + break; + case 59: + t1.push(A._Parser_toType(parser.u, parser.e, t1.pop())); + break; + case 94: + t1.push(A._Universe__lookupGenericFunctionParameterRti(parser.u, t1.pop())); + break; + case 35: + t1.push(A._Universe__lookupTerminalRti(parser.u, 5, "#")); + break; + case 64: + t1.push(A._Universe__lookupTerminalRti(parser.u, 2, "@")); + break; + case 126: + t1.push(A._Universe__lookupTerminalRti(parser.u, 3, "~")); + break; + case 60: + t1.push(parser.p); + parser.p = t1.length; + break; + case 62: + t3 = parser.u; + array = t1.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = t1.pop(); + head = t1.pop(); + if (typeof head == "string") + t1.push(A._Universe__lookupInterfaceRti(t3, head, array)); + else { + base = A._Parser_toType(t3, parser.e, head); + switch (base._kind) { + case 11: + t1.push(A._Universe__lookupGenericFunctionRti(t3, base, array, parser.n)); + break; + default: + t1.push(A._Universe__lookupBindingRti(t3, base, array)); + break; + } + } + break; + case 38: + A._Parser_handleExtendedOperations(parser, t1); + break; + case 42: + t3 = parser.u; + t1.push(A._Universe__lookupStarRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); + break; + case 63: + t3 = parser.u; + t1.push(A._Universe__lookupQuestionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); + break; + case 47: + t3 = parser.u; + t1.push(A._Universe__lookupFutureOrRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); + break; + case 40: + t1.push(parser.p); + parser.p = t1.length; + break; + case 41: + t3 = parser.u; + parameters = new A._FunctionParameters(); + optionalPositional = t3.sEA; + named = t3.sEA; + head = t1.pop(); + if (typeof head == "number") + switch (head) { + case -1: + optionalPositional = t1.pop(); + break; + case -2: + named = t1.pop(); + break; + default: + t1.push(head); + break; + } + else + t1.push(head); + array = t1.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = t1.pop(); + parameters._requiredPositional = array; + parameters._optionalPositional = optionalPositional; + parameters._named = named; + t1.push(A._Universe__lookupFunctionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parameters)); + break; + case 91: + t1.push(parser.p); + parser.p = t1.length; + break; + case 93: + array = t1.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = t1.pop(); + t1.push(array); + t1.push(-1); + break; + case 123: + t1.push(parser.p); + parser.p = t1.length; + break; + case 125: + array = t1.splice(parser.p); + A._Parser_toTypesNamed(parser.u, parser.e, array); + parser.p = t1.pop(); + t1.push(array); + t1.push(-2); + break; + default: + throw "Bad character " + ch; + } + } + } + item = t1.pop(); + return A._Parser_toType(parser.u, parser.e, item); + }, + _Parser_handleDigit(i, digit, source, stack) { + var t1, ch, + value = digit - 48; + for (t1 = source.length; i < t1; ++i) { + ch = source.charCodeAt(i); + if (!(ch >= 48 && ch <= 57)) + break; + value = value * 10 + (ch - 48); + } + stack.push(value); + return i; + }, + _Parser_handleIdentifier(parser, start, source, stack, hasPeriod) { + var t1, ch, t2, string, environment, recipe, + i = start + 1; + for (t1 = source.length; i < t1; ++i) { + ch = source.charCodeAt(i); + if (ch === 46) { + if (hasPeriod) + break; + hasPeriod = true; + } else { + if (!((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36)) + t2 = ch >= 48 && ch <= 57; + else + t2 = true; + if (!t2) + break; + } + } + string = source.substring(start, i); + if (hasPeriod) { + t1 = parser.u; + environment = parser.e; + if (environment._kind === 10) + environment = environment._primary; + recipe = A._Universe_findRule(t1, environment._primary)[string]; + if (recipe == null) + A.throwExpression('No "' + string + '" in "' + A.Rti__getCanonicalRecipe(environment) + '"'); + stack.push(A._Universe_evalInEnvironment(t1, environment, recipe)); + } else + stack.push(string); + return i; + }, + _Parser_handleExtendedOperations(parser, stack) { + var $top = stack.pop(); + if (0 === $top) { + stack.push(A._Universe__lookupTerminalRti(parser.u, 1, "0&")); + return; + } + if (1 === $top) { + stack.push(A._Universe__lookupTerminalRti(parser.u, 4, "1&")); + return; + } + throw A.wrapException(A.AssertionError$("Unexpected extended operation " + A.S($top))); + }, + _Parser_toType(universe, environment, item) { + if (typeof item == "string") + return A._Universe__lookupInterfaceRti(universe, item, universe.sEA); + else if (typeof item == "number") + return A._Parser_indexToType(universe, environment, item); + else + return item; + }, + _Parser_toTypes(universe, environment, items) { + var i, + $length = items.length; + for (i = 0; i < $length; ++i) + items[i] = A._Parser_toType(universe, environment, items[i]); + }, + _Parser_toTypesNamed(universe, environment, items) { + var i, + $length = items.length; + for (i = 2; i < $length; i += 3) + items[i] = A._Parser_toType(universe, environment, items[i]); + }, + _Parser_indexToType(universe, environment, index) { + var typeArguments, len, + kind = environment._kind; + if (kind === 10) { + if (index === 0) + return environment._primary; + typeArguments = environment._rest; + len = typeArguments.length; + if (index <= len) + return typeArguments[index - 1]; + index -= len; + environment = environment._primary; + kind = environment._kind; + } else if (index === 0) + return environment; + if (kind !== 9) + throw A.wrapException(A.AssertionError$("Indexed base must be an interface type")); + typeArguments = environment._rest; + if (index <= typeArguments.length) + return typeArguments[index - 1]; + throw A.wrapException(A.AssertionError$("Bad index " + index + " for " + environment.toString$0(0))); + }, + _isSubtype(universe, s, sEnv, t, tEnv) { + var t1, sKind, leftTypeVariable, tKind, sBounds, tBounds, sLength, i, sBound, tBound; + if (s === t) + return true; + if (!A.isStrongTopType(t)) + if (!(t === type$.legacy_Object)) + t1 = false; + else + t1 = true; + else + t1 = true; + if (t1) + return true; + sKind = s._kind; + if (sKind === 4) + return true; + if (A.isStrongTopType(s)) + return false; + if (s._kind !== 1) + t1 = false; + else + t1 = true; + if (t1) + return true; + leftTypeVariable = sKind === 13; + if (leftTypeVariable) + if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv)) + return true; + tKind = t._kind; + t1 = s === type$.Null || s === type$.JSNull; + if (t1) { + if (tKind === 8) + return A._isSubtype(universe, s, sEnv, t._primary, tEnv); + return t === type$.Null || t === type$.JSNull || tKind === 7 || tKind === 6; + } + if (t === type$.Object) { + if (sKind === 8) + return A._isSubtype(universe, s._primary, sEnv, t, tEnv); + if (sKind === 6) + return A._isSubtype(universe, s._primary, sEnv, t, tEnv); + return sKind !== 7; + } + if (sKind === 6) + return A._isSubtype(universe, s._primary, sEnv, t, tEnv); + if (tKind === 6) { + t1 = A.Rti__getQuestionFromStar(universe, t); + return A._isSubtype(universe, s, sEnv, t1, tEnv); + } + if (sKind === 8) { + if (!A._isSubtype(universe, s._primary, sEnv, t, tEnv)) + return false; + return A._isSubtype(universe, A.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv); + } + if (sKind === 7) { + t1 = A._isSubtype(universe, type$.Null, sEnv, t, tEnv); + return t1 && A._isSubtype(universe, s._primary, sEnv, t, tEnv); + } + if (tKind === 8) { + if (A._isSubtype(universe, s, sEnv, t._primary, tEnv)) + return true; + return A._isSubtype(universe, s, sEnv, A.Rti__getFutureFromFutureOr(universe, t), tEnv); + } + if (tKind === 7) { + t1 = A._isSubtype(universe, s, sEnv, type$.Null, tEnv); + return t1 || A._isSubtype(universe, s, sEnv, t._primary, tEnv); + } + if (leftTypeVariable) + return false; + t1 = sKind !== 11; + if ((!t1 || sKind === 12) && t === type$.Function) + return true; + if (tKind === 12) { + if (s === type$.JavaScriptFunction) + return true; + if (sKind !== 12) + return false; + sBounds = s._rest; + tBounds = t._rest; + sLength = sBounds.length; + if (sLength !== tBounds.length) + return false; + sEnv = sEnv == null ? sBounds : sBounds.concat(sEnv); + tEnv = tEnv == null ? tBounds : tBounds.concat(tEnv); + for (i = 0; i < sLength; ++i) { + sBound = sBounds[i]; + tBound = tBounds[i]; + if (!A._isSubtype(universe, sBound, sEnv, tBound, tEnv) || !A._isSubtype(universe, tBound, tEnv, sBound, sEnv)) + return false; + } + return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv); + } + if (tKind === 11) { + if (s === type$.JavaScriptFunction) + return true; + if (t1) + return false; + return A._isFunctionSubtype(universe, s, sEnv, t, tEnv); + } + if (sKind === 9) { + if (tKind !== 9) + return false; + return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv); + } + return false; + }, + _isFunctionSubtype(universe, s, sEnv, t, tEnv) { + var sParameters, tParameters, sRequiredPositional, tRequiredPositional, sRequiredPositionalLength, tRequiredPositionalLength, requiredPositionalDelta, sOptionalPositional, tOptionalPositional, sOptionalPositionalLength, tOptionalPositionalLength, i, t1, sNamed, tNamed, sNamedLength, tNamedLength, sIndex, tIndex, tName, sName, sIsRequired; + if (!A._isSubtype(universe, s._primary, sEnv, t._primary, tEnv)) + return false; + sParameters = s._rest; + tParameters = t._rest; + sRequiredPositional = sParameters._requiredPositional; + tRequiredPositional = tParameters._requiredPositional; + sRequiredPositionalLength = sRequiredPositional.length; + tRequiredPositionalLength = tRequiredPositional.length; + if (sRequiredPositionalLength > tRequiredPositionalLength) + return false; + requiredPositionalDelta = tRequiredPositionalLength - sRequiredPositionalLength; + sOptionalPositional = sParameters._optionalPositional; + tOptionalPositional = tParameters._optionalPositional; + sOptionalPositionalLength = sOptionalPositional.length; + tOptionalPositionalLength = tOptionalPositional.length; + if (sRequiredPositionalLength + sOptionalPositionalLength < tRequiredPositionalLength + tOptionalPositionalLength) + return false; + for (i = 0; i < sRequiredPositionalLength; ++i) { + t1 = sRequiredPositional[i]; + if (!A._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv)) + return false; + } + for (i = 0; i < requiredPositionalDelta; ++i) { + t1 = sOptionalPositional[i]; + if (!A._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv)) + return false; + } + for (i = 0; i < tOptionalPositionalLength; ++i) { + t1 = sOptionalPositional[requiredPositionalDelta + i]; + if (!A._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv)) + return false; + } + sNamed = sParameters._named; + tNamed = tParameters._named; + sNamedLength = sNamed.length; + tNamedLength = tNamed.length; + for (sIndex = 0, tIndex = 0; tIndex < tNamedLength; tIndex += 3) { + tName = tNamed[tIndex]; + for (; true;) { + if (sIndex >= sNamedLength) + return false; + sName = sNamed[sIndex]; + sIndex += 3; + if (tName < sName) + return false; + sIsRequired = sNamed[sIndex - 2]; + if (sName < tName) { + if (sIsRequired) + return false; + continue; + } + t1 = tNamed[tIndex + 1]; + if (sIsRequired && !t1) + return false; + t1 = sNamed[sIndex - 1]; + if (!A._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv)) + return false; + break; + } + } + for (; sIndex < sNamedLength;) { + if (sNamed[sIndex + 1]) + return false; + sIndex += 3; + } + return true; + }, + _isInterfaceSubtype(universe, s, sEnv, t, tEnv) { + var rule, recipes, $length, supertypeArgs, i, t1, t2, + sName = s._primary, + tName = t._primary; + for (; sName !== tName;) { + rule = universe.tR[sName]; + if (rule == null) + return false; + if (typeof rule == "string") { + sName = rule; + continue; + } + recipes = rule[tName]; + if (recipes == null) + return false; + $length = recipes.length; + supertypeArgs = $length > 0 ? new Array($length) : init.typeUniverse.sEA; + for (i = 0; i < $length; ++i) + supertypeArgs[i] = A._Universe_evalInEnvironment(universe, s, recipes[i]); + return A._areArgumentsSubtypes(universe, supertypeArgs, null, sEnv, t._rest, tEnv); + } + t1 = s._rest; + t2 = t._rest; + return A._areArgumentsSubtypes(universe, t1, null, sEnv, t2, tEnv); + }, + _areArgumentsSubtypes(universe, sArgs, sVariances, sEnv, tArgs, tEnv) { + var i, t1, t2, + $length = sArgs.length; + for (i = 0; i < $length; ++i) { + t1 = sArgs[i]; + t2 = tArgs[i]; + if (!A._isSubtype(universe, t1, sEnv, t2, tEnv)) + return false; + } + return true; + }, + isNullable(t) { + var t1, + kind = t._kind; + if (!(t === type$.Null || t === type$.JSNull)) + if (!A.isStrongTopType(t)) + if (kind !== 7) + if (!(kind === 6 && A.isNullable(t._primary))) + t1 = kind === 8 && A.isNullable(t._primary); + else + t1 = true; + else + t1 = true; + else + t1 = true; + else + t1 = true; + return t1; + }, + isTopType(t) { + var t1; + if (!A.isStrongTopType(t)) + if (!(t === type$.legacy_Object)) + t1 = false; + else + t1 = true; + else + t1 = true; + return t1; + }, + isStrongTopType(t) { + var kind = t._kind; + return kind === 2 || kind === 3 || kind === 4 || kind === 5 || t === type$.nullable_Object; + }, + _Utils_objectAssign(o, other) { + var i, key, + keys = Object.keys(other), + $length = keys.length; + for (i = 0; i < $length; ++i) { + key = keys[i]; + o[key] = other[key]; + } + }, + _Utils_newArrayOrEmpty($length) { + return $length > 0 ? new Array($length) : init.typeUniverse.sEA; + }, + Rti: function Rti(t0, t1) { + var _ = this; + _._as = t0; + _._is = t1; + _._cachedRuntimeType = _._specializedTestResource = _._precomputed1 = null; + _._kind = 0; + _._canonicalRecipe = _._bindCache = _._evalCache = _._rest = _._primary = null; + }, + _FunctionParameters: function _FunctionParameters() { + this._named = this._optionalPositional = this._requiredPositional = null; + }, + _Type: function _Type(t0) { + this._rti = t0; + }, + _Error: function _Error() { + }, + _TypeError: function _TypeError(t0) { + this.__rti$_message = t0; + }, + _AsyncRun__initializeScheduleImmediate() { + var div, span, t1 = {}; + if (self.scheduleImmediate != null) + return A.async__AsyncRun__scheduleImmediateJsOverride$closure(); + if (self.MutationObserver != null && self.document != null) { + div = self.document.createElement("div"); + span = self.document.createElement("span"); + t1.storedCallback = null; + new self.MutationObserver(A.convertDartClosureToJS(new A._AsyncRun__initializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true}); + return new A._AsyncRun__initializeScheduleImmediate_closure(t1, div, span); + } else if (self.setImmediate != null) + return A.async__AsyncRun__scheduleImmediateWithSetImmediate$closure(); + return A.async__AsyncRun__scheduleImmediateWithTimer$closure(); + }, + _AsyncRun__scheduleImmediateJsOverride(callback) { + self.scheduleImmediate(A.convertDartClosureToJS(new A._AsyncRun__scheduleImmediateJsOverride_internalCallback(type$.void_Function._as(callback)), 0)); + }, + _AsyncRun__scheduleImmediateWithSetImmediate(callback) { + self.setImmediate(A.convertDartClosureToJS(new A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(type$.void_Function._as(callback)), 0)); + }, + _AsyncRun__scheduleImmediateWithTimer(callback) { + type$.void_Function._as(callback); + A._TimerImpl$(0, callback); + }, + _TimerImpl$(milliseconds, callback) { + var t1 = new A._TimerImpl(); + t1._TimerImpl$2(milliseconds, callback); + return t1; + }, + _makeAsyncAwaitCompleter($T) { + return new A._AsyncAwaitCompleter(new A._Future($.Zone__current, $T._eval$1("_Future<0>")), $T._eval$1("_AsyncAwaitCompleter<0>")); + }, + _asyncStartSync(bodyFunction, completer) { + bodyFunction.call$2(0, null); + completer.isSync = true; + return completer._future; + }, + _asyncAwait(object, bodyFunction) { + A._awaitOnObject(object, bodyFunction); + }, + _asyncReturn(object, completer) { + completer.complete$1(0, object); + }, + _asyncRethrow(object, completer) { + completer.completeError$2(A.unwrapException(object), A.getTraceFromException(object)); + }, + _awaitOnObject(object, bodyFunction) { + var t1, future, + thenCallback = new A._awaitOnObject_closure(bodyFunction), + errorCallback = new A._awaitOnObject_closure0(bodyFunction); + if (object instanceof A._Future) + object._thenAwait$1$2(thenCallback, errorCallback, type$.dynamic); + else { + t1 = type$.dynamic; + if (type$.Future_dynamic._is(object)) + object.then$1$2$onError(thenCallback, errorCallback, t1); + else { + future = new A._Future($.Zone__current, type$._Future_dynamic); + future._state = 8; + future._resultOrListeners = object; + future._thenAwait$1$2(thenCallback, errorCallback, t1); + } + } + }, + _wrapJsFunctionForAsync($function) { + var $protected = function(fn, ERROR) { + return function(errorCode, result) { + while (true) + try { + fn(errorCode, result); + break; + } catch (error) { + result = error; + errorCode = ERROR; + } + }; + }($function, 1); + return $.Zone__current.registerBinaryCallback$3$1(new A._wrapJsFunctionForAsync_closure($protected), type$.void, type$.int, type$.dynamic); + }, + _IterationMarker_yieldStar(values) { + return new A._IterationMarker(values, 1); + }, + _IterationMarker_endOfIteration() { + return B._IterationMarker_null_2; + }, + _IterationMarker_uncaughtError(error) { + return new A._IterationMarker(error, 3); + }, + _makeSyncStarIterable(body, $T) { + return new A._SyncStarIterable(body, $T._eval$1("_SyncStarIterable<0>")); + }, + AsyncError$(error, stackTrace) { + var t1 = A.checkNotNullable(error, "error", type$.Object); + return new A.AsyncError(t1, stackTrace == null ? A.AsyncError_defaultStackTrace(error) : stackTrace); + }, + AsyncError_defaultStackTrace(error) { + var stackTrace; + if (type$.Error._is(error)) { + stackTrace = error.get$stackTrace(); + if (stackTrace != null) + return stackTrace; + } + return B.C__StringStackTrace; + }, + _Future__chainCoreFuture(source, target) { + var t1, t2, listeners; + for (t1 = type$._Future_dynamic; t2 = source._state, (t2 & 4) !== 0;) + source = t1._as(source._resultOrListeners); + if ((t2 & 24) !== 0) { + listeners = target._removeListeners$0(); + target._cloneResult$1(source); + A._Future__propagateToListeners(target, listeners); + } else { + listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners); + target._state = target._state & 1 | 4; + target._resultOrListeners = source; + source._prependListeners$1(listeners); + } + }, + _Future__propagateToListeners(source, listeners) { + var t2, t3, t4, _box_0, t5, t6, hasError, asyncError, nextListener, nextListener0, sourceResult, t7, zone, oldZone, result, current, _box_1 = {}, + t1 = _box_1.source = source; + for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic, t4 = type$.Future_dynamic; true;) { + _box_0 = {}; + t5 = t1._state; + t6 = (t5 & 16) === 0; + hasError = !t6; + if (listeners == null) { + if (hasError && (t5 & 1) === 0) { + asyncError = t2._as(t1._resultOrListeners); + A._rootHandleError(asyncError.error, asyncError.stackTrace); + } + return; + } + _box_0.listener = listeners; + nextListener = listeners._nextListener; + for (t1 = listeners; nextListener != null; t1 = nextListener, nextListener = nextListener0) { + t1._nextListener = null; + A._Future__propagateToListeners(_box_1.source, t1); + _box_0.listener = nextListener; + nextListener0 = nextListener._nextListener; + } + t5 = _box_1.source; + sourceResult = t5._resultOrListeners; + _box_0.listenerHasError = hasError; + _box_0.listenerValueOrError = sourceResult; + if (t6) { + t7 = t1.state; + t7 = (t7 & 1) !== 0 || (t7 & 15) === 8; + } else + t7 = true; + if (t7) { + zone = t1.result._zone; + if (hasError) { + t5 = t5._zone === zone; + t5 = !(t5 || t5); + } else + t5 = false; + if (t5) { + t2._as(sourceResult); + A._rootHandleError(sourceResult.error, sourceResult.stackTrace); + return; + } + oldZone = $.Zone__current; + if (oldZone !== zone) + $.Zone__current = zone; + else + oldZone = null; + t1 = t1.state; + if ((t1 & 15) === 8) + new A._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0(); + else if (t6) { + if ((t1 & 1) !== 0) + new A._Future__propagateToListeners_handleValueCallback(_box_0, sourceResult).call$0(); + } else if ((t1 & 2) !== 0) + new A._Future__propagateToListeners_handleError(_box_1, _box_0).call$0(); + if (oldZone != null) + $.Zone__current = oldZone; + t1 = _box_0.listenerValueOrError; + if (t4._is(t1)) { + t5 = _box_0.listener.$ti; + t5 = t5._eval$1("Future<2>")._is(t1) || !t5._rest[1]._is(t1); + } else + t5 = false; + if (t5) { + t4._as(t1); + result = _box_0.listener.result; + if ((t1._state & 24) !== 0) { + current = t3._as(result._resultOrListeners); + result._resultOrListeners = null; + listeners = result._reverseListeners$1(current); + result._state = t1._state & 30 | result._state & 1; + result._resultOrListeners = t1._resultOrListeners; + _box_1.source = t1; + continue; + } else + A._Future__chainCoreFuture(t1, result); + return; + } + } + result = _box_0.listener.result; + current = t3._as(result._resultOrListeners); + result._resultOrListeners = null; + listeners = result._reverseListeners$1(current); + t1 = _box_0.listenerHasError; + t5 = _box_0.listenerValueOrError; + if (!t1) { + result.$ti._precomputed1._as(t5); + result._state = 8; + result._resultOrListeners = t5; + } else { + t2._as(t5); + result._state = result._state & 1 | 16; + result._resultOrListeners = t5; + } + _box_1.source = result; + t1 = result; + } + }, + _registerErrorHandler(errorHandler, zone) { + var t1; + if (type$.dynamic_Function_Object_StackTrace._is(errorHandler)) + return zone.registerBinaryCallback$3$1(errorHandler, type$.dynamic, type$.Object, type$.StackTrace); + t1 = type$.dynamic_Function_Object; + if (t1._is(errorHandler)) + return t1._as(errorHandler); + throw A.wrapException(A.ArgumentError$value(errorHandler, "onError", string$.Error_)); + }, + _microtaskLoop() { + var entry, next; + for (entry = $._nextCallback; entry != null; entry = $._nextCallback) { + $._lastPriorityCallback = null; + next = entry.next; + $._nextCallback = next; + if (next == null) + $._lastCallback = null; + entry.callback.call$0(); + } + }, + _startMicrotaskLoop() { + $._isInCallbackLoop = true; + try { + A._microtaskLoop(); + } finally { + $._lastPriorityCallback = null; + $._isInCallbackLoop = false; + if ($._nextCallback != null) + $.$get$_AsyncRun__scheduleImmediateClosure().call$1(A.async___startMicrotaskLoop$closure()); + } + }, + _scheduleAsyncCallback(callback) { + var newEntry = new A._AsyncCallbackEntry(callback), + lastCallback = $._lastCallback; + if (lastCallback == null) { + $._nextCallback = $._lastCallback = newEntry; + if (!$._isInCallbackLoop) + $.$get$_AsyncRun__scheduleImmediateClosure().call$1(A.async___startMicrotaskLoop$closure()); + } else + $._lastCallback = lastCallback.next = newEntry; + }, + _schedulePriorityAsyncCallback(callback) { + var entry, lastPriorityCallback, next, + t1 = $._nextCallback; + if (t1 == null) { + A._scheduleAsyncCallback(callback); + $._lastPriorityCallback = $._lastCallback; + return; + } + entry = new A._AsyncCallbackEntry(callback); + lastPriorityCallback = $._lastPriorityCallback; + if (lastPriorityCallback == null) { + entry.next = t1; + $._nextCallback = $._lastPriorityCallback = entry; + } else { + next = lastPriorityCallback.next; + entry.next = next; + $._lastPriorityCallback = lastPriorityCallback.next = entry; + if (next == null) + $._lastCallback = entry; + } + }, + scheduleMicrotask(callback) { + var _null = null, + currentZone = $.Zone__current; + if (B.C__RootZone === currentZone) { + A._rootScheduleMicrotask(_null, _null, B.C__RootZone, callback); + return; + } + A._rootScheduleMicrotask(_null, _null, currentZone, type$.void_Function._as(currentZone.bindCallbackGuarded$1(callback))); + }, + StreamIterator_StreamIterator(stream, $T) { + A.checkNotNullable(stream, "stream", type$.Object); + return new A._StreamIterator($T._eval$1("_StreamIterator<0>")); + }, + _rootHandleError(error, stackTrace) { + A._schedulePriorityAsyncCallback(new A._rootHandleError_closure(error, stackTrace)); + }, + _rootRun($self, $parent, zone, f, $R) { + var old, + t1 = $.Zone__current; + if (t1 === zone) + return f.call$0(); + $.Zone__current = zone; + old = t1; + try { + t1 = f.call$0(); + return t1; + } finally { + $.Zone__current = old; + } + }, + _rootRunUnary($self, $parent, zone, f, arg, $R, $T) { + var old, + t1 = $.Zone__current; + if (t1 === zone) + return f.call$1(arg); + $.Zone__current = zone; + old = t1; + try { + t1 = f.call$1(arg); + return t1; + } finally { + $.Zone__current = old; + } + }, + _rootRunBinary($self, $parent, zone, f, arg1, arg2, $R, T1, T2) { + var old, + t1 = $.Zone__current; + if (t1 === zone) + return f.call$2(arg1, arg2); + $.Zone__current = zone; + old = t1; + try { + t1 = f.call$2(arg1, arg2); + return t1; + } finally { + $.Zone__current = old; + } + }, + _rootScheduleMicrotask($self, $parent, zone, f) { + type$.void_Function._as(f); + if (B.C__RootZone !== zone) + f = zone.bindCallbackGuarded$1(f); + A._scheduleAsyncCallback(f); + }, + _AsyncRun__initializeScheduleImmediate_internalCallback: function _AsyncRun__initializeScheduleImmediate_internalCallback(t0) { + this._box_0 = t0; + }, + _AsyncRun__initializeScheduleImmediate_closure: function _AsyncRun__initializeScheduleImmediate_closure(t0, t1, t2) { + this._box_0 = t0; + this.div = t1; + this.span = t2; + }, + _AsyncRun__scheduleImmediateJsOverride_internalCallback: function _AsyncRun__scheduleImmediateJsOverride_internalCallback(t0) { + this.callback = t0; + }, + _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: function _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(t0) { + this.callback = t0; + }, + _TimerImpl: function _TimerImpl() { + }, + _TimerImpl_internalCallback: function _TimerImpl_internalCallback(t0, t1) { + this.$this = t0; + this.callback = t1; + }, + _AsyncAwaitCompleter: function _AsyncAwaitCompleter(t0, t1) { + this._future = t0; + this.isSync = false; + this.$ti = t1; + }, + _awaitOnObject_closure: function _awaitOnObject_closure(t0) { + this.bodyFunction = t0; + }, + _awaitOnObject_closure0: function _awaitOnObject_closure0(t0) { + this.bodyFunction = t0; + }, + _wrapJsFunctionForAsync_closure: function _wrapJsFunctionForAsync_closure(t0) { + this.$protected = t0; + }, + _IterationMarker: function _IterationMarker(t0, t1) { + this.value = t0; + this.state = t1; + }, + _SyncStarIterator: function _SyncStarIterator(t0, t1) { + var _ = this; + _._body = t0; + _._suspendedBodies = _._nestedIterator = _._async$_current = null; + _.$ti = t1; + }, + _SyncStarIterable: function _SyncStarIterable(t0, t1) { + this._outerHelper = t0; + this.$ti = t1; + }, + AsyncError: function AsyncError(t0, t1) { + this.error = t0; + this.stackTrace = t1; + }, + _Completer: function _Completer() { + }, + _AsyncCompleter: function _AsyncCompleter(t0, t1) { + this.future = t0; + this.$ti = t1; + }, + _FutureListener: function _FutureListener(t0, t1, t2, t3, t4) { + var _ = this; + _._nextListener = null; + _.result = t0; + _.state = t1; + _.callback = t2; + _.errorCallback = t3; + _.$ti = t4; + }, + _Future: function _Future(t0, t1) { + var _ = this; + _._state = 0; + _._zone = t0; + _._resultOrListeners = null; + _.$ti = t1; + }, + _Future__addListener_closure: function _Future__addListener_closure(t0, t1) { + this.$this = t0; + this.listener = t1; + }, + _Future__prependListeners_closure: function _Future__prependListeners_closure(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + _Future__chainForeignFuture_closure: function _Future__chainForeignFuture_closure(t0) { + this.$this = t0; + }, + _Future__chainForeignFuture_closure0: function _Future__chainForeignFuture_closure0(t0) { + this.$this = t0; + }, + _Future__chainForeignFuture_closure1: function _Future__chainForeignFuture_closure1(t0, t1, t2) { + this.$this = t0; + this.e = t1; + this.s = t2; + }, + _Future__asyncCompleteWithValue_closure: function _Future__asyncCompleteWithValue_closure(t0, t1) { + this.$this = t0; + this.value = t1; + }, + _Future__chainFuture_closure: function _Future__chainFuture_closure(t0, t1) { + this.$this = t0; + this.value = t1; + }, + _Future__asyncCompleteError_closure: function _Future__asyncCompleteError_closure(t0, t1, t2) { + this.$this = t0; + this.error = t1; + this.stackTrace = t2; + }, + _Future__propagateToListeners_handleWhenCompleteCallback: function _Future__propagateToListeners_handleWhenCompleteCallback(t0, t1, t2) { + this._box_0 = t0; + this._box_1 = t1; + this.hasError = t2; + }, + _Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0) { + this.originalSource = t0; + }, + _Future__propagateToListeners_handleValueCallback: function _Future__propagateToListeners_handleValueCallback(t0, t1) { + this._box_0 = t0; + this.sourceResult = t1; + }, + _Future__propagateToListeners_handleError: function _Future__propagateToListeners_handleError(t0, t1) { + this._box_1 = t0; + this._box_0 = t1; + }, + _AsyncCallbackEntry: function _AsyncCallbackEntry(t0) { + this.callback = t0; + this.next = null; + }, + StreamTransformerBase: function StreamTransformerBase() { + }, + _StreamIterator: function _StreamIterator(t0) { + this.$ti = t0; + }, + _Zone: function _Zone() { + }, + _rootHandleError_closure: function _rootHandleError_closure(t0, t1) { + this.error = t0; + this.stackTrace = t1; + }, + _RootZone: function _RootZone() { + }, + _RootZone_bindCallbackGuarded_closure: function _RootZone_bindCallbackGuarded_closure(t0, t1) { + this.$this = t0; + this.f = t1; + }, + _HashMap__getTableEntry(table, key) { + var entry = table[key]; + return entry === table ? null : entry; + }, + _HashMap__setTableEntry(table, key, value) { + if (value == null) + table[key] = table; + else + table[key] = value; + }, + _HashMap__newHashTable() { + var table = Object.create(null); + A._HashMap__setTableEntry(table, "", table); + delete table[""]; + return table; + }, + LinkedHashMap_LinkedHashMap(hashCode, isValidKey, $K, $V) { + if (isValidKey == null) { + if (hashCode == null) + return new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")); + } else if (hashCode == null) + hashCode = A.collection___defaultHashCode$closure(); + return A._LinkedCustomHashMap$(A.collection___defaultEquals$closure(), hashCode, isValidKey, $K, $V); + }, + LinkedHashMap_LinkedHashMap$_literal(keyValuePairs, $K, $V) { + return $K._eval$1("@<0>")._bind$1($V)._eval$1("LinkedHashMap<1,2>")._as(A.fillLiteralMap(keyValuePairs, new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")))); + }, + LinkedHashMap_LinkedHashMap$_empty($K, $V) { + return new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")); + }, + _LinkedCustomHashMap$(_equals, _hashCode, validKey, $K, $V) { + var t1 = validKey != null ? validKey : new A._LinkedCustomHashMap_closure($K); + return new A._LinkedCustomHashMap(_equals, _hashCode, t1, $K._eval$1("@<0>")._bind$1($V)._eval$1("_LinkedCustomHashMap<1,2>")); + }, + _defaultEquals(a, b) { + return J.$eq$(a, b); + }, + _defaultHashCode(a) { + return J.get$hashCode$(a); + }, + IterableBase_iterableToShortString(iterable, leftDelimiter, rightDelimiter) { + var parts, t1; + if (A._isToStringVisiting(iterable)) { + if (leftDelimiter === "(" && rightDelimiter === ")") + return "(...)"; + return leftDelimiter + "..." + rightDelimiter; + } + parts = A._setArrayType([], type$.JSArray_String); + B.JSArray_methods.add$1($._toStringVisiting, iterable); + try { + A._iterablePartsToStrings(iterable, parts); + } finally { + if (0 >= $._toStringVisiting.length) + return A.ioore($._toStringVisiting, -1); + $._toStringVisiting.pop(); + } + t1 = A.StringBuffer__writeAll(leftDelimiter, type$.Iterable_dynamic._as(parts), ", ") + rightDelimiter; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + IterableBase_iterableToFullString(iterable, leftDelimiter, rightDelimiter) { + var buffer, t1; + if (A._isToStringVisiting(iterable)) + return leftDelimiter + "..." + rightDelimiter; + buffer = new A.StringBuffer(leftDelimiter); + B.JSArray_methods.add$1($._toStringVisiting, iterable); + try { + t1 = buffer; + t1._contents = A.StringBuffer__writeAll(t1._contents, iterable, ", "); + } finally { + if (0 >= $._toStringVisiting.length) + return A.ioore($._toStringVisiting, -1); + $._toStringVisiting.pop(); + } + buffer._contents += rightDelimiter; + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _isToStringVisiting(o) { + var t1, i; + for (t1 = $._toStringVisiting.length, i = 0; i < t1; ++i) + if (o === $._toStringVisiting[i]) + return true; + return false; + }, + _iterablePartsToStrings(iterable, parts) { + var next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision, + it = iterable.get$iterator(iterable), + $length = 0, count = 0; + while (true) { + if (!($length < 80 || count < 3)) + break; + if (!it.moveNext$0()) + return; + next = A.S(it.get$current(it)); + B.JSArray_methods.add$1(parts, next); + $length += next.length + 2; + ++count; + } + if (!it.moveNext$0()) { + if (count <= 5) + return; + if (0 >= parts.length) + return A.ioore(parts, -1); + ultimateString = parts.pop(); + if (0 >= parts.length) + return A.ioore(parts, -1); + penultimateString = parts.pop(); + } else { + penultimate = it.get$current(it); + ++count; + if (!it.moveNext$0()) { + if (count <= 4) { + B.JSArray_methods.add$1(parts, A.S(penultimate)); + return; + } + ultimateString = A.S(penultimate); + if (0 >= parts.length) + return A.ioore(parts, -1); + penultimateString = parts.pop(); + $length += ultimateString.length + 2; + } else { + ultimate = it.get$current(it); + ++count; + for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) { + ultimate0 = it.get$current(it); + ++count; + if (count > 100) { + while (true) { + if (!($length > 75 && count > 3)) + break; + if (0 >= parts.length) + return A.ioore(parts, -1); + $length -= parts.pop().length + 2; + --count; + } + B.JSArray_methods.add$1(parts, "..."); + return; + } + } + penultimateString = A.S(penultimate); + ultimateString = A.S(ultimate); + $length += ultimateString.length + penultimateString.length + 4; + } + } + if (count > parts.length + 2) { + $length += 5; + elision = "..."; + } else + elision = null; + while (true) { + if (!($length > 80 && parts.length > 3)) + break; + if (0 >= parts.length) + return A.ioore(parts, -1); + $length -= parts.pop().length + 2; + if (elision == null) { + $length += 5; + elision = "..."; + } + } + if (elision != null) + B.JSArray_methods.add$1(parts, elision); + B.JSArray_methods.add$1(parts, penultimateString); + B.JSArray_methods.add$1(parts, ultimateString); + }, + LinkedHashMap_LinkedHashMap$from(other, $K, $V) { + var result = A.LinkedHashMap_LinkedHashMap(null, null, $K, $V); + J.forEach$1$x(other, new A.LinkedHashMap_LinkedHashMap$from_closure(result, $K, $V)); + return result; + }, + MapBase_mapToString(m) { + var result, t1 = {}; + if (A._isToStringVisiting(m)) + return "{...}"; + result = new A.StringBuffer(""); + try { + B.JSArray_methods.add$1($._toStringVisiting, m); + result._contents += "{"; + t1.first = true; + J.forEach$1$x(m, new A.MapBase_mapToString_closure(t1, result)); + result._contents += "}"; + } finally { + if (0 >= $._toStringVisiting.length) + return A.ioore($._toStringVisiting, -1); + $._toStringVisiting.pop(); + } + t1 = result._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _HashMap: function _HashMap() { + }, + _IdentityHashMap: function _IdentityHashMap(t0) { + var _ = this; + _._collection$_length = 0; + _._collection$_keys = _._collection$_rest = _._collection$_nums = _._collection$_strings = null; + _.$ti = t0; + }, + _HashMapKeyIterable: function _HashMapKeyIterable(t0, t1) { + this._collection$_map = t0; + this.$ti = t1; + }, + _HashMapKeyIterator: function _HashMapKeyIterator(t0, t1, t2) { + var _ = this; + _._collection$_map = t0; + _._collection$_keys = t1; + _._offset = 0; + _._collection$_current = null; + _.$ti = t2; + }, + _LinkedCustomHashMap: function _LinkedCustomHashMap(t0, t1, t2, t3) { + var _ = this; + _._equals = t0; + _._hashCode = t1; + _._validKey = t2; + _._length = 0; + _._last = _._first = _.__js_helper$_rest = _._nums = _._strings = null; + _._modifications = 0; + _.$ti = t3; + }, + _LinkedCustomHashMap_closure: function _LinkedCustomHashMap_closure(t0) { + this.K = t0; + }, + IterableBase: function IterableBase() { + }, + LinkedHashMap_LinkedHashMap$from_closure: function LinkedHashMap_LinkedHashMap$from_closure(t0, t1, t2) { + this.result = t0; + this.K = t1; + this.V = t2; + }, + ListBase: function ListBase() { + }, + ListMixin: function ListMixin() { + }, + MapBase: function MapBase() { + }, + MapBase_mapToString_closure: function MapBase_mapToString_closure(t0, t1) { + this._box_0 = t0; + this.result = t1; + }, + MapMixin: function MapMixin() { + }, + MapMixin_entries_closure: function MapMixin_entries_closure(t0) { + this.$this = t0; + }, + _UnmodifiableMapMixin: function _UnmodifiableMapMixin() { + }, + MapView: function MapView() { + }, + UnmodifiableMapView: function UnmodifiableMapView() { + }, + _ListBase_Object_ListMixin: function _ListBase_Object_ListMixin() { + }, + _UnmodifiableMapView_MapView__UnmodifiableMapMixin: function _UnmodifiableMapView_MapView__UnmodifiableMapMixin() { + }, + _parseJson(source, reviver) { + var e, exception, t1, parsed = null; + try { + parsed = JSON.parse(source); + } catch (exception) { + e = A.unwrapException(exception); + t1 = A.FormatException$(String(e), null, null); + throw A.wrapException(t1); + } + t1 = A._convertJsonToDartLazy(parsed); + return t1; + }, + _convertJsonToDartLazy(object) { + var i; + if (object == null) + return null; + if (typeof object != "object") + return object; + if (Object.getPrototypeOf(object) !== Array.prototype) + return new A._JsonMap(object, Object.create(null)); + for (i = 0; i < object.length; ++i) + object[i] = A._convertJsonToDartLazy(object[i]); + return object; + }, + Utf8Decoder__convertIntercepted(allowMalformed, codeUnits, start, end) { + var casted, result; + if (codeUnits instanceof Uint8Array) { + casted = codeUnits; + end = casted.length; + if (end - start < 15) + return null; + result = A.Utf8Decoder__convertInterceptedUint8List(allowMalformed, casted, start, end); + if (result != null && allowMalformed) + if (result.indexOf("\ufffd") >= 0) + return null; + return result; + } + return null; + }, + Utf8Decoder__convertInterceptedUint8List(allowMalformed, codeUnits, start, end) { + var decoder = allowMalformed ? $.$get$Utf8Decoder__decoderNonfatal() : $.$get$Utf8Decoder__decoder(); + if (decoder == null) + return null; + if (0 === start && end === codeUnits.length) + return A.Utf8Decoder__useTextDecoder(decoder, codeUnits); + return A.Utf8Decoder__useTextDecoder(decoder, codeUnits.subarray(start, A.RangeError_checkValidRange(start, end, codeUnits.length))); + }, + Utf8Decoder__useTextDecoder(decoder, codeUnits) { + var t1, exception; + try { + t1 = decoder.decode(codeUnits); + return t1; + } catch (exception) { + } + return null; + }, + JsonUnsupportedObjectError$(unsupportedObject, cause, partialResult) { + return new A.JsonUnsupportedObjectError(unsupportedObject, cause); + }, + _defaultToEncodable(object) { + return object.toJson$0(); + }, + _JsonStringStringifier$(_sink, _toEncodable) { + return new A._JsonStringStringifier(_sink, [], A.convert___defaultToEncodable$closure()); + }, + _JsonStringStringifier_stringify(object, toEncodable, indent) { + var stringifier, t1, + output = new A.StringBuffer(""); + if (indent == null) + stringifier = A._JsonStringStringifier$(output, toEncodable); + else + stringifier = new A._JsonStringStringifierPretty(indent, 0, output, [], A.convert___defaultToEncodable$closure()); + stringifier.writeObject$1(object); + t1 = output._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _Utf8Decoder_errorDescription(state) { + switch (state) { + case 65: + return "Missing extension byte"; + case 67: + return "Unexpected extension byte"; + case 69: + return "Invalid UTF-8 byte"; + case 71: + return "Overlong encoding"; + case 73: + return "Out of unicode range"; + case 75: + return "Encoded surrogate"; + case 77: + return "Unfinished UTF-8 octet sequence"; + default: + return ""; + } + }, + _Utf8Decoder__makeUint8List(codeUnits, start, end) { + var t1, i, t2, b, + $length = end - start, + bytes = new Uint8Array($length); + for (t1 = codeUnits.length, i = 0; i < $length; ++i) { + t2 = start + i; + if (!(t2 < t1)) + return A.ioore(codeUnits, t2); + b = codeUnits[t2]; + if ((b & 4294967040) >>> 0 !== 0) + b = 255; + if (!(i < $length)) + return A.ioore(bytes, i); + bytes[i] = b; + } + return bytes; + }, + _JsonMap: function _JsonMap(t0, t1) { + this._original = t0; + this._processed = t1; + this._data = null; + }, + _JsonMapKeyIterable: function _JsonMapKeyIterable(t0) { + this._parent = t0; + }, + Utf8Decoder__decoder_closure: function Utf8Decoder__decoder_closure() { + }, + Utf8Decoder__decoderNonfatal_closure: function Utf8Decoder__decoderNonfatal_closure() { + }, + _UnicodeSubsetEncoder: function _UnicodeSubsetEncoder() { + }, + _UnicodeSubsetDecoder: function _UnicodeSubsetDecoder() { + }, + Codec: function Codec() { + }, + Converter: function Converter() { + }, + Encoding: function Encoding() { + }, + JsonUnsupportedObjectError: function JsonUnsupportedObjectError(t0, t1) { + this.unsupportedObject = t0; + this.cause = t1; + }, + JsonCyclicError: function JsonCyclicError(t0, t1) { + this.unsupportedObject = t0; + this.cause = t1; + }, + JsonCodec: function JsonCodec() { + }, + JsonEncoder: function JsonEncoder(t0, t1) { + this.indent = t0; + this._toEncodable = t1; + }, + JsonDecoder: function JsonDecoder(t0) { + this._reviver = t0; + }, + _JsonStringifier: function _JsonStringifier() { + }, + _JsonStringifier_writeMap_closure: function _JsonStringifier_writeMap_closure(t0, t1) { + this._box_0 = t0; + this.keyValueList = t1; + }, + _JsonPrettyPrintMixin: function _JsonPrettyPrintMixin() { + }, + _JsonPrettyPrintMixin_writeMap_closure: function _JsonPrettyPrintMixin_writeMap_closure(t0, t1) { + this._box_0 = t0; + this.keyValueList = t1; + }, + _JsonStringStringifier: function _JsonStringStringifier(t0, t1, t2) { + this._sink = t0; + this._seen = t1; + this._toEncodable = t2; + }, + _JsonStringStringifierPretty: function _JsonStringStringifierPretty(t0, t1, t2, t3, t4) { + var _ = this; + _._indent = t0; + _._JsonPrettyPrintMixin__indentLevel = t1; + _._sink = t2; + _._seen = t3; + _._toEncodable = t4; + }, + Latin1Codec: function Latin1Codec() { + }, + Latin1Encoder: function Latin1Encoder() { + }, + Latin1Decoder: function Latin1Decoder(t0) { + this._allowInvalid = t0; + }, + Utf8Decoder: function Utf8Decoder(t0) { + this._allowMalformed = t0; + }, + _Utf8Decoder: function _Utf8Decoder(t0) { + this.allowMalformed = t0; + this._convert$_state = 16; + this._charOrIndex = 0; + }, + __JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin: function __JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin() { + }, + Function_apply($function, positionalArguments) { + return A.Primitives_applyFunction($function, positionalArguments, null); + }, + Error__objectToString(object) { + if (object instanceof A.Closure) + return object.toString$0(0); + return "Instance of '" + A.Primitives_objectTypeName(object) + "'"; + }, + Error__throw(error, stackTrace) { + error = A.wrapException(error); + if (error == null) + error = type$.Object._as(error); + error.stack = stackTrace.toString$0(0); + throw error; + throw A.wrapException("unreachable"); + }, + DateTime$fromMillisecondsSinceEpoch(millisecondsSinceEpoch, isUtc) { + var t1; + if (Math.abs(millisecondsSinceEpoch) <= 864e13) + t1 = false; + else + t1 = true; + if (t1) + A.throwExpression(A.ArgumentError$("DateTime is outside valid range: " + millisecondsSinceEpoch, null)); + A.checkNotNullable(isUtc, "isUtc", type$.bool); + return new A.DateTime(millisecondsSinceEpoch, isUtc); + }, + List_List$filled($length, fill, growable, $E) { + var i, + result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E); + if ($length !== 0 && fill != null) + for (i = 0; i < result.length; ++i) + result[i] = fill; + return result; + }, + List_List$from(elements, $E) { + var t1, + list = A._setArrayType([], $E._eval$1("JSArray<0>")); + for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) + B.JSArray_methods.add$1(list, $E._as(t1.get$current(t1))); + return list; + }, + List_List$of(elements, growable, $E) { + var t1 = A.List_List$_of(elements, $E); + return t1; + }, + List_List$_of(elements, $E) { + var list, t1; + if (Array.isArray(elements)) + return A._setArrayType(elements.slice(0), $E._eval$1("JSArray<0>")); + list = A._setArrayType([], $E._eval$1("JSArray<0>")); + for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) + B.JSArray_methods.add$1(list, t1.get$current(t1)); + return list; + }, + List_List$generate($length, generator, growable, $E) { + var i, + result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E); + for (i = 0; i < $length; ++i) + B.JSArray_methods.$indexSet(result, i, generator.call$1(i)); + return result; + }, + String_String$fromCharCodes(charCodes, start, end) { + var array, len; + if (Array.isArray(charCodes)) { + array = charCodes; + len = array.length; + end = A.RangeError_checkValidRange(start, end, len); + return A.Primitives_stringFromCharCodes(start > 0 || end < len ? array.slice(start, end) : array); + } + if (type$.NativeUint8List._is(charCodes)) + return A.Primitives_stringFromNativeUint8List(charCodes, start, A.RangeError_checkValidRange(start, end, charCodes.length)); + return A.String__stringFromIterable(charCodes, start, end); + }, + String__stringFromIterable(charCodes, start, end) { + var t1, it, i, list, _null = null; + if (start < 0) + throw A.wrapException(A.RangeError$range(start, 0, charCodes.length, _null, _null)); + t1 = end == null; + if (!t1 && end < start) + throw A.wrapException(A.RangeError$range(end, start, charCodes.length, _null, _null)); + it = J.get$iterator$ax(charCodes); + for (i = 0; i < start; ++i) + if (!it.moveNext$0()) + throw A.wrapException(A.RangeError$range(start, 0, i, _null, _null)); + list = []; + if (t1) + for (; it.moveNext$0();) + list.push(it.get$current(it)); + else + for (i = start; i < end; ++i) { + if (!it.moveNext$0()) + throw A.wrapException(A.RangeError$range(end, start, i, _null, _null)); + list.push(it.get$current(it)); + } + return A.Primitives_stringFromCharCodes(list); + }, + StringBuffer__writeAll(string, objects, separator) { + var iterator = J.get$iterator$ax(objects); + if (!iterator.moveNext$0()) + return string; + if (separator.length === 0) { + do + string += A.S(iterator.get$current(iterator)); + while (iterator.moveNext$0()); + } else { + string += A.S(iterator.get$current(iterator)); + for (; iterator.moveNext$0();) + string = string + separator + A.S(iterator.get$current(iterator)); + } + return string; + }, + NoSuchMethodError$(receiver, memberName, positionalArguments, namedArguments) { + return new A.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments); + }, + DateTime__fourDigits(n) { + var absN = Math.abs(n), + sign = n < 0 ? "-" : ""; + if (absN >= 1000) + return "" + n; + if (absN >= 100) + return sign + "0" + absN; + if (absN >= 10) + return sign + "00" + absN; + return sign + "000" + absN; + }, + DateTime__threeDigits(n) { + if (n >= 100) + return "" + n; + if (n >= 10) + return "0" + n; + return "00" + n; + }, + DateTime__twoDigits(n) { + if (n >= 10) + return "" + n; + return "0" + n; + }, + Error_safeToString(object) { + if (typeof object == "number" || A._isBool(object) || object == null) + return J.toString$0$(object); + if (typeof object == "string") + return JSON.stringify(object); + return A.Error__objectToString(object); + }, + AssertionError$(message) { + return new A.AssertionError(message); + }, + ArgumentError$(message, $name) { + return new A.ArgumentError(false, null, $name, message); + }, + ArgumentError$value(value, $name, message) { + return new A.ArgumentError(true, value, $name, message); + }, + RangeError$range(invalidValue, minValue, maxValue, $name, message) { + return new A.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value"); + }, + RangeError_checkValidIndex(index, indexable) { + var $length = indexable.get$length(indexable); + if (0 > index || index >= $length) + throw A.wrapException(A.IndexError$(index, indexable, "index", null, $length)); + return index; + }, + RangeError_checkValidRange(start, end, $length) { + if (0 > start || start > $length) + throw A.wrapException(A.RangeError$range(start, 0, $length, "start", null)); + if (end != null) { + if (start > end || end > $length) + throw A.wrapException(A.RangeError$range(end, start, $length, "end", null)); + return end; + } + return $length; + }, + RangeError_checkNotNegative(value, $name) { + if (value < 0) + throw A.wrapException(A.RangeError$range(value, 0, null, $name, null)); + return value; + }, + IndexError$(invalidValue, indexable, $name, message, $length) { + var t1 = A._asInt($length == null ? J.get$length$asx(indexable) : $length); + return new A.IndexError(t1, true, invalidValue, $name, "Index out of range"); + }, + UnsupportedError$(message) { + return new A.UnsupportedError(message); + }, + UnimplementedError$(message) { + return new A.UnimplementedError(message); + }, + StateError$(message) { + return new A.StateError(message); + }, + ConcurrentModificationError$(modifiedObject) { + return new A.ConcurrentModificationError(modifiedObject); + }, + Exception_Exception(message) { + return new A._Exception(message); + }, + FormatException$(message, source, offset) { + return new A.FormatException(message, source, offset); + }, + Iterable_Iterable$generate(count, generator, $E) { + if (count <= 0) + return new A.EmptyIterable($E._eval$1("EmptyIterable<0>")); + return new A._GeneratorIterable(count, generator, $E._eval$1("_GeneratorIterable<0>")); + }, + Object_hash(object1, object2, object3, object4) { + var t1, t2; + if (B.C_SentinelValue === object3) { + t1 = J.get$hashCode$(object1); + object2 = J.get$hashCode$(object2); + return A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine($.$get$_hashSeed(), t1), object2)); + } + if (B.C_SentinelValue === object4) { + t1 = J.get$hashCode$(object1); + object2 = J.get$hashCode$(object2); + object3 = J.get$hashCode$(object3); + return A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine($.$get$_hashSeed(), t1), object2), object3)); + } + t1 = J.get$hashCode$(object1); + object2 = J.get$hashCode$(object2); + object3 = J.get$hashCode$(object3); + object4 = J.get$hashCode$(object4); + t2 = $.$get$_hashSeed(); + return A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine(A.SystemHash_combine(t2, t1), object2), object3), object4)); + }, + print(object) { + A.printString(A.S(object)); + }, + NoSuchMethodError_toString_closure: function NoSuchMethodError_toString_closure(t0, t1) { + this._box_0 = t0; + this.sb = t1; + }, + DateTime: function DateTime(t0, t1) { + this._core$_value = t0; + this.isUtc = t1; + }, + _Enum: function _Enum() { + }, + Error: function Error() { + }, + AssertionError: function AssertionError(t0) { + this.message = t0; + }, + TypeError: function TypeError() { + }, + NullThrownError: function NullThrownError() { + }, + ArgumentError: function ArgumentError(t0, t1, t2, t3) { + var _ = this; + _._hasValue = t0; + _.invalidValue = t1; + _.name = t2; + _.message = t3; + }, + RangeError: function RangeError(t0, t1, t2, t3, t4, t5) { + var _ = this; + _.start = t0; + _.end = t1; + _._hasValue = t2; + _.invalidValue = t3; + _.name = t4; + _.message = t5; + }, + IndexError: function IndexError(t0, t1, t2, t3, t4) { + var _ = this; + _.length = t0; + _._hasValue = t1; + _.invalidValue = t2; + _.name = t3; + _.message = t4; + }, + NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3) { + var _ = this; + _._core$_receiver = t0; + _._core$_memberName = t1; + _._core$_arguments = t2; + _._namedArguments = t3; + }, + UnsupportedError: function UnsupportedError(t0) { + this.message = t0; + }, + UnimplementedError: function UnimplementedError(t0) { + this.message = t0; + }, + StateError: function StateError(t0) { + this.message = t0; + }, + ConcurrentModificationError: function ConcurrentModificationError(t0) { + this.modifiedObject = t0; + }, + OutOfMemoryError: function OutOfMemoryError() { + }, + StackOverflowError: function StackOverflowError() { + }, + CyclicInitializationError: function CyclicInitializationError(t0) { + this.variableName = t0; + }, + _Exception: function _Exception(t0) { + this.message = t0; + }, + FormatException: function FormatException(t0, t1, t2) { + this.message = t0; + this.source = t1; + this.offset = t2; + }, + Iterable: function Iterable() { + }, + _GeneratorIterable: function _GeneratorIterable(t0, t1, t2) { + this.length = t0; + this._generator = t1; + this.$ti = t2; + }, + Iterator: function Iterator() { + }, + MapEntry: function MapEntry(t0, t1, t2) { + this.key = t0; + this.value = t1; + this.$ti = t2; + }, + Null: function Null() { + }, + Object: function Object() { + }, + _StringStackTrace: function _StringStackTrace() { + }, + StringBuffer: function StringBuffer(t0) { + this._contents = t0; + }, + _convertNativeToDart_EventTarget(e) { + var $window; + if ("postMessage" in e) { + $window = A._DOMWindowCrossFrame__createSafe(e); + return $window; + } else + return type$.nullable_EventTarget._as(e); + }, + _DOMWindowCrossFrame__createSafe(w) { + if (w === window) + return type$.WindowBase._as(w); + else + return new A._DOMWindowCrossFrame(); + }, + HtmlElement: function HtmlElement() { + }, + AccessibleNodeList: function AccessibleNodeList() { + }, + AnchorElement: function AnchorElement() { + }, + AreaElement: function AreaElement() { + }, + Blob: function Blob() { + }, + CharacterData: function CharacterData() { + }, + CssPerspective: function CssPerspective() { + }, + CssRule: function CssRule() { + }, + CssStyleDeclaration: function CssStyleDeclaration() { + }, + CssStyleDeclarationBase: function CssStyleDeclarationBase() { + }, + CssStyleValue: function CssStyleValue() { + }, + CssTransformComponent: function CssTransformComponent() { + }, + CssTransformValue: function CssTransformValue() { + }, + CssUnparsedValue: function CssUnparsedValue() { + }, + DataTransferItemList: function DataTransferItemList() { + }, + DomException: function DomException() { + }, + DomRectList: function DomRectList() { + }, + DomRectReadOnly: function DomRectReadOnly() { + }, + DomStringList: function DomStringList() { + }, + DomTokenList: function DomTokenList() { + }, + Element: function Element() { + }, + Event: function Event() { + }, + EventTarget: function EventTarget() { + }, + File: function File() { + }, + FileList: function FileList() { + }, + FileWriter: function FileWriter() { + }, + FormElement: function FormElement() { + }, + Gamepad: function Gamepad() { + }, + History: function History() { + }, + HtmlCollection: function HtmlCollection() { + }, + ImageData: function ImageData() { + }, + Location: function Location() { + }, + MediaList: function MediaList() { + }, + MessageEvent: function MessageEvent() { + }, + MidiInputMap: function MidiInputMap() { + }, + MidiInputMap_keys_closure: function MidiInputMap_keys_closure(t0) { + this.keys = t0; + }, + MidiOutputMap: function MidiOutputMap() { + }, + MidiOutputMap_keys_closure: function MidiOutputMap_keys_closure(t0) { + this.keys = t0; + }, + MimeType: function MimeType() { + }, + MimeTypeArray: function MimeTypeArray() { + }, + Node: function Node() { + }, + NodeList: function NodeList() { + }, + Plugin: function Plugin() { + }, + PluginArray: function PluginArray() { + }, + RtcStatsReport: function RtcStatsReport() { + }, + RtcStatsReport_keys_closure: function RtcStatsReport_keys_closure(t0) { + this.keys = t0; + }, + SelectElement: function SelectElement() { + }, + SourceBuffer: function SourceBuffer() { + }, + SourceBufferList: function SourceBufferList() { + }, + SpeechGrammar: function SpeechGrammar() { + }, + SpeechGrammarList: function SpeechGrammarList() { + }, + SpeechRecognitionResult: function SpeechRecognitionResult() { + }, + Storage: function Storage() { + }, + Storage_keys_closure: function Storage_keys_closure(t0) { + this.keys = t0; + }, + StyleSheet: function StyleSheet() { + }, + TextTrack: function TextTrack() { + }, + TextTrackCue: function TextTrackCue() { + }, + TextTrackCueList: function TextTrackCueList() { + }, + TextTrackList: function TextTrackList() { + }, + TimeRanges: function TimeRanges() { + }, + Touch: function Touch() { + }, + TouchList: function TouchList() { + }, + TrackDefaultList: function TrackDefaultList() { + }, + Url: function Url() { + }, + VideoTrackList: function VideoTrackList() { + }, + Window: function Window() { + }, + WorkerGlobalScope: function WorkerGlobalScope() { + }, + _CssRuleList: function _CssRuleList() { + }, + _DomRect: function _DomRect() { + }, + _GamepadList: function _GamepadList() { + }, + _NamedNodeMap: function _NamedNodeMap() { + }, + _SpeechRecognitionResultList: function _SpeechRecognitionResultList() { + }, + _StyleSheetList: function _StyleSheetList() { + }, + ImmutableListMixin: function ImmutableListMixin() { + }, + FixedSizeListIterator: function FixedSizeListIterator(t0, t1, t2) { + var _ = this; + _._array = t0; + _._html$_length = t1; + _._position = -1; + _._current = null; + _.$ti = t2; + }, + _DOMWindowCrossFrame: function _DOMWindowCrossFrame() { + }, + _CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase: function _CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase() { + }, + _DomRectList_JavaScriptObject_ListMixin: function _DomRectList_JavaScriptObject_ListMixin() { + }, + _DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin: function _DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _DomStringList_JavaScriptObject_ListMixin: function _DomStringList_JavaScriptObject_ListMixin() { + }, + _DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin: function _DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _FileList_JavaScriptObject_ListMixin: function _FileList_JavaScriptObject_ListMixin() { + }, + _FileList_JavaScriptObject_ListMixin_ImmutableListMixin: function _FileList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _HtmlCollection_JavaScriptObject_ListMixin: function _HtmlCollection_JavaScriptObject_ListMixin() { + }, + _HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin: function _HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _MidiInputMap_JavaScriptObject_MapMixin: function _MidiInputMap_JavaScriptObject_MapMixin() { + }, + _MidiOutputMap_JavaScriptObject_MapMixin: function _MidiOutputMap_JavaScriptObject_MapMixin() { + }, + _MimeTypeArray_JavaScriptObject_ListMixin: function _MimeTypeArray_JavaScriptObject_ListMixin() { + }, + _MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin: function _MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _NodeList_JavaScriptObject_ListMixin: function _NodeList_JavaScriptObject_ListMixin() { + }, + _NodeList_JavaScriptObject_ListMixin_ImmutableListMixin: function _NodeList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _PluginArray_JavaScriptObject_ListMixin: function _PluginArray_JavaScriptObject_ListMixin() { + }, + _PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin: function _PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _RtcStatsReport_JavaScriptObject_MapMixin: function _RtcStatsReport_JavaScriptObject_MapMixin() { + }, + _SourceBufferList_EventTarget_ListMixin: function _SourceBufferList_EventTarget_ListMixin() { + }, + _SourceBufferList_EventTarget_ListMixin_ImmutableListMixin: function _SourceBufferList_EventTarget_ListMixin_ImmutableListMixin() { + }, + _SpeechGrammarList_JavaScriptObject_ListMixin: function _SpeechGrammarList_JavaScriptObject_ListMixin() { + }, + _SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin: function _SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _Storage_JavaScriptObject_MapMixin: function _Storage_JavaScriptObject_MapMixin() { + }, + _TextTrackCueList_JavaScriptObject_ListMixin: function _TextTrackCueList_JavaScriptObject_ListMixin() { + }, + _TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin: function _TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _TextTrackList_EventTarget_ListMixin: function _TextTrackList_EventTarget_ListMixin() { + }, + _TextTrackList_EventTarget_ListMixin_ImmutableListMixin: function _TextTrackList_EventTarget_ListMixin_ImmutableListMixin() { + }, + _TouchList_JavaScriptObject_ListMixin: function _TouchList_JavaScriptObject_ListMixin() { + }, + _TouchList_JavaScriptObject_ListMixin_ImmutableListMixin: function _TouchList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + __CssRuleList_JavaScriptObject_ListMixin: function __CssRuleList_JavaScriptObject_ListMixin() { + }, + __CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin: function __CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + __GamepadList_JavaScriptObject_ListMixin: function __GamepadList_JavaScriptObject_ListMixin() { + }, + __GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin: function __GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + __NamedNodeMap_JavaScriptObject_ListMixin: function __NamedNodeMap_JavaScriptObject_ListMixin() { + }, + __NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin: function __NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + __SpeechRecognitionResultList_JavaScriptObject_ListMixin: function __SpeechRecognitionResultList_JavaScriptObject_ListMixin() { + }, + __SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin: function __SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + __StyleSheetList_JavaScriptObject_ListMixin: function __StyleSheetList_JavaScriptObject_ListMixin() { + }, + __StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin: function __StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _convertNativeToDart_Value(value) { + var values, i; + if (value == null) + return value; + if (typeof value == "string" || typeof value == "number" || A._isBool(value)) + return value; + if (A.isJavaScriptSimpleObject(value)) + return A.convertNativeToDart_Dictionary(value); + if (Array.isArray(value)) { + values = []; + for (i = 0; i < value.length; ++i) + values.push(A._convertNativeToDart_Value(value[i])); + return values; + } + return value; + }, + convertNativeToDart_Dictionary(object) { + var dict, keys, t1, _i, key; + if (object == null) + return null; + dict = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); + keys = Object.getOwnPropertyNames(object); + for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) { + key = keys[_i]; + dict.$indexSet(0, key, A._convertNativeToDart_Value(object[key])); + } + return dict; + }, + isJavaScriptSimpleObject(value) { + var proto = Object.getPrototypeOf(value); + return proto === Object.prototype || proto === null; + }, + _AcceptStructuredClone: function _AcceptStructuredClone() { + }, + _AcceptStructuredClone_walk_closure: function _AcceptStructuredClone_walk_closure(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + _AcceptStructuredCloneDart2Js: function _AcceptStructuredCloneDart2Js(t0, t1) { + this.values = t0; + this.copies = t1; + this.mustCopy = false; + }, + KeyRange: function KeyRange() { + }, + Request: function Request() { + }, + VersionChangeEvent: function VersionChangeEvent() { + }, + _callDartFunction(callback, captureThis, $self, $arguments) { + var arguments0, t1, dartArgs; + A._asBool(captureThis); + type$.List_dynamic._as($arguments); + if (captureThis) { + arguments0 = [$self]; + B.JSArray_methods.addAll$1(arguments0, $arguments); + $arguments = arguments0; + } + t1 = type$.dynamic; + dartArgs = A.List_List$from(J.map$1$1$ax($arguments, A.js___convertToDart$closure(), t1), t1); + return A._convertToJS(A.Function_apply(type$.Function._as(callback), dartArgs)); + }, + _defineProperty(o, $name, value) { + var exception; + try { + if (Object.isExtensible(o) && !Object.prototype.hasOwnProperty.call(o, $name)) { + Object.defineProperty(o, $name, {value: value}); + return true; + } + } catch (exception) { + } + return false; + }, + _getOwnProperty(o, $name) { + if (Object.prototype.hasOwnProperty.call(o, $name)) + return o[$name]; + return null; + }, + _convertToJS(o) { + if (o == null || typeof o == "string" || typeof o == "number" || A._isBool(o)) + return o; + if (o instanceof A.JsObject) + return o._js$_jsObject; + if (A.isBrowserObject(o)) + return o; + if (type$.TypedData._is(o)) + return o; + if (o instanceof A.DateTime) + return A.Primitives_lazyAsJsDate(o); + if (type$.Function._is(o)) + return A._getJsProxy(o, "$dart_jsFunction", new A._convertToJS_closure()); + return A._getJsProxy(o, "_$dart_jsObject", new A._convertToJS_closure0($.$get$_dartProxyCtor())); + }, + _getJsProxy(o, propertyName, createProxy) { + var jsProxy = A._getOwnProperty(o, propertyName); + if (jsProxy == null) { + jsProxy = createProxy.call$1(o); + A._defineProperty(o, propertyName, jsProxy); + } + return jsProxy; + }, + _convertToDart(o) { + if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean") + return o; + else if (o instanceof Object && A.isBrowserObject(o)) + return o; + else if (o instanceof Object && type$.TypedData._is(o)) + return o; + else if (o instanceof Date) + return A.DateTime$fromMillisecondsSinceEpoch(A._asInt(o.getTime()), false); + else if (o.constructor === $.$get$_dartProxyCtor()) + return o.o; + else + return A._wrapToDart(o); + }, + _wrapToDart(o) { + if (typeof o == "function") + return A._getDartProxy(o, $.$get$DART_CLOSURE_PROPERTY_NAME(), new A._wrapToDart_closure()); + if (o instanceof Array) + return A._getDartProxy(o, $.$get$_DART_OBJECT_PROPERTY_NAME(), new A._wrapToDart_closure0()); + return A._getDartProxy(o, $.$get$_DART_OBJECT_PROPERTY_NAME(), new A._wrapToDart_closure1()); + }, + _getDartProxy(o, propertyName, createProxy) { + var dartProxy = A._getOwnProperty(o, propertyName); + if (dartProxy == null || !(o instanceof Object)) { + dartProxy = createProxy.call$1(o); + A._defineProperty(o, propertyName, dartProxy); + } + return dartProxy; + }, + _convertDartFunctionFast(f) { + var ret, + existing = f.$dart_jsFunction; + if (existing != null) + return existing; + ret = function(_call, f) { + return function() { + return _call(f, Array.prototype.slice.apply(arguments)); + }; + }(A._callDartFunctionFast, f); + ret[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f; + f.$dart_jsFunction = ret; + return ret; + }, + _callDartFunctionFast(callback, $arguments) { + type$.List_dynamic._as($arguments); + return A.Function_apply(type$.Function._as(callback), $arguments); + }, + allowInterop(f, $F) { + if (typeof f == "function") + return f; + else + return $F._as(A._convertDartFunctionFast(f)); + }, + _convertToJS_closure: function _convertToJS_closure() { + }, + _convertToJS_closure0: function _convertToJS_closure0(t0) { + this.ctor = t0; + }, + _wrapToDart_closure: function _wrapToDart_closure() { + }, + _wrapToDart_closure0: function _wrapToDart_closure0() { + }, + _wrapToDart_closure1: function _wrapToDart_closure1() { + }, + JsObject: function JsObject(t0) { + this._js$_jsObject = t0; + }, + JsFunction: function JsFunction(t0) { + this._js$_jsObject = t0; + }, + JsArray: function JsArray(t0, t1) { + this._js$_jsObject = t0; + this.$ti = t1; + }, + _JsArray_JsObject_ListMixin: function _JsArray_JsObject_ListMixin() { + }, + jsify(object) { + if (!type$.Map_dynamic_dynamic._is(object) && !type$.Iterable_dynamic._is(object)) + throw A.wrapException(A.ArgumentError$("object must be a Map or Iterable", null)); + return A._convertDataTree(object); + }, + _convertDataTree(data) { + var t1 = new A._convertDataTree__convert(new A._IdentityHashMap(type$._IdentityHashMap_dynamic_dynamic)).call$1(data); + t1.toString; + return t1; + }, + promiseToFuture(jsPromise, $T) { + var t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>")), + completer = new A._AsyncCompleter(t1, $T._eval$1("_AsyncCompleter<0>")); + jsPromise.then(A.convertDartClosureToJS(new A.promiseToFuture_closure(completer, $T), 1), A.convertDartClosureToJS(new A.promiseToFuture_closure0(completer), 1)); + return t1; + }, + _convertDataTree__convert: function _convertDataTree__convert(t0) { + this._convertedObjects = t0; + }, + NullRejectionException: function NullRejectionException(t0) { + this.isUndefined = t0; + }, + promiseToFuture_closure: function promiseToFuture_closure(t0, t1) { + this.completer = t0; + this.T = t1; + }, + promiseToFuture_closure0: function promiseToFuture_closure0(t0) { + this.completer = t0; + }, + Length: function Length() { + }, + LengthList: function LengthList() { + }, + Number: function Number() { + }, + NumberList: function NumberList() { + }, + PointList: function PointList() { + }, + StringList: function StringList() { + }, + Transform: function Transform() { + }, + TransformList: function TransformList() { + }, + _LengthList_JavaScriptObject_ListMixin: function _LengthList_JavaScriptObject_ListMixin() { + }, + _LengthList_JavaScriptObject_ListMixin_ImmutableListMixin: function _LengthList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _NumberList_JavaScriptObject_ListMixin: function _NumberList_JavaScriptObject_ListMixin() { + }, + _NumberList_JavaScriptObject_ListMixin_ImmutableListMixin: function _NumberList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _StringList_JavaScriptObject_ListMixin: function _StringList_JavaScriptObject_ListMixin() { + }, + _StringList_JavaScriptObject_ListMixin_ImmutableListMixin: function _StringList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + _TransformList_JavaScriptObject_ListMixin: function _TransformList_JavaScriptObject_ListMixin() { + }, + _TransformList_JavaScriptObject_ListMixin_ImmutableListMixin: function _TransformList_JavaScriptObject_ListMixin_ImmutableListMixin() { + }, + AudioBuffer: function AudioBuffer() { + }, + AudioParamMap: function AudioParamMap() { + }, + AudioParamMap_keys_closure: function AudioParamMap_keys_closure(t0) { + this.keys = t0; + }, + AudioTrackList: function AudioTrackList() { + }, + BaseAudioContext: function BaseAudioContext() { + }, + OfflineAudioContext: function OfflineAudioContext() { + }, + _AudioParamMap_JavaScriptObject_MapMixin: function _AudioParamMap_JavaScriptObject_MapMixin() { + }, + ArchiveException$(message) { + return new A.ArchiveException(message, null, null); + }, + ArchiveException: function ArchiveException(t0, t1, t2) { + this.message = t0; + this.source = t1; + this.offset = t2; + }, + InputStream$(data, byteOrder, $length, start) { + var t1, t2; + if (type$.TypedData._is(data)) + t1 = A.NativeUint8List_NativeUint8List$view(data.buffer, data.byteOffset, data.byteLength); + else + t1 = type$.List_int._is(data) ? data : A.List_List$from(type$.Iterable_dynamic._as(data), type$.int); + t2 = new A.InputStream(t1, start, start, byteOrder); + t2.__InputStream__length = $length == null ? t1.length : $length; + return t2; + }, + InputStreamBase: function InputStreamBase() { + }, + InputStream: function InputStream(t0, t1, t2, t3) { + var _ = this; + _.buffer = t0; + _.offset = t1; + _.start = t2; + _.byteOrder = t3; + _.__InputStream__length = $; + }, + OutputStream$(byteOrder, size) { + var t1 = size == null ? 32768 : size; + return new A.OutputStream(byteOrder, new Uint8Array(t1)); + }, + OutputStreamBase: function OutputStreamBase() { + }, + OutputStream: function OutputStream(t0, t1) { + this.length = 0; + this.byteOrder = t0; + this._output_stream$_buffer = t1; + }, + _ZLibDecoder: function _ZLibDecoder() { + }, + Deflate__smaller(tree, n, m, depth) { + var t3, + t1 = n * 2, + t2 = tree.length; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(tree, t1); + t1 = tree[t1]; + t3 = m * 2; + if (!(t3 >= 0 && t3 < t2)) + return A.ioore(tree, t3); + t3 = tree[t3]; + if (t1 >= t3) + if (t1 === t3) { + if (!(n >= 0 && n < 573)) + return A.ioore(depth, n); + t1 = depth[n]; + if (!(m >= 0 && m < 573)) + return A.ioore(depth, m); + t1 = t1 <= depth[m]; + } else + t1 = false; + else + t1 = true; + return t1; + }, + _HuffmanTree$() { + return new A._HuffmanTree(); + }, + _HuffmanTree__genCodes(tree, maxCode, blCount) { + var code, bits, t1, n, t2, t3, len, + nextCode = new Uint16Array(16); + for (code = 0, bits = 1; bits <= 15; ++bits) { + code = code + blCount[bits - 1] << 1 >>> 0; + if (!(bits < 16)) + return A.ioore(nextCode, bits); + nextCode[bits] = code; + } + for (t1 = tree.length, n = 0; n <= maxCode; ++n) { + t2 = n * 2; + t3 = t2 + 1; + if (!(t3 < t1)) + return A.ioore(tree, t3); + len = tree[t3]; + if (len === 0) + continue; + if (!(len < 16)) + return A.ioore(nextCode, len); + t3 = nextCode[len]; + if (!(len < 16)) + return A.ioore(nextCode, len); + nextCode[len] = t3 + 1; + t3 = A._HuffmanTree__reverseBits(t3, len); + if (!(t2 < t1)) + return A.ioore(tree, t2); + tree[t2] = t3; + } + }, + _HuffmanTree__reverseBits(code, len) { + var code0, res = 0; + do { + code0 = A._rshift(code, 1); + res = (res | code & 1) << 1 >>> 0; + if (--len, len > 0) { + code = code0; + continue; + } else + break; + } while (true); + return A._rshift(res, 1); + }, + _HuffmanTree__dCode(dist) { + var t1; + if (dist < 256) { + if (!(dist >= 0)) + return A.ioore(B.List_AyI, dist); + t1 = B.List_AyI[dist]; + } else { + t1 = 256 + A._rshift(dist, 7); + if (!(t1 < 512)) + return A.ioore(B.List_AyI, t1); + t1 = B.List_AyI[t1]; + } + return t1; + }, + _StaticTree$(staticTree, extraBits, extraBase, numElements, maxLength) { + return new A._StaticTree(staticTree, extraBits, extraBase, numElements, maxLength); + }, + _rshift(number, bits) { + if (number >= 0) + return B.JSInt_methods.$shr(number, bits); + else + return B.JSInt_methods.$shr(number, bits) + B.JSInt_methods._shlPositive$1(2, (~bits >>> 0) + 65536 & 65535); + }, + Deflate: function Deflate(t0, t1, t2, t3, t4, t5, t6, t7) { + var _ = this; + _.total = _.crc32 = 0; + _._deflate$_input = t0; + _._deflate$_output = t1; + _._status = null; + _.__Deflate__pending = _.__Deflate__pendingOut = _.__Deflate__pendingBufferSize = _.__Deflate__pendingBuffer = $; + _._dataType = 2; + _.__Deflate__strStart = _.__Deflate__matchAvailable = _.__Deflate__prevMatch = _.__Deflate__matchLength = _.__Deflate__blockStart = _.__Deflate__hashShift = _.__Deflate__hashMask = _.__Deflate__hashBits = _.__Deflate__hashSize = _.__Deflate__insertHash = _.__Deflate__head = _.__Deflate__prev = _.__Deflate__actualWindowSize = _.__Deflate__window = _.__Deflate__windowMask = _.__Deflate__windowBits = _.__Deflate__windowSize = $; + _._matchStart = 0; + _.__Deflate__bitLengthTree = _.__Deflate__dynamicDistTree = _.__Deflate__dynamicLengthTree = _.__Deflate__strategy = _.__Deflate__level = _.__Deflate__prevLength = _.__Deflate__lookAhead = $; + _._lDesc = t2; + _._dDesc = t3; + _._blDesc = t4; + _._bitLengthCount = t5; + _._heap = t6; + _.__Deflate__heapMax = _.__Deflate__heapLen = $; + _._depth = t7; + _.__Deflate__numValidBits = _.__Deflate__bitBuffer = _.__Deflate__lastEOBLen = _.__Deflate__matches = _.__Deflate__staticLen = _.__Deflate__optimalLen = _.__Deflate__dbuf = _.__Deflate__lastLit = _.__Deflate__litBufferSize = _.__Deflate__lbuf = $; + }, + _DeflaterConfig: function _DeflaterConfig(t0, t1, t2, t3, t4) { + var _ = this; + _.goodLength = t0; + _.maxLazy = t1; + _.niceLength = t2; + _.maxChain = t3; + _.$function = t4; + }, + _HuffmanTree: function _HuffmanTree() { + this.___HuffmanTree_staticDesc = this.___HuffmanTree_maxCode = this.___HuffmanTree_dynamicTree = $; + }, + _StaticTree: function _StaticTree(t0, t1, t2, t3, t4) { + var _ = this; + _.staticTree = t0; + _.extraBits = t1; + _.extraBase = t2; + _.numElements = t3; + _.maxLength = t4; + }, + HuffmanTable$(lengths) { + var t1 = new A.HuffmanTable(); + t1.HuffmanTable$1(lengths); + return t1; + }, + HuffmanTable: function HuffmanTable() { + this.__HuffmanTable_table = $; + this.maxCodeLength = 0; + this.minCodeLength = 2147483647; + }, + Inflate$(bytes) { + var t1 = A.HuffmanTable$(B.List_2Bc), + t2 = A.HuffmanTable$(B.List_X3d); + t2 = new A.Inflate(A.InputStream$(bytes, 0, null, 0), A.OutputStream$(0, null), t1, t2); + t2.inputSet = true; + t2._inflate$0(); + return t2; + }, + Inflate: function Inflate(t0, t1, t2, t3) { + var _ = this; + _.__Inflate_input = t0; + _.inputSet = false; + _.output = t1; + _._bitBufferLen = _._bitBuffer = 0; + _._fixedLiteralLengthTable = t2; + _._fixedDistanceTable = t3; + }, + ZLibDecoderBase: function ZLibDecoderBase() { + }, + ZLibDecoder: function ZLibDecoder() { + }, + ZLibEncoder: function ZLibEncoder() { + }, + BlurHash_BlurHash$encode(image, numCompX, numCompY) { + var data, components, t1, i, t2, y, t3, x, normalisation, hash; + if (numCompX < 1 || numCompX > 9 || numCompY < 1 || numCompY > 9) + throw A.wrapException(new A.BlurHashEncodeException("BlurHash components must be between 1 and 9.")); + data = image.getBytes$1$format(B.Format_2); + components = J.JSArray_JSArray$allocateGrowable(numCompY, type$.List_ColorTriplet); + for (t1 = type$.ColorTriplet, i = 0; i < numCompY; ++i) + components[i] = A.List_List$filled(numCompX, new A.ColorTriplet(0, 0, 0), false, t1); + for (t1 = image.width, t2 = image.height, y = 0; y < numCompY; ++y) + for (t3 = y === 0, x = 0; x < numCompX; ++x) { + normalisation = x === 0 && t3 ? 1 : 2; + if (!(y < components.length)) + return A.ioore(components, y); + B.JSArray_methods.$indexSet(components[y], x, A._multiplyBasisFunction(data, t1, t2, x, y, normalisation)); + } + hash = A._encodeComponents(components); + if (0 >= components.length) + return A.ioore(components, 0); + return new A.BlurHash(hash); + }, + _encodeComponents(components) { + var numCompX, factors, count, i, j, count0, t2, + t1 = components.length; + if (0 >= t1) + return A.ioore(components, 0); + numCompX = components[0].length; + factors = A.List_List$filled(numCompX * t1, new A.ColorTriplet(0, 0, 0), false, type$.ColorTriplet); + for (count = 0, i = 0; i < t1; ++i) + for (j = 0; j < numCompX; ++j, count = count0) { + count0 = count + 1; + if (!(i < components.length)) + return A.ioore(components, i); + t2 = components[i]; + if (!(j < t2.length)) + return A.ioore(t2, j); + B.JSArray_methods.$indexSet(factors, count, t2[j]); + } + return A._encodeFactors(factors, numCompX, t1); + }, + _encodeFactors(factors, numCompX, numCompY) { + var t2, quantisedMax, maxVal, _i, factor, t3, r, g, + dc = B.JSArray_methods.get$first(factors), + ac = A.SubListIterable$(factors, 1, null, A._arrayInstanceType(factors)._precomputed1).toList$0(0), + t1 = "" + A.encode83(numCompX - 1 + (numCompY - 1) * 9, 1); + if (ac.length !== 0) { + t2 = A._arrayInstanceType(ac); + quantisedMax = Math.max(0, Math.min(82, B.JSNumber_methods.floor$0(new A.MappedListIterable(ac, t2._eval$1("double(1)")._as(A.blurhash___maxChannelAbs$closure()), t2._eval$1("MappedListIterable<1,double>")).reduce$1(0, B.CONSTANT) * 166 - 0.5))); + maxVal = (quantisedMax + 1) / 166; + t1 += A.encode83(quantisedMax, 1); + } else { + t1 += A.encode83(0, 1); + maxVal = 1; + } + t1 += A.encode83((A.linearTosRgb(dc.r) << 16 >>> 0) + (A.linearTosRgb(dc.g) << 8 >>> 0) + A.linearTosRgb(dc.b), 4); + for (t2 = ac.length, _i = 0; _i < ac.length; ac.length === t2 || (0, A.throwConcurrentModificationError)(ac), ++_i, t1 = t3) { + factor = ac[_i]; + t3 = factor.r / maxVal; + r = B.JSNumber_methods.floor$0(Math.max(0, Math.min(18, Math.pow(Math.abs(t3), 0.5) * J.get$sign$in(t3) * 9 + 9.5))); + t3 = factor.g / maxVal; + g = B.JSNumber_methods.floor$0(Math.max(0, Math.min(18, Math.pow(Math.abs(t3), 0.5) * J.get$sign$in(t3) * 9 + 9.5))); + t3 = factor.b / maxVal; + t3 = t1 + A.encode83(r * 19 * 19 + g * 19 + B.JSNumber_methods.floor$0(Math.max(0, Math.min(18, Math.pow(Math.abs(t3), 0.5) * J.get$sign$in(t3) * 9 + 9.5))), 2); + } + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _maxChannelAbs(c) { + type$.ColorTriplet._as(c); + return Math.max(Math.abs(c.r), Math.max(Math.abs(c.g), Math.abs(c.b))); + }, + _multiplyBasisFunction(pixels, width, height, x, y, normalisation) { + var t1, t2, t3, r, g, b, i, t4, t5, t6, t7, j, basis, t8, t9, scale, + bytesPerRow = width * 4; + for (t1 = 3.141592653589793 * x, t2 = 3.141592653589793 * y, t3 = pixels.length, r = 0, g = 0, b = 0, i = 0; i < width; ++i) + for (t4 = t1 * i / width, t5 = 4 * i, t6 = t5 + 1, t7 = t5 + 2, j = 0; j < height; ++j) { + basis = normalisation * Math.cos(t4) * Math.cos(t2 * j / height); + t8 = j * bytesPerRow; + t9 = t5 + t8; + if (!(t9 >= 0 && t9 < t3)) + return A.ioore(pixels, t9); + r += basis * A.sRgbToLinear(pixels[t9]); + t9 = t6 + t8; + if (!(t9 >= 0 && t9 < t3)) + return A.ioore(pixels, t9); + g += basis * A.sRgbToLinear(pixels[t9]); + t8 = t7 + t8; + if (!(t8 >= 0 && t8 < t3)) + return A.ioore(pixels, t8); + b += basis * A.sRgbToLinear(pixels[t8]); + } + scale = 1 / (width * height); + return new A.ColorTriplet(r * scale, g * scale, b * scale); + }, + BlurHash: function BlurHash(t0) { + this.hash = t0; + }, + BlurHashEncodeException: function BlurHashEncodeException(t0) { + this.message = t0; + }, + sRgbToLinear(value) { + var v = value / 255; + if (v <= 0.04045) + return v / 12.92; + return Math.pow((v + 0.055) / 1.055, 2.4); + }, + linearTosRgb(value) { + var v = B.JSNumber_methods.clamp$2(value, 0, 1); + if (v <= 0.0031308) + return B.JSNumber_methods.toInt$0(v * 12.92 * 255 + 0.5); + return B.JSNumber_methods.toInt$0((1.055 * Math.pow(v, 0.4166666666666667) - 0.055) * 255 + 0.5); + }, + ColorTriplet: function ColorTriplet(t0, t1, t2) { + this.r = t0; + this.g = t1; + this.b = t2; + }, + ExifData$from(other) { + var t1 = type$.int, + t2 = type$.dynamic; + t1 = new A.ExifData(other == null ? A.LinkedHashMap_LinkedHashMap$_empty(t1, t2) : A.LinkedHashMap_LinkedHashMap$from(other.data, t1, t2)); + t1.ExifData$from$1(other); + return t1; + }, + ExifData: function ExifData(t0) { + this.rawData = null; + this.data = t0; + }, + BitmapFileHeader$(b) { + var t2, t3, + t1 = new A.BitmapFileHeader(); + if (!A.BitmapFileHeader_isValidFile(b)) + A.throwExpression(A.ImageException$("Not a bitmap file.")); + b.offset += 2; + t2 = b.readUint32$0(); + t3 = $.$get$__uint32(); + t3[0] = t2; + t2 = $.$get$__uint32ToInt32(); + if (0 >= t2.length) + return A.ioore(t2, 0); + t1.__BitmapFileHeader_fileLength = t2[0]; + b.offset += 4; + t3[0] = b.readUint32$0(); + if (0 >= t2.length) + return A.ioore(t2, 0); + t1.__BitmapFileHeader_offset = t2[0]; + return t1; + }, + BitmapFileHeader_isValidFile(b) { + if (b.end - b.offset < 2) + return false; + return A.InputBuffer$from(b, null, 0).readUint16$0() === 19778; + }, + BmpInfo$(p, fileHeader) { + var t5, t6, t7, t8, t9, compression, t10, + t1 = fileHeader == null ? A.BitmapFileHeader$(p) : fileHeader, + t2 = p.readUint32$0(), + t3 = p.readUint32$0(), + t4 = $.$get$__uint32(); + t4[0] = t3; + t3 = $.$get$__uint32ToInt32(); + if (0 >= t3.length) + return A.ioore(t3, 0); + t5 = t3[0]; + t4[0] = p.readUint32$0(); + if (0 >= t3.length) + return A.ioore(t3, 0); + t6 = t3[0]; + t7 = p.readUint16$0(); + t8 = p.readUint16$0(); + t9 = p.readUint32$0(); + compression = A.LinkedHashMap_LinkedHashMap$_literal([0, B.BitmapCompression_1, 3, B.BitmapCompression_0], type$.int, type$.BitmapCompression).$index(0, t9); + if (compression == null) + A.throwExpression(A.ImageException$("Bitmap compression " + t9 + " is not supported yet.")); + t9 = p.readUint32$0(); + t4[0] = p.readUint32$0(); + if (0 >= t3.length) + return A.ioore(t3, 0); + t10 = t3[0]; + t4[0] = p.readUint32$0(); + if (0 >= t3.length) + return A.ioore(t3, 0); + t3 = new A.BmpInfo(t1, t6, t5, t2, t7, t8, compression, t9, t10, t3[0], p.readUint32$0(), p.readUint32$0()); + t3.BmpInfo$2$fileHeader(p, fileHeader); + return t3; + }, + BitmapCompression: function BitmapCompression(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + BitmapFileHeader: function BitmapFileHeader() { + this.__BitmapFileHeader_offset = this.__BitmapFileHeader_fileLength = $; + }, + BmpInfo: function BmpInfo(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) { + var _ = this; + _.file = t0; + _._bmp_info$_height = t1; + _.BmpInfo_width = t2; + _.headerSize = t3; + _.planes = t4; + _.bpp = t5; + _.compression = t6; + _.imageSize = t7; + _.xppm = t8; + _.yppm = t9; + _.totalColors = t10; + _.importantColors = t11; + _.colorPalette = _.v5alphaMask = _.v5blueMask = _.v5greenMask = _.v5redMask = null; + _.height = _.width = 0; + }, + BmpInfo_readPalette_closure: function BmpInfo_readPalette_closure(t0, t1, t2) { + this.$this = t0; + this.p = t1; + this.colorBytes = t2; + }, + BmpDecoder: function BmpDecoder() { + this.__BmpDecoder__input = $; + this.info = null; + }, + BmpDecoder_decodeFrame_closure: function BmpDecoder_decodeFrame_closure(t0, t1, t2) { + this._box_0 = t0; + this.image = t1; + this.line = t2; + }, + DibDecoder: function DibDecoder() { + this.__BmpDecoder__input = $; + this.info = null; + }, + BmpEncoder: function BmpEncoder() { + }, + CurEncoder: function CurEncoder() { + }, + DecodeInfo: function DecodeInfo() { + }, + Decoder: function Decoder() { + }, + Encoder: function Encoder() { + }, + ExrAttribute: function ExrAttribute() { + }, + InternalExrB44Compressor: function InternalExrB44Compressor(t0, t1) { + var _ = this; + _._numScanLines = t0; + _.decodedHeight = _.decodedWidth = 0; + _._header = t1; + }, + ExrChannel: function ExrChannel() { + var _ = this; + _.name = null; + _.__ExrChannel_ySampling = _.__ExrChannel_xSampling = _.__ExrChannel_size = _.__ExrChannel_type = $; + }, + ExrCompressor_ExrCompressor(type, hdr, maxScanLineSize, numScanLines) { + var t1, t2; + switch (type) { + case 1: + return new A.InternalExrRleCompressor(hdr); + case 2: + return new A.InternalExrZipCompressor(numScanLines == null ? 1 : numScanLines, hdr); + case 3: + return new A.InternalExrZipCompressor(numScanLines == null ? 16 : numScanLines, hdr); + case 4: + t1 = numScanLines == null ? 32 : numScanLines; + t2 = new A.InternalExrPizCompressor(maxScanLineSize, t1, hdr); + t2.InternalExrPizCompressor$3(hdr, maxScanLineSize, t1); + return t2; + case 5: + return new A.InternalExrPxr24Compressor(maxScanLineSize, numScanLines == null ? 16 : numScanLines, hdr); + case 6: + return new A.InternalExrB44Compressor(numScanLines == null ? 32 : numScanLines, hdr); + case 7: + return new A.InternalExrB44Compressor(numScanLines == null ? 32 : numScanLines, hdr); + default: + throw A.wrapException(A.ImageException$("Invalid compression type: " + type)); + } + }, + ExrCompressor: function ExrCompressor() { + }, + InternalExrCompressor: function InternalExrCompressor() { + }, + ExrHuffman_uncompress(compressed, nCompressed, raw, nRaw) { + var start, im, iM, nBits, t1, freq, hdec, _i; + if (nCompressed === 0) { + if (nRaw !== 0) + throw A.wrapException(A.ImageException$("Incomplete huffman data")); + return; + } + start = compressed.offset; + im = compressed.readUint32$0(); + iM = compressed.readUint32$0(); + compressed.offset += 4; + nBits = compressed.readUint32$0(); + if (im < 65537) + t1 = iM >= 65537; + else + t1 = true; + if (t1) + throw A.wrapException(A.ImageException$("Invalid huffman table size")); + compressed.offset += 4; + freq = A.List_List$filled(65537, 0, false, type$.int); + hdec = J.JSArray_JSArray$allocateFixed(16384, type$.ExrHufDec); + for (_i = 0; _i < 16384; ++_i) + hdec[_i] = new A.ExrHufDec(); + A.ExrHuffman_unpackEncTable(compressed, nCompressed - 20, im, iM, freq); + if (nBits > 8 * (nCompressed - (compressed.offset - start))) + throw A.wrapException(A.ImageException$("Error in header for Huffman-encoded data (invalid number of bits).")); + A.ExrHuffman_buildDecTable(freq, im, iM, hdec); + A.ExrHuffman_decode(freq, hdec, compressed, nBits, iM, nRaw, raw); + }, + ExrHuffman_decode(hcode, hdecod, input, ni, rlc, no, out) { + var t1, oi, t2, t3, pl, j, l, oi0, i, + _s45_ = "Error in Huffman-encoded data (invalid code).", + c_lc = A._setArrayType([0, 0], type$.JSArray_int), + ie = input.offset + B.JSInt_methods._tdivFast$1(ni + 7, 8); + for (t1 = hdecod.length, oi = 0; input.offset < ie;) { + A.ExrHuffman_getChar(c_lc, input); + for (; t2 = c_lc[1], t2 >= 14;) { + t3 = B.JSInt_methods.$shr(c_lc[0], t2 - 14) & 16383; + if (!(t3 < t1)) + return A.ioore(hdecod, t3); + pl = hdecod[t3]; + t3 = pl.len; + if (t3 !== 0) { + B.JSArray_methods.$indexSet(c_lc, 1, t2 - t3); + oi = A.ExrHuffman_getCode(pl.lit, rlc, c_lc, input, out, oi, no); + } else { + if (pl.p == null) + throw A.wrapException(A.ImageException$(_s45_)); + for (j = 0; j < pl.lit; ++j) { + t2 = pl.p; + if (!(j < t2.length)) + return A.ioore(t2, j); + t2 = t2[j]; + if (!(t2 < 65537)) + return A.ioore(hcode, t2); + l = hcode[t2] & 63; + while (true) { + t2 = c_lc[1]; + if (!(t2 < l && input.offset < ie)) + break; + A.ExrHuffman_getChar(c_lc, input); + } + if (t2 >= l) { + t3 = pl.p; + if (!(j < t3.length)) + return A.ioore(t3, j); + t3 = t3[j]; + if (!(t3 < 65537)) + return A.ioore(hcode, t3); + t2 -= l; + if (hcode[t3] >>> 6 === (B.JSInt_methods.$shr(c_lc[0], t2) & B.JSInt_methods._shlPositive$1(1, l) - 1) >>> 0) { + B.JSArray_methods.$indexSet(c_lc, 1, t2); + t2 = pl.p; + if (!(j < t2.length)) + return A.ioore(t2, j); + oi0 = A.ExrHuffman_getCode(t2[j], rlc, c_lc, input, out, oi, no); + oi = oi0; + break; + } + } + } + if (j === pl.lit) + throw A.wrapException(A.ImageException$(_s45_)); + } + } + } + i = 8 - ni & 7; + B.JSArray_methods.$indexSet(c_lc, 0, B.JSInt_methods._shrOtherPositive$1(c_lc[0], i)); + B.JSArray_methods.$indexSet(c_lc, 1, c_lc[1] - i); + for (; t2 = c_lc[1], t2 > 0;) { + t3 = B.JSInt_methods.$shl(c_lc[0], 14 - t2) & 16383; + if (!(t3 < t1)) + return A.ioore(hdecod, t3); + pl = hdecod[t3]; + t3 = pl.len; + if (t3 !== 0) { + B.JSArray_methods.$indexSet(c_lc, 1, t2 - t3); + oi = A.ExrHuffman_getCode(pl.lit, rlc, c_lc, input, out, oi, no); + } else + throw A.wrapException(A.ImageException$(_s45_)); + } + if (oi !== no) + throw A.wrapException(A.ImageException$("Error in Huffman-encoded data (decoded data are shorter than expected).")); + }, + ExrHuffman_getCode(po, rlc, c_lc, input, out, oi, oe) { + var cs, t1, t2, s, cs0, oi0, + _s70_ = "Error in Huffman-encoded data (decoded data are longer than expected)."; + if (po === rlc) { + if (c_lc[1] < 8) + A.ExrHuffman_getChar(c_lc, input); + B.JSArray_methods.$indexSet(c_lc, 1, c_lc[1] - 8); + cs = B.JSInt_methods.$shr(c_lc[0], c_lc[1]) & 255; + if (oi + cs > oe) + throw A.wrapException(A.ImageException$(_s70_)); + t1 = oi - 1; + t2 = out.length; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(out, t1); + s = out[t1]; + for (; cs0 = cs - 1, cs > 0; cs = cs0, oi = oi0) { + oi0 = oi + 1; + if (!(oi < t2)) + return A.ioore(out, oi); + out[oi] = s; + } + } else { + if (oi < oe) { + oi0 = oi + 1; + if (!(oi < out.length)) + return A.ioore(out, oi); + out[oi] = po; + } else + throw A.wrapException(A.ImageException$(_s70_)); + oi = oi0; + } + return oi; + }, + ExrHuffman_buildDecTable(hcode, im, iM, hdecod) { + var t1, t2, t3, t4, c, l, pl, t5, i, pi, + _s57_ = "Error in Huffman-encoded data (invalid code table entry)."; + for (t1 = hdecod.length, t2 = type$.JSArray_int, t3 = type$.int; im <= iM; ++im) { + if (!(im < 65537)) + return A.ioore(hcode, im); + t4 = hcode[im]; + c = t4 >>> 6; + l = t4 & 63; + if (B.JSInt_methods._shrBothPositive$1(c, l) !== 0) + throw A.wrapException(A.ImageException$(_s57_)); + if (l > 14) { + t4 = B.JSInt_methods._shrReceiverPositive$1(c, l - 14); + if (!(t4 < t1)) + return A.ioore(hdecod, t4); + pl = hdecod[t4]; + if (pl.len !== 0) + throw A.wrapException(A.ImageException$(_s57_)); + t4 = ++pl.lit; + t5 = pl.p; + if (t5 != null) { + pl.set$p(A.List_List$filled(t4, 0, false, t3)); + for (i = 0; i < pl.lit - 1; ++i) { + t4 = pl.p; + t4.toString; + if (!(i < t5.length)) + return A.ioore(t5, i); + B.JSArray_methods.$indexSet(t4, i, t5[i]); + } + } else + pl.set$p(A._setArrayType([0], t2)); + t4 = pl.p; + t4.toString; + B.JSArray_methods.$indexSet(t4, pl.lit - 1, im); + } else if (l !== 0) { + t4 = 14 - l; + pi = B.JSInt_methods.$shl(c, t4); + if (!(pi < t1)) + return A.ioore(hdecod, pi); + for (i = B.JSInt_methods.$shl(1, t4); i > 0; --i, ++pi) { + if (!(pi < t1)) + return A.ioore(hdecod, pi); + pl = hdecod[pi]; + if (pl.len !== 0 || pl.p != null) + throw A.wrapException(A.ImageException$(_s57_)); + pl.len = l; + pl.lit = im; + } + } + } + }, + ExrHuffman_unpackEncTable(p, ni, im, iM, hcode) { + var t1, l, zerun, zerun0, im0, + _s66_ = "Error in Huffman-encoded data (unexpected end of code table data).", + _s67_ = "Error in Huffman-encoded data (code table is longer than expected).", + pcode = p.offset, + c_lc = A._setArrayType([0, 0], type$.JSArray_int); + for (t1 = iM + 1; im <= iM; ++im) { + if (p.offset - pcode > ni) + throw A.wrapException(A.ImageException$(_s66_)); + l = A.ExrHuffman_getBits(6, c_lc, p); + B.JSArray_methods.$indexSet(hcode, im, l); + if (l === 63) { + if (p.offset - pcode > ni) + throw A.wrapException(A.ImageException$(_s66_)); + zerun = A.ExrHuffman_getBits(8, c_lc, p) + 6; + if (im + zerun > t1) + throw A.wrapException(A.ImageException$(_s67_)); + for (; zerun0 = zerun - 1, zerun !== 0; zerun = zerun0, im = im0) { + im0 = im + 1; + B.JSArray_methods.$indexSet(hcode, im, 0); + } + --im; + } else if (l >= 59) { + zerun = l - 59 + 2; + if (im + zerun > t1) + throw A.wrapException(A.ImageException$(_s67_)); + for (; zerun0 = zerun - 1, zerun !== 0; zerun = zerun0, im = im0) { + im0 = im + 1; + B.JSArray_methods.$indexSet(hcode, im, 0); + } + --im; + } + } + A.ExrHuffman_canonicalCodeTable(hcode); + }, + ExrHuffman_canonicalCodeTable(hcode) { + var i, t1, c, nc, l, + n = A.List_List$filled(59, 0, false, type$.int); + for (i = 0; i < 65537; ++i) { + t1 = hcode[i]; + if (!(t1 < 59)) + return A.ioore(n, t1); + B.JSArray_methods.$indexSet(n, t1, n[t1] + 1); + } + for (c = 0, i = 58; i > 0; --i, c = nc) { + nc = c + n[i] >>> 1; + B.JSArray_methods.$indexSet(n, i, c); + } + for (i = 0; i < 65537; ++i) { + l = hcode[i]; + if (l > 0) { + if (!(l < 59)) + return A.ioore(n, l); + t1 = n[l]; + B.JSArray_methods.$indexSet(n, l, t1 + 1); + B.JSArray_methods.$indexSet(hcode, i, (l | t1 << 6) >>> 0); + } + } + }, + ExrHuffman_getChar(c_lc, input) { + B.JSArray_methods.$indexSet(c_lc, 0, ((c_lc[0] << 8 | input.readByte$0()) & -1) >>> 0); + B.JSArray_methods.$indexSet(c_lc, 1, (c_lc[1] + 8 & -1) >>> 0); + }, + ExrHuffman_getBits(nBits, c_lc, input) { + var t1, t2, t3; + for (; t1 = c_lc[1], t1 < nBits;) { + t1 = c_lc[0]; + t2 = input.buffer; + t3 = input.offset++; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + B.JSArray_methods.$indexSet(c_lc, 0, ((t1 << 8 | t2[t3]) & -1) >>> 0); + B.JSArray_methods.$indexSet(c_lc, 1, (c_lc[1] + 8 & -1) >>> 0); + } + B.JSArray_methods.$indexSet(c_lc, 1, t1 - nBits); + return (B.JSInt_methods.$shr(c_lc[0], c_lc[1]) & B.JSInt_methods._shlPositive$1(1, nBits) - 1) >>> 0; + }, + ExrHufDec: function ExrHufDec() { + this.lit = this.len = 0; + this.p = null; + }, + ExrImage_isValidFile(bytes) { + var input = A.InputBuffer$(bytes, false, null, 0); + if (input.readUint32$0() !== 20000630) + return false; + if (input.readByte$0() !== 2) + return false; + if ((input.readUint24$0() & 4294967289) >>> 0 !== 0) + return false; + return true; + }, + ExrImage: function ExrImage(t0) { + var _ = this; + _._parts = t0; + _.version = null; + _.__ExrImage_flags = $; + _.height = _.width = 0; + }, + InternalExrPart$(tiled, input) { + var t1 = new A.InternalExrPart(new A.HdrImage(A.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_String, type$.HdrSlice)), A._setArrayType([], type$.JSArray_ExrChannel), A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.ExrAttribute), tiled); + t1.ExrPart$2(tiled, input, {}); + return t1; + }, + ExrPart: function ExrPart() { + }, + ExrPart_closure: function ExrPart_closure(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + InternalExrPart: function InternalExrPart(t0, t1, t2, t3) { + var _ = this; + _.framebuffer = t0; + _.channels = t1; + _.attributes = t2; + _.__ExrPart_dataWindow = $; + _.height = _.width = null; + _.__ExrPart_chromaticities = $; + _._compressionType = 0; + _._offsets = null; + _.__ExrPart__bytesPerLine = $; + _._offsetInLineBuffer = _._linesInBuffer = _._compressor = null; + _._tiled = t3; + _._numYLevels = _._numXLevels = _._numYTiles = _._numXTiles = _._tileRoundingMode = _._tileLevelMode = _._tileHeight = _._tileWidth = null; + _.__ExrPart__bytesPerPixel = $; + _._maxBytesPerTileLine = null; + }, + InternalExrPizCompressor: function InternalExrPizCompressor(t0, t1, t2) { + var _ = this; + _._exr_piz_compressor$_output = null; + _._exr_piz_compressor$_maxScanLineSize = t0; + _._exr_piz_compressor$_numScanLines = t1; + _.__InternalExrPizCompressor__channelData = $; + _._tmpBuffer = null; + _.decodedHeight = _.decodedWidth = 0; + _._header = t2; + }, + _PizChannelData: function _PizChannelData() { + var _ = this; + _.___PizChannelData_size = _.___PizChannelData_ys = _.___PizChannelData_ny = _.___PizChannelData_nx = _.___PizChannelData_end = _.___PizChannelData_start = $; + }, + InternalExrPxr24Compressor: function InternalExrPxr24Compressor(t0, t1, t2) { + var _ = this; + _._maxScanLineSize = t0; + _._exr_pxr24_compressor$_numScanLines = t1; + _._output = null; + _.decodedHeight = _.decodedWidth = 0; + _._header = t2; + }, + InternalExrRleCompressor: function InternalExrRleCompressor(t0) { + var _ = this; + _._exr_rle_compressor$_outCache = null; + _.decodedHeight = _.decodedWidth = 0; + _._header = t0; + }, + InternalExrZipCompressor: function InternalExrZipCompressor(t0, t1) { + var _ = this; + _._exr_zip_compressor$_numScanLines = t0; + _._outCache = null; + _.decodedHeight = _.decodedWidth = 0; + _._header = t1; + }, + ExrDecoder: function ExrDecoder() { + this.exrImage = null; + }, + GifColorMap$(numColors) { + var t1 = new Uint8Array(numColors * 3); + A.GifColorMap__bitSize(numColors); + return new A.GifColorMap(numColors, t1); + }, + GifColorMap__bitSize(n) { + var i; + for (i = 1; i <= 8; ++i) + if (B.JSInt_methods._shlPositive$1(1, i) >= n) + return i; + return 0; + }, + GifColorMap: function GifColorMap(t0, t1) { + this.numColors = t0; + this.transparent = null; + this.colors = t1; + }, + GifImageDesc: function GifImageDesc() { + }, + InternalGifImageDesc: function InternalGifImageDesc() { + var _ = this; + _.__GifImageDesc_interlaced = _.__GifImageDesc_height = _.__GifImageDesc_width = _.__GifImageDesc_y = _.__GifImageDesc_x = $; + _.colorMap = null; + _.__GifImageDesc__inputPosition = $; + }, + GifInfo: function GifInfo(t0) { + var _ = this; + _.globalColorMap = null; + _.frames = t0; + _.height = _.width = 0; + }, + GifDecoder: function GifDecoder() { + var _ = this; + _._gif_decoder$_buffer = _._input = _.info = null; + _.__GifDecoder__suffix = _.__GifDecoder__stack = $; + _._prefix = null; + _._bitsPerPixel = 0; + _._pixelCount = null; + _._stackPtr = _._currentShiftState = _._currentShiftDWord = 0; + _._currentCode = null; + _._clearCode = _._eofCode = _._runningCode = _._runningBits = _._maxCode1 = _._lastCode = 0; + }, + GifEncoder: function GifEncoder(t0) { + var _ = this; + _.samplingFactor = t0; + _._lastColorMap = _._lastImageDuration = _._lastImage = null; + _.__GifEncoder__height = _.__GifEncoder__width = $; + _._freeEnt = _._gif_encoder$_clearCode = _._maxCode = _._EOFCode = _._initBits = _._nBits = _._curBits = _._curAccum = _._encodedFrames = 0; + _._clearFlag = false; + _.__GifEncoder__block = $; + _._blockSize = 0; + _.output = null; + }, + GifEncoder__encodeLZW__nextPixel: function GifEncoder__encodeLZW__nextPixel(t0, t1) { + this._box_0 = t0; + this.image = t1; + }, + IcoInfo__read(input) { + var type, imageCount; + if (input.readUint16$0() !== 0) + return null; + type = input.readUint16$0(); + if (!B.JSArray_methods.contains$1(A._setArrayType([1, 2], type$.JSArray_int), type)) + return null; + if (type === 2) + return null; + imageCount = input.readUint16$0(); + return new A.IcoInfo(imageCount, A.Iterable_Iterable$generate(imageCount, new A.IcoInfo__read_closure(input), type$.IcoInfoImage).toList$0(0)); + }, + IcoDecoder: function IcoDecoder() { + this._icoInfo = this._ico_decoder$_input = null; + }, + IcoInfo: function IcoInfo(t0, t1) { + var _ = this; + _.numFrames = t0; + _.images = t1; + _.height = _.width = 0; + }, + IcoInfo__read_closure: function IcoInfo__read_closure(t0) { + this.input = t0; + }, + IcoInfoImage: function IcoInfoImage(t0, t1) { + this.bytesSize = t0; + this.bytesOffset = t1; + }, + IcoBmpInfo: function IcoBmpInfo(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) { + var _ = this; + _.file = t0; + _._bmp_info$_height = t1; + _.BmpInfo_width = t2; + _.headerSize = t3; + _.planes = t4; + _.bpp = t5; + _.compression = t6; + _.imageSize = t7; + _.xppm = t8; + _.yppm = t9; + _.totalColors = t10; + _.importantColors = t11; + _.colorPalette = _.v5alphaMask = _.v5blueMask = _.v5greenMask = _.v5redMask = null; + _.height = _.width = 0; + }, + WinEncoder: function WinEncoder() { + }, + IcoEncoder: function IcoEncoder() { + }, + ComponentData: function ComponentData(t0, t1, t2) { + this.lines = t0; + this.hScaleShift = t1; + this.vScaleShift = t2; + }, + JpegAdobe: function JpegAdobe() { + this.transformCode = null; + }, + JpegComponent: function JpegComponent(t0, t1, t2, t3) { + var _ = this; + _.hSamples = t0; + _.vSamples = t1; + _.quantizationTableList = t2; + _.quantizationIndex = t3; + _.__JpegComponent_pred = _.__JpegComponent_huffmanTableAC = _.__JpegComponent_huffmanTableDC = _.__JpegComponent_blocks = _.__JpegComponent_blocksPerColumn = _.__JpegComponent_blocksPerLine = $; + }, + JpegData$() { + var t1 = type$.JSArray_nullable_List_dynamic; + return new A.JpegData(new A.ExifData(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.dynamic)), A.List_List$filled(4, null, false, type$.nullable_Int16List), A._setArrayType([], type$.JSArray_nullable_JpegFrame), A._setArrayType([], t1), A._setArrayType([], t1), A._setArrayType([], type$.JSArray_ComponentData)); + }, + JpegData: function JpegData(t0, t1, t2, t3, t4, t5) { + var _ = this; + _.__JpegData_jfif = _.__JpegData_input = $; + _.resetInterval = _.frame = _.adobe = null; + _.exif = t0; + _.quantizationTables = t1; + _.frames = t2; + _.huffmanTablesAC = t3; + _.huffmanTablesDC = t4; + _.components = t5; + }, + JpegData__readSOS_closure: function JpegData__readSOS_closure(t0, t1) { + this.$this = t0; + this.block = t1; + }, + _JpegHuffman: function _JpegHuffman(t0) { + this.children = t0; + this.index = 0; + }, + JpegFrame: function JpegFrame(t0, t1) { + var _ = this; + _.samplesPerLine = _.scanLines = _.precision = _.progressive = null; + _.maxVSamples = _.maxHSamples = 0; + _.__JpegFrame_mcusPerColumn = _.__JpegFrame_mcusPerLine = $; + _.components = t0; + _.componentsOrder = t1; + }, + JpegJfif: function JpegJfif() { + this.__JpegJfif_thumbHeight = this.__JpegJfif_thumbWidth = $; + }, + JpegScan: function JpegScan(t0, t1, t2, t3, t4, t5, t6, t7) { + var _ = this; + _.input = t0; + _.frame = t1; + _.__JpegScan_mcusPerLine = $; + _.progressive = null; + _.components = t2; + _.resetInterval = t3; + _.spectralStart = t4; + _.spectralEnd = t5; + _.successivePrev = t6; + _.successive = t7; + _.successiveACState = _.eobrun = _.bitsCount = _.bitsData = 0; + _.__JpegScan_successiveACNextValue = $; + }, + JpegDecoder: function JpegDecoder() { + }, + JpegEncoder: function JpegEncoder(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) { + var _ = this; + _.YTable = t0; + _.UVTable = t1; + _.fdtbl_Y = t2; + _.fdtbl_UV = t3; + _.UVDC_HT = _.YDC_HT = null; + _.__JpegEncoder_UVAC_HT = _.__JpegEncoder_YAC_HT = $; + _.bitcode = t4; + _.category = t5; + _.outputfDCTQuant = t6; + _.DU = t7; + _.YDU = t8; + _.UDU = t9; + _.VDU = t10; + _.RGB_YUV_TABLE = t11; + _.currentQuality = null; + _._bytenew = 0; + _._bytepos = 7; + }, + PngFrame: function PngFrame() { + }, + InternalPngFrame: function InternalPngFrame(t0) { + this.height = this.width = null; + this._fdat = t0; + }, + PngInfo: function PngInfo() { + }, + InternalPngInfo: function InternalPngInfo(t0, t1, t2) { + var _ = this; + _.gamma = _.colorLut = _.transparency = _.palette = _.interlaceMethod = _.filterMethod = _.colorType = _.bits = null; + _.iCCPName = ""; + _.iCCPData = null; + _.textData = t0; + _.frames = t1; + _._idat = t2; + _.height = _.width = 0; + }, + PngDecoder: function PngDecoder() { + var _ = this; + _._png_decoder$_info = null; + _._png_decoder$_bitBufferLen = _._png_decoder$_bitBuffer = 0; + _.__PngDecoder__input = $; + _._progressY = 0; + }, + PngDecoder_decodeFrame_closure: function PngDecoder_decodeFrame_closure() { + }, + PngEncoder$(level) { + return new A.PngEncoder(level); + }, + PngEncoder: function PngEncoder(t0) { + var _ = this; + _.channels = null; + _.level = t0; + _.__PngEncoder_yOffset = _.__PngEncoder_xOffset = $; + _.delay = null; + _.__PngEncoder__height = _.__PngEncoder__width = _.__PngEncoder_blendMethod = _.__PngEncoder_disposeMethod = $; + _.sequenceNumber = 0; + _.isAnimated = false; + _.output = null; + }, + PsdBevelEffect: function PsdBevelEffect() { + this.version = null; + }, + PsdDropShadowEffect: function PsdDropShadowEffect() { + this.version = null; + }, + PsdEffect: function PsdEffect() { + }, + PsdInnerGlowEffect: function PsdInnerGlowEffect() { + this.version = null; + }, + PsdInnerShadowEffect: function PsdInnerShadowEffect() { + this.version = null; + }, + PsdOuterGlowEffect: function PsdOuterGlowEffect() { + this.version = null; + }, + PsdSolidFillEffect: function PsdSolidFillEffect() { + this.version = null; + }, + PsdLayerAdditionalData: function PsdLayerAdditionalData(t0) { + this.data = t0; + }, + PsdLayerSectionDivider: function PsdLayerSectionDivider() { + }, + PsdBlendingRanges: function PsdBlendingRanges() { + var _ = this; + _.__PsdBlendingRanges_whiteDst = _.__PsdBlendingRanges_blackDst = _.__PsdBlendingRanges_whiteSrc = _.__PsdBlendingRanges_blackSrc = $; + }, + PsdChannel: function PsdChannel(t0) { + this.id = t0; + this.__PsdChannel_data = $; + }, + PsdImage$(bytes) { + var t1 = new A.PsdImage(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.PsdImageResource)); + t1.PsdImage$1(bytes); + return t1; + }, + PsdImage__blendOverlay(a, b, aAlpha, bAlpha) { + var x = a / 255, + y = b / 255, + aa = aAlpha / 255, + ba = bAlpha / 255, + t1 = y * (1 - aa), + t2 = x * (1 - ba); + return B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2((2 * x < aa ? 2 * y * x + t1 + t2 : ba * aa - 2 * (aa - x) * (ba - y) + t1 + t2) * 255, 0, 255)); + }, + PsdImage__blendColorBurn(a, b) { + if (b === 0) + return 0; + return B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(B.JSNumber_methods.toInt$0(255 * (1 - (1 - a / 255) / (b / 255))), 0, 255)); + }, + PsdImage__blendLinearBurn(a, b) { + return B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a + b - 255, 0, 255)); + }, + PsdImage__blendColorDodge(a, b) { + if (b === 255) + return 255; + return B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(a / 255 / (1 - b / 255) * 255, 0, 255)); + }, + PsdImage__blendSoftLight(a, b) { + var aa = a / 255, + bb = b / 255, + t1 = 1 - bb; + return B.JSNumber_methods.round$0(255 * (t1 * bb * aa + bb * (1 - t1 * (1 - aa)))); + }, + PsdImage__blendHardLight(bottom, $top) { + var a = $top / 255, + b = bottom / 255; + if (b < 0.5) + return B.JSNumber_methods.round$0(510 * a * b); + else + return B.JSNumber_methods.round$0(255 * (1 - 2 * (1 - a) * (1 - b))); + }, + PsdImage__blendVividLight(bottom, $top) { + if ($top < 128) + return A.PsdImage__blendColorBurn(bottom, 2 * $top); + else + return A.PsdImage__blendColorDodge(bottom, 2 * ($top - 128)); + }, + PsdImage__blendLinearLight(bottom, $top) { + var t1; + if ($top < 128) + return A.PsdImage__blendLinearBurn(bottom, 2 * $top); + else { + t1 = 2 * ($top - 128); + return t1 + bottom > 255 ? 255 : bottom + t1; + } + }, + PsdImage_createImageFromChannels(colorMode, bitDepth, width, height, channelList) { + var t1, _i, t2, ch, ns, channel0, channel1, channel2, channel_1, t3, t4, t5, t6, y, di, si, x, di0, t7, t8, t9, t10, di1, di2, r, g, b, a, t11, t12, alpha, t13, y0, x0, z, y3, x3, z3, $R, $G, $B, rgb, gray, c, m, k, _s4_ = "data", + output = A.Image$(width, height, B.Channels_1, null, null), + pixels = output.getBytes$0(), + channels = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.PsdChannel); + for (t1 = channelList.length, _i = 0; t2 = channelList.length, _i < t2; channelList.length === t1 || (0, A.throwConcurrentModificationError)(channelList), ++_i) { + ch = channelList[_i]; + channels.$indexSet(0, ch.id, ch); + } + if (bitDepth === 8) + ns = 1; + else + ns = bitDepth === 16 ? 2 : -1; + if (ns === -1) + throw A.wrapException(A.ImageException$("PSD: unsupported bit depth: " + A.S(bitDepth))); + channel0 = channels.$index(0, 0); + channel1 = channels.$index(0, 1); + channel2 = channels.$index(0, 2); + channel_1 = channels.$index(0, -1); + for (t1 = pixels.length, t3 = t2 >= 5, t4 = ns === 1, t5 = t2 === 4, t6 = t2 >= 2, t2 = t2 >= 4, y = 0, di = 0, si = 0; y < height; ++y) + for (x = 0; x < width; ++x, si += ns) + switch (colorMode) { + case 3: + di0 = di + 1; + t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + t7 = t10; + } + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t7; + di1 = di0 + 1; + t7 = A._lateReadCheck(channel1.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + t7 = t10; + } + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = t7; + di2 = di1 + 1; + t7 = A._lateReadCheck(channel2.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + t7 = t10; + } + if (!(di1 >= 0 && di1 < t1)) + return A.ioore(pixels, di1); + pixels[di1] = t7; + di1 = di2 + 1; + if (t2) { + t7 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + t7 = t10; + } + } else + t7 = 255; + if (!(di2 >= 0 && di2 < t1)) + return A.ioore(pixels, di2); + pixels[di2] = t7; + r = pixels[di]; + g = pixels[di0]; + t7 = di + 2; + if (!(t7 < t1)) + return A.ioore(pixels, t7); + b = pixels[t7]; + t8 = di + 3; + if (!(t8 < t1)) + return A.ioore(pixels, t8); + a = pixels[t8]; + if (a !== 0) { + pixels[di] = B.JSInt_methods.$tdiv((r + a - 255) * 255, a); + pixels[di0] = B.JSInt_methods.$tdiv((g + a - 255) * 255, a); + pixels[t7] = B.JSInt_methods.$tdiv((b + a - 255) * 255, a); + } + di = di1; + break; + case 9: + t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + t7 = t10; + } + t8 = A._lateReadCheck(channel1.__PsdChannel_data, _s4_); + t9 = t8.length; + if (t4) { + if (!(si >= 0 && si < t9)) + return A.ioore(t8, si); + t8 = t8[si]; + } else { + if (!(si >= 0 && si < t9)) + return A.ioore(t8, si); + t10 = t8[si]; + t11 = si + 1; + if (!(t11 < t9)) + return A.ioore(t8, t11); + t11 = (t10 << 8 | t8[t11]) >>> 8; + t8 = t11; + } + t9 = A._lateReadCheck(channel2.__PsdChannel_data, _s4_); + t10 = t9.length; + if (t4) { + if (!(si >= 0 && si < t10)) + return A.ioore(t9, si); + t9 = t9[si]; + } else { + if (!(si >= 0 && si < t10)) + return A.ioore(t9, si); + t11 = t9[si]; + t12 = si + 1; + if (!(t12 < t10)) + return A.ioore(t9, t12); + t12 = (t11 << 8 | t9[t12]) >>> 8; + t9 = t12; + } + if (t2) { + t10 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); + t11 = t10.length; + if (t4) { + if (!(si >= 0 && si < t11)) + return A.ioore(t10, si); + t10 = t10[si]; + alpha = t10; + } else { + if (!(si >= 0 && si < t11)) + return A.ioore(t10, si); + t12 = t10[si]; + t13 = si + 1; + if (!(t13 < t11)) + return A.ioore(t10, t13); + t13 = (t12 << 8 | t10[t13]) >>> 8; + alpha = t13; + } + } else + alpha = 255; + y0 = ((t7 * 100 >>> 8) + 16) / 116; + x0 = (t8 - 128) / 500 + y0; + z = y0 - (t9 - 128) / 200; + y3 = Math.pow(y0, 3); + y0 = y3 > 0.008856 ? y3 : (y0 - 0.13793103448275862) / 7.787; + x3 = Math.pow(x0, 3); + x0 = x3 > 0.008856 ? x3 : (x0 - 0.13793103448275862) / 7.787; + z3 = Math.pow(z, 3); + z = z3 > 0.008856 ? z3 : (z - 0.13793103448275862) / 7.787; + x0 = x0 * 95.047 / 100; + y0 = y0 * 100 / 100; + z = z * 108.883 / 100; + $R = x0 * 3.2406 + y0 * -1.5372 + z * -0.4986; + $G = x0 * -0.9689 + y0 * 1.8758 + z * 0.0415; + $B = x0 * 0.0557 + y0 * -0.204 + z * 1.057; + $R = $R > 0.0031308 ? 1.055 * Math.pow($R, 0.4166666666666667) - 0.055 : 12.92 * $R; + $G = $G > 0.0031308 ? 1.055 * Math.pow($G, 0.4166666666666667) - 0.055 : 12.92 * $G; + $B = $B > 0.0031308 ? 1.055 * Math.pow($B, 0.4166666666666667) - 0.055 : 12.92 * $B; + rgb = [B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2($R * 255, 0, 255)), B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2($G * 255, 0, 255)), B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2($B * 255, 0, 255))]; + di0 = di + 1; + t7 = rgb[0]; + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t7; + di = di0 + 1; + t7 = rgb[1]; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = t7; + di0 = di + 1; + t7 = rgb[2]; + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t7; + di = di0 + 1; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = alpha; + break; + case 1: + t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + gray = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + gray = (t9 << 8 | t7[t10]) >>> 8; + } + if (t6) { + t7 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + alpha = t7; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + alpha = t10; + } + } else + alpha = 255; + di0 = di + 1; + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = gray; + di = di0 + 1; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = gray; + di0 = di + 1; + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = gray; + di = di0 + 1; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = alpha; + break; + case 4: + t7 = A._lateReadCheck(channel0.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + c = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + c = (t9 << 8 | t7[t10]) >>> 8; + } + t7 = A._lateReadCheck(channel1.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + m = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + m = (t9 << 8 | t7[t10]) >>> 8; + } + t7 = A._lateReadCheck(channel2.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + y0 = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + y0 = (t9 << 8 | t7[t10]) >>> 8; + } + t7 = A._lateReadCheck(channels.$index(0, t5 ? -1 : 3).__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + k = t7[si]; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + k = (t9 << 8 | t7[t10]) >>> 8; + } + if (t3) { + t7 = A._lateReadCheck(channel_1.__PsdChannel_data, _s4_); + t8 = t7.length; + if (t4) { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t7 = t7[si]; + alpha = t7; + } else { + if (!(si >= 0 && si < t8)) + return A.ioore(t7, si); + t9 = t7[si]; + t10 = si + 1; + if (!(t10 < t8)) + return A.ioore(t7, t10); + t10 = (t9 << 8 | t7[t10]) >>> 8; + alpha = t10; + } + } else + alpha = 255; + t7 = 1 - (255 - k) / 255; + rgb = [B.JSNumber_methods.round$0(255 * (1 - (255 - c) / 255) * t7), B.JSNumber_methods.round$0(255 * (1 - (255 - m) / 255) * t7), B.JSNumber_methods.round$0(255 * (1 - (255 - y0) / 255) * t7)]; + di0 = di + 1; + t7 = rgb[0]; + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t7; + di = di0 + 1; + t7 = rgb[1]; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = t7; + di0 = di + 1; + t7 = rgb[2]; + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t7; + di = di0 + 1; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = alpha; + break; + default: + throw A.wrapException(A.ImageException$("Unhandled color mode: " + A.S(colorMode))); + } + return output; + }, + PsdImage: function PsdImage(t0) { + var _ = this; + _.version = _.signature = null; + _.__PsdImage_channels = $; + _.colorMode = _.depth = null; + _.__PsdImage_mergeImageChannels = _.__PsdImage_layers = $; + _.mergedImage = null; + _.imageResources = t0; + _.__PsdImage__imageData = _.__PsdImage__layerAndMaskData = _.__PsdImage__imageResourceData = _.__PsdImage__input = $; + _.height = _.width = 0; + }, + PsdImageResource: function PsdImageResource() { + }, + PsdLayer: function PsdLayer(t0, t1, t2) { + var _ = this; + _.left = _.top = null; + _.__PsdLayer_height = _.__PsdLayer_width = _.__PsdLayer_right = _.__PsdLayer_bottom = $; + _.blendMode = null; + _.__PsdLayer_channels = _.__PsdLayer_flags = _.__PsdLayer_opacity = $; + _.additionalData = t0; + _.children = t1; + _.__PsdLayer_layerImage = $; + _.effects = t2; + }, + PsdLayerData_PsdLayerData(tag, data) { + var len; + switch (tag) { + case "lsct": + len = data.end - data.offset; + data.readUint32$0(); + if (len >= 12) { + if (data.readString$1(4) !== "8BIM") + A.throwExpression(A.ImageException$("Invalid key in layer additional data")); + data.readString$1(4); + } + if (len >= 16) + data.readUint32$0(); + return new A.PsdLayerSectionDivider(); + default: + return new A.PsdLayerAdditionalData(data); + } + }, + PsdLayerData: function PsdLayerData() { + }, + PsdDecoder: function PsdDecoder() { + this.info = null; + }, + TgaInfo: function TgaInfo() { + var _ = this; + _.bpp = _.imageOffset = null; + _.height = _.width = 0; + }, + TgaDecoder: function TgaDecoder() { + this.info = null; + this.__TgaDecoder_input = $; + }, + TgaEncoder: function TgaEncoder() { + }, + TiffBitReader: function TiffBitReader(t0) { + this.input = t0; + this._bitPos = this._tiff_bit_reader$_bitBuffer = 0; + }, + TiffEntry: function TiffEntry(t0, t1, t2, t3) { + var _ = this; + _.tag = t0; + _.type = t1; + _.numValues = t2; + _.valueOffset = null; + _.p = t3; + }, + TiffFaxDecoder$(fillOrder, width, height) { + var t1 = new A.TiffFaxDecoder(width, fillOrder), + t2 = type$.nullable_int; + t1.set$prevChangingElems(A.List_List$filled(width, null, false, t2)); + t1.set$currChangingElems(A.List_List$filled(width, null, false, t2)); + return t1; + }, + TiffFaxDecoder: function TiffFaxDecoder(t0, t1) { + var _ = this; + _.width = t0; + _.fillOrder = t1; + _.changingElemSize = 0; + _.currChangingElems = _.prevChangingElems = null; + _.__TiffFaxDecoder_data = $; + _.bytePointer = _.bitPointer = null; + _.lastChangingElement = 0; + _.compression = 2; + _.fillBits = 0; + _.oneD = null; + }, + TiffImage: function TiffImage(t0) { + var _ = this; + _.tags = t0; + _.height = _.width = 0; + _.photometricType = null; + _.sampleFormat = _.samplesPerPixel = _.bitsPerSample = _.compression = 1; + _.imageType = -1; + _.isWhiteZero = false; + _.predictor = 1; + _.__TiffImage_chromaSubV = _.__TiffImage_chromaSubH = $; + _.tileHeight = _.tileWidth = 0; + _.tileByteCounts = _.tileOffsets = null; + _.__TiffImage_tilesY = _.__TiffImage_tilesX = $; + _.fillOrder = 1; + _.t6Options = _.t4Options = 0; + _.colorMap = null; + _.__TiffImage_colorMapBlue = _.__TiffImage_colorMapGreen = _.__TiffImage_colorMapRed = $; + _.hdrImage = _.image = null; + }, + TiffInfo: function TiffInfo(t0) { + var _ = this; + _.signature = null; + _.images = t0; + _.height = _.width = 0; + }, + LzwDecoder$() { + return new A.LzwDecoder(new Uint8Array(4096)); + }, + LzwDecoder: function LzwDecoder(t0) { + var _ = this; + _._bitsToGet = 9; + _._nextBits = _._nextData = _._bytePointer = 0; + _.__LzwDecoder__outPointer = _.__LzwDecoder__out = _.__LzwDecoder__dataLength = _.__LzwDecoder__data = $; + _._tiff_lzw_decoder$_buffer = t0; + _.__LzwDecoder__prefix = _.__LzwDecoder__table = $; + _._tableIndex = null; + _.__LzwDecoder__bufferLength = $; + }, + TiffDecoder: function TiffDecoder() { + this.info = null; + this.__TiffDecoder__input = $; + }, + VP8$(input, _webp) { + var t1 = new Int32Array(4), + t2 = new Int32Array(4), + t3 = new Int8Array(4), + t4 = new Int8Array(4), + t5 = A.List_List$filled(8, null, false, type$.nullable_VP8BitReader), + t6 = A.List_List$filled(4, null, false, type$.nullable_VP8QuantMatrix); + return new A.VP8(input, _webp, new A.VP8FrameHeader(), new A.VP8PictureHeader(), new A.VP8FilterHeader(t1, t2), new A.VP8SegmentHeader(t3, t4), t5, t6, new Uint8Array(4)); + }, + VP8__checkMode(mb_x, mb_y, mode) { + if (mode === 0) + if (mb_x === 0) + return mb_y === 0 ? 6 : 5; + else + return mb_y === 0 ? 4 : 0; + return mode; + }, + VP8: function VP8(t0, t1, t2, t3, t4, t5, t6, t7, t8) { + var _ = this; + _.input = t0; + _._webp = t1; + _.__VP8_br = $; + _.output = null; + _.__VP8__dsp = $; + _._frameHeader = t2; + _._picHeader = t3; + _._filterHeader = t4; + _._segmentHeader = t5; + _.__VP8__cropRight = _.__VP8__cropLeft = $; + _._mbHeight = _._mbWidth = _._cropBottom = _._cropTop = null; + _.__VP8__tlMbY = _.__VP8__tlMbX = $; + _._brMbY = _._brMbX = null; + _.__VP8__numPartitions = $; + _._partitions = t6; + _._dqm = t7; + _._proba = null; + _.__VP8__skipP = _.__VP8__useSkipProba = $; + _._intraT = null; + _._intraL = t8; + _.__VP8__cacheV = _.__VP8__cacheU = _.__VP8__cacheY = _.__VP8__yuvBlock = _.__VP8__fInfo = _.__VP8__mbInfo = _.__VP8__yuvT = _.__VP8__segment = $; + _._cacheUVStride = _._cacheYStride = null; + _.__VP8__v = _.__VP8__u = _.__VP8__y = _.__VP8__tmpV = _.__VP8__tmpU = _.__VP8__tmpY = $; + _._a = null; + _._mbY = _._mbX = 0; + _.__VP8__mbData = $; + _._filterType = null; + _.__VP8__alpha = _.__VP8__fStrengths = $; + _._alphaData = null; + _.__VP8__alphaPlane = $; + }, + VP8__upsample_LOAD_UV: function VP8__upsample_LOAD_UV() { + }, + VP8BitReader$(input) { + var t1 = new A.VP8BitReader(input); + t1.__VP8BitReader__range = 254; + t1.__VP8BitReader__value = 0; + t1.__VP8BitReader__bits = -8; + return t1; + }, + VP8BitReader: function VP8BitReader(t0) { + var _ = this; + _.input = t0; + _.__VP8BitReader__bits = _.__VP8BitReader__value = _.__VP8BitReader__range = $; + _._eof = false; + }, + VP8Filter_AVG3(a, b, c) { + return B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(a + 2 * b + c + 2, 2), 32); + }, + VP8Filter_VE4(dst) { + var t5, t6, t7, t8, vals, i, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -33, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -32; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + -31; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t3 = A.VP8Filter_AVG3(t3, t5, t6); + t7 = t2 + -30; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t5 = A.VP8Filter_AVG3(t5, t6, t7); + t8 = t2 + -29; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t6 = A.VP8Filter_AVG3(t6, t7, t8); + t2 += -28; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + vals = A._setArrayType([t3, t5, t6, A.VP8Filter_AVG3(t7, t8, t1[t2])], type$.JSArray_int); + for (i = 0; i < 4; ++i) + dst.memcpy$3(i * 32, 4, vals); + }, + VP8Filter_HE4(dst) { + var t5, t6, t7, d2, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -33, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -1; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + 31; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + 63; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t2 += 95; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + d2 = A.InputBuffer$from(dst, null, 0); + t1 = d2.toUint32List$0(); + t3 = A.VP8Filter_AVG3(t3, t5, t6); + if (0 >= t1.length) + return A.ioore(t1, 0); + t1[0] = 16843009 * t3; + d2.offset += 32; + t3 = d2.toUint32List$0(); + t5 = A.VP8Filter_AVG3(t5, t6, t7); + if (0 >= t3.length) + return A.ioore(t3, 0); + t3[0] = 16843009 * t5; + d2.offset += 32; + t5 = d2.toUint32List$0(); + t6 = A.VP8Filter_AVG3(t6, t7, t2); + if (0 >= t5.length) + return A.ioore(t5, 0); + t5[0] = 16843009 * t6; + d2.offset += 32; + t6 = d2.toUint32List$0(); + t2 = A.VP8Filter_AVG3(t7, t2, t2); + if (0 >= t6.length) + return A.ioore(t6, 0); + t6[0] = 16843009 * t2; + }, + VP8Filter_DC4(dst) { + var t1, t2, t3, dc, i, t4, t5; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc = 4, i = 0; i < 4; ++i) { + t4 = t2 + (i - 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + t4 = t1[t4]; + t5 = t2 + (-1 + i * 32); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(t1, t5); + dc += t4 + t1[t5]; + } + dc = B.JSInt_methods._shrOtherPositive$1(dc, 3); + for (i = 0; i < 4; ++i) { + t1 = dst.buffer; + t2 = dst.offset + i * 32; + J.fillRange$3$ax(t1, t2, t2 + 4, dc); + } + }, + VP8Filter_trueMotion(dst, size) { + var clip0, di, y, clip, x, t3, t4, + t1 = dst.buffer, + t2 = dst.offset + -33; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + clip0 = 255 - t1[t2]; + for (di = 0, y = 0; y < size; ++y) { + t1 = dst.buffer; + t2 = dst.offset + (di - 1); + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + clip = clip0 + t1[t2]; + for (x = 0; x < size; ++x) { + t1 = $.$get$VP8Filter_clip1(); + t2 = dst.buffer; + t3 = dst.offset; + t4 = t3 + (-32 + x); + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + t4 = clip + t2[t4]; + t1.toString; + if (!(t4 >= 0 && t4 < 766)) + return A.ioore(t1, t4); + J.$indexSet$ax(t2, t3 + (di + x), t1[t4]); + } + di += 32; + } + }, + VP8Filter_TM4(dst) { + A.VP8Filter_trueMotion(dst, 4); + }, + VP8Filter_TM8uv(dst) { + A.VP8Filter_trueMotion(dst, 8); + }, + VP8Filter_TM16(dst) { + A.VP8Filter_trueMotion(dst, 16); + }, + VP8Filter_RD4(dst) { + var t5, t6, t7, t8, t9, t10, t11, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -1, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + 31; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + 63; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + 95; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t8 = t2 + -33; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = t2 + -32; + if (!(t9 >= 0 && t9 < t4)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t2 + -31; + if (!(t10 >= 0 && t10 < t4)) + return A.ioore(t1, t10); + t10 = t1[t10]; + t11 = t2 + -30; + if (!(t11 >= 0 && t11 < t4)) + return A.ioore(t1, t11); + t11 = t1[t11]; + t2 += -29; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + dst.$indexSet(0, 96, A.VP8Filter_AVG3(t5, t6, t7)); + t6 = A.VP8Filter_AVG3(t3, t5, t6); + dst.$indexSet(0, 97, t6); + dst.$indexSet(0, 64, t6); + t5 = A.VP8Filter_AVG3(t8, t3, t5); + dst.$indexSet(0, 98, t5); + dst.$indexSet(0, 65, t5); + dst.$indexSet(0, 32, t5); + t3 = A.VP8Filter_AVG3(t9, t8, t3); + dst.$indexSet(0, 99, t3); + dst.$indexSet(0, 66, t3); + dst.$indexSet(0, 33, t3); + dst.$indexSet(0, 0, t3); + t8 = A.VP8Filter_AVG3(t10, t9, t8); + dst.$indexSet(0, 67, t8); + dst.$indexSet(0, 34, t8); + dst.$indexSet(0, 1, t8); + t9 = A.VP8Filter_AVG3(t11, t10, t9); + dst.$indexSet(0, 35, t9); + dst.$indexSet(0, 2, t9); + dst.$indexSet(0, 3, A.VP8Filter_AVG3(t2, t11, t10)); + }, + VP8Filter_LD4(dst) { + var t5, t6, t7, t8, t9, t10, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -32, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -31; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + -30; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + -29; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t8 = t2 + -28; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = t2 + -27; + if (!(t9 >= 0 && t9 < t4)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t2 + -26; + if (!(t10 >= 0 && t10 < t4)) + return A.ioore(t1, t10); + t10 = t1[t10]; + t2 += -25; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + dst.$indexSet(0, 0, A.VP8Filter_AVG3(t3, t5, t6)); + t5 = A.VP8Filter_AVG3(t5, t6, t7); + dst.$indexSet(0, 32, t5); + dst.$indexSet(0, 1, t5); + t6 = A.VP8Filter_AVG3(t6, t7, t8); + dst.$indexSet(0, 64, t6); + dst.$indexSet(0, 33, t6); + dst.$indexSet(0, 2, t6); + t7 = A.VP8Filter_AVG3(t7, t8, t9); + dst.$indexSet(0, 96, t7); + dst.$indexSet(0, 65, t7); + dst.$indexSet(0, 34, t7); + dst.$indexSet(0, 3, t7); + t8 = A.VP8Filter_AVG3(t8, t9, t10); + dst.$indexSet(0, 97, t8); + dst.$indexSet(0, 66, t8); + dst.$indexSet(0, 35, t8); + t9 = A.VP8Filter_AVG3(t9, t10, t2); + dst.$indexSet(0, 98, t9); + dst.$indexSet(0, 67, t9); + dst.$indexSet(0, 99, A.VP8Filter_AVG3(t10, t2, t2)); + }, + VP8Filter_VR4(dst) { + var t5, t6, t7, t8, t9, t10, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -1, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + 31; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + 63; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + -33; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t8 = t2 + -32; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = t2 + -31; + if (!(t9 >= 0 && t9 < t4)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t2 + -30; + if (!(t10 >= 0 && t10 < t4)) + return A.ioore(t1, t10); + t10 = t1[t10]; + t2 += -29; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t7 + t8 + 1, 1), 32); + dst.$indexSet(0, 65, t1); + dst.$indexSet(0, 0, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t8 + t9 + 1, 1), 32); + dst.$indexSet(0, 66, t1); + dst.$indexSet(0, 1, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t9 + t10 + 1, 1), 32); + dst.$indexSet(0, 67, t1); + dst.$indexSet(0, 2, t1); + dst.$indexSet(0, 3, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t10 + t2 + 1, 1), 32)); + dst.$indexSet(0, 96, A.VP8Filter_AVG3(t6, t5, t3)); + dst.$indexSet(0, 64, A.VP8Filter_AVG3(t5, t3, t7)); + t3 = A.VP8Filter_AVG3(t3, t7, t8); + dst.$indexSet(0, 97, t3); + dst.$indexSet(0, 32, t3); + t7 = A.VP8Filter_AVG3(t7, t8, t9); + dst.$indexSet(0, 98, t7); + dst.$indexSet(0, 33, t7); + t8 = A.VP8Filter_AVG3(t8, t9, t10); + dst.$indexSet(0, 99, t8); + dst.$indexSet(0, 34, t8); + dst.$indexSet(0, 35, A.VP8Filter_AVG3(t9, t10, t2)); + }, + VP8Filter_VL4(dst) { + var t5, t6, t7, t8, t9, t10, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -32, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -31; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + -30; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + -29; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t8 = t2 + -28; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = t2 + -27; + if (!(t9 >= 0 && t9 < t4)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t2 + -26; + if (!(t10 >= 0 && t10 < t4)) + return A.ioore(t1, t10); + t10 = t1[t10]; + t2 += -25; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + dst.$indexSet(0, 0, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t3 + t5 + 1, 1), 32)); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t5 + t6 + 1, 1), 32); + dst.$indexSet(0, 64, t1); + dst.$indexSet(0, 1, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t6 + t7 + 1, 1), 32); + dst.$indexSet(0, 65, t1); + dst.$indexSet(0, 2, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t7 + t8 + 1, 1), 32); + dst.$indexSet(0, 66, t1); + dst.$indexSet(0, 3, t1); + dst.$indexSet(0, 32, A.VP8Filter_AVG3(t3, t5, t6)); + t5 = A.VP8Filter_AVG3(t5, t6, t7); + dst.$indexSet(0, 96, t5); + dst.$indexSet(0, 33, t5); + t6 = A.VP8Filter_AVG3(t6, t7, t8); + dst.$indexSet(0, 97, t6); + dst.$indexSet(0, 34, t6); + t7 = A.VP8Filter_AVG3(t7, t8, t9); + dst.$indexSet(0, 98, t7); + dst.$indexSet(0, 35, t7); + dst.$indexSet(0, 67, A.VP8Filter_AVG3(t8, t9, t10)); + dst.$indexSet(0, 99, A.VP8Filter_AVG3(t9, t10, t2)); + }, + VP8Filter_HU4(dst) { + var t5, t6, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -1, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + 31; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + 63; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t2 += 95; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + dst.$indexSet(0, 0, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t3 + t5 + 1, 1), 32)); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t5 + t6 + 1, 1), 32); + dst.$indexSet(0, 32, t1); + dst.$indexSet(0, 2, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t6 + t2 + 1, 1), 32); + dst.$indexSet(0, 64, t1); + dst.$indexSet(0, 34, t1); + dst.$indexSet(0, 1, A.VP8Filter_AVG3(t3, t5, t6)); + t5 = A.VP8Filter_AVG3(t5, t6, t2); + dst.$indexSet(0, 33, t5); + dst.$indexSet(0, 3, t5); + t6 = A.VP8Filter_AVG3(t6, t2, t2); + dst.$indexSet(0, 65, t6); + dst.$indexSet(0, 35, t6); + dst.$indexSet(0, 99, t2); + dst.$indexSet(0, 98, t2); + dst.$indexSet(0, 97, t2); + dst.$indexSet(0, 96, t2); + dst.$indexSet(0, 66, t2); + dst.$indexSet(0, 67, t2); + }, + VP8Filter_HD4(dst) { + var t5, t6, t7, t8, t9, t10, + t1 = dst.buffer, + t2 = dst.offset, + t3 = t2 + -1, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + 31; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + 63; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + 95; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t8 = t2 + -33; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = t2 + -32; + if (!(t9 >= 0 && t9 < t4)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t2 + -31; + if (!(t10 >= 0 && t10 < t4)) + return A.ioore(t1, t10); + t10 = t1[t10]; + t2 += -30; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t3 + t8 + 1, 1), 32); + dst.$indexSet(0, 34, t1); + dst.$indexSet(0, 0, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t5 + t3 + 1, 1), 32); + dst.$indexSet(0, 66, t1); + dst.$indexSet(0, 32, t1); + t1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t6 + t5 + 1, 1), 32); + dst.$indexSet(0, 98, t1); + dst.$indexSet(0, 64, t1); + dst.$indexSet(0, 96, B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t7 + t6 + 1, 1), 32)); + dst.$indexSet(0, 3, A.VP8Filter_AVG3(t9, t10, t2)); + dst.$indexSet(0, 2, A.VP8Filter_AVG3(t8, t9, t10)); + t9 = A.VP8Filter_AVG3(t3, t8, t9); + dst.$indexSet(0, 35, t9); + dst.$indexSet(0, 1, t9); + t8 = A.VP8Filter_AVG3(t5, t3, t8); + dst.$indexSet(0, 67, t8); + dst.$indexSet(0, 33, t8); + t3 = A.VP8Filter_AVG3(t6, t5, t3); + dst.$indexSet(0, 99, t3); + dst.$indexSet(0, 65, t3); + dst.$indexSet(0, 97, A.VP8Filter_AVG3(t7, t6, t5)); + }, + VP8Filter_VE16(dst) { + var j; + for (j = 0; j < 16; ++j) + dst.memcpy$4(j * 32, 16, dst, -32); + }, + VP8Filter_HE16(dst) { + var di, j, t1, t2, t3; + for (di = 0, j = 16; j > 0; --j) { + t1 = dst.buffer; + t2 = dst.offset; + t3 = t2 + (di - 1); + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t2 += di; + J.fillRange$3$ax(t1, t2, t2 + 16, t1[t3]); + di += 32; + } + }, + VP8Filter_Put16(v, dst) { + var j, t1, t2; + for (j = 0; j < 16; ++j) { + t1 = dst.buffer; + t2 = dst.offset + j * 32; + J.fillRange$3$ax(t1, t2, t2 + 16, v); + } + }, + VP8Filter_DC16(dst) { + var t1, t2, t3, DC, j, t4, t5; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, DC = 16, j = 0; j < 16; ++j) { + t4 = t2 + (-1 + j * 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + t4 = t1[t4]; + t5 = t2 + (j - 32); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(t1, t5); + DC += t4 + t1[t5]; + } + A.VP8Filter_Put16(B.JSInt_methods._shrOtherPositive$1(DC, 5), dst); + }, + VP8Filter_DC16NoTop(dst) { + var t1, t2, t3, DC, j, t4; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, DC = 8, j = 0; j < 16; ++j) { + t4 = t2 + (-1 + j * 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + DC += t1[t4]; + } + A.VP8Filter_Put16(B.JSInt_methods._shrOtherPositive$1(DC, 4), dst); + }, + VP8Filter_DC16NoLeft(dst) { + var t1, t2, t3, DC, i, t4; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, DC = 8, i = 0; i < 16; ++i) { + t4 = t2 + (i - 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + DC += t1[t4]; + } + A.VP8Filter_Put16(B.JSInt_methods._shrOtherPositive$1(DC, 4), dst); + }, + VP8Filter_DC16NoTopLeft(dst) { + A.VP8Filter_Put16(128, dst); + }, + VP8Filter_VE8uv(dst) { + var j; + for (j = 0; j < 8; ++j) + dst.memcpy$4(j * 32, 8, dst, -32); + }, + VP8Filter_HE8uv(dst) { + var di, j, t1, t2, t3; + for (di = 0, j = 0; j < 8; ++j) { + t1 = dst.buffer; + t2 = dst.offset; + t3 = t2 + (di - 1); + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t2 += di; + J.fillRange$3$ax(t1, t2, t2 + 8, t1[t3]); + di += 32; + } + }, + VP8Filter_Put8x8uv(value, dst) { + var j, t1, t2; + for (j = 0; j < 8; ++j) { + t1 = dst.buffer; + t2 = dst.offset + j * 32; + J.fillRange$3$ax(t1, t2, t2 + 8, value); + } + }, + VP8Filter_DC8uv(dst) { + var t1, t2, t3, dc0, i, t4, t5; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc0 = 8, i = 0; i < 8; ++i) { + t4 = t2 + (i - 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + t4 = t1[t4]; + t5 = t2 + (-1 + i * 32); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(t1, t5); + dc0 += t4 + t1[t5]; + } + A.VP8Filter_Put8x8uv(B.JSInt_methods._shrOtherPositive$1(dc0, 4), dst); + }, + VP8Filter_DC8uvNoLeft(dst) { + var t1, t2, t3, dc0, i, t4; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc0 = 4, i = 0; i < 8; ++i) { + t4 = t2 + (i - 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + dc0 += t1[t4]; + } + A.VP8Filter_Put8x8uv(B.JSInt_methods._shrOtherPositive$1(dc0, 3), dst); + }, + VP8Filter_DC8uvNoTop(dst) { + var t1, t2, t3, dc0, i, t4; + for (t1 = dst.buffer, t2 = dst.offset, t3 = t1.length, dc0 = 4, i = 0; i < 8; ++i) { + t4 = t2 + (-1 + i * 32); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + dc0 += t1[t4]; + } + A.VP8Filter_Put8x8uv(B.JSInt_methods._shrOtherPositive$1(dc0, 3), dst); + }, + VP8Filter_DC8uvNoTopLeft(dst) { + A.VP8Filter_Put8x8uv(128, dst); + }, + VP8Filter__store(dst, di, x, y, v) { + var t1 = di + x + y * 32, + t2 = dst.buffer, + t3 = dst.offset + t1; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t3 = t2[t3] + B.JSInt_methods._shrOtherPositive$1(v, 3); + if ((t3 & -256) >>> 0 === 0) + t2 = t3; + else + t2 = t3 < 0 ? 0 : 255; + dst.$indexSet(0, t1, t2); + }, + VP8Filter__store2(dst, y, dc, d, c) { + A.VP8Filter__store(dst, 0, 0, y, dc + d); + A.VP8Filter__store(dst, 0, 1, y, dc + c); + A.VP8Filter__store(dst, 0, 2, y, dc - c); + A.VP8Filter__store(dst, 0, 3, y, dc - d); + }, + VP8Filter__initTables() { + var i, t1, t2; + if (!$.VP8Filter__tablesInitialized) { + for (i = -255; i <= 255; ++i) { + t1 = $.$get$VP8Filter_abs0(); + t2 = 255 + i; + t1[t2] = i < 0 ? -i : i; + $.$get$VP8Filter_abs1()[t2] = B.JSInt_methods._shrOtherPositive$1(t1[t2], 1); + } + for (i = -1020; i <= 1020; ++i) { + t1 = $.$get$VP8Filter_sclip1(); + if (i < -128) + t2 = -128; + else + t2 = i > 127 ? 127 : i; + t1[1020 + i] = t2; + } + for (i = -112; i <= 112; ++i) { + t1 = $.$get$VP8Filter_sclip2(); + if (i < -16) + t2 = -16; + else + t2 = i > 15 ? 15 : i; + t1[112 + i] = t2; + } + for (i = -255; i <= 510; ++i) { + t1 = $.$get$VP8Filter_clip1(); + if (i < 0) + t2 = 0; + else + t2 = i > 255 ? 255 : i; + t1[255 + i] = t2; + } + $.VP8Filter__tablesInitialized = true; + } + }, + VP8Filter: function VP8Filter() { + }, + VP8BandProbas$() { + var _i, + _list = J.JSArray_JSArray$allocateFixed(3, type$.Uint8List); + for (_i = 0; _i < 3; ++_i) + _list[_i] = new Uint8Array(11); + return new A.VP8BandProbas(_list); + }, + VP8Proba$() { + var t2, _i, _list0, _i0, + t1 = new Uint8Array(3), + _list = J.JSArray_JSArray$allocateFixed(4, type$.List_VP8BandProbas); + for (t2 = type$.VP8BandProbas, _i = 0; _i < 4; ++_i) { + _list0 = J.JSArray_JSArray$allocateFixed(8, t2); + for (_i0 = 0; _i0 < 8; ++_i0) + _list0[_i0] = A.VP8BandProbas$(); + _list[_i] = _list0; + } + B.NativeUint8List_methods.fillRange$3(t1, 0, 3, 255); + return new A.VP8Proba(t1, _list); + }, + VP8FrameHeader: function VP8FrameHeader() { + this.__VP8FrameHeader_partitionLength = $; + }, + VP8PictureHeader: function VP8PictureHeader() { + }, + VP8SegmentHeader: function VP8SegmentHeader(t0, t1) { + var _ = this; + _.updateMap = _.useSegment = false; + _.absoluteDelta = true; + _.quantizer = t0; + _.filterStrength = t1; + }, + VP8BandProbas: function VP8BandProbas(t0) { + this.probas = t0; + }, + VP8Proba: function VP8Proba(t0, t1) { + this.segments = t0; + this.bands = t1; + }, + VP8FilterHeader: function VP8FilterHeader(t0, t1) { + var _ = this; + _.__VP8FilterHeader_simple = $; + _.level = null; + _.__VP8FilterHeader_useLfDelta = _.__VP8FilterHeader_sharpness = $; + _.refLfDelta = t0; + _.modeLfDelta = t1; + }, + VP8FInfo: function VP8FInfo() { + var _ = this; + _.fInnerLevel = _.fLimit = 0; + _.fInner = false; + _.hevThresh = 0; + }, + VP8MB: function VP8MB() { + this.nzDc = this.nz = 0; + }, + VP8QuantMatrix: function VP8QuantMatrix(t0, t1, t2) { + this.y1Mat = t0; + this.y2Mat = t1; + this.uvMat = t2; + }, + VP8MBData: function VP8MBData(t0, t1) { + var _ = this; + _.coeffs = t0; + _.__VP8MBData_isIntra4x4 = $; + _.imodes = t1; + _.nonZeroY = _.uvmode = null; + _.__VP8MBData_nonZeroUV = $; + }, + VP8TopSamples: function VP8TopSamples(t0, t1, t2) { + this.y = t0; + this.u = t1; + this.v = t2; + }, + VP8L$(input, webp) { + var t5, t6, + _s8_ = "_buffer8", + t1 = A._setArrayType([], type$.JSArray_HTreeGroup), + t2 = A._setArrayType([], type$.JSArray_VP8LTransform), + t3 = new Uint32Array(2), + t4 = new A.VP8LBitReader(input, t3); + t3 = t4.__VP8LBitReader__buffer8 = A.NativeUint8List_NativeUint8List$view(t3.buffer, 0, null); + t5 = A._lateReadCheck(t3, _s8_); + t6 = input.readByte$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t5[0] = t6; + t6 = A._lateReadCheck(t3, _s8_); + t5 = input.readByte$0(); + if (1 >= t6.length) + return A.ioore(t6, 1); + t6[1] = t5; + t5 = A._lateReadCheck(t3, _s8_); + t6 = input.readByte$0(); + if (2 >= t5.length) + return A.ioore(t5, 2); + t5[2] = t6; + t6 = A._lateReadCheck(t3, _s8_); + t5 = input.readByte$0(); + if (3 >= t6.length) + return A.ioore(t6, 3); + t6[3] = t5; + t5 = A._lateReadCheck(t3, _s8_); + t6 = input.readByte$0(); + if (4 >= t5.length) + return A.ioore(t5, 4); + t5[4] = t6; + t6 = A._lateReadCheck(t3, _s8_); + t5 = input.readByte$0(); + if (5 >= t6.length) + return A.ioore(t6, 5); + t6[5] = t5; + t5 = A._lateReadCheck(t3, _s8_); + t6 = input.readByte$0(); + if (6 >= t5.length) + return A.ioore(t5, 6); + t5[6] = t6; + t3 = A._lateReadCheck(t3, _s8_); + t6 = input.readByte$0(); + if (7 >= t3.length) + return A.ioore(t3, 7); + t3[7] = t6; + return new A.VP8L(t4, webp, t1, t2); + }, + VP8L__subSampleSize(size, samplingBits) { + return B.JSInt_methods._shrOtherPositive$1(size + B.JSInt_methods._shlPositive$1(1, samplingBits) - 1, samplingBits); + }, + VP8L: function VP8L(t0, t1, t2, t3) { + var _ = this; + _.br = t0; + _.webp = t1; + _.image = null; + _._colorCacheSize = _._lastRow = _._lastPixel = 0; + _._colorCache = null; + _._huffmanXsize = _._huffmanSubsampleBits = _._huffmanMask = 0; + _._huffmanImage = null; + _._numHtreeGroups = 0; + _._htreeGroups = t2; + _._transforms = t3; + _._transformsSeen = 0; + _._pixels = null; + _.__VP8L__pixels8 = $; + _._ioWidth = _._opaque = _._argbCache = null; + }, + InternalVP8L: function InternalVP8L(t0, t1, t2, t3) { + var _ = this; + _.br = t0; + _.webp = t1; + _.image = null; + _._colorCacheSize = _._lastRow = _._lastPixel = 0; + _._colorCache = null; + _._huffmanXsize = _._huffmanSubsampleBits = _._huffmanMask = 0; + _._huffmanImage = null; + _._numHtreeGroups = 0; + _._htreeGroups = t2; + _._transforms = t3; + _._transformsSeen = 0; + _._pixels = null; + _.__VP8L__pixels8 = $; + _._ioWidth = _._opaque = _._argbCache = null; + }, + VP8LBitReader: function VP8LBitReader(t0, t1) { + var _ = this; + _.bitPos = 0; + _._vp8l_bit_reader$_input = t0; + _._vp8l_bit_reader$_buffer = t1; + _.__VP8LBitReader__buffer8 = $; + }, + VP8LColorCache: function VP8LColorCache(t0, t1) { + this.colors = t0; + this.hashShift = t1; + }, + VP8LTransform__addPixelsEq(pixels, a, b) { + var pa; + if (!(a >= 0 && a < pixels.length)) + return A.ioore(pixels, a); + pa = pixels[a]; + pixels[a] = (((pa & 4278255360) >>> 0) + ((b & 4278255360) >>> 0) & 4278255360 | (pa & 16711935) + (b & 16711935) & 16711935) >>> 0; + }, + VP8LTransform__average2(a0, a1) { + return ((a0 ^ a1) >>> 1 & 2139062143) + ((a0 & a1) >>> 0); + }, + VP8LTransform__clip255(a) { + if (a < 0) + return 0; + if (a > 255) + return 255; + return a; + }, + VP8LTransform__sub3(a, b, c) { + return Math.abs(b - c) - Math.abs(a - c); + }, + VP8LTransform__predictor0(pixels, left, $top) { + return 4278190080; + }, + VP8LTransform__predictor1(pixels, left, $top) { + return left; + }, + VP8LTransform__predictor2(pixels, left, $top) { + if (!($top >= 0 && $top < pixels.length)) + return A.ioore(pixels, $top); + return pixels[$top]; + }, + VP8LTransform__predictor3(pixels, left, $top) { + var t1 = $top + 1; + if (!(t1 >= 0 && t1 < pixels.length)) + return A.ioore(pixels, t1); + return pixels[t1]; + }, + VP8LTransform__predictor4(pixels, left, $top) { + var t1 = $top - 1; + if (!(t1 >= 0 && t1 < pixels.length)) + return A.ioore(pixels, t1); + return pixels[t1]; + }, + VP8LTransform__predictor5(pixels, left, $top) { + var t2, t3, + t1 = pixels.length; + if (!($top >= 0 && $top < t1)) + return A.ioore(pixels, $top); + t2 = pixels[$top]; + t3 = $top + 1; + if (!(t3 < t1)) + return A.ioore(pixels, t3); + return A.VP8LTransform__average2(A.VP8LTransform__average2(left, pixels[t3]), t2); + }, + VP8LTransform__predictor6(pixels, left, $top) { + var t1 = $top - 1; + if (!(t1 >= 0 && t1 < pixels.length)) + return A.ioore(pixels, t1); + return A.VP8LTransform__average2(left, pixels[t1]); + }, + VP8LTransform__predictor7(pixels, left, $top) { + if (!($top >= 0 && $top < pixels.length)) + return A.ioore(pixels, $top); + return A.VP8LTransform__average2(left, pixels[$top]); + }, + VP8LTransform__predictor8(pixels, left, $top) { + var t1 = $top - 1, + t2 = pixels.length; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(pixels, t1); + t1 = pixels[t1]; + if (!($top >= 0 && $top < t2)) + return A.ioore(pixels, $top); + return A.VP8LTransform__average2(t1, pixels[$top]); + }, + VP8LTransform__predictor9(pixels, left, $top) { + var t2, t3, + t1 = pixels.length; + if (!($top >= 0 && $top < t1)) + return A.ioore(pixels, $top); + t2 = pixels[$top]; + t3 = $top + 1; + if (!(t3 < t1)) + return A.ioore(pixels, t3); + return A.VP8LTransform__average2(t2, pixels[t3]); + }, + VP8LTransform__predictor10(pixels, left, $top) { + var t3, t4, + t1 = $top - 1, + t2 = pixels.length; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(pixels, t1); + t1 = pixels[t1]; + if (!($top >= 0 && $top < t2)) + return A.ioore(pixels, $top); + t3 = pixels[$top]; + t4 = $top + 1; + if (!(t4 < t2)) + return A.ioore(pixels, t4); + t4 = pixels[t4]; + return A.VP8LTransform__average2(A.VP8LTransform__average2(left, t1), A.VP8LTransform__average2(t3, t4)); + }, + VP8LTransform__predictor11(pixels, left, $top) { + var t2, t3, + t1 = pixels.length; + if (!($top >= 0 && $top < t1)) + return A.ioore(pixels, $top); + t2 = pixels[$top]; + t3 = $top - 1; + if (!(t3 >= 0 && t3 < t1)) + return A.ioore(pixels, t3); + t3 = pixels[t3]; + return A.VP8LTransform__sub3(t2 >>> 24, left >>> 24, t3 >>> 24) + A.VP8LTransform__sub3(t2 >>> 16 & 255, left >>> 16 & 255, t3 >>> 16 & 255) + A.VP8LTransform__sub3(t2 >>> 8 & 255, left >>> 8 & 255, t3 >>> 8 & 255) + A.VP8LTransform__sub3(t2 & 255, left & 255, t3 & 255) <= 0 ? t2 : left; + }, + VP8LTransform__predictor12(pixels, left, $top) { + var t2, t3, + t1 = pixels.length; + if (!($top >= 0 && $top < t1)) + return A.ioore(pixels, $top); + t2 = pixels[$top]; + t3 = $top - 1; + if (!(t3 >= 0 && t3 < t1)) + return A.ioore(pixels, t3); + t3 = pixels[t3]; + return (A.VP8LTransform__clip255((left >>> 24) + (t2 >>> 24) - (t3 >>> 24)) << 24 | A.VP8LTransform__clip255((left >>> 16 & 255) + (t2 >>> 16 & 255) - (t3 >>> 16 & 255)) << 16 | A.VP8LTransform__clip255((left >>> 8 & 255) + (t2 >>> 8 & 255) - (t3 >>> 8 & 255)) << 8 | A.VP8LTransform__clip255((left & 255) + (t2 & 255) - (t3 & 255))) >>> 0; + }, + VP8LTransform__predictor13(pixels, left, $top) { + var t2, t3, avg, t4, t5, + t1 = pixels.length; + if (!($top >= 0 && $top < t1)) + return A.ioore(pixels, $top); + t2 = pixels[$top]; + t3 = $top - 1; + if (!(t3 >= 0 && t3 < t1)) + return A.ioore(pixels, t3); + t3 = pixels[t3]; + avg = A.VP8LTransform__average2(left, t2); + t2 = avg >>> 24; + t1 = avg >>> 16 & 255; + t4 = avg >>> 8 & 255; + t5 = avg >>> 0 & 255; + return (A.VP8LTransform__clip255(t2 + B.JSInt_methods._tdivFast$1(t2 - (t3 >>> 24), 2)) << 24 | A.VP8LTransform__clip255(t1 + B.JSInt_methods._tdivFast$1(t1 - (t3 >>> 16 & 255), 2)) << 16 | A.VP8LTransform__clip255(t4 + B.JSInt_methods._tdivFast$1(t4 - (t3 >>> 8 & 255), 2)) << 8 | A.VP8LTransform__clip255(t5 + B.JSInt_methods._tdivFast$1(t5 - (t3 & 255), 2))) >>> 0; + }, + VP8LTransform: function VP8LTransform() { + var _ = this; + _.ysize = _.xsize = _.type = 0; + _.data = null; + _.bits = 0; + }, + WebPAlpha: function WebPAlpha(t0, t1, t2) { + var _ = this; + _.input = t0; + _.width = t1; + _.height = t2; + _.preProcessing = _.filter = _.method = 0; + _.rsrv = 1; + _.isAlphaDecoded = false; + _.__WebPAlpha__vp8l = $; + _._use8bDecode = false; + }, + WebPFrame: function WebPFrame() { + }, + InternalWebPFrame: function InternalWebPFrame() { + this._reserved = 1; + this.__WebPFrame__frameSize = this.__WebPFrame__framePosition = $; + }, + HuffmanTree$() { + var t1 = new Uint8Array(128), + t2 = new Int16Array(128); + t1 = new A.HuffmanTree(t1, t2, new Int16Array(128)); + t1._init$1(0); + return t1; + }, + HTreeGroup$() { + var _i, + _list = J.JSArray_JSArray$allocateFixed(5, type$.HuffmanTree); + for (_i = 0; _i < 5; ++_i) + _list[_i] = A.HuffmanTree$(); + return new A.HTreeGroup(_list); + }, + HuffmanTree: function HuffmanTree(t0, t1, t2) { + var _ = this; + _.lutBits = t0; + _.lutSymbol = t1; + _.lutJump = t2; + _.__HuffmanTree_tree = $; + _.numNodes = _.maxNodes = 0; + }, + HTreeGroup: function HTreeGroup(t0) { + this.htrees = t0; + }, + WebPInfo: function WebPInfo(t0) { + var _ = this; + _.hasAnimation = _.hasAlpha = false; + _.format = 0; + _.frames = t0; + _._numFrames = _._frame = 0; + _._webp_info$_alphaData = null; + _.height = _.width = _._vp8Size = _._vp8Position = 0; + }, + InternalWebPInfo: function InternalWebPInfo(t0) { + var _ = this; + _.hasAnimation = _.hasAlpha = false; + _.format = 0; + _.frames = t0; + _._numFrames = _._frame = 0; + _._webp_info$_alphaData = null; + _.height = _.width = _._vp8Size = _._vp8Position = 0; + }, + WebPDecoder: function WebPDecoder() { + this._webp_decoder$_input = this._info = null; + }, + HdrImage: function HdrImage(t0) { + var _ = this; + _.slices = t0; + _.alpha = _.blue = _.green = _.red = null; + }, + HdrSlice_allocateDataForType(size, type, bitsPerSample) { + switch (type) { + case 1: + if (bitsPerSample === 8) + return new Int8Array(size); + else if (bitsPerSample === 16) + return new Int16Array(size); + else if (bitsPerSample === 32) + return new Int32Array(size); + break; + case 0: + if (bitsPerSample === 8) + return new Uint8Array(size); + else if (bitsPerSample === 16) + return new Uint16Array(size); + else if (bitsPerSample === 32) + return new Uint32Array(size); + break; + case 3: + if (bitsPerSample === 16) + return new Uint16Array(size); + else if (bitsPerSample === 32) + return new Float32Array(size); + else if (bitsPerSample === 64) + return new Float64Array(size); + break; + } + throw A.wrapException(A.UnimplementedError$(null)); + }, + HdrSlice$($name, width, height, type, bitsPerSample) { + return new A.HdrSlice($name, width, height, type, bitsPerSample, A.HdrSlice_allocateDataForType(width * height, type, bitsPerSample)); + }, + HdrSlice: function HdrSlice(t0, t1, t2, t3, t4, t5) { + var _ = this; + _.name = t0; + _.width = t1; + _.height = t2; + _.type = t3; + _.bitsPerSample = t4; + _.data = t5; + }, + hdrToImage(hdr, exposure) { + var m, t1, t2, y, di, t3, x, r, pi, g, b, ri, gi, bi, mi, di0, a, + _gamma = new A.hdrToImage__gamma(new A.hdrToImage__knee()), + image = A.Image$(hdr.get$width(hdr), hdr.get$height(hdr), B.Channels_1, null, null), + pixels = image.getBytes$0(); + if (!(hdr.red != null || hdr.green != null || hdr.blue != null)) + throw A.wrapException(A.ImageException$("Only RGB[A] images are currently supported.")); + m = Math.pow(2, B.JSNumber_methods.clamp$2(exposure + 2.47393, -20, 20)); + t1 = pixels.length; + t2 = hdr.slices; + y = 0; + di = 0; + while (true) { + if (t2._length === 0) + t3 = 0; + else { + t3 = t2.get$values(t2); + t3 = t3._f.call$1(J.get$first$ax(t3.__internal$_iterable)).height; + } + if (!(y < t3)) + break; + x = 0; + while (true) { + if (t2._length === 0) + t3 = 0; + else { + t3 = t2.get$values(t2); + t3 = t3._f.call$1(J.get$first$ax(t3.__internal$_iterable)).width; + } + if (!(x < t3)) + break; + t3 = hdr.red; + if (t3 != null) + if (t3.type === 3) { + t3 = t3.getFloat$2(x, y); + r = t3; + } else { + pi = y * t3.width + x; + t3 = t3.data; + if (!(pi >= 0 && pi < t3.length)) + return A.ioore(t3, pi); + t3 = A._asInt(t3[pi]); + r = t3; + } + else + r = 0; + if (t2._length === 1) + g = r; + else { + t3 = hdr.green; + if (t3 != null) { + if (t3.type === 3) + t3 = t3.getFloat$2(x, y); + else { + pi = y * t3.width + x; + t3 = t3.data; + if (!(pi >= 0 && pi < t3.length)) + return A.ioore(t3, pi); + t3 = A._asInt(t3[pi]); + } + g = t3; + } else + g = 0; + } + if (t2._length === 1) + b = r; + else { + t3 = hdr.blue; + if (t3 != null) { + if (t3.type === 3) + t3 = t3.getFloat$2(x, y); + else { + pi = y * t3.width + x; + t3 = t3.data; + if (!(pi >= 0 && pi < t3.length)) + return A.ioore(t3, pi); + t3 = A._asInt(t3[pi]); + } + b = t3; + } else + b = 0; + } + if (r == 1 / 0 || r == -1 / 0 || isNaN(r)) + r = 0; + if (g == 1 / 0 || g == -1 / 0 || isNaN(g)) + g = 0; + if (b == 1 / 0 || b == -1 / 0 || isNaN(b)) + b = 0; + ri = _gamma.call$2(r, m); + gi = _gamma.call$2(g, m); + bi = _gamma.call$2(b, m); + mi = Math.max(ri, Math.max(gi, bi)); + if (mi > 255) { + ri = 255 * (ri / mi); + gi = 255 * (gi / mi); + bi = 255 * (bi / mi); + } + di0 = di + 1; + t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(ri, 0, 255)); + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t3; + di = di0 + 1; + t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(gi, 0, 255)); + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = t3; + di0 = di + 1; + t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(bi, 0, 255)); + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + pixels[di] = t3; + t3 = hdr.alpha; + if (t3 != null) { + a = t3.getFloat$2(x, y); + if (a == 1 / 0 || a == -1 / 0 || isNaN(a)) + a = 1; + di = di0 + 1; + t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(a * 255, 0, 255)); + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = t3; + } else { + di = di0 + 1; + if (!(di0 >= 0 && di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = 255; + } + ++x; + } + ++y; + } + return image; + }, + hdrToImage__knee: function hdrToImage__knee() { + }, + hdrToImage__gamma: function hdrToImage__gamma(t0) { + this._knee = t0; + }, + ICCPCompression: function ICCPCompression(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + ICCProfileData: function ICCProfileData(t0, t1, t2) { + this.name = t0; + this.compression = t1; + this.data = t2; + }, + Image$(width, height, channels, exif, iccp) { + return new A.Image(width, height, channels, 0, 0, 0, B.DisposeMode_1, B.BlendMode_1, new Uint32Array(width * height), A.ExifData$from(exif), iccp); + }, + Image$from(other) { + var t3, + t1 = new A.Image(other.width, other.height, other.channels, other.xOffset, other.yOffset, other.duration, other.disposeMethod, other.blendMethod, B.NativeUint32List_methods.sublist$1(other.data, 0), A.ExifData$from(other.exif), other.iccProfile), + t2 = other.textData; + if (t2 != null) { + t3 = type$.String; + t1.set$textData(A.LinkedHashMap_LinkedHashMap$from(t2, t3, t3)); + } + return t1; + }, + Format: function Format(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + Channels: function Channels(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + BlendMode: function BlendMode(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + DisposeMode: function DisposeMode(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + Image: function Image(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) { + var _ = this; + _.width = t0; + _.height = t1; + _.channels = t2; + _.xOffset = t3; + _.yOffset = t4; + _.duration = t5; + _.disposeMethod = t6; + _.blendMethod = t7; + _.data = t8; + _.exif = t9; + _.iccProfile = t10; + _.textData = null; + }, + Image_getPixelLinear__linear: function Image_getPixelLinear__linear(t0, t1) { + this.dx = t0; + this.dy = t1; + }, + Image_getPixelCubic__cubic: function Image_getPixelCubic__cubic() { + }, + ImageException$(message) { + return new A.ImageException(message); + }, + ImageException: function ImageException(t0) { + this.message = t0; + }, + ditherPixels(image, quantizer, kernel, serpentine) { + var t1, ds, height, width, data, indexedPixels, t2, i1, t3, t4, index, y, x, idx, r1, t5, g1, b1, r2, g2, er, eg, eb, i, x1, y1, t6, d; + if (kernel === B.DitherKernel_0) + return quantizer.getIndexMap$1(image); + t1 = kernel.index; + if (!(t1 < 5)) + return A.ioore(B.List_Y2m, t1); + ds = B.List_Y2m[t1]; + height = image.height; + width = image.width; + data = new Uint8Array(A._ensureNativeList(image.getBytes$0())); + t1 = width * height; + indexedPixels = new Uint8Array(t1); + t2 = A._lateReadCheck(quantizer.__NeuralQuantizer_colorMap, "colorMap"); + for (i1 = ds.length, t3 = data.length, i1 - 1, t4 = t2.length, width - 1, index = 0, y = 0; y < height; ++y) + for (x = 0; x !== width; ++x, ++index) { + idx = index * 4; + if (!(idx < t3)) + return A.ioore(data, idx); + r1 = data[idx]; + t5 = idx + 1; + if (!(t5 < t3)) + return A.ioore(data, t5); + g1 = data[t5]; + t5 = idx + 2; + if (!(t5 < t3)) + return A.ioore(data, t5); + b1 = data[t5]; + idx = quantizer._inxSearch$3(b1, g1, r1); + if (!(index >= 0 && index < t1)) + return A.ioore(indexedPixels, index); + indexedPixels[index] = idx; + idx *= 3; + if (!(idx >= 0 && idx < t4)) + return A.ioore(t2, idx); + r2 = t2[idx]; + t5 = idx + 1; + if (!(t5 < t4)) + return A.ioore(t2, t5); + g2 = t2[t5]; + t5 = idx + 2; + if (!(t5 < t4)) + return A.ioore(t2, t5); + er = r1 - r2; + eg = g1 - g2; + eb = b1 - t2[t5]; + if (er === 0 && eg === 0 && eb === 0) + continue; + for (i = 0; i !== i1; ++i) { + if (!(i >= 0 && i < i1)) + return A.ioore(ds, i); + t5 = ds[i]; + x1 = B.JSNumber_methods.toInt$0(t5[1]); + y1 = B.JSNumber_methods.toInt$0(t5[2]); + t6 = x1 + x; + if (t6 >= 0) + if (t6 < width) { + t6 = y1 + y; + t6 = t6 >= 0 && t6 < height; + } else + t6 = false; + else + t6 = false; + if (t6) { + d = t5[0]; + idx = (index + x1 + y1 * width) * 4; + if (!(idx >= 0 && idx < t3)) + return A.ioore(data, idx); + B.NativeUint8List_methods.$indexSet(data, idx, Math.max(0, Math.min(255, B.JSNumber_methods.toInt$0(data[idx] + er * d)))); + t5 = idx + 1; + if (!(t5 < t3)) + return A.ioore(data, t5); + B.NativeUint8List_methods.$indexSet(data, t5, Math.max(0, Math.min(255, B.JSNumber_methods.toInt$0(data[t5] + eg * d)))); + t5 = idx + 2; + if (!(t5 < t3)) + return A.ioore(data, t5); + B.NativeUint8List_methods.$indexSet(data, t5, Math.max(0, Math.min(255, B.JSNumber_methods.toInt$0(data[t5] + eb * d)))); + } + } + } + return indexedPixels; + }, + DitherKernel: function DitherKernel(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + InputBuffer$(buffer, bigEndian, $length, offset) { + return new A.InputBuffer(buffer, offset, $length == null ? buffer.length : offset + $length, offset, bigEndian); + }, + InputBuffer$from(other, $length, offset) { + var t1 = other.buffer, + t2 = other.offset + offset, + t3 = other.start, + t4 = $length == null ? other.end : t2 + $length; + return new A.InputBuffer(t1, t3, t4, t2, other.bigEndian); + }, + InputBuffer: function InputBuffer(t0, t1, t2, t3, t4) { + var _ = this; + _.buffer = t0; + _.start = t1; + _.end = t2; + _.offset = t3; + _.bigEndian = t4; + }, + Interpolation: function Interpolation(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + NeuralQuantizer$(image, samplingFactor) { + var t1 = new A.NeuralQuantizer(samplingFactor, new Int32Array(256)); + t1._initialize$1(256); + t1._learn$1(image); + t1._fix$0(); + t1._inxBuild$0(); + t1._copyColorMap$0(); + return t1; + }, + NeuralQuantizer: function NeuralQuantizer(t0, t1) { + var _ = this; + _.__NeuralQuantizer_colorMap = $; + _.samplingFactor = t0; + _.netSize = 16; + _.specials = 3; + _.__NeuralQuantizer_cutNetSize = _.__NeuralQuantizer_bgColor = $; + _.maxNetPos = null; + _.__NeuralQuantizer__colorMap = _.__NeuralQuantizer__network = _.__NeuralQuantizer__radiusPower = _.__NeuralQuantizer_initBiasRadius = _.__NeuralQuantizer_initRadius = $; + _._netIndex = t1; + _.__NeuralQuantizer__freq = _.__NeuralQuantizer__bias = $; + }, + OutputBuffer$(bigEndian, size) { + return new A.OutputBuffer(bigEndian, new Uint8Array(size)); + }, + OutputBuffer: function OutputBuffer(t0, t1) { + this.length = 0; + this.bigEndian = t0; + this._buffer = t1; + }, + Quantizer: function Quantizer() { + }, + generateUploadKeysImplementation(args) { + var roomKeys, dbSession, sess, roomKeyBackup, payload, encrypted, e, s, t1, t2, t3, t4, t5, t6, _i, t7, t8, roomKeyBackup0, t9, t10, t11, exception, + enc = new Olm.PkEncryption(); + try { + J.set_recipient_key$1$x(enc, args.pubkey); + t1 = type$.String; + roomKeys = new A.RoomKeys(A.LinkedHashMap_LinkedHashMap$_empty(t1, type$.RoomKeyBackup)); + for (t2 = args.dbSessions, t3 = t2.length, t4 = type$.dynamic, t5 = args.userId, t6 = type$.KeyBackupData, _i = 0; _i < t2.length; t2.length === t3 || (0, A.throwConcurrentModificationError)(t2), ++_i) { + dbSession = t2[_i]; + sess = A.SessionKey$fromDb(dbSession.dbSession, t5); + if (sess.inboundGroupSession == null) + continue; + t7 = roomKeys.rooms; + t8 = sess.roomId; + roomKeyBackup0 = t7.$index(0, t8); + if (roomKeyBackup0 == null) { + roomKeyBackup0 = new A.RoomKeyBackup(A.LinkedHashMap_LinkedHashMap$_empty(t1, t6)); + t7.$indexSet(0, t8, roomKeyBackup0); + } + roomKeyBackup = roomKeyBackup0; + t7 = sess.get$forwardingCurve25519KeyChain(); + t8 = sess.senderKey; + t9 = A._lateReadCheck(sess.__SessionKey_senderClaimedKeys, "senderClaimedKeys"); + t10 = sess.inboundGroupSession; + t10.toString; + t11 = sess.inboundGroupSession; + t11.toString; + payload = A.LinkedHashMap_LinkedHashMap$_literal(["algorithm", "m.megolm.v1.aes-sha2", "forwarding_curve25519_key_chain", t7, "sender_key", t8, "sender_clencaimed_keys", t9, "session_key", J.export_session$1$x(t10, J.first_known_index$0$x(t11))], t1, t4); + encrypted = J.encrypt$1$x(enc, B.C_JsonCodec.encode$1(payload)); + t11 = roomKeyBackup.sessions; + t10 = sess.sessionId; + t9 = sess.inboundGroupSession; + t9.toString; + t11.$indexSet(0, t10, new A.KeyBackupData(J.first_known_index$0$x(t9), sess.get$forwardingCurve25519KeyChain().length, dbSession.verified, A.LinkedHashMap_LinkedHashMap$_literal(["ephemeral", J.get$ephemeral$x(encrypted), "ciphertext", J.get$ciphertext$x(encrypted), "mac", J.get$mac$x(encrypted)], t1, t4))); + } + return roomKeys; + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = $.$get$Logs__singleton(); + t1.addLogEvent$1(new A.LogEvent("[Key Manager] Error generating payload", e, type$.nullable_StackTrace._as(s), B.Level_1)); + throw exception; + } finally { + J.free$0$x(enc); + } + }, + GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson(json) { + return new A.GenerateUploadKeysArgs(A._asString(json.$index(0, "pubkey")), J.map$1$1$ax(type$.Iterable_dynamic._as(json.$index(0, "dbSessions")), new A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure(), type$._DbInboundGroupSessionBundle).toList$0(0), A._asString(json.$index(0, "userId"))); + }, + _DbInboundGroupSessionBundle: function _DbInboundGroupSessionBundle(t0, t1) { + this.dbSession = t0; + this.verified = t1; + }, + GenerateUploadKeysArgs: function GenerateUploadKeysArgs(t0, t1, t2) { + this.pubkey = t0; + this.dbSessions = t1; + this.userId = t2; + }, + GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure: function GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure() { + }, + GenerateUploadKeysArgs_toJson_closure: function GenerateUploadKeysArgs_toJson_closure() { + }, + SessionKey$fromDb(dbEntry, key) { + var t1 = A.Event_getMapFromPayload(dbEntry.content), + t2 = type$.String, + t3 = type$.dynamic; + A.FilterMap_catchMap(A.Event_getMapFromPayload(dbEntry.indexes), new A.SessionKey$fromDb_closure(), t2, t3, t2, t2); + A.FilterMap_catchMap(A.Event_getMapFromPayload(dbEntry.allowedAtIndex), new A.SessionKey$fromDb_closure0(), t2, t3, t2, type$.Map_String_int); + t1 = new A.SessionKey(t1, new Olm.InboundGroupSession(), dbEntry.senderKey, dbEntry.roomId, dbEntry.sessionId); + t1.SessionKey$fromDb$2(dbEntry, key); + return t1; + }, + SessionKey: function SessionKey(t0, t1, t2, t3, t4) { + var _ = this; + _.content = t0; + _.inboundGroupSession = t1; + _.__SessionKey_senderClaimedKeys = $; + _.senderKey = t2; + _.roomId = t3; + _.sessionId = t4; + }, + SessionKey$fromDb_closure: function SessionKey$fromDb_closure() { + }, + SessionKey$fromDb_closure0: function SessionKey$fromDb_closure0() { + }, + SessionKey$fromDb_closure1: function SessionKey$fromDb_closure1() { + }, + SessionKey$fromDb_closure2: function SessionKey$fromDb_closure2() { + }, + StoredInboundGroupSession: function StoredInboundGroupSession(t0, t1, t2, t3, t4, t5, t6, t7, t8) { + var _ = this; + _.roomId = t0; + _.sessionId = t1; + _.pickle = t2; + _.content = t3; + _.indexes = t4; + _.allowedAtIndex = t5; + _.uploaded = t6; + _.senderKey = t7; + _.senderClaimedKeys = t8; + }, + Pbkdf2Params: function Pbkdf2Params() { + }, + AesCtrParams: function AesCtrParams() { + }, + MatrixImageFile_calcMetadataImplementation(bytes) { + var image = A.decodeImage(bytes); + if (image == null) + return null; + return new A.MatrixImageFileResizedResponse(bytes, image.width, image.height, A.BlurHash_BlurHash$encode(image, 4, 3).hash, null, null); + }, + MatrixImageFile_resizeImplementation($arguments) { + var bytes, _null = null, + image = A.decodeImage($arguments.bytes), + t1 = image.height, + t2 = image.width, + t3 = t1 > t2 ? $arguments.maxDimension : _null, + resized = A.copyResize(image, t3, t2 >= t1 ? $arguments.maxDimension : _null), + encoded = A.encodeNamedImage(resized, $arguments.fileName); + if (encoded == null) + return _null; + bytes = new Uint8Array(A._ensureNativeList(encoded)); + t3 = $arguments.calcBlurhash ? A.BlurHash_BlurHash$encode(resized, 4, 3).hash : _null; + return new A.MatrixImageFileResizedResponse(bytes, resized.width, resized.height, t3, t1, t2); + }, + MatrixImageFileResizedResponse: function MatrixImageFileResizedResponse(t0, t1, t2, t3, t4, t5) { + var _ = this; + _.bytes = t0; + _.width = t1; + _.height = t2; + _.blurhash = t3; + _.originalHeight = t4; + _.originalWidth = t5; + }, + MatrixImageFileResizeArguments: function MatrixImageFileResizeArguments(t0, t1, t2, t3) { + var _ = this; + _.bytes = t0; + _.maxDimension = t1; + _.fileName = t2; + _.calcBlurhash = t3; + }, + WebWorkerData: function WebWorkerData(t0, t1, t2) { + this.label = t0; + this.name = t1; + this.data = t2; + }, + WebWorkerOperations: function WebWorkerOperations(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + startWebWorker() { + var $async$goto = 0, + $async$completer = A._makeAsyncAwaitCompleter(type$.void), + t1; + var $async$startWebWorker = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { + if ($async$errorCode === 1) + return A._asyncRethrow($async$result, $async$completer); + while (true) + switch ($async$goto) { + case 0: + // Function start + A.print("[native implementations worker]: Starting..."); + t1 = $.$get$_context().$index(0, "self"); + if (t1 == null) + t1 = type$.Object._as(t1); + t1.onmessage = A.allowInterop(new A.startWebWorker_closure(), type$.Future_Null_Function_MessageEvent); + // implicit return + return A._asyncReturn(null, $async$completer); + } + }); + return A._asyncStartSync($async$startWebWorker, $async$completer); + }, + sendResponse(label, response) { + var e, s, t1, exception; + try { + self.self; + t1 = A.LinkedHashMap_LinkedHashMap$_literal(["label", label, "data", response], type$.String, type$.dynamic); + self.self.postMessage(A.jsify(t1)); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A.print(string$._nativ + A.S(e) + ", " + A.S(s)); + } + }, + _replyError(error, stackTrace, origin) { + var jsError, e, s, exception, t1; + error = error; + type$.StackTrace._as(stackTrace); + A._asDouble(origin); + if (error != null) + try { + jsError = A.jsify(error); + if (jsError != null) + error = jsError; + } catch (exception) { + error = J.toString$0$(error); + } + try { + self.self; + t1 = A.LinkedHashMap_LinkedHashMap$_literal(["label", "stacktrace", "origin", origin, "error", error, "stacktrace", stackTrace.toString$0(0)], type$.String, type$.nullable_Object); + self.self.postMessage(A.jsify(t1)); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A.print(string$._nativ + A.S(e) + ", " + A.S(s)); + } + }, + startWebWorker_closure: function startWebWorker_closure() { + }, + KeyBackupData: function KeyBackupData(t0, t1, t2, t3) { + var _ = this; + _.firstMessageIndex = t0; + _.forwardedCount = t1; + _.isVerified = t2; + _.sessionData = t3; + }, + RoomKeyBackup: function RoomKeyBackup(t0) { + this.sessions = t0; + }, + RoomKeyBackup_toJson_closure: function RoomKeyBackup_toJson_closure() { + }, + RoomKeys: function RoomKeys(t0) { + this.rooms = t0; + }, + RoomKeys_toJson_closure: function RoomKeys_toJson_closure() { + }, + FilterMap_filterMap(_this, f, $K, $V, K2, V2) { + var t1 = K2._eval$1("@<0>")._bind$1(V2), + t2 = A.LinkedHashMap_LinkedHashMap$_empty(K2, V2); + t2.addEntries$1(t2, new A.WhereTypeIterable(J.get$entries$x(_this).map$1$1(0, new A.FilterMap_filterMap_closure(f, $K, $V, K2, V2), t1._eval$1("MapEntry<1,2>?")), t1._eval$1("WhereTypeIterable>"))); + return t2; + }, + FilterMap_catchMap(_this, f, $K, $V, K2, V2) { + return A.FilterMap_filterMap(_this, new A.FilterMap_catchMap_closure(f, $K, $V, K2, V2), $K, $V, K2, V2); + }, + FilterMap_filterMap_closure: function FilterMap_filterMap_closure(t0, t1, t2, t3, t4) { + var _ = this; + _.f = t0; + _.K = t1; + _.V = t2; + _.K2 = t3; + _.V2 = t4; + }, + FilterMap_catchMap_closure: function FilterMap_catchMap_closure(t0, t1, t2, t3, t4) { + var _ = this; + _.f = t0; + _.K = t1; + _.V = t2; + _.K2 = t3; + _.V2 = t4; + }, + Level: function Level(t0, t1) { + this.index = t0; + this._core$_name = t1; + }, + Logs: function Logs(t0) { + this.outputEvents = t0; + }, + LogEvent: function LogEvent(t0, t1, t2, t3) { + var _ = this; + _.title = t0; + _.exception = t1; + _.stackTrace = t2; + _.level = t3; + }, + EncryptResult: function EncryptResult() { + }, + DecryptResult: function DecryptResult() { + }, + Account: function Account() { + }, + Session: function Session() { + }, + Utility: function Utility() { + }, + InboundGroupSession: function InboundGroupSession() { + }, + OutboundGroupSession: function OutboundGroupSession() { + }, + SAS: function SAS() { + }, + PkEncryptResult: function PkEncryptResult() { + }, + PkEncryption: function PkEncryption() { + }, + PkDecryption: function PkDecryption() { + }, + PkSigning: function PkSigning() { + }, + max(a, b, $T) { + A.checkTypeBound($T, type$.num, "T", "max"); + return Math.max($T._as(a), $T._as(b)); + }, + Uint64List_Uint64List($length) { + throw A.wrapException(A.UnsupportedError$("Uint64List not supported on the web.")); + }, + Uint32List_Uint32List$view(buffer, offsetInBytes) { + var $length; + A._checkViewArguments(buffer, offsetInBytes, null); + $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - offsetInBytes, 4); + return new Uint32Array(buffer, offsetInBytes, $length); + }, + Float32List_Float32List$view(buffer) { + var $length; + A._checkViewArguments(buffer, 0, null); + $length = B.JSInt_methods._tdivFast$1(buffer.byteLength - 0, 4); + return new Float32Array(buffer, 0, $length); + }, + Float64List_Float64List$view(buffer) { + return buffer.asFloat64List$2(0, 0, null); + }, + isBrowserObject(o) { + return type$.Blob._is(o) || type$.Event._is(o) || type$.KeyRange._is(o) || type$.ImageData._is(o) || type$.Node._is(o) || type$.Window._is(o) || type$.WorkerGlobalScope._is(o); + }, + printString(string) { + if (typeof dartPrint == "function") { + dartPrint(string); + return; + } + if (typeof console == "object" && typeof console.log != "undefined") { + console.log(string); + return; + } + if (typeof window == "object") + return; + if (typeof print == "function") { + print(string); + return; + } + throw "Unable to print message: " + String(string); + }, + getAdler32(array) { + var len0, s1, s2, i, n, i0, + len = array.length; + for (len0 = len, s1 = 1, s2 = 0, i = 0; len0 > 0;) { + n = 3800 > len0 ? len0 : 3800; + len0 -= n; + for (; --n, n >= 0; i = i0) { + i0 = i + 1; + if (!(i >= 0 && i < len)) + return A.ioore(array, i); + s1 += array[i] & 255; + s2 += s1; + } + s1 = B.JSInt_methods.$mod(s1, 65521); + s2 = B.JSInt_methods.$mod(s2, 65521); + } + return (s2 << 16 | s1) >>> 0; + }, + getCrc32(array, crc) { + var ip, ip0, t2, + t1 = J.getInterceptor$asx(array), + len = t1.get$length(array); + crc ^= 4294967295; + for (ip = 0; len >= 8;) { + ip0 = ip + 1; + t2 = t1.$index(array, ip); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip = ip0 + 1; + t2 = t1.$index(array, ip0); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip0 = ip + 1; + t2 = t1.$index(array, ip); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip = ip0 + 1; + t2 = t1.$index(array, ip0); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip0 = ip + 1; + t2 = t1.$index(array, ip); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip = ip0 + 1; + t2 = t1.$index(array, ip0); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip0 = ip + 1; + t2 = t1.$index(array, ip); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + ip = ip0 + 1; + t2 = t1.$index(array, ip0); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + len -= 8; + } + if (len > 0) + do { + ip0 = ip + 1; + t2 = t1.$index(array, ip); + if (typeof t2 !== "number") + return A.iae(t2); + crc = B.List_B8J[(crc ^ t2) & 255] ^ crc >>> 8; + if (--len, len > 0) { + ip = ip0; + continue; + } else + break; + } while (true); + return (crc ^ 4294967295) >>> 0; + }, + encode83(value, $length) { + var i, t2, t3, t4, + t1 = B.Map_61Q1t.get$keys(B.Map_61Q1t); + t1 = A.List_List$of(t1, true, A._instanceType(t1)._eval$1("Iterable.E")); + for (i = 1, t2 = ""; i <= $length; ++i, t2 = t3) { + t3 = B.JSNumber_methods.toInt$0(B.JSNumber_methods.$mod(value / Math.pow(83, $length - i), 83)); + t4 = t3 >= 0 && t3 < t1.length; + if (t4) { + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t3 = t1[t3]; + } else + t3 = null; + t3 = t2 + A.S(t3); + } + return t2.charCodeAt(0) == 0 ? t2 : t2; + }, + getColor(r, g, b, a) { + return (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255))) >>> 0; + }, + ExrWavelet_decode(input, si, nx, ox, ny, oy, mx) { + var p, p0, a_b, t1, p2, ey, oy1, oy2, ox1, ox2, t2, t3, py, ex, px, p01, p10, p11, t4, i00, i10, i01, i11, + w14 = mx < 16384, + n = nx > ny ? ny : nx; + for (p = 1; p <= n;) + p = p << 1 >>> 0; + p = p >>> 1; + p0 = p >>> 1; + a_b = A._setArrayType([0, 0], type$.JSArray_int); + for (t1 = input.length, p2 = p, p = p0; p >= 1; p2 = p, p = p0) { + ey = si + oy * (ny - p2); + oy1 = oy * p; + oy2 = oy * p2; + ox1 = ox * p; + ox2 = ox * p2; + for (t2 = (nx & p) >>> 0 !== 0, t3 = ox * (nx - p2), py = si; py <= ey; py += oy2) { + ex = py + t3; + for (px = py; px <= ex; px += ox2) { + p01 = px + ox1; + p10 = px + oy1; + p11 = p10 + ox1; + if (w14) { + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + t4 = input[px]; + if (!(p10 >= 0 && p10 < t1)) + return A.ioore(input, p10); + A.ExrWavelet_wdec14(t4, input[p10], a_b); + i00 = a_b[0]; + i10 = a_b[1]; + if (!(p01 >= 0 && p01 < t1)) + return A.ioore(input, p01); + t4 = input[p01]; + if (!(p11 >= 0 && p11 < t1)) + return A.ioore(input, p11); + A.ExrWavelet_wdec14(t4, input[p11], a_b); + i01 = a_b[0]; + i11 = a_b[1]; + A.ExrWavelet_wdec14(i00, i01, a_b); + input[px] = a_b[0]; + input[p01] = a_b[1]; + A.ExrWavelet_wdec14(i10, i11, a_b); + input[p10] = a_b[0]; + input[p11] = a_b[1]; + } else { + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + t4 = input[px]; + if (!(p10 >= 0 && p10 < t1)) + return A.ioore(input, p10); + A.ExrWavelet_wdec16(t4, input[p10], a_b); + i00 = a_b[0]; + i10 = a_b[1]; + if (!(p01 >= 0 && p01 < t1)) + return A.ioore(input, p01); + t4 = input[p01]; + if (!(p11 >= 0 && p11 < t1)) + return A.ioore(input, p11); + A.ExrWavelet_wdec16(t4, input[p11], a_b); + i01 = a_b[0]; + i11 = a_b[1]; + A.ExrWavelet_wdec16(i00, i01, a_b); + input[px] = a_b[0]; + input[p01] = a_b[1]; + A.ExrWavelet_wdec16(i10, i11, a_b); + input[p10] = a_b[0]; + input[p11] = a_b[1]; + } + } + if (t2) { + p10 = px + oy1; + if (w14) { + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + t4 = input[px]; + if (!(p10 >= 0 && p10 < t1)) + return A.ioore(input, p10); + A.ExrWavelet_wdec14(t4, input[p10], a_b); + i00 = a_b[0]; + input[p10] = a_b[1]; + } else { + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + t4 = input[px]; + if (!(p10 >= 0 && p10 < t1)) + return A.ioore(input, p10); + A.ExrWavelet_wdec16(t4, input[p10], a_b); + i00 = a_b[0]; + input[p10] = a_b[1]; + } + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + input[px] = i00; + } + } + if ((ny & p) >>> 0 !== 0) { + ex = py + t3; + for (px = py; px <= ex; px += ox2) { + p01 = px + ox1; + if (w14) { + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + t2 = input[px]; + if (!(p01 >= 0 && p01 < t1)) + return A.ioore(input, p01); + A.ExrWavelet_wdec14(t2, input[p01], a_b); + i00 = a_b[0]; + input[p01] = a_b[1]; + } else { + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + t2 = input[px]; + if (!(p01 >= 0 && p01 < t1)) + return A.ioore(input, p01); + A.ExrWavelet_wdec16(t2, input[p01], a_b); + i00 = a_b[0]; + input[p01] = a_b[1]; + } + if (!(px >= 0 && px < t1)) + return A.ioore(input, px); + input[px] = i00; + } + } + p0 = p >>> 1; + } + }, + ExrWavelet_wdec14(l, h, a_b) { + var t2, t3, ls, hs, ai, + t1 = $.$get$__uint16(); + t1[0] = l; + t2 = $.$get$__uint16ToInt16(); + t3 = t2.length; + if (0 >= t3) + return A.ioore(t2, 0); + ls = t2[0]; + t1[0] = h; + if (0 >= t3) + return A.ioore(t2, 0); + hs = t2[0]; + ai = ls + (hs & 1) + B.JSInt_methods._shrOtherPositive$1(hs, 1); + B.JSArray_methods.$indexSet(a_b, 0, ai); + B.JSArray_methods.$indexSet(a_b, 1, ai - hs); + }, + ExrWavelet_wdec16(l, h, a_b) { + var bb = l - B.JSInt_methods._shrOtherPositive$1(h, 1) & 65535; + B.JSArray_methods.$indexSet(a_b, 1, bb); + B.JSArray_methods.$indexSet(a_b, 0, h + bb - 32768 & 65535); + }, + findDecoderForData(data) { + var png, gif, webp, tiff, tga, ico, t1, _null = null; + type$.List_int._as(data); + if (A.JpegData$().validate$1(data)) + return new A.JpegDecoder(); + png = new A.PngDecoder(); + if (png.isValidFile$1(data)) + return png; + gif = new A.GifDecoder(); + gif._input = A.InputBuffer$(data, false, _null, 0); + gif.info = new A.GifInfo(A._setArrayType([], type$.JSArray_GifImageDesc)); + if (gif._getInfo$0()) + return gif; + webp = new A.WebPDecoder(); + if (webp.isValidFile$1(data)) + return webp; + tiff = new A.TiffDecoder(); + if (tiff._readHeader$1(A.InputBuffer$(data, false, _null, 0)) != null) + return tiff; + if (A.PsdImage$(data).signature === 943870035) + return new A.PsdDecoder(); + if (A.ExrImage_isValidFile(data)) + return new A.ExrDecoder(); + if (A.BitmapFileHeader_isValidFile(A.InputBuffer$(data, false, _null, 0))) + return new A.BmpDecoder(); + tga = new A.TgaDecoder(); + if (tga.isValidFile$1(data)) + return tga; + ico = new A.IcoDecoder(); + t1 = A.InputBuffer$(data, false, _null, 0); + ico._ico_decoder$_input = t1; + t1 = A.IcoInfo__read(t1); + ico._icoInfo = t1; + if (t1 != null) + return ico; + return _null; + }, + decodeImage(data) { + var decoder = A.findDecoderForData(data); + if (decoder == null) + return null; + return decoder.decodeImage$1(data); + }, + encodeNamedImage(image, $name) { + var t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, _null = null, + n = $name.toLowerCase(); + if (B.JSString_methods.endsWith$1(n, ".jpg") || B.JSString_methods.endsWith$1(n, ".jpeg")) { + t1 = new Uint8Array(64); + t2 = new Uint8Array(64); + t3 = new Float32Array(64); + t4 = new Float32Array(64); + t5 = A.List_List$filled(65535, _null, false, type$.nullable_List_int); + t6 = type$.nullable_int; + t7 = A.List_List$filled(65535, _null, false, t6); + t8 = A.List_List$filled(64, _null, false, t6); + t6 = A.List_List$filled(64, _null, false, t6); + t9 = new Float32Array(64); + t10 = new Float32Array(64); + t11 = new Float32Array(64); + t1 = new A.JpegEncoder(t1, t2, t3, t4, t5, t7, t8, t6, t9, t10, t11, new Int32Array(2048)); + t1.set$YDC_HT(t1._computeHuffmanTbl$2(B.List_F1L0, B.List_UiL)); + t1.set$UVDC_HT(t1._computeHuffmanTbl$2(B.List_F1L1, B.List_UiL)); + t2 = type$.List_nullable_List_int; + t1.set$__JpegEncoder_YAC_HT(t2._as(t1._computeHuffmanTbl$2(B.List_F1L2, B.List_G61))); + t1.set$__JpegEncoder_UVAC_HT(t2._as(t1._computeHuffmanTbl$2(B.List_F1L3, B.List_AKW))); + t1._initCategoryNumber$0(); + t1._initRGBYUVTable$0(); + t1.setQuality$1(100); + return t1.encodeImage$1(image); + } + if (B.JSString_methods.endsWith$1(n, ".png")) + return A.PngEncoder$(6).encodeImage$1(image); + if (B.JSString_methods.endsWith$1(n, ".tga")) + return new A.TgaEncoder().encodeImage$1(image); + if (B.JSString_methods.endsWith$1(n, ".gif")) { + t1 = new A.GifEncoder(10); + t1.addFrame$1(image); + t1 = t1.finish$0(0); + t1.toString; + return t1; + } + if (B.JSString_methods.endsWith$1(n, ".cur")) + return new A.CurEncoder().encodeImages$1(A._setArrayType([image], type$.JSArray_Image)); + if (B.JSString_methods.endsWith$1(n, ".ico")) + return new A.IcoEncoder().encodeImages$1(A._setArrayType([image], type$.JSArray_Image)); + if (B.JSString_methods.endsWith$1(n, ".bmp")) + return new A.BmpEncoder().encodeImage$1(image); + return _null; + }, + quantizeAndInverse(quantizationTable, coefBlock, dataOut, dataIn) { + var t1, i, t2, t3, row, t, v0, t4, v1, v2, t5, v3, t6, t7, t8, v4, v7, v5, v6, t9, t10, t11, t12; + if ($._dctClip == null) { + t1 = $._dctClip = new Uint8Array(768); + for (i = -256; i < 0; ++i) + t1[256 + i] = 0; + for (i = 0; i < 256; ++i) + t1[256 + i] = i; + for (i = 256; i < 512; ++i) + t1[256 + i] = 255; + } + for (t1 = coefBlock.length, i = 0; i < 64; ++i) { + if (!(i < t1)) + return A.ioore(coefBlock, i); + t2 = coefBlock[i]; + t3 = quantizationTable[i]; + if (!(i < 64)) + return A.ioore(dataIn, i); + dataIn[i] = t2 * t3; + } + for (row = 0, i = 0; i < 8; ++i, row += 8) { + t1 = 1 + row; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + t2 = dataIn[t1]; + if (t2 === 0) { + t3 = 2 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + if (dataIn[t3] === 0) { + t3 = 3 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + if (dataIn[t3] === 0) { + t3 = 4 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + if (dataIn[t3] === 0) { + t3 = 5 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + if (dataIn[t3] === 0) { + t3 = 6 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + if (dataIn[t3] === 0) { + t3 = 7 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + t3 = dataIn[t3] === 0; + } else + t3 = false; + } else + t3 = false; + } else + t3 = false; + } else + t3 = false; + } else + t3 = false; + } else + t3 = false; + if (t3) { + if (!(row < 64)) + return A.ioore(dataIn, row); + t1 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[row] + 512, 10); + t = (t1 & 2147483647) - ((t1 & 2147483648) >>> 0); + if (!(row < 64)) + return A.ioore(dataIn, row); + dataIn[row] = t; + t1 = row + 1; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = row + 2; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = row + 3; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = row + 4; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = row + 5; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = row + 6; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = row + 7; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + continue; + } + if (!(row < 64)) + return A.ioore(dataIn, row); + t3 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[row] + 128, 8); + v0 = (t3 & 2147483647) - ((t3 & 2147483648) >>> 0); + t3 = 4 + row; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + t4 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[t3] + 128, 8); + v1 = (t4 & 2147483647) - ((t4 & 2147483648) >>> 0); + t4 = 2 + row; + if (!(t4 < 64)) + return A.ioore(dataIn, t4); + v2 = dataIn[t4]; + t5 = 6 + row; + if (!(t5 < 64)) + return A.ioore(dataIn, t5); + v3 = dataIn[t5]; + t6 = 7 + row; + if (!(t6 < 64)) + return A.ioore(dataIn, t6); + t7 = dataIn[t6]; + t8 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 - t7) + 128, 8); + v4 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t7 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 + t7) + 128, 8); + v7 = (t7 & 2147483647) - ((t7 & 2147483648) >>> 0); + t7 = 3 + row; + if (!(t7 < 64)) + return A.ioore(dataIn, t7); + t2 = dataIn[t7] << 4; + v5 = (t2 & 2147483647) - ((t2 & 2147483648) >>> 0); + t2 = 5 + row; + if (!(t2 < 64)) + return A.ioore(dataIn, t2); + t8 = dataIn[t2] << 4; + v6 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v0 - v1 + 1, 1); + t = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v0 + v1 + 1, 1); + v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v2 * 3784 + v3 * 1567 + 128, 8); + t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t9 = B.JSInt_methods._shrOtherPositive$1(v2 * 1567 - v3 * 3784 + 128, 8); + v2 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); + t9 = B.JSInt_methods._shrOtherPositive$1(v4 - v6 + 1, 1); + t9 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v4 + v6 + 1, 1); + v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v7 + v5 + 1, 1); + t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t11 = B.JSInt_methods._shrOtherPositive$1(v7 - v5 + 1, 1); + v5 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); + t11 = B.JSInt_methods._shrOtherPositive$1(v0 - t8 + 1, 1); + t11 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v0 + t8 + 1, 1); + v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(t - v2 + 1, 1); + t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t12 = B.JSInt_methods._shrOtherPositive$1(t + v2 + 1, 1); + v1 = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); + t12 = B.JSInt_methods._shrOtherPositive$1(v4 * 2276 + t10 * 3406 + 2048, 12); + t = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v4 * 3406 - t10 * 2276 + 2048, 12); + v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v5 * 799 + t9 * 4017 + 2048, 12); + t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t9 = B.JSInt_methods._shrOtherPositive$1(v5 * 4017 - t9 * 799 + 2048, 12); + v5 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); + if (!(row < 64)) + return A.ioore(dataIn, row); + dataIn[row] = v0 + t; + if (!(t6 < 64)) + return A.ioore(dataIn, t6); + dataIn[t6] = v0 - t; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = v1 + t10; + if (!(t5 < 64)) + return A.ioore(dataIn, t5); + dataIn[t5] = v1 - t10; + if (!(t4 < 64)) + return A.ioore(dataIn, t4); + dataIn[t4] = t8 + v5; + if (!(t2 < 64)) + return A.ioore(dataIn, t2); + dataIn[t2] = t8 - v5; + if (!(t7 < 64)) + return A.ioore(dataIn, t7); + dataIn[t7] = t11 + v4; + if (!(t3 < 64)) + return A.ioore(dataIn, t3); + dataIn[t3] = t11 - v4; + } + for (i = 0; i < 8; ++i) { + t1 = 8 + i; + t2 = dataIn[t1]; + if (t2 === 0 && dataIn[16 + i] === 0 && dataIn[24 + i] === 0 && dataIn[32 + i] === 0 && dataIn[40 + i] === 0 && dataIn[48 + i] === 0 && dataIn[56 + i] === 0) { + t2 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[i] + 8192, 14); + t = (t2 & 2147483647) - ((t2 & 2147483648) >>> 0); + if (!(i < 64)) + return A.ioore(dataIn, i); + dataIn[i] = t; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = 16 + i; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = 24 + i; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = 32 + i; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = 40 + i; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = 48 + i; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + t1 = 56 + i; + if (!(t1 < 64)) + return A.ioore(dataIn, t1); + dataIn[t1] = t; + continue; + } + t3 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[i] + 2048, 12); + v0 = (t3 & 2147483647) - ((t3 & 2147483648) >>> 0); + t3 = 32 + i; + t4 = B.JSInt_methods._shrOtherPositive$1(5793 * dataIn[t3] + 2048, 12); + v1 = (t4 & 2147483647) - ((t4 & 2147483648) >>> 0); + t4 = 16 + i; + v2 = dataIn[t4]; + t5 = 48 + i; + v3 = dataIn[t5]; + t6 = 56 + i; + t7 = dataIn[t6]; + t8 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 - t7) + 2048, 12); + v4 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t7 = B.JSInt_methods._shrOtherPositive$1(2896 * (t2 + t7) + 2048, 12); + v7 = (t7 & 2147483647) - ((t7 & 2147483648) >>> 0); + t7 = 24 + i; + v5 = dataIn[t7]; + t2 = 40 + i; + v6 = dataIn[t2]; + t8 = B.JSInt_methods._shrOtherPositive$1(v0 - v1 + 1, 1); + t = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v0 + v1 + 1, 1); + v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v2 * 3784 + v3 * 1567 + 2048, 12); + t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t9 = B.JSInt_methods._shrOtherPositive$1(v2 * 1567 - v3 * 3784 + 2048, 12); + v2 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); + t9 = B.JSInt_methods._shrOtherPositive$1(v4 - v6 + 1, 1); + t9 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v4 + v6 + 1, 1); + v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v7 + v5 + 1, 1); + t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t11 = B.JSInt_methods._shrOtherPositive$1(v7 - v5 + 1, 1); + v5 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); + t11 = B.JSInt_methods._shrOtherPositive$1(v0 - t8 + 1, 1); + t11 = (t11 & 2147483647) - ((t11 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(v0 + t8 + 1, 1); + v0 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t8 = B.JSInt_methods._shrOtherPositive$1(t - v2 + 1, 1); + t8 = (t8 & 2147483647) - ((t8 & 2147483648) >>> 0); + t12 = B.JSInt_methods._shrOtherPositive$1(t + v2 + 1, 1); + v1 = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); + t12 = B.JSInt_methods._shrOtherPositive$1(v4 * 2276 + t10 * 3406 + 2048, 12); + t = (t12 & 2147483647) - ((t12 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v4 * 3406 - t10 * 2276 + 2048, 12); + v4 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t10 = B.JSInt_methods._shrOtherPositive$1(v5 * 799 + t9 * 4017 + 2048, 12); + t10 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t9 = B.JSInt_methods._shrOtherPositive$1(v5 * 4017 - t9 * 799 + 2048, 12); + v5 = (t9 & 2147483647) - ((t9 & 2147483648) >>> 0); + if (!(i < 64)) + return A.ioore(dataIn, i); + dataIn[i] = v0 + t; + if (!(t6 < 64)) + return A.ioore(dataIn, t6); + dataIn[t6] = v0 - t; + dataIn[t1] = v1 + t10; + dataIn[t5] = v1 - t10; + dataIn[t4] = t8 + v5; + dataIn[t2] = t8 - v5; + dataIn[t7] = t11 + v4; + dataIn[t3] = t11 - v4; + } + for (t1 = $._dctClip, i = 0; i < 64; ++i) { + t1.toString; + t2 = B.JSInt_methods._shrOtherPositive$1(dataIn[i] + 8, 4); + t2 = 384 + ((t2 & 2147483647) - ((t2 & 2147483648) >>> 0)); + if (!(t2 >= 0 && t2 < 768)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (!(i < 64)) + return A.ioore(dataOut, i); + dataOut[i] = t2; + } + }, + getImageFromJpeg(jpeg) { + var flipWidthHeight, width, height, image, t4, t5, h1, w1, component1, lines, hShift1, vShift1, t6, t7, t8, t9, t10, t11, offset, y, t12, y1, component1Line, t13, t14, x, t15, x1, $Y, c, offset0, component2, component3, lines1, lines2, lines3, hShift2, vShift2, hShift3, vShift3, y2, y3, component2Line, component3Line, t16, t17, x2, x3, Cb, Cr, $R, $G, $B, colorTransform, component4, lines4, hShift4, vShift4, y4, component4Line, t18, t19, x4, $C, $M, Ye, $K, t20, t21, + t1 = jpeg.exif.data, + orientation = t1.containsKey$1(0, 274) ? A._asInt(t1.$index(0, 274)) : 0, + t2 = jpeg.frame, + t3 = t2.samplesPerLine; + t3.toString; + t2 = t2.scanLines; + t2.toString; + flipWidthHeight = orientation >= 5 && orientation <= 8; + if (flipWidthHeight) + width = t2; + else + width = t3; + if (flipWidthHeight) + height = t3; + else + height = t2; + image = A.Image$(width, height, B.Channels_0, null, null); + image.exif = new A.ExifData(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.dynamic)); + for (t4 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, A._instanceType(t1)._precomputed1); t4.moveNext$0();) { + t5 = t4.__js_helper$_current; + if (t5 !== 274) + image.exif.data.$indexSet(0, t5, t1.$index(0, t5)); + } + h1 = t2 - 1; + w1 = t3 - 1; + t1 = jpeg.components; + t2 = t1.length; + switch (t2) { + case 1: + if (0 >= t2) + return A.ioore(t1, 0); + component1 = t1[0]; + lines = component1.lines; + hShift1 = component1.hScaleShift; + vShift1 = component1.vScaleShift; + t1 = image.data; + t2 = t1.length; + t3 = orientation === 8; + t4 = orientation === 7; + t5 = orientation === 6; + t6 = orientation === 5; + t7 = orientation === 4; + t8 = orientation === 3; + t9 = orientation === 2; + t10 = image.width; + t11 = lines.length; + offset = 0; + y = 0; + while (true) { + t12 = jpeg.frame.scanLines; + t12.toString; + if (!(y < t12)) + break; + y1 = B.JSInt_methods._shrBothPositive$1(y, vShift1); + if (!(y1 < t11)) + return A.ioore(lines, y1); + component1Line = lines[y1]; + t12 = h1 - y; + t13 = t12 * t10; + t14 = y * t10; + x = 0; + while (true) { + t15 = jpeg.frame.samplesPerLine; + t15.toString; + if (!(x < t15)) + break; + x1 = B.JSInt_methods._shrBothPositive$1(x, hShift1); + if (!(x1 < component1Line.length)) + return A.ioore(component1Line, x1); + $Y = component1Line[x1]; + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($Y, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($Y, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($Y, 0, 255))) >>> 0; + if (t9) { + t15 = t14 + (w1 - x); + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else if (t8) { + t15 = t13 + (w1 - x); + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else if (t7) { + t15 = t13 + x; + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else if (t6) { + t15 = x * t10 + y; + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else if (t5) { + t15 = x * t10 + t12; + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else if (t4) { + t15 = (w1 - x) * t10 + t12; + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else if (t3) { + t15 = (w1 - x) * t10 + y; + if (!(t15 >= 0 && t15 < t2)) + return A.ioore(t1, t15); + t1[t15] = c; + } else { + offset0 = offset + 1; + if (!(offset >= 0 && offset < t2)) + return A.ioore(t1, offset); + t1[offset] = c; + offset = offset0; + } + ++x; + } + ++y; + } + break; + case 3: + if (0 >= t2) + return A.ioore(t1, 0); + component1 = t1[0]; + if (1 >= t2) + return A.ioore(t1, 1); + component2 = t1[1]; + if (2 >= t2) + return A.ioore(t1, 2); + component3 = t1[2]; + lines1 = component1.lines; + lines2 = component2.lines; + lines3 = component3.lines; + hShift1 = component1.hScaleShift; + vShift1 = component1.vScaleShift; + hShift2 = component2.hScaleShift; + vShift2 = component2.vScaleShift; + hShift3 = component3.hScaleShift; + vShift3 = component3.vScaleShift; + t1 = image.data; + t2 = t1.length; + t3 = orientation === 8; + t4 = orientation === 7; + t5 = orientation === 6; + t6 = orientation === 5; + t7 = orientation === 4; + t8 = orientation === 3; + t9 = orientation === 2; + t10 = image.width; + t11 = lines1.length; + t12 = lines2.length; + t13 = lines3.length; + offset = 0; + y = 0; + while (true) { + t14 = jpeg.frame.scanLines; + t14.toString; + if (!(y < t14)) + break; + y1 = B.JSInt_methods._shrBothPositive$1(y, vShift1); + y2 = B.JSInt_methods._shrBothPositive$1(y, vShift2); + y3 = B.JSInt_methods._shrBothPositive$1(y, vShift3); + if (!(y1 < t11)) + return A.ioore(lines1, y1); + component1Line = lines1[y1]; + if (!(y2 < t12)) + return A.ioore(lines2, y2); + component2Line = lines2[y2]; + if (!(y3 < t13)) + return A.ioore(lines3, y3); + component3Line = lines3[y3]; + t14 = h1 - y; + t15 = t14 * t10; + t16 = y * t10; + x = 0; + while (true) { + t17 = jpeg.frame.samplesPerLine; + t17.toString; + if (!(x < t17)) + break; + x1 = B.JSInt_methods._shrBothPositive$1(x, hShift1); + x2 = B.JSInt_methods._shrBothPositive$1(x, hShift2); + x3 = B.JSInt_methods._shrBothPositive$1(x, hShift3); + if (!(x1 < component1Line.length)) + return A.ioore(component1Line, x1); + $Y = component1Line[x1] << 8 >>> 0; + if (!(x2 < component2Line.length)) + return A.ioore(component2Line, x2); + Cb = component2Line[x2] - 128; + if (!(x3 < component3Line.length)) + return A.ioore(component3Line, x3); + Cr = component3Line[x3] - 128; + t17 = B.JSInt_methods._shrOtherPositive$1($Y + 359 * Cr + 128, 8); + t17 = (t17 & 2147483647) - ((t17 & 2147483648) >>> 0); + if (t17 < 0) + $R = 0; + else + $R = t17 > 255 ? 255 : t17; + t17 = B.JSInt_methods._shrOtherPositive$1($Y - 88 * Cb - 183 * Cr + 128, 8); + t17 = (t17 & 2147483647) - ((t17 & 2147483648) >>> 0); + if (t17 < 0) + $G = 0; + else + $G = t17 > 255 ? 255 : t17; + t17 = B.JSInt_methods._shrOtherPositive$1($Y + 454 * Cb + 128, 8); + t17 = (t17 & 2147483647) - ((t17 & 2147483648) >>> 0); + if (t17 < 0) + $B = 0; + else + $B = t17 > 255 ? 255 : t17; + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($B, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($G, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2($R, 0, 255))) >>> 0; + if (t9) { + t17 = t16 + (w1 - x); + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else if (t8) { + t17 = t15 + (w1 - x); + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else if (t7) { + t17 = t15 + x; + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else if (t6) { + t17 = x * t10 + y; + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else if (t5) { + t17 = x * t10 + t14; + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else if (t4) { + t17 = (w1 - x) * t10 + t14; + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else if (t3) { + t17 = (w1 - x) * t10 + y; + if (!(t17 >= 0 && t17 < t2)) + return A.ioore(t1, t17); + t1[t17] = c; + } else { + offset0 = offset + 1; + if (!(offset >= 0 && offset < t2)) + return A.ioore(t1, offset); + t1[offset] = c; + offset = offset0; + } + ++x; + } + ++y; + } + break; + case 4: + t3 = jpeg.adobe; + if (t3 == null) + throw A.wrapException(A.ImageException$("Unsupported color mode (4 components)")); + colorTransform = t3.transformCode !== 0 && true; + if (0 >= t2) + return A.ioore(t1, 0); + component1 = t1[0]; + if (1 >= t2) + return A.ioore(t1, 1); + component2 = t1[1]; + if (2 >= t2) + return A.ioore(t1, 2); + component3 = t1[2]; + if (3 >= t2) + return A.ioore(t1, 3); + component4 = t1[3]; + lines1 = component1.lines; + lines2 = component2.lines; + lines3 = component3.lines; + lines4 = component4.lines; + hShift1 = component1.hScaleShift; + vShift1 = component1.vScaleShift; + hShift2 = component2.hScaleShift; + vShift2 = component2.vScaleShift; + hShift3 = component3.hScaleShift; + vShift3 = component3.vScaleShift; + hShift4 = component4.hScaleShift; + vShift4 = component4.vScaleShift; + t1 = image.data; + t2 = t1.length; + t3 = orientation === 8; + t4 = orientation === 7; + t5 = orientation === 6; + t6 = orientation === 5; + t7 = orientation === 4; + t8 = orientation === 3; + t9 = orientation === 2; + t10 = !colorTransform; + t11 = image.width; + t12 = lines1.length; + t13 = lines2.length; + t14 = lines3.length; + t15 = lines4.length; + offset = 0; + y = 0; + while (true) { + t16 = jpeg.frame.scanLines; + t16.toString; + if (!(y < t16)) + break; + y1 = B.JSInt_methods._shrBothPositive$1(y, vShift1); + y2 = B.JSInt_methods._shrBothPositive$1(y, vShift2); + y3 = B.JSInt_methods._shrBothPositive$1(y, vShift3); + y4 = B.JSInt_methods._shrBothPositive$1(y, vShift4); + if (!(y1 < t12)) + return A.ioore(lines1, y1); + component1Line = lines1[y1]; + if (!(y2 < t13)) + return A.ioore(lines2, y2); + component2Line = lines2[y2]; + if (!(y3 < t14)) + return A.ioore(lines3, y3); + component3Line = lines3[y3]; + if (!(y4 < t15)) + return A.ioore(lines4, y4); + component4Line = lines4[y4]; + t16 = h1 - y; + t17 = t16 * t11; + t18 = y * t11; + x = 0; + while (true) { + t19 = jpeg.frame.samplesPerLine; + t19.toString; + if (!(x < t19)) + break; + x1 = B.JSInt_methods._shrBothPositive$1(x, hShift1); + x2 = B.JSInt_methods._shrBothPositive$1(x, hShift2); + x3 = B.JSInt_methods._shrBothPositive$1(x, hShift3); + x4 = B.JSInt_methods._shrBothPositive$1(x, hShift4); + if (t10) { + if (!(x1 < component1Line.length)) + return A.ioore(component1Line, x1); + $C = component1Line[x1]; + if (!(x2 < component2Line.length)) + return A.ioore(component2Line, x2); + $M = component2Line[x2]; + if (!(x3 < component3Line.length)) + return A.ioore(component3Line, x3); + Ye = component3Line[x3]; + if (!(x4 < component4Line.length)) + return A.ioore(component4Line, x4); + $K = component4Line[x4]; + } else { + if (!(x1 < component1Line.length)) + return A.ioore(component1Line, x1); + $Y = component1Line[x1]; + if (!(x2 < component2Line.length)) + return A.ioore(component2Line, x2); + Cb = component2Line[x2]; + if (!(x3 < component3Line.length)) + return A.ioore(component3Line, x3); + Cr = component3Line[x3]; + if (!(x4 < component4Line.length)) + return A.ioore(component4Line, x4); + $K = component4Line[x4]; + t19 = Cr - 128; + t20 = B.JSNumber_methods.toInt$0($Y + 1.402 * t19); + if (t20 < 0) + t20 = 0; + else if (t20 > 255) + t20 = 255; + $C = 255 - t20; + t20 = Cb - 128; + t19 = B.JSNumber_methods.toInt$0($Y - 0.3441363 * t20 - 0.71413636 * t19); + if (t19 < 0) + t19 = 0; + else if (t19 > 255) + t19 = 255; + $M = 255 - t19; + t20 = B.JSNumber_methods.toInt$0($Y + 1.772 * t20); + if (t20 < 0) + t19 = 0; + else + t19 = t20 > 255 ? 255 : t20; + Ye = 255 - t19; + } + t19 = B.JSInt_methods._shrOtherPositive$1($C * $K, 8); + t20 = B.JSInt_methods._shrOtherPositive$1($M * $K, 8); + t21 = B.JSInt_methods._shrOtherPositive$1(Ye * $K, 8); + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2((t21 & 2147483647) - ((t21 & 2147483648) >>> 0), 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2((t20 & 2147483647) - ((t20 & 2147483648) >>> 0), 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2((t19 & 2147483647) - ((t19 & 2147483648) >>> 0), 0, 255))) >>> 0; + if (t9) { + t19 = t18 + (w1 - x); + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else if (t8) { + t19 = t17 + (w1 - x); + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else if (t7) { + t19 = t17 + x; + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else if (t6) { + t19 = x * t11 + y; + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else if (t5) { + t19 = x * t11 + t16; + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else if (t4) { + t19 = (w1 - x) * t11 + t16; + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else if (t3) { + t19 = (w1 - x) * t11 + y; + if (!(t19 >= 0 && t19 < t2)) + return A.ioore(t1, t19); + t1[t19] = c; + } else { + offset0 = offset + 1; + if (!(offset >= 0 && offset < t2)) + return A.ioore(t1, offset); + t1[offset] = c; + offset = offset0; + } + ++x; + } + ++y; + } + break; + default: + throw A.wrapException(A.ImageException$("Unsupported color mode")); + } + return image; + }, + WebPFilters_horizontalUnfilter(width, height, stride, row, numRows, data) { + A.WebPFilters__doHorizontalFilter(data, width, height, stride, row, numRows, true, data); + }, + WebPFilters_verticalUnfilter(width, height, stride, row, num_rows, data) { + A.WebPFilters__doVerticalFilter(data, width, height, stride, row, num_rows, true, data); + }, + WebPFilters_gradientUnfilter(width, height, stride, row, num_rows, data) { + A.WebPFilters__doGradientFilter(data, width, height, stride, row, num_rows, true, data); + }, + WebPFilters__predictLine(src, pred, dst, $length, inverse) { + var i, t1, t2, t3; + for (i = 0; i < $length; ++i) { + t1 = src.buffer; + t2 = src.offset + i; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = pred.buffer; + t3 = pred.offset + i; + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t3 = t1[t3]; + J.$indexSet$ax(dst.buffer, dst.offset + i, t2 + t3); + } + }, + WebPFilters__doHorizontalFilter(src, width, height, stride, row, numRows, inverse, out) { + var t1, t2, _null = null, + startOffset = row * stride, + lastRow = row + numRows, + s = A.InputBuffer$(src, false, _null, startOffset), + o = A.InputBuffer$(src, false, _null, startOffset), + preds = A.InputBuffer$from(o, _null, 0); + if (row === 0) { + t1 = s.buffer; + t2 = s.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + o.$indexSet(0, 0, t1[t2]); + A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), width - 1, true); + preds.offset += stride; + s.offset += stride; + o.offset += stride; + row = 1; + } + for (t1 = -stride, t2 = width - 1; row < lastRow;) { + A.WebPFilters__predictLine(s, A.InputBuffer$from(preds, _null, t1), o, 1, true); + A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), t2, true); + ++row; + preds.offset += stride; + s.offset += stride; + o.offset += stride; + } + }, + WebPFilters__doVerticalFilter(src, width, height, stride, row, numRows, inverse, out) { + var t1, t2, _null = null, + startOffset = row * stride, + last_row = row + numRows, + s = A.InputBuffer$(src, false, _null, startOffset), + o = A.InputBuffer$(out, false, _null, startOffset), + preds = A.InputBuffer$from(o, _null, 0); + if (row === 0) { + t1 = s.buffer; + t2 = s.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + o.$indexSet(0, 0, t1[t2]); + A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), width - 1, true); + s.offset += stride; + o.offset += stride; + row = 1; + } else + preds.offset -= stride; + for (; row < last_row;) { + A.WebPFilters__predictLine(s, preds, o, width, true); + ++row; + preds.offset += stride; + s.offset += stride; + o.offset += stride; + } + }, + WebPFilters__doGradientFilter(src, width, height, stride, row, numRows, inverse, out) { + var t1, t2, w, t3, t4, t5, t6, t7, g, pred, _null = null, + startOffset = row * stride, + lastRow = row + numRows, + s = A.InputBuffer$(src, false, _null, startOffset), + o = A.InputBuffer$(out, false, _null, startOffset), + preds = A.InputBuffer$from(o, _null, 0); + if (row === 0) { + t1 = s.buffer; + t2 = s.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + o.$indexSet(0, 0, t1[t2]); + A.WebPFilters__predictLine(A.InputBuffer$from(s, _null, 1), preds, A.InputBuffer$from(o, _null, 1), width - 1, true); + preds.offset += stride; + s.offset += stride; + o.offset += stride; + row = 1; + } + for (t1 = -stride; row < lastRow;) { + A.WebPFilters__predictLine(s, A.InputBuffer$from(preds, _null, t1), o, 1, true); + for (w = 1; w < width; ++w) { + t2 = preds.buffer; + t3 = preds.offset; + t4 = t3 + (w - 1); + t5 = t2.length; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t2, t4); + t4 = t2[t4]; + t6 = w - stride; + t7 = t3 + t6; + if (!(t7 >= 0 && t7 < t5)) + return A.ioore(t2, t7); + t7 = t2[t7]; + t6 = t3 + (t6 - 1); + if (!(t6 >= 0 && t6 < t5)) + return A.ioore(t2, t6); + g = t4 + t7 - t2[t6]; + if ((g & 4294967040) >>> 0 === 0) + pred = g; + else + pred = g < 0 ? 0 : 255; + t2 = s.buffer; + t3 = s.offset + w; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t3 = t2[t3]; + J.$indexSet$ax(o.buffer, o.offset + w, t3 + pred); + } + ++row; + preds.offset += stride; + s.offset += stride; + o.offset += stride; + } + }, + Half_DoubleToHalf(n) { + var t1, x_i, e, m; + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + $.$get$__float32()[0] = n; + t1 = $.$get$__float32ToUint32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + x_i = t1[0]; + if (n === 0) + return x_i >>> 16; + e = x_i >>> 23 & 511; + t1 = $.Half____eLut._readField$0(); + if (!(e < t1.length)) + return A.ioore(t1, e); + e = t1[e]; + if (e !== 0) { + m = x_i & 8388607; + return e + (m + 4095 + (m >>> 13 & 1) >>> 13); + } + return A.Half__convert(x_i); + }, + Half__convert(i) { + var t, t1, + s = i >>> 16 & 32768, + e = (i >>> 23 & 255) - 112, + m = i & 8388607; + if (e <= 0) { + if (e < -10) + return s; + m |= 8388608; + t = 14 - e; + return (s | B.JSInt_methods.$shr(m + (B.JSInt_methods.$shl(1, t - 1) - 1) + (B.JSInt_methods._shrReceiverPositive$1(m, t) & 1), t)) >>> 0; + } else if (e === 143) + if (m === 0) + return s | 31744; + else { + m = m >>> 13; + t1 = m === 0 ? 1 : 0; + return s | m | t1 | 31744; + } + else { + m = m + 4095 + (m >>> 13 & 1); + if ((m & 8388608) !== 0) { + ++e; + m = 0; + } + if (e > 30) + return s | 31744; + return (s | e << 10 | m >>> 13) >>> 0; + } + }, + Half__initialize() { + var t1, i, e, t2, t3; + if ($.Half__toFloatUint32 != null) + return; + t1 = new Uint32Array(65536); + $.Half__toFloatUint32 = t1; + $.Half__toFloatFloat32 = A.NativeFloat32List_NativeFloat32List$view(t1.buffer, 0, null); + t1 = new Uint16Array(512); + $.Half____eLut._value = t1; + for (i = 0; i < 256; ++i) { + e = (i & 255) - 112; + if (e <= 0 || e >= 30) { + $.Half____eLut.toString; + t1[i] = 0; + t2 = (i | 256) >>> 0; + if (!(t2 < 512)) + return A.ioore(t1, t2); + t1[t2] = 0; + } else { + $.Half____eLut.toString; + t2 = e << 10 >>> 0; + t1[i] = t2; + t3 = (i | 256) >>> 0; + if (!(t3 < 512)) + return A.ioore(t1, t3); + t1[t3] = (t2 | 32768) >>> 0; + } + } + for (t1 = $.Half__toFloatUint32, i = 0; i < 65536; ++i) { + t1.toString; + t1[i] = A.Half__halfToFloat(i); + } + }, + Half__halfToFloat(y) { + var t1, + s = y >>> 15 & 1, + e = y >>> 10 & 31, + m = y & 1023; + if (e === 0) + if (m === 0) + return s << 31 >>> 0; + else { + for (; (m & 1024) === 0;) { + m = m << 1; + --e; + } + ++e; + m &= 4294966271; + } + else if (e === 31) { + t1 = s << 31; + if (m === 0) + return (t1 | 2139095040) >>> 0; + else + return (t1 | m << 13 | 2139095040) >>> 0; + } + return (s << 31 | e + 112 << 23 | m << 13) >>> 0; + }, + uint64ToFloat64(d) { + $.$get$__uint64().$indexSet(0, 0, d); + return $.$get$__uint64ToFloat64().$index(0, 0); + }, + debugBits32(value) { + var i, t1; + if (value == null) + return "null"; + for (i = 32, t1 = ""; i > -1; --i) + t1 += (value & B.JSInt_methods.$shl(1, i)) >>> 0 === 0 ? "0" : "1"; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + bakeOrientation(image) { + var t1, t2, + bakedImage = A.Image$from(image); + if (!image.exif.data.containsKey$1(0, 274) || A._asInt(image.exif.data.$index(0, 274)) === 1) + return bakedImage; + bakedImage.exif = new A.ExifData(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.dynamic)); + for (t1 = image.exif.data, t1 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, A._instanceType(t1)._precomputed1); t1.moveNext$0();) { + t2 = t1.__js_helper$_current; + if (t2 !== 274) + bakedImage.exif.data.$indexSet(0, t2, image.exif.data.$index(0, t2)); + } + switch (A._asInt(image.exif.data.$index(0, 274))) { + case 2: + return A.flipHorizontal(bakedImage); + case 3: + switch (2) { + case 2: + A.flipVertical(bakedImage); + A.flipHorizontal(bakedImage); + break; + } + return bakedImage; + case 4: + return A.flipHorizontal(A.copyRotate(bakedImage, 180)); + case 5: + return A.flipHorizontal(A.copyRotate(bakedImage, 90)); + case 6: + return A.copyRotate(bakedImage, 90); + case 7: + return A.flipHorizontal(A.copyRotate(bakedImage, -90)); + case 8: + return A.copyRotate(bakedImage, -90); + } + return bakedImage; + }, + copyResize(src, height, width) { + var dst, dy, dx, scaleX, x, t2, t3, t4, t5, t6, y, t7, t8, t9, t10, + t1 = width == null; + if (t1 && height == null) + throw A.wrapException(A.ImageException$("Invalid size")); + src = A.bakeOrientation(src); + if (height == null || height <= 0) { + width.toString; + height = B.JSNumber_methods.toInt$0(width * (src.height / src.width)); + } + if (t1 || width <= 0) { + if (typeof height !== "number") + return height.$mul(); + width = B.JSNumber_methods.toInt$0(height * (src.width / src.height)); + } + t1 = src.width; + if (width === t1 && height === src.height) + return A.Image$from(src); + dst = A.Image$(width, height, src.channels, src.exif, src.iccProfile); + if (typeof height !== "number") + return A.iae(height); + dy = src.height / height; + if (typeof width !== "number") + return A.iae(width); + dx = t1 / width; + scaleX = new Int32Array(width); + for (x = 0; x < width; ++x) { + t2 = B.JSNumber_methods.toInt$0(x * dx); + if (!(x < width)) + return A.ioore(scaleX, x); + scaleX[x] = t2; + } + for (t2 = src.data, t3 = t2.length, t4 = dst.data, t5 = dst.width, t6 = t4.length, y = 0; y < height; ++y) + for (t7 = B.JSNumber_methods.toInt$0(y * dy) * t1, t8 = y * t5, x = 0; x < width; ++x) { + t9 = t7 + scaleX[x]; + if (!(t9 >= 0 && t9 < t3)) + return A.ioore(t2, t9); + t9 = t2[t9]; + t10 = t8 + x; + if (!(t10 >= 0 && t10 < t6)) + return A.ioore(t4, t10); + t4[t10] = t9; + } + return dst; + }, + copyRotate(src, angle) { + var t1, wm1, t2, hm1, dst, t3, t4, t5, t6, t7, y, t8, x, t9, t10, t11, rad, ca, sa, w2, h2, dw2, dh2, c, + nangle = B.JSInt_methods.$mod(angle, 360); + if (B.JSInt_methods.$mod(nangle, 90) === 0) { + t1 = src.width; + wm1 = t1 - 1; + t2 = src.height; + hm1 = t2 - 1; + switch (B.JSInt_methods._tdivFast$1(nangle, 90)) { + case 1: + dst = A.Image$(t2, t1, src.channels, src.exif, src.iccProfile); + for (t2 = dst.height, t3 = dst.width, t4 = src.data, t5 = t4.length, t6 = dst.data, t7 = t6.length, y = 0; y < t2; ++y) + for (t8 = y * t3, x = 0; x < t3; ++x) { + t9 = (hm1 - x) * t1 + y; + if (!(t9 >= 0 && t9 < t5)) + return A.ioore(t4, t9); + t9 = t4[t9]; + t10 = t8 + x; + if (!(t10 >= 0 && t10 < t7)) + return A.ioore(t6, t10); + t6[t10] = t9; + } + return dst; + case 2: + dst = A.Image$(t1, t2, src.channels, src.exif, src.iccProfile); + for (t2 = dst.height, t3 = dst.width, t4 = src.data, t5 = t4.length, t6 = dst.data, t7 = t6.length, y = 0; y < t2; ++y) + for (t8 = (hm1 - y) * t1, t9 = y * t3, x = 0; x < t3; ++x) { + t10 = t8 + (wm1 - x); + if (!(t10 >= 0 && t10 < t5)) + return A.ioore(t4, t10); + t10 = t4[t10]; + t11 = t9 + x; + if (!(t11 >= 0 && t11 < t7)) + return A.ioore(t6, t11); + t6[t11] = t10; + } + return dst; + case 3: + dst = A.Image$(t2, t1, src.channels, src.exif, src.iccProfile); + for (t2 = dst.height, t3 = dst.width, t4 = src.data, t5 = t4.length, t6 = dst.data, t7 = t6.length, y = 0; y < t2; ++y) + for (t8 = wm1 - y, t9 = y * t3, x = 0; x < t3; ++x) { + t10 = x * t1 + t8; + if (!(t10 >= 0 && t10 < t5)) + return A.ioore(t4, t10); + t10 = t4[t10]; + t11 = t9 + x; + if (!(t11 >= 0 && t11 < t7)) + return A.ioore(t6, t11); + t6[t11] = t10; + } + return dst; + default: + return A.Image$from(src); + } + } + rad = nangle * 3.141592653589793 / 180; + ca = Math.cos(rad); + sa = Math.sin(rad); + t1 = src.width; + t2 = src.height; + w2 = 0.5 * t1; + h2 = 0.5 * t2; + t3 = Math.abs(t1 * ca) + Math.abs(t2 * sa); + dw2 = 0.5 * t3; + t2 = Math.abs(t1 * sa) + Math.abs(t2 * ca); + dh2 = 0.5 * t2; + dst = A.Image$(B.JSNumber_methods.toInt$0(t3), B.JSNumber_methods.toInt$0(t2), B.Channels_1, src.exif, src.iccProfile); + for (t1 = dst.height, t2 = dst.width, t3 = dst.data, t4 = t3.length, y = 0; y < t1; ++y) + for (t5 = y - dh2, t6 = t5 * sa, t5 *= ca, t7 = y * t2, x = 0; x < t2; ++x) { + t8 = x - dw2; + c = src.getPixelInterpolate$3(w2 + t8 * ca + t6, h2 - t8 * sa + t5, B.Interpolation_0); + t8 = t7 + x; + if (!(t8 >= 0 && t8 < t4)) + return A.ioore(t3, t8); + t3[t8] = c; + } + return dst; + }, + flipVertical(src) { + var t1, t2, t3, y, y1, y2, x, t4, t, t5, + w = src.width, + h = src.height, + h2 = B.JSInt_methods._tdivFast$1(h, 2); + for (t1 = src.data, t2 = t1.length, t3 = h - 1, y = 0; y < h2; ++y) { + y1 = y * w; + y2 = (t3 - y) * w; + for (x = 0; x < w; ++x) { + t4 = y2 + x; + if (!(t4 >= 0 && t4 < t2)) + return A.ioore(t1, t4); + t = t1[t4]; + t5 = y1 + x; + if (!(t5 >= 0 && t5 < t2)) + return A.ioore(t1, t5); + t1[t4] = t1[t5]; + t1[t5] = t; + } + } + return src; + }, + flipHorizontal(src) { + var t1, t2, t3, y, y1, x, t4, t, t5, + w = src.width, + h = src.height, + w2 = B.JSInt_methods._tdivFast$1(w, 2); + for (t1 = w - 1, t2 = src.data, t3 = t2.length, y = 0; y < h; ++y) { + y1 = y * w; + for (x = 0; x < w2; ++x) { + t4 = y1 + (t1 - x); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t2, t4); + t = t2[t4]; + t5 = y1 + x; + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(t2, t5); + t2[t4] = t2[t5]; + t2[t5] = t; + } + } + return src; + }, + Event_getMapFromPayload(payload) { + var t1, exception; + try { + t1 = type$.Map_String_dynamic._as(B.C_JsonCodec.decode$1(0, payload)); + return t1; + } catch (exception) { + return A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); + } + return A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); + }, + main() { + return A.startWebWorker(); + } + }, + J = { + makeDispatchRecord(interceptor, proto, extension, indexability) { + return {i: interceptor, p: proto, e: extension, x: indexability}; + }, + getNativeInterceptor(object) { + var proto, objectProto, $constructor, interceptor, t1, + record = object[init.dispatchPropertyName]; + if (record == null) + if ($.initNativeDispatchFlag == null) { + A.initNativeDispatch(); + record = object[init.dispatchPropertyName]; + } + if (record != null) { + proto = record.p; + if (false === proto) + return record.i; + if (true === proto) + return object; + objectProto = Object.getPrototypeOf(object); + if (proto === objectProto) + return record.i; + if (record.e === objectProto) + throw A.wrapException(A.UnimplementedError$("Return interceptor for " + A.S(proto(object, record)))); + } + $constructor = object.constructor; + if ($constructor == null) + interceptor = null; + else { + t1 = $._JS_INTEROP_INTERCEPTOR_TAG; + if (t1 == null) + t1 = $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js"); + interceptor = $constructor[t1]; + } + if (interceptor != null) + return interceptor; + interceptor = A.lookupAndCacheInterceptor(object); + if (interceptor != null) + return interceptor; + if (typeof object == "function") + return B.JavaScriptFunction_methods; + proto = Object.getPrototypeOf(object); + if (proto == null) + return B.PlainJavaScriptObject_methods; + if (proto === Object.prototype) + return B.PlainJavaScriptObject_methods; + if (typeof $constructor == "function") { + t1 = $._JS_INTEROP_INTERCEPTOR_TAG; + if (t1 == null) + t1 = $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js"); + Object.defineProperty($constructor, t1, {value: B.UnknownJavaScriptObject_methods, enumerable: false, writable: true, configurable: true}); + return B.UnknownJavaScriptObject_methods; + } + return B.UnknownJavaScriptObject_methods; + }, + JSArray_JSArray$fixed($length, $E) { + if ($length < 0 || $length > 4294967295) + throw A.wrapException(A.RangeError$range($length, 0, 4294967295, "length", null)); + return J.JSArray_JSArray$markFixed(new Array($length), $E); + }, + JSArray_JSArray$allocateFixed($length, $E) { + if ($length < 0 || $length > 4294967295) + throw A.wrapException(A.RangeError$range($length, 0, 4294967295, "length", null)); + return J.JSArray_JSArray$markFixed(new Array($length), $E); + }, + JSArray_JSArray$growable($length, $E) { + if ($length < 0) + throw A.wrapException(A.ArgumentError$("Length must be a non-negative integer: " + $length, null)); + return A._setArrayType(new Array($length), $E._eval$1("JSArray<0>")); + }, + JSArray_JSArray$allocateGrowable($length, $E) { + return A._setArrayType(new Array($length), $E._eval$1("JSArray<0>")); + }, + JSArray_JSArray$markFixed(allocation, $E) { + return J.JSArray_markFixedList(A._setArrayType(allocation, $E._eval$1("JSArray<0>")), $E); + }, + JSArray_markFixedList(list, $T) { + list.fixed$length = Array; + return list; + }, + getInterceptor$(receiver) { + if (typeof receiver == "number") { + if (Math.floor(receiver) == receiver) + return J.JSInt.prototype; + return J.JSNumNotInt.prototype; + } + if (typeof receiver == "string") + return J.JSString.prototype; + if (receiver == null) + return J.JSNull.prototype; + if (typeof receiver == "boolean") + return J.JSBool.prototype; + if (receiver.constructor == Array) + return J.JSArray.prototype; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$asx(receiver) { + if (typeof receiver == "string") + return J.JSString.prototype; + if (receiver == null) + return receiver; + if (receiver.constructor == Array) + return J.JSArray.prototype; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$ax(receiver) { + if (receiver == null) + return receiver; + if (receiver.constructor == Array) + return J.JSArray.prototype; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$in(receiver) { + if (typeof receiver == "number") { + if (Math.floor(receiver) == receiver) + return J.JSInt.prototype; + return J.JSNumNotInt.prototype; + } + if (receiver == null) + return receiver; + if (!(receiver instanceof A.Object)) + return J.UnknownJavaScriptObject.prototype; + return receiver; + }, + getInterceptor$x(receiver) { + if (receiver == null) + return receiver; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$z(receiver) { + if (receiver == null) + return receiver; + if (!(receiver instanceof A.Object)) + return J.UnknownJavaScriptObject.prototype; + return receiver; + }, + get$ciphertext$x(receiver) { + return J.getInterceptor$x(receiver).get$ciphertext(receiver); + }, + get$entries$x(receiver) { + return J.getInterceptor$x(receiver).get$entries(receiver); + }, + get$ephemeral$x(receiver) { + return J.getInterceptor$x(receiver).get$ephemeral(receiver); + }, + get$first$ax(receiver) { + return J.getInterceptor$ax(receiver).get$first(receiver); + }, + get$hashCode$(receiver) { + return J.getInterceptor$(receiver).get$hashCode(receiver); + }, + get$isEmpty$asx(receiver) { + return J.getInterceptor$asx(receiver).get$isEmpty(receiver); + }, + get$iterator$ax(receiver) { + return J.getInterceptor$ax(receiver).get$iterator(receiver); + }, + get$length$asx(receiver) { + return J.getInterceptor$asx(receiver).get$length(receiver); + }, + get$mac$x(receiver) { + return J.getInterceptor$x(receiver).get$mac(receiver); + }, + get$sign$in(receiver) { + if (typeof receiver === "number") + return receiver > 0 ? 1 : receiver < 0 ? -1 : receiver; + return J.getInterceptor$in(receiver).get$sign(receiver); + }, + get$target$x(receiver) { + return J.getInterceptor$x(receiver).get$target(receiver); + }, + $eq$(receiver, a0) { + if (receiver == null) + return a0 == null; + if (typeof receiver != "object") + return a0 != null && receiver === a0; + return J.getInterceptor$(receiver).$eq(receiver, a0); + }, + $index$asx(receiver, a0) { + if (typeof a0 === "number") + if (receiver.constructor == Array || typeof receiver == "string" || A.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) + if (a0 >>> 0 === a0 && a0 < receiver.length) + return receiver[a0]; + return J.getInterceptor$asx(receiver).$index(receiver, a0); + }, + $indexSet$ax(receiver, a0, a1) { + return J.getInterceptor$ax(receiver).$indexSet(receiver, a0, a1); + }, + add$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).add$1(receiver, a0); + }, + decode$2$z(receiver, a0, a1) { + return J.getInterceptor$z(receiver).decode$2(receiver, a0, a1); + }, + elementAt$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); + }, + encrypt$1$x(receiver, a0) { + return J.getInterceptor$x(receiver).encrypt$1(receiver, a0); + }, + export_session$1$x(receiver, a0) { + return J.getInterceptor$x(receiver).export_session$1(receiver, a0); + }, + fillRange$3$ax(receiver, a0, a1, a2) { + return J.getInterceptor$ax(receiver).fillRange$3(receiver, a0, a1, a2); + }, + first_known_index$0$x(receiver) { + return J.getInterceptor$x(receiver).first_known_index$0(receiver); + }, + forEach$1$x(receiver, a0) { + return J.getInterceptor$x(receiver).forEach$1(receiver, a0); + }, + free$0$x(receiver) { + return J.getInterceptor$x(receiver).free$0(receiver); + }, + map$1$1$ax(receiver, a0, $T1) { + return J.getInterceptor$ax(receiver).map$1$1(receiver, a0, $T1); + }, + noSuchMethod$1$(receiver, a0) { + return J.getInterceptor$(receiver).noSuchMethod$1(receiver, a0); + }, + set_recipient_key$1$x(receiver, a0) { + return J.getInterceptor$x(receiver).set_recipient_key$1(receiver, a0); + }, + skip$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).skip$1(receiver, a0); + }, + sublist$2$ax(receiver, a0, a1) { + return J.getInterceptor$ax(receiver).sublist$2(receiver, a0, a1); + }, + toString$0$(receiver) { + return J.getInterceptor$(receiver).toString$0(receiver); + }, + unpickle$2$x(receiver, a0, a1) { + return J.getInterceptor$x(receiver).unpickle$2(receiver, a0, a1); + }, + Interceptor: function Interceptor() { + }, + JSBool: function JSBool() { + }, + JSNull: function JSNull() { + }, + JavaScriptObject: function JavaScriptObject() { + }, + LegacyJavaScriptObject: function LegacyJavaScriptObject() { + }, + PlainJavaScriptObject: function PlainJavaScriptObject() { + }, + UnknownJavaScriptObject: function UnknownJavaScriptObject() { + }, + JavaScriptFunction: function JavaScriptFunction() { + }, + JSArray: function JSArray(t0) { + this.$ti = t0; + }, + JSUnmodifiableArray: function JSUnmodifiableArray(t0) { + this.$ti = t0; + }, + ArrayIterator: function ArrayIterator(t0, t1, t2) { + var _ = this; + _._iterable = t0; + _.__interceptors$_length = t1; + _._index = 0; + _.__interceptors$_current = null; + _.$ti = t2; + }, + JSNumber: function JSNumber() { + }, + JSInt: function JSInt() { + }, + JSNumNotInt: function JSNumNotInt() { + }, + JSString: function JSString() { + } + }, + B = {}; + var holders = [A, J, B]; + var $ = {}; + A.JS_CONST.prototype = {}; + J.Interceptor.prototype = { + $eq(receiver, other) { + return receiver === other; + }, + get$hashCode(receiver) { + return A.Primitives_objectHashCode(receiver); + }, + toString$0(receiver) { + return "Instance of '" + A.Primitives_objectTypeName(receiver) + "'"; + }, + noSuchMethod$1(receiver, invocation) { + type$.Invocation._as(invocation); + throw A.wrapException(A.NoSuchMethodError$(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); + } + }; + J.JSBool.prototype = { + toString$0(receiver) { + return String(receiver); + }, + get$hashCode(receiver) { + return receiver ? 519018 : 218159; + }, + $isbool: 1 + }; + J.JSNull.prototype = { + $eq(receiver, other) { + return null == other; + }, + toString$0(receiver) { + return "null"; + }, + get$hashCode(receiver) { + return 0; + }, + $isNull: 1 + }; + J.JavaScriptObject.prototype = {}; + J.LegacyJavaScriptObject.prototype = { + get$hashCode(receiver) { + return 0; + }, + toString$0(receiver) { + return String(receiver); + }, + $isInboundGroupSession: 1, + get$length(obj) { + return obj.length; + }, + set$length(obj, v) { + return obj.length = v; + }, + free$0(receiver) { + return receiver.free(); + }, + unpickle$2(receiver, p0, p1) { + return receiver.unpickle(p0, p1); + }, + encrypt$1(receiver, p0) { + return receiver.encrypt(p0); + }, + first_known_index$0(receiver) { + return receiver.first_known_index(); + }, + export_session$1(receiver, p0) { + return receiver.export_session(p0); + }, + get$ciphertext(obj) { + return obj.ciphertext; + }, + get$mac(obj) { + return obj.mac; + }, + get$ephemeral(obj) { + return obj.ephemeral; + }, + set_recipient_key$1(receiver, p0) { + return receiver.set_recipient_key(p0); + } + }; + J.PlainJavaScriptObject.prototype = {}; + J.UnknownJavaScriptObject.prototype = {}; + J.JavaScriptFunction.prototype = { + toString$0(receiver) { + var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()]; + if (dartClosure == null) + return this.super$LegacyJavaScriptObject$toString(receiver); + return "JavaScript function for " + A.S(J.toString$0$(dartClosure)); + }, + $isFunction: 1 + }; + J.JSArray.prototype = { + add$1(receiver, value) { + A._arrayInstanceType(receiver)._precomputed1._as(value); + if (!!receiver.fixed$length) + A.throwExpression(A.UnsupportedError$("add")); + receiver.push(value); + }, + addAll$1(receiver, collection) { + var t1; + A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(collection); + if (!!receiver.fixed$length) + A.throwExpression(A.UnsupportedError$("addAll")); + if (Array.isArray(collection)) { + this._addAllFromArray$1(receiver, collection); + return; + } + for (t1 = J.get$iterator$ax(collection); t1.moveNext$0();) + receiver.push(t1.get$current(t1)); + }, + _addAllFromArray$1(receiver, array) { + var len, i; + type$.JSArray_dynamic._as(array); + len = array.length; + if (len === 0) + return; + if (receiver === array) + throw A.wrapException(A.ConcurrentModificationError$(receiver)); + for (i = 0; i < len; ++i) + receiver.push(array[i]); + }, + map$1$1(receiver, f, $T) { + var t1 = A._arrayInstanceType(receiver); + return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("MappedListIterable<1,2>")); + }, + join$1(receiver, separator) { + var i, + list = A.List_List$filled(receiver.length, "", false, type$.String); + for (i = 0; i < receiver.length; ++i) + this.$indexSet(list, i, A.S(receiver[i])); + return list.join(separator); + }, + skip$1(receiver, n) { + return A.SubListIterable$(receiver, n, null, A._arrayInstanceType(receiver)._precomputed1); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + if (start < 0 || start > receiver.length) + throw A.wrapException(A.RangeError$range(start, 0, receiver.length, "start", null)); + if (end < start || end > receiver.length) + throw A.wrapException(A.RangeError$range(end, start, receiver.length, "end", null)); + if (start === end) + return A._setArrayType([], A._arrayInstanceType(receiver)); + return A._setArrayType(receiver.slice(start, end), A._arrayInstanceType(receiver)); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.IterableElementError_noElement()); + }, + get$last(receiver) { + var t1 = receiver.length; + if (t1 > 0) + return receiver[t1 - 1]; + throw A.wrapException(A.IterableElementError_noElement()); + }, + setRange$4(receiver, start, end, iterable, skipCount) { + var $length, otherList, otherStart, t1, i; + A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(iterable); + if (!!receiver.immutable$list) + A.throwExpression(A.UnsupportedError$("setRange")); + A.RangeError_checkValidRange(start, end, receiver.length); + $length = end - start; + if ($length === 0) + return; + A.RangeError_checkNotNegative(skipCount, "skipCount"); + if (type$.List_dynamic._is(iterable)) { + otherList = iterable; + otherStart = skipCount; + } else { + otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false); + otherStart = 0; + } + t1 = J.getInterceptor$asx(otherList); + if (otherStart + $length > t1.get$length(otherList)) + throw A.wrapException(A.IterableElementError_tooFew()); + if (otherStart < start) + for (i = $length - 1; i >= 0; --i) + receiver[start + i] = t1.$index(otherList, otherStart + i); + else + for (i = 0; i < $length; ++i) + receiver[start + i] = t1.$index(otherList, otherStart + i); + }, + fillRange$3(receiver, start, end, fillValue) { + var i; + A._arrayInstanceType(receiver)._eval$1("1?")._as(fillValue); + if (!!receiver.immutable$list) + A.throwExpression(A.UnsupportedError$("fill range")); + A.RangeError_checkValidRange(start, end, receiver.length); + for (i = start; i < end; ++i) + receiver[i] = fillValue; + }, + contains$1(receiver, other) { + var i; + for (i = 0; i < receiver.length; ++i) + if (J.$eq$(receiver[i], other)) + return true; + return false; + }, + get$isEmpty(receiver) { + return receiver.length === 0; + }, + get$isNotEmpty(receiver) { + return receiver.length !== 0; + }, + toString$0(receiver) { + return A.IterableBase_iterableToFullString(receiver, "[", "]"); + }, + get$iterator(receiver) { + return new J.ArrayIterator(receiver, receiver.length, A._arrayInstanceType(receiver)._eval$1("ArrayIterator<1>")); + }, + get$hashCode(receiver) { + return A.Primitives_objectHashCode(receiver); + }, + get$length(receiver) { + return receiver.length; + }, + set$length(receiver, newLength) { + if (!!receiver.fixed$length) + A.throwExpression(A.UnsupportedError$("set length")); + if (newLength < 0) + throw A.wrapException(A.RangeError$range(newLength, 0, null, "newLength", null)); + if (newLength > receiver.length) + A._arrayInstanceType(receiver)._precomputed1._as(null); + receiver.length = newLength; + }, + $index(receiver, index) { + A._asInt(index); + if (!(index >= 0 && index < receiver.length)) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + A._arrayInstanceType(receiver)._precomputed1._as(value); + if (!!receiver.immutable$list) + A.throwExpression(A.UnsupportedError$("indexed set")); + if (!(index >= 0 && index < receiver.length)) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + receiver[index] = value; + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + J.JSUnmodifiableArray.prototype = {}; + J.ArrayIterator.prototype = { + get$current(_) { + var t1 = this.__interceptors$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var t2, _this = this, + t1 = _this._iterable, + $length = t1.length; + if (_this.__interceptors$_length !== $length) + throw A.wrapException(A.throwConcurrentModificationError(t1)); + t2 = _this._index; + if (t2 >= $length) { + _this.set$__interceptors$_current(null); + return false; + } + _this.set$__interceptors$_current(t1[t2]); + ++_this._index; + return true; + }, + set$__interceptors$_current(_current) { + this.__interceptors$_current = this.$ti._eval$1("1?")._as(_current); + }, + $isIterator: 1 + }; + J.JSNumber.prototype = { + compareTo$1(receiver, b) { + var bIsNegative; + if (receiver < b) + return -1; + else if (receiver > b) + return 1; + else if (receiver === b) { + if (receiver === 0) { + bIsNegative = B.JSInt_methods.get$isNegative(b); + if (this.get$isNegative(receiver) === bIsNegative) + return 0; + if (this.get$isNegative(receiver)) + return -1; + return 1; + } + return 0; + } else if (isNaN(receiver)) { + if (isNaN(b)) + return 0; + return 1; + } else + return -1; + }, + get$isNegative(receiver) { + return receiver === 0 ? 1 / receiver < 0 : receiver < 0; + }, + get$sign(receiver) { + var t1; + if (receiver > 0) + t1 = 1; + else + t1 = receiver < 0 ? -1 : receiver; + return t1; + }, + toInt$0(receiver) { + var t1; + if (receiver >= -2147483648 && receiver <= 2147483647) + return receiver | 0; + if (isFinite(receiver)) { + t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver); + return t1 + 0; + } + throw A.wrapException(A.UnsupportedError$("" + receiver + ".toInt()")); + }, + ceil$0(receiver) { + var truncated, d; + if (receiver >= 0) { + if (receiver <= 2147483647) { + truncated = receiver | 0; + return receiver === truncated ? truncated : truncated + 1; + } + } else if (receiver >= -2147483648) + return receiver | 0; + d = Math.ceil(receiver); + if (isFinite(d)) + return d; + throw A.wrapException(A.UnsupportedError$("" + receiver + ".ceil()")); + }, + floor$0(receiver) { + var truncated, d; + if (receiver >= 0) { + if (receiver <= 2147483647) + return receiver | 0; + } else if (receiver >= -2147483648) { + truncated = receiver | 0; + return receiver === truncated ? truncated : truncated - 1; + } + d = Math.floor(receiver); + if (isFinite(d)) + return d; + throw A.wrapException(A.UnsupportedError$("" + receiver + ".floor()")); + }, + round$0(receiver) { + if (receiver > 0) { + if (receiver !== 1 / 0) + return Math.round(receiver); + } else if (receiver > -1 / 0) + return 0 - Math.round(0 - receiver); + throw A.wrapException(A.UnsupportedError$("" + receiver + ".round()")); + }, + clamp$2(receiver, lowerLimit, upperLimit) { + if (B.JSInt_methods.compareTo$1(lowerLimit, upperLimit) > 0) + throw A.wrapException(A.argumentErrorValue(lowerLimit)); + if (this.compareTo$1(receiver, lowerLimit) < 0) + return lowerLimit; + if (this.compareTo$1(receiver, upperLimit) > 0) + return upperLimit; + return receiver; + }, + toRadixString$1(receiver, radix) { + var result, match, t1, exponent; + if (radix < 2 || radix > 36) + throw A.wrapException(A.RangeError$range(radix, 2, 36, "radix", null)); + result = receiver.toString(radix); + if (B.JSString_methods.codeUnitAt$1(result, result.length - 1) !== 41) + return result; + match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result); + if (match == null) + A.throwExpression(A.UnsupportedError$("Unexpected toString result: " + result)); + t1 = match.length; + if (1 >= t1) + return A.ioore(match, 1); + result = match[1]; + if (3 >= t1) + return A.ioore(match, 3); + exponent = +match[3]; + t1 = match[2]; + if (t1 != null) { + result += t1; + exponent -= t1.length; + } + return result + B.JSString_methods.$mul("0", exponent); + }, + toString$0(receiver) { + if (receiver === 0 && 1 / receiver < 0) + return "-0.0"; + else + return "" + receiver; + }, + get$hashCode(receiver) { + var absolute, floorLog2, factor, scaled, + intValue = receiver | 0; + if (receiver === intValue) + return intValue & 536870911; + absolute = Math.abs(receiver); + floorLog2 = Math.log(absolute) / 0.6931471805599453 | 0; + factor = Math.pow(2, floorLog2); + scaled = absolute < 1 ? absolute / factor : factor / absolute; + return ((scaled * 9007199254740992 | 0) + (scaled * 3542243181176521 | 0)) * 599197 + floorLog2 * 1259 & 536870911; + }, + $add(receiver, other) { + A._asNum(other); + return receiver + other; + }, + $mod(receiver, other) { + var result = receiver % other; + if (result === 0) + return 0; + if (result > 0) + return result; + if (other < 0) + return result - other; + else + return result + other; + }, + $tdiv(receiver, other) { + A._asNum(other); + if ((receiver | 0) === receiver) + if (other >= 1 || other < -1) + return receiver / other | 0; + return this._tdivSlow$1(receiver, other); + }, + _tdivFast$1(receiver, other) { + return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other); + }, + _tdivSlow$1(receiver, other) { + var quotient = receiver / other; + if (quotient >= -2147483648 && quotient <= 2147483647) + return quotient | 0; + if (quotient > 0) { + if (quotient !== 1 / 0) + return Math.floor(quotient); + } else if (quotient > -1 / 0) + return Math.ceil(quotient); + throw A.wrapException(A.UnsupportedError$("Result of truncating division is " + A.S(quotient) + ": " + A.S(receiver) + " ~/ " + other)); + }, + $shl(receiver, other) { + if (other < 0) + throw A.wrapException(A.argumentErrorValue(other)); + return other > 31 ? 0 : receiver << other >>> 0; + }, + _shlPositive$1(receiver, other) { + return other > 31 ? 0 : receiver << other >>> 0; + }, + $shr(receiver, other) { + var t1; + if (other < 0) + throw A.wrapException(A.argumentErrorValue(other)); + if (receiver > 0) + t1 = this._shrBothPositive$1(receiver, other); + else { + t1 = other > 31 ? 31 : other; + t1 = receiver >> t1 >>> 0; + } + return t1; + }, + _shrOtherPositive$1(receiver, other) { + var t1; + if (receiver > 0) + t1 = this._shrBothPositive$1(receiver, other); + else { + t1 = other > 31 ? 31 : other; + t1 = receiver >> t1 >>> 0; + } + return t1; + }, + _shrReceiverPositive$1(receiver, other) { + if (0 > other) + throw A.wrapException(A.argumentErrorValue(other)); + return this._shrBothPositive$1(receiver, other); + }, + _shrBothPositive$1(receiver, other) { + return other > 31 ? 0 : receiver >>> other; + }, + $isdouble: 1, + $isnum: 1 + }; + J.JSInt.prototype = { + get$sign(receiver) { + var t1; + if (receiver > 0) + t1 = 1; + else + t1 = receiver < 0 ? -1 : receiver; + return t1; + }, + toSigned$1(receiver, width) { + var signMask = this.$shl(1, width - 1); + return ((receiver & signMask - 1) >>> 0) - ((receiver & signMask) >>> 0); + }, + $isint: 1 + }; + J.JSNumNotInt.prototype = {}; + J.JSString.prototype = { + codeUnitAt$1(receiver, index) { + if (index < 0) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + if (index >= receiver.length) + A.throwExpression(A.diagnoseIndexError(receiver, index)); + return receiver.charCodeAt(index); + }, + _codeUnitAt$1(receiver, index) { + if (index >= receiver.length) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + return receiver.charCodeAt(index); + }, + $add(receiver, other) { + A._asString(other); + return receiver + other; + }, + endsWith$1(receiver, other) { + var otherLength = other.length, + t1 = receiver.length; + if (otherLength > t1) + return false; + return other === this.substring$1(receiver, t1 - otherLength); + }, + substring$2(receiver, start, end) { + return receiver.substring(start, A.RangeError_checkValidRange(start, end, receiver.length)); + }, + substring$1($receiver, start) { + return this.substring$2($receiver, start, null); + }, + $mul(receiver, times) { + var s, result; + if (0 >= times) + return ""; + if (times === 1 || receiver.length === 0) + return receiver; + if (times !== times >>> 0) + throw A.wrapException(B.C_OutOfMemoryError); + for (s = receiver, result = ""; true;) { + if ((times & 1) === 1) + result = s + result; + times = times >>> 1; + if (times === 0) + break; + s += s; + } + return result; + }, + toString$0(receiver) { + return receiver; + }, + get$hashCode(receiver) { + var t1, hash, i; + for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) { + hash = hash + receiver.charCodeAt(i) & 536870911; + hash = hash + ((hash & 524287) << 10) & 536870911; + hash ^= hash >> 6; + } + hash = hash + ((hash & 67108863) << 3) & 536870911; + hash ^= hash >> 11; + return hash + ((hash & 16383) << 15) & 536870911; + }, + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (!(index.$ge(0, 0) && index.$lt(0, receiver.length))) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + return receiver[index]; + }, + $isString: 1 + }; + A.LateError.prototype = { + toString$0(_) { + return "LateInitializationError: " + this._message; + } + }; + A.CodeUnits.prototype = { + get$length(_) { + return this._string.length; + }, + $index(_, i) { + return B.JSString_methods.codeUnitAt$1(this._string, A._asInt(i)); + } + }; + A.SentinelValue.prototype = {}; + A.EfficientLengthIterable.prototype = {}; + A.ListIterable.prototype = { + get$iterator(_) { + var _this = this; + return new A.ListIterator(_this, _this.get$length(_this), A._instanceType(_this)._eval$1("ListIterator")); + }, + get$isEmpty(_) { + return this.get$length(this) === 0; + }, + get$first(_) { + if (this.get$length(this) === 0) + throw A.wrapException(A.IterableElementError_noElement()); + return this.elementAt$1(0, 0); + }, + map$1$1(_, toElement, $T) { + var t1 = A._instanceType(this); + return new A.MappedListIterable(this, t1._bind$1($T)._eval$1("1(ListIterable.E)")._as(toElement), t1._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>")); + }, + reduce$1(_, combine) { + var $length, value, i, _this = this; + A._instanceType(_this)._eval$1("ListIterable.E(ListIterable.E,ListIterable.E)")._as(combine); + $length = _this.get$length(_this); + if ($length === 0) + throw A.wrapException(A.IterableElementError_noElement()); + value = _this.elementAt$1(0, 0); + for (i = 1; i < $length; ++i) { + value = combine.call$2(value, _this.elementAt$1(0, i)); + if ($length !== _this.get$length(_this)) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + return value; + }, + toList$1$growable(_, growable) { + return A.List_List$of(this, true, A._instanceType(this)._eval$1("ListIterable.E")); + }, + toList$0($receiver) { + return this.toList$1$growable($receiver, true); + } + }; + A.SubListIterable.prototype = { + get$_endIndex() { + var $length = J.get$length$asx(this.__internal$_iterable), + endOrLength = this._endOrLength; + if (endOrLength == null || endOrLength > $length) + return $length; + return endOrLength; + }, + get$_startIndex() { + var $length = J.get$length$asx(this.__internal$_iterable), + t1 = this._start; + if (t1 > $length) + return $length; + return t1; + }, + get$length(_) { + var endOrLength, + $length = J.get$length$asx(this.__internal$_iterable), + t1 = this._start; + if (t1 >= $length) + return 0; + endOrLength = this._endOrLength; + if (endOrLength == null || endOrLength >= $length) + return $length - t1; + if (typeof endOrLength !== "number") + return endOrLength.$sub(); + return endOrLength - t1; + }, + elementAt$1(_, index) { + var _this = this, + realIndex = _this.get$_startIndex() + index; + if (index < 0 || realIndex >= _this.get$_endIndex()) + throw A.wrapException(A.IndexError$(index, _this, "index", null, null)); + return J.elementAt$1$ax(_this.__internal$_iterable, realIndex); + }, + toList$1$growable(_, growable) { + var $length, result, i, _this = this, + start = _this._start, + t1 = _this.__internal$_iterable, + t2 = J.getInterceptor$asx(t1), + end = t2.get$length(t1), + endOrLength = _this._endOrLength; + if (endOrLength != null && endOrLength < end) + end = endOrLength; + $length = end - start; + if ($length <= 0) { + t1 = _this.$ti._precomputed1; + return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1); + } + result = A.List_List$filled($length, t2.elementAt$1(t1, start), growable, _this.$ti._precomputed1); + for (i = 1; i < $length; ++i) { + B.JSArray_methods.$indexSet(result, i, t2.elementAt$1(t1, start + i)); + if (t2.get$length(t1) < end) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + return result; + }, + toList$0($receiver) { + return this.toList$1$growable($receiver, true); + } + }; + A.ListIterator.prototype = { + get$current(_) { + var t1 = this.__internal$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var t3, _this = this, + t1 = _this.__internal$_iterable, + t2 = J.getInterceptor$asx(t1), + $length = t2.get$length(t1); + if (_this.__internal$_length !== $length) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + t3 = _this.__internal$_index; + if (t3 >= $length) { + _this.set$__internal$_current(null); + return false; + } + _this.set$__internal$_current(t2.elementAt$1(t1, t3)); + ++_this.__internal$_index; + return true; + }, + set$__internal$_current(_current) { + this.__internal$_current = this.$ti._eval$1("1?")._as(_current); + }, + $isIterator: 1 + }; + A.MappedIterable.prototype = { + get$iterator(_) { + var t1 = A._instanceType(this); + return new A.MappedIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, t1._eval$1("@<1>")._bind$1(t1._rest[1])._eval$1("MappedIterator<1,2>")); + }, + get$length(_) { + return J.get$length$asx(this.__internal$_iterable); + }, + get$isEmpty(_) { + return J.get$isEmpty$asx(this.__internal$_iterable); + }, + get$first(_) { + return this._f.call$1(J.get$first$ax(this.__internal$_iterable)); + } + }; + A.EfficientLengthMappedIterable.prototype = {$isEfficientLengthIterable: 1}; + A.MappedIterator.prototype = { + moveNext$0() { + var _this = this, + t1 = _this._iterator; + if (t1.moveNext$0()) { + _this.set$__internal$_current(_this._f.call$1(t1.get$current(t1))); + return true; + } + _this.set$__internal$_current(null); + return false; + }, + get$current(_) { + var t1 = this.__internal$_current; + return t1 == null ? this.$ti._rest[1]._as(t1) : t1; + }, + set$__internal$_current(_current) { + this.__internal$_current = this.$ti._eval$1("2?")._as(_current); + } + }; + A.MappedListIterable.prototype = { + get$length(_) { + return J.get$length$asx(this._source); + }, + elementAt$1(_, index) { + return this._f.call$1(J.elementAt$1$ax(this._source, index)); + } + }; + A.EmptyIterable.prototype = { + get$iterator(_) { + return B.C_EmptyIterator; + }, + get$isEmpty(_) { + return true; + }, + get$length(_) { + return 0; + }, + get$first(_) { + throw A.wrapException(A.IterableElementError_noElement()); + }, + map$1$1(_, toElement, $T) { + this.$ti._bind$1($T)._eval$1("1(2)")._as(toElement); + return new A.EmptyIterable($T._eval$1("EmptyIterable<0>")); + }, + toList$1$growable(_, growable) { + var t1 = J.JSArray_JSArray$growable(0, this.$ti._precomputed1); + return t1; + }, + toList$0($receiver) { + return this.toList$1$growable($receiver, true); + } + }; + A.EmptyIterator.prototype = { + moveNext$0() { + return false; + }, + get$current(_) { + throw A.wrapException(A.IterableElementError_noElement()); + }, + $isIterator: 1 + }; + A.WhereTypeIterable.prototype = { + get$iterator(_) { + return new A.WhereTypeIterator(J.get$iterator$ax(this._source), this.$ti._eval$1("WhereTypeIterator<1>")); + } + }; + A.WhereTypeIterator.prototype = { + moveNext$0() { + var t1, t2; + for (t1 = this._source, t2 = this.$ti._precomputed1; t1.moveNext$0();) + if (t2._is(t1.get$current(t1))) + return true; + return false; + }, + get$current(_) { + var t1 = this._source; + return this.$ti._precomputed1._as(t1.get$current(t1)); + }, + $isIterator: 1 + }; + A.FixedLengthListMixin.prototype = {}; + A.UnmodifiableListMixin.prototype = { + $indexSet(_, index, value) { + A._asInt(index); + A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list")); + } + }; + A.UnmodifiableListBase.prototype = {}; + A.Symbol.prototype = { + get$hashCode(_) { + var hash = this._hashCode; + if (hash != null) + return hash; + hash = 664597 * J.get$hashCode$(this._name) & 536870911; + this._hashCode = hash; + return hash; + }, + toString$0(_) { + return 'Symbol("' + A.S(this._name) + '")'; + }, + $eq(_, other) { + if (other == null) + return false; + return other instanceof A.Symbol && this._name == other._name; + }, + $isSymbol0: 1 + }; + A.ConstantMapView.prototype = {}; + A.ConstantMap.prototype = { + get$isEmpty(_) { + return this.get$length(this) === 0; + }, + toString$0(_) { + return A.MapBase_mapToString(this); + }, + get$entries(_) { + return this.entries$body$ConstantMap(0, A._instanceType(this)._eval$1("MapEntry<1,2>")); + }, + entries$body$ConstantMap($async$_, $async$type) { + var $async$self = this; + return A._makeSyncStarIterable(function() { + var _ = $async$_; + var $async$goto = 0, $async$handler = 1, $async$currentError, t1, t2, t3, key, t4; + return function $async$get$entries($async$errorCode, $async$result) { + if ($async$errorCode === 1) { + $async$currentError = $async$result; + $async$goto = $async$handler; + } + while (true) + switch ($async$goto) { + case 0: + // Function start + t1 = $async$self.get$keys($async$self), t1 = t1.get$iterator(t1), t2 = A._instanceType($async$self), t3 = t2._rest[1], t2 = t2._eval$1("@<1>")._bind$1(t3)._eval$1("MapEntry<1,2>"); + case 2: + // for condition + if (!t1.moveNext$0()) { + // goto after for + $async$goto = 3; + break; + } + key = t1.get$current(t1); + t4 = $async$self.$index(0, key); + $async$goto = 4; + return new A.MapEntry(key, t4 == null ? t3._as(t4) : t4, t2); + case 4: + // after yield + // goto for condition + $async$goto = 2; + break; + case 3: + // after for + // implicit return + return A._IterationMarker_endOfIteration(); + case 1: + // rethrow + return A._IterationMarker_uncaughtError($async$currentError); + } + }; + }, $async$type); + }, + $isMap: 1 + }; + A.ConstantStringMap.prototype = { + get$length(_) { + return this._length; + }, + containsKey$1(_, key) { + if (typeof key != "string") + return false; + if ("__proto__" === key) + return false; + return this._jsObject.hasOwnProperty(key); + }, + $index(_, key) { + if (!this.containsKey$1(0, key)) + return null; + return this._jsObject[A._asString(key)]; + }, + forEach$1(_, f) { + var keys, t2, t3, i, t4, + t1 = this.$ti; + t1._eval$1("~(1,2)")._as(f); + keys = this._keys; + for (t2 = keys.length, t3 = this._jsObject, t1 = t1._rest[1], i = 0; i < t2; ++i) { + t4 = A._asString(keys[i]); + f.call$2(t4, t1._as(t3[t4])); + } + }, + get$keys(_) { + return new A._ConstantMapKeyIterable(this, this.$ti._eval$1("_ConstantMapKeyIterable<1>")); + } + }; + A._ConstantMapKeyIterable.prototype = { + get$iterator(_) { + var t1 = this._map._keys; + return new J.ArrayIterator(t1, t1.length, A._arrayInstanceType(t1)._eval$1("ArrayIterator<1>")); + }, + get$length(_) { + return this._map._keys.length; + } + }; + A.GeneralConstantMap.prototype = { + _getMap$0() { + var t1, t2, t3, _this = this, + backingMap = _this.$map; + if (backingMap == null) { + t1 = _this.$ti; + t2 = t1._precomputed1; + t3 = A.GeneralConstantMap__typeTest(t2); + backingMap = A.LinkedHashMap_LinkedHashMap(A._js_helper_GeneralConstantMap__constantMapHashCode$closure(), t3, t2, t1._rest[1]); + A.fillLiteralMap(_this._jsData, backingMap); + _this.$map = backingMap; + } + return backingMap; + }, + containsKey$1(_, key) { + return this._getMap$0().containsKey$1(0, key); + }, + $index(_, key) { + return this._getMap$0().$index(0, key); + }, + forEach$1(_, f) { + this.$ti._eval$1("~(1,2)")._as(f); + this._getMap$0().forEach$1(0, f); + }, + get$keys(_) { + var t1 = this._getMap$0(); + return new A.LinkedHashMapKeyIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterable<1>")); + }, + get$length(_) { + return this._getMap$0()._length; + } + }; + A.GeneralConstantMap__typeTest_closure.prototype = { + call$1(o) { + return this.T._is(o); + }, + $signature: 19 + }; + A.Instantiation.prototype = { + $eq(_, other) { + if (other == null) + return false; + return other instanceof A.Instantiation && this._genericClosure.$eq(0, other._genericClosure) && A.getRuntimeType(this) === A.getRuntimeType(other); + }, + get$hashCode(_) { + return A.Object_hash(this._genericClosure, A.getRuntimeType(this), B.C_SentinelValue, B.C_SentinelValue); + }, + toString$0(_) { + var t1 = B.JSArray_methods.join$1([A.createRuntimeType(this.$ti._precomputed1)], ", "); + return this._genericClosure.toString$0(0) + " with " + ("<" + t1 + ">"); + } + }; + A.Instantiation1.prototype = { + call$2(a0, a1) { + return this._genericClosure.call$1$2(a0, a1, this.$ti._rest[0]); + }, + $signature() { + return A.instantiatedGenericFunctionType(A.closureFunctionType(this._genericClosure), this.$ti); + } + }; + A.JSInvocationMirror.prototype = { + get$memberName() { + var t1 = this._memberName; + return t1; + }, + get$positionalArguments() { + var t1, argumentCount, list, index, _this = this; + if (_this.__js_helper$_kind === 1) + return B.List_empty; + t1 = _this._arguments; + argumentCount = t1.length - _this._namedArgumentNames.length - _this._typeArgumentCount; + if (argumentCount === 0) + return B.List_empty; + list = []; + for (index = 0; index < argumentCount; ++index) { + if (!(index < t1.length)) + return A.ioore(t1, index); + list.push(t1[index]); + } + list.fixed$length = Array; + list.immutable$list = Array; + return list; + }, + get$namedArguments() { + var t1, namedArgumentCount, t2, namedArgumentsStartIndex, map, i, t3, t4, _this = this; + if (_this.__js_helper$_kind !== 0) + return B.Map_empty; + t1 = _this._namedArgumentNames; + namedArgumentCount = t1.length; + t2 = _this._arguments; + namedArgumentsStartIndex = t2.length - namedArgumentCount - _this._typeArgumentCount; + if (namedArgumentCount === 0) + return B.Map_empty; + map = new A.JsLinkedHashMap(type$.JsLinkedHashMap_Symbol_dynamic); + for (i = 0; i < namedArgumentCount; ++i) { + if (!(i < t1.length)) + return A.ioore(t1, i); + t3 = t1[i]; + t4 = namedArgumentsStartIndex + i; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + map.$indexSet(0, new A.Symbol(t3), t2[t4]); + } + return new A.ConstantMapView(map, type$.ConstantMapView_Symbol_dynamic); + }, + $isInvocation: 1 + }; + A.Primitives_functionNoSuchMethod_closure.prototype = { + call$2($name, argument) { + var t1; + A._asString($name); + t1 = this._box_0; + t1.names = t1.names + "$" + $name; + B.JSArray_methods.add$1(this.namedArgumentList, $name); + B.JSArray_methods.add$1(this.$arguments, argument); + ++t1.argumentCount; + }, + $signature: 3 + }; + A.TypeErrorDecoder.prototype = { + matchTypeError$1(message) { + var result, t1, _this = this, + match = new RegExp(_this._pattern).exec(message); + if (match == null) + return null; + result = Object.create(null); + t1 = _this._arguments; + if (t1 !== -1) + result.arguments = match[t1 + 1]; + t1 = _this._argumentsExpr; + if (t1 !== -1) + result.argumentsExpr = match[t1 + 1]; + t1 = _this._expr; + if (t1 !== -1) + result.expr = match[t1 + 1]; + t1 = _this._method; + if (t1 !== -1) + result.method = match[t1 + 1]; + t1 = _this._receiver; + if (t1 !== -1) + result.receiver = match[t1 + 1]; + return result; + } + }; + A.NullError.prototype = { + toString$0(_) { + var t1 = this._method; + if (t1 == null) + return "NoSuchMethodError: " + this.__js_helper$_message; + return "NoSuchMethodError: method not found: '" + t1 + "' on null"; + } + }; + A.JsNoSuchMethodError.prototype = { + toString$0(_) { + var t2, _this = this, + _s38_ = "NoSuchMethodError: method not found: '", + t1 = _this._method; + if (t1 == null) + return "NoSuchMethodError: " + _this.__js_helper$_message; + t2 = _this._receiver; + if (t2 == null) + return _s38_ + t1 + "' (" + _this.__js_helper$_message + ")"; + return _s38_ + t1 + "' on '" + t2 + "' (" + _this.__js_helper$_message + ")"; + } + }; + A.UnknownJsTypeError.prototype = { + toString$0(_) { + var t1 = this.__js_helper$_message; + return t1.length === 0 ? "Error" : "Error: " + t1; + } + }; + A.NullThrownFromJavaScriptException.prototype = { + toString$0(_) { + return "Throw of null ('" + (this._irritant === null ? "null" : "undefined") + "' from JavaScript)"; + } + }; + A.ExceptionAndStackTrace.prototype = {}; + A._StackTrace.prototype = { + toString$0(_) { + var trace, + t1 = this._trace; + if (t1 != null) + return t1; + t1 = this._exception; + trace = t1 !== null && typeof t1 === "object" ? t1.stack : null; + return this._trace = trace == null ? "" : trace; + }, + $isStackTrace: 1 + }; + A.Closure.prototype = { + toString$0(_) { + var $constructor = this.constructor, + $name = $constructor == null ? null : $constructor.name; + return "Closure '" + A.unminifyOrTag($name == null ? "unknown" : $name) + "'"; + }, + $isFunction: 1, + get$$call() { + return this; + }, + "call*": "call$1", + $requiredArgCount: 1, + $defaultValues: null + }; + A.Closure0Args.prototype = {"call*": "call$0", $requiredArgCount: 0}; + A.Closure2Args.prototype = {"call*": "call$2", $requiredArgCount: 2}; + A.TearOffClosure.prototype = {}; + A.StaticClosure.prototype = { + toString$0(_) { + var $name = this.$static_name; + if ($name == null) + return "Closure of unknown static method"; + return "Closure '" + A.unminifyOrTag($name) + "'"; + } + }; + A.BoundClosure.prototype = { + $eq(_, other) { + if (other == null) + return false; + if (this === other) + return true; + if (!(other instanceof A.BoundClosure)) + return false; + return this.$_target === other.$_target && this._receiver === other._receiver; + }, + get$hashCode(_) { + return (A.objectHashCode(this._receiver) ^ A.Primitives_objectHashCode(this.$_target)) >>> 0; + }, + toString$0(_) { + return "Closure '" + this.$_name + "' of " + ("Instance of '" + A.Primitives_objectTypeName(this._receiver) + "'"); + } + }; + A.RuntimeError.prototype = { + toString$0(_) { + return "RuntimeError: " + this.message; + } + }; + A._AssertionError.prototype = { + toString$0(_) { + return "Assertion failed: " + A.Error_safeToString(this.message); + } + }; + A._Required.prototype = {}; + A.JsLinkedHashMap.prototype = { + get$length(_) { + return this._length; + }, + get$isEmpty(_) { + return this._length === 0; + }, + get$keys(_) { + return new A.LinkedHashMapKeyIterable(this, A._instanceType(this)._eval$1("LinkedHashMapKeyIterable<1>")); + }, + get$values(_) { + var t1 = A._instanceType(this); + return A.MappedIterable_MappedIterable(new A.LinkedHashMapKeyIterable(this, t1._eval$1("LinkedHashMapKeyIterable<1>")), new A.JsLinkedHashMap_values_closure(this), t1._precomputed1, t1._rest[1]); + }, + containsKey$1(_, key) { + var strings, nums; + if (typeof key == "string") { + strings = this._strings; + if (strings == null) + return false; + return strings[key] != null; + } else if (typeof key == "number" && (key & 0x3fffffff) === key) { + nums = this._nums; + if (nums == null) + return false; + return nums[key] != null; + } else + return this.internalContainsKey$1(key); + }, + internalContainsKey$1(key) { + var rest = this.__js_helper$_rest; + if (rest == null) + return false; + return this.internalFindBucketIndex$2(rest[this.internalComputeHashCode$1(key)], key) >= 0; + }, + $index(_, key) { + var strings, cell, t1, nums, _null = null; + if (typeof key == "string") { + strings = this._strings; + if (strings == null) + return _null; + cell = strings[key]; + t1 = cell == null ? _null : cell.hashMapCellValue; + return t1; + } else if (typeof key == "number" && (key & 0x3fffffff) === key) { + nums = this._nums; + if (nums == null) + return _null; + cell = nums[key]; + t1 = cell == null ? _null : cell.hashMapCellValue; + return t1; + } else + return this.internalGet$1(key); + }, + internalGet$1(key) { + var bucket, index, + rest = this.__js_helper$_rest; + if (rest == null) + return null; + bucket = rest[this.internalComputeHashCode$1(key)]; + index = this.internalFindBucketIndex$2(bucket, key); + if (index < 0) + return null; + return bucket[index].hashMapCellValue; + }, + $indexSet(_, key, value) { + var strings, nums, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + if (typeof key == "string") { + strings = _this._strings; + _this._addHashTableEntry$3(strings == null ? _this._strings = _this._newHashTable$0() : strings, key, value); + } else if (typeof key == "number" && (key & 0x3fffffff) === key) { + nums = _this._nums; + _this._addHashTableEntry$3(nums == null ? _this._nums = _this._newHashTable$0() : nums, key, value); + } else + _this.internalSet$2(key, value); + }, + internalSet$2(key, value) { + var rest, hash, bucket, index, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + rest = _this.__js_helper$_rest; + if (rest == null) + rest = _this.__js_helper$_rest = _this._newHashTable$0(); + hash = _this.internalComputeHashCode$1(key); + bucket = rest[hash]; + if (bucket == null) + rest[hash] = [_this._newLinkedCell$2(key, value)]; + else { + index = _this.internalFindBucketIndex$2(bucket, key); + if (index >= 0) + bucket[index].hashMapCellValue = value; + else + bucket.push(_this._newLinkedCell$2(key, value)); + } + }, + forEach$1(_, action) { + var cell, modifications, _this = this; + A._instanceType(_this)._eval$1("~(1,2)")._as(action); + cell = _this._first; + modifications = _this._modifications; + for (; cell != null;) { + action.call$2(cell.hashMapCellKey, cell.hashMapCellValue); + if (modifications !== _this._modifications) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + cell = cell._next; + } + }, + _addHashTableEntry$3(table, key, value) { + var cell, + t1 = A._instanceType(this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + cell = table[key]; + if (cell == null) + table[key] = this._newLinkedCell$2(key, value); + else + cell.hashMapCellValue = value; + }, + _newLinkedCell$2(key, value) { + var _this = this, + t1 = A._instanceType(_this), + cell = new A.LinkedHashMapCell(t1._precomputed1._as(key), t1._rest[1]._as(value)); + if (_this._first == null) + _this._first = _this._last = cell; + else + _this._last = _this._last._next = cell; + ++_this._length; + _this._modifications = _this._modifications + 1 & 1073741823; + return cell; + }, + internalComputeHashCode$1(key) { + return J.get$hashCode$(key) & 0x3fffffff; + }, + internalFindBucketIndex$2(bucket, key) { + var $length, i; + if (bucket == null) + return -1; + $length = bucket.length; + for (i = 0; i < $length; ++i) + if (J.$eq$(bucket[i].hashMapCellKey, key)) + return i; + return -1; + }, + toString$0(_) { + return A.MapBase_mapToString(this); + }, + _newHashTable$0() { + var table = Object.create(null); + table[""] = table; + delete table[""]; + return table; + }, + $isLinkedHashMap: 1 + }; + A.JsLinkedHashMap_values_closure.prototype = { + call$1(each) { + var t1 = this.$this, + t2 = A._instanceType(t1); + t1 = t1.$index(0, t2._precomputed1._as(each)); + return t1 == null ? t2._rest[1]._as(t1) : t1; + }, + $signature() { + return A._instanceType(this.$this)._eval$1("2(1)"); + } + }; + A.LinkedHashMapCell.prototype = {}; + A.LinkedHashMapKeyIterable.prototype = { + get$length(_) { + return this._map._length; + }, + get$isEmpty(_) { + return this._map._length === 0; + }, + get$iterator(_) { + var t1 = this._map, + t2 = new A.LinkedHashMapKeyIterator(t1, t1._modifications, this.$ti._eval$1("LinkedHashMapKeyIterator<1>")); + t2._cell = t1._first; + return t2; + } + }; + A.LinkedHashMapKeyIterator.prototype = { + get$current(_) { + return this.__js_helper$_current; + }, + moveNext$0() { + var cell, _this = this, + t1 = _this._map; + if (_this._modifications !== t1._modifications) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + cell = _this._cell; + if (cell == null) { + _this.set$__js_helper$_current(null); + return false; + } else { + _this.set$__js_helper$_current(cell.hashMapCellKey); + _this._cell = cell._next; + return true; + } + }, + set$__js_helper$_current(_current) { + this.__js_helper$_current = this.$ti._eval$1("1?")._as(_current); + }, + $isIterator: 1 + }; + A.initHooks_closure.prototype = { + call$1(o) { + return this.getTag(o); + }, + $signature: 4 + }; + A.initHooks_closure0.prototype = { + call$2(o, tag) { + return this.getUnknownTag(o, tag); + }, + $signature: 36 + }; + A.initHooks_closure1.prototype = { + call$1(tag) { + return this.prototypeForTag(A._asString(tag)); + }, + $signature: 46 + }; + A._Cell.prototype = { + _readLocal$0() { + var t1 = this._value; + if (t1 === this) + throw A.wrapException(new A.LateError("Local '" + this.__late_helper$_name + "' has not been initialized.")); + return t1; + }, + _readField$0() { + var t1 = this._value; + if (t1 === this) + throw A.wrapException(A.LateError$fieldNI(this.__late_helper$_name)); + return t1; + } + }; + A.NativeTypedData.prototype = { + _invalidPosition$3(receiver, position, $length, $name) { + var t1 = A.RangeError$range(position, 0, $length, $name, null); + throw A.wrapException(t1); + }, + _checkPosition$3(receiver, position, $length, $name) { + if (position >>> 0 !== position || position > $length) + this._invalidPosition$3(receiver, position, $length, $name); + }, + $isTypedData: 1 + }; + A.NativeTypedArray.prototype = { + get$length(receiver) { + return receiver.length; + }, + _setRangeFast$4(receiver, start, end, source, skipCount) { + var count, sourceLength, + targetLength = receiver.length; + this._checkPosition$3(receiver, start, targetLength, "start"); + this._checkPosition$3(receiver, end, targetLength, "end"); + if (start > end) + throw A.wrapException(A.RangeError$range(start, 0, end, null, null)); + count = end - start; + if (skipCount < 0) + throw A.wrapException(A.ArgumentError$(skipCount, null)); + sourceLength = source.length; + if (sourceLength - skipCount < count) + throw A.wrapException(A.StateError$("Not enough elements")); + if (skipCount !== 0 || sourceLength !== count) + source = source.subarray(skipCount, skipCount + count); + receiver.set(source, start); + }, + $isJavaScriptIndexingBehavior: 1 + }; + A.NativeTypedArrayOfDouble.prototype = { + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + A._asDouble(value); + A._checkValidIndex(index, receiver, receiver.length); + receiver[index] = value; + }, + setRange$4(receiver, start, end, iterable, skipCount) { + type$.Iterable_double._as(iterable); + if (type$.NativeTypedArrayOfDouble._is(iterable)) { + this._setRangeFast$4(receiver, start, end, iterable, skipCount); + return; + } + this.super$ListMixin$setRange(receiver, start, end, iterable, skipCount); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.NativeTypedArrayOfInt.prototype = { + $indexSet(receiver, index, value) { + A._asInt(index); + A._asInt(value); + A._checkValidIndex(index, receiver, receiver.length); + receiver[index] = value; + }, + setRange$4(receiver, start, end, iterable, skipCount) { + type$.Iterable_int._as(iterable); + if (type$.NativeTypedArrayOfInt._is(iterable)) { + this._setRangeFast$4(receiver, start, end, iterable, skipCount); + return; + } + this.super$ListMixin$setRange(receiver, start, end, iterable, skipCount); + }, + setRange$3($receiver, start, end, iterable) { + return this.setRange$4($receiver, start, end, iterable, 0); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.NativeFloat32List.prototype = { + sublist$2(receiver, start, end) { + return new Float32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + $isFloat32List: 1 + }; + A.NativeFloat64List.prototype = { + sublist$2(receiver, start, end) { + return new Float64Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + } + }; + A.NativeInt16List.prototype = { + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Int16Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + $isInt16List: 1 + }; + A.NativeInt32List.prototype = { + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Int32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + $isInt32List: 1 + }; + A.NativeInt8List.prototype = { + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Int8Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + $isInt8List: 1 + }; + A.NativeUint16List.prototype = { + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Uint16Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + $isUint16List: 1 + }; + A.NativeUint32List.prototype = { + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Uint32Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + sublist$1($receiver, start) { + return this.sublist$2($receiver, start, null); + }, + $isUint32List: 1 + }; + A.NativeUint8ClampedList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Uint8ClampedArray(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + } + }; + A.NativeUint8List.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Uint8Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + sublist$1($receiver, start) { + return this.sublist$2($receiver, start, null); + }, + $isNativeUint8List: 1, + $isUint8List: 1 + }; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.prototype = {}; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {}; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.prototype = {}; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {}; + A.Rti.prototype = { + _eval$1(recipe) { + return A._Universe_evalInEnvironment(init.typeUniverse, this, recipe); + }, + _bind$1(typeOrTuple) { + return A._Universe_bind(init.typeUniverse, this, typeOrTuple); + } + }; + A._FunctionParameters.prototype = {}; + A._Type.prototype = { + toString$0(_) { + return A._rtiToString(this._rti, null); + }, + $isType: 1 + }; + A._Error.prototype = { + toString$0(_) { + return this.__rti$_message; + } + }; + A._TypeError.prototype = {$isTypeError: 1}; + A._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = { + call$1(_) { + var t1 = this._box_0, + f = t1.storedCallback; + t1.storedCallback = null; + f.call$0(); + }, + $signature: 13 + }; + A._AsyncRun__initializeScheduleImmediate_closure.prototype = { + call$1(callback) { + var t1, t2; + this._box_0.storedCallback = type$.void_Function._as(callback); + t1 = this.div; + t2 = this.span; + t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); + }, + $signature: 26 + }; + A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = { + call$0() { + this.callback.call$0(); + }, + $signature: 15 + }; + A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = { + call$0() { + this.callback.call$0(); + }, + $signature: 15 + }; + A._TimerImpl.prototype = { + _TimerImpl$2(milliseconds, callback) { + if (self.setTimeout != null) + self.setTimeout(A.convertDartClosureToJS(new A._TimerImpl_internalCallback(this, callback), 0), milliseconds); + else + throw A.wrapException(A.UnsupportedError$("`setTimeout()` not found.")); + } + }; + A._TimerImpl_internalCallback.prototype = { + call$0() { + this.callback.call$0(); + }, + $signature: 2 + }; + A._AsyncAwaitCompleter.prototype = { + complete$1(_, value) { + var t2, _this = this, + t1 = _this.$ti; + t1._eval$1("1/?")._as(value); + if (value == null) + t1._precomputed1._as(value); + if (!_this.isSync) + _this._future._asyncComplete$1(value); + else { + t2 = _this._future; + if (t1._eval$1("Future<1>")._is(value)) + t2._chainFuture$1(value); + else + t2._completeWithValue$1(t1._precomputed1._as(value)); + } + }, + completeError$2(e, st) { + var t1 = this._future; + if (this.isSync) + t1._completeError$2(e, st); + else + t1._asyncCompleteError$2(e, st); + } + }; + A._awaitOnObject_closure.prototype = { + call$1(result) { + return this.bodyFunction.call$2(0, result); + }, + $signature: 5 + }; + A._awaitOnObject_closure0.prototype = { + call$2(error, stackTrace) { + this.bodyFunction.call$2(1, new A.ExceptionAndStackTrace(error, type$.StackTrace._as(stackTrace))); + }, + $signature: 50 + }; + A._wrapJsFunctionForAsync_closure.prototype = { + call$2(errorCode, result) { + this.$protected(A._asInt(errorCode), result); + }, + $signature: 51 + }; + A._IterationMarker.prototype = { + toString$0(_) { + return "IterationMarker(" + this.state + ", " + A.S(this.value) + ")"; + } + }; + A._SyncStarIterator.prototype = { + get$current(_) { + var t1, + nested = this._nestedIterator; + if (nested == null) { + t1 = this._async$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + } + return nested.get$current(nested); + }, + moveNext$0() { + var t1, t2, value, state, suspendedBodies, inner, _this = this; + for (t1 = _this.$ti._eval$1("Iterator<1>"); true;) { + t2 = _this._nestedIterator; + if (t2 != null) + if (t2.moveNext$0()) + return true; + else + _this.set$_nestedIterator(null); + value = function(body, SUCCESS, ERROR) { + var errorValue, + errorCode = SUCCESS; + while (true) + try { + return body(errorCode, errorValue); + } catch (error) { + errorValue = error; + errorCode = ERROR; + } + }(_this._body, 0, 1); + if (value instanceof A._IterationMarker) { + state = value.state; + if (state === 2) { + suspendedBodies = _this._suspendedBodies; + if (suspendedBodies == null || suspendedBodies.length === 0) { + _this.set$_async$_current(null); + return false; + } + if (0 >= suspendedBodies.length) + return A.ioore(suspendedBodies, -1); + _this._body = suspendedBodies.pop(); + continue; + } else { + t2 = value.value; + if (state === 3) + throw t2; + else { + inner = t1._as(J.get$iterator$ax(t2)); + if (inner instanceof A._SyncStarIterator) { + t2 = _this._suspendedBodies; + if (t2 == null) + t2 = _this._suspendedBodies = []; + B.JSArray_methods.add$1(t2, _this._body); + _this._body = inner._body; + continue; + } else { + _this.set$_nestedIterator(inner); + continue; + } + } + } + } else { + _this.set$_async$_current(value); + return true; + } + } + return false; + }, + set$_async$_current(_current) { + this._async$_current = this.$ti._eval$1("1?")._as(_current); + }, + set$_nestedIterator(_nestedIterator) { + this._nestedIterator = this.$ti._eval$1("Iterator<1>?")._as(_nestedIterator); + }, + $isIterator: 1 + }; + A._SyncStarIterable.prototype = { + get$iterator(_) { + return new A._SyncStarIterator(this._outerHelper(), this.$ti._eval$1("_SyncStarIterator<1>")); + } + }; + A.AsyncError.prototype = { + toString$0(_) { + return A.S(this.error); + }, + $isError: 1, + get$stackTrace() { + return this.stackTrace; + } + }; + A._Completer.prototype = { + completeError$2(error, stackTrace) { + var t1; + A.checkNotNullable(error, "error", type$.Object); + t1 = this.future; + if ((t1._state & 30) !== 0) + throw A.wrapException(A.StateError$("Future already completed")); + if (stackTrace == null) + stackTrace = A.AsyncError_defaultStackTrace(error); + t1._asyncCompleteError$2(error, stackTrace); + }, + completeError$1(error) { + return this.completeError$2(error, null); + } + }; + A._AsyncCompleter.prototype = { + complete$1(_, value) { + var t2, + t1 = this.$ti; + t1._eval$1("1/?")._as(value); + t2 = this.future; + if ((t2._state & 30) !== 0) + throw A.wrapException(A.StateError$("Future already completed")); + t2._asyncComplete$1(t1._eval$1("1/")._as(value)); + } + }; + A._FutureListener.prototype = { + matchesErrorTest$1(asyncError) { + if ((this.state & 15) !== 6) + return true; + return this.result._zone.runUnary$2$2(type$.bool_Function_Object._as(this.callback), asyncError.error, type$.bool, type$.Object); + }, + handleError$1(asyncError) { + var exception, _this = this, + errorCallback = _this.errorCallback, + result = null, + t1 = type$.dynamic, + t2 = type$.Object, + t3 = asyncError.error, + t4 = _this.result._zone; + if (type$.dynamic_Function_Object_StackTrace._is(errorCallback)) + result = t4.runBinary$3$3(errorCallback, t3, asyncError.stackTrace, t1, t2, type$.StackTrace); + else + result = t4.runUnary$2$2(type$.dynamic_Function_Object._as(errorCallback), t3, t1, t2); + try { + t1 = _this.$ti._eval$1("2/")._as(result); + return t1; + } catch (exception) { + if (type$.TypeError._is(A.unwrapException(exception))) { + if ((_this.state & 1) !== 0) + throw A.wrapException(A.ArgumentError$("The error handler of Future.then must return a value of the returned future's type", "onError")); + throw A.wrapException(A.ArgumentError$("The error handler of Future.catchError must return a value of the future's type", "onError")); + } else + throw exception; + } + } + }; + A._Future.prototype = { + then$1$2$onError(f, onError, $R) { + var currentZone, result, t2, + t1 = this.$ti; + t1._bind$1($R)._eval$1("1/(2)")._as(f); + currentZone = $.Zone__current; + if (currentZone === B.C__RootZone) { + if (onError != null && !type$.dynamic_Function_Object_StackTrace._is(onError) && !type$.dynamic_Function_Object._is(onError)) + throw A.wrapException(A.ArgumentError$value(onError, "onError", string$.Error_)); + } else { + $R._eval$1("@<0/>")._bind$1(t1._precomputed1)._eval$1("1(2)")._as(f); + if (onError != null) + onError = A._registerErrorHandler(onError, currentZone); + } + result = new A._Future(currentZone, $R._eval$1("_Future<0>")); + t2 = onError == null ? 1 : 3; + this._addListener$1(new A._FutureListener(result, t2, f, onError, t1._eval$1("@<1>")._bind$1($R)._eval$1("_FutureListener<1,2>"))); + return result; + }, + then$1$1(f, $R) { + return this.then$1$2$onError(f, null, $R); + }, + _thenAwait$1$2(f, onError, $E) { + var result, + t1 = this.$ti; + t1._bind$1($E)._eval$1("1/(2)")._as(f); + result = new A._Future($.Zone__current, $E._eval$1("_Future<0>")); + this._addListener$1(new A._FutureListener(result, 3, f, onError, t1._eval$1("@<1>")._bind$1($E)._eval$1("_FutureListener<1,2>"))); + return result; + }, + _setErrorObject$1(error) { + this._state = this._state & 1 | 16; + this._resultOrListeners = error; + }, + _cloneResult$1(source) { + this._state = source._state & 30 | this._state & 1; + this._resultOrListeners = source._resultOrListeners; + }, + _addListener$1(listener) { + var source, _this = this, + t1 = _this._state; + if (t1 <= 3) { + listener._nextListener = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners); + _this._resultOrListeners = listener; + } else { + if ((t1 & 4) !== 0) { + source = type$._Future_dynamic._as(_this._resultOrListeners); + if ((source._state & 24) === 0) { + source._addListener$1(listener); + return; + } + _this._cloneResult$1(source); + } + A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__addListener_closure(_this, listener))); + } + }, + _prependListeners$1(listeners) { + var t1, existingListeners, next, cursor, next0, source, _this = this, _box_0 = {}; + _box_0.listeners = listeners; + if (listeners == null) + return; + t1 = _this._state; + if (t1 <= 3) { + existingListeners = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners); + _this._resultOrListeners = listeners; + if (existingListeners != null) { + next = listeners._nextListener; + for (cursor = listeners; next != null; cursor = next, next = next0) + next0 = next._nextListener; + cursor._nextListener = existingListeners; + } + } else { + if ((t1 & 4) !== 0) { + source = type$._Future_dynamic._as(_this._resultOrListeners); + if ((source._state & 24) === 0) { + source._prependListeners$1(listeners); + return; + } + _this._cloneResult$1(source); + } + _box_0.listeners = _this._reverseListeners$1(listeners); + A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__prependListeners_closure(_box_0, _this))); + } + }, + _removeListeners$0() { + var current = type$.nullable__FutureListener_dynamic_dynamic._as(this._resultOrListeners); + this._resultOrListeners = null; + return this._reverseListeners$1(current); + }, + _reverseListeners$1(listeners) { + var current, prev, next; + for (current = listeners, prev = null; current != null; prev = current, current = next) { + next = current._nextListener; + current._nextListener = prev; + } + return prev; + }, + _chainForeignFuture$1(source) { + var e, s, exception, _this = this; + _this._state ^= 2; + try { + source.then$1$2$onError(new A._Future__chainForeignFuture_closure(_this), new A._Future__chainForeignFuture_closure0(_this), type$.Null); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A.scheduleMicrotask(new A._Future__chainForeignFuture_closure1(_this, e, s)); + } + }, + _completeWithValue$1(value) { + var listeners, _this = this; + _this.$ti._precomputed1._as(value); + listeners = _this._removeListeners$0(); + _this._state = 8; + _this._resultOrListeners = value; + A._Future__propagateToListeners(_this, listeners); + }, + _completeError$2(error, stackTrace) { + var listeners; + type$.StackTrace._as(stackTrace); + listeners = this._removeListeners$0(); + this._setErrorObject$1(A.AsyncError$(error, stackTrace)); + A._Future__propagateToListeners(this, listeners); + }, + _asyncComplete$1(value) { + var t1 = this.$ti; + t1._eval$1("1/")._as(value); + if (t1._eval$1("Future<1>")._is(value)) { + this._chainFuture$1(value); + return; + } + this._asyncCompleteWithValue$1(t1._precomputed1._as(value)); + }, + _asyncCompleteWithValue$1(value) { + var _this = this; + _this.$ti._precomputed1._as(value); + _this._state ^= 2; + A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__asyncCompleteWithValue_closure(_this, value))); + }, + _chainFuture$1(value) { + var _this = this, + t1 = _this.$ti; + t1._eval$1("Future<1>")._as(value); + if (t1._is(value)) { + if ((value._state & 16) !== 0) { + _this._state ^= 2; + A._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new A._Future__chainFuture_closure(_this, value))); + } else + A._Future__chainCoreFuture(value, _this); + return; + } + _this._chainForeignFuture$1(value); + }, + _asyncCompleteError$2(error, stackTrace) { + this._state ^= 2; + A._rootScheduleMicrotask(null, null, this._zone, type$.void_Function._as(new A._Future__asyncCompleteError_closure(this, error, stackTrace))); + }, + $isFuture: 1 + }; + A._Future__addListener_closure.prototype = { + call$0() { + A._Future__propagateToListeners(this.$this, this.listener); + }, + $signature: 2 + }; + A._Future__prependListeners_closure.prototype = { + call$0() { + A._Future__propagateToListeners(this.$this, this._box_0.listeners); + }, + $signature: 2 + }; + A._Future__chainForeignFuture_closure.prototype = { + call$1(value) { + var error, stackTrace, exception, + t1 = this.$this; + t1._state ^= 2; + try { + t1._completeWithValue$1(t1.$ti._precomputed1._as(value)); + } catch (exception) { + error = A.unwrapException(exception); + stackTrace = A.getTraceFromException(exception); + t1._completeError$2(error, stackTrace); + } + }, + $signature: 13 + }; + A._Future__chainForeignFuture_closure0.prototype = { + call$2(error, stackTrace) { + this.$this._completeError$2(type$.Object._as(error), type$.StackTrace._as(stackTrace)); + }, + $signature: 25 + }; + A._Future__chainForeignFuture_closure1.prototype = { + call$0() { + this.$this._completeError$2(this.e, this.s); + }, + $signature: 2 + }; + A._Future__asyncCompleteWithValue_closure.prototype = { + call$0() { + this.$this._completeWithValue$1(this.value); + }, + $signature: 2 + }; + A._Future__chainFuture_closure.prototype = { + call$0() { + A._Future__chainCoreFuture(this.value, this.$this); + }, + $signature: 2 + }; + A._Future__asyncCompleteError_closure.prototype = { + call$0() { + this.$this._completeError$2(this.error, this.stackTrace); + }, + $signature: 2 + }; + A._Future__propagateToListeners_handleWhenCompleteCallback.prototype = { + call$0() { + var e, s, t1, exception, t2, originalSource, _this = this, completeResult = null; + try { + t1 = _this._box_0.listener; + completeResult = t1.result._zone.run$1$1(type$.dynamic_Function._as(t1.callback), type$.dynamic); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = _this.hasError && type$.AsyncError._as(_this._box_1.source._resultOrListeners).error === e; + t2 = _this._box_0; + if (t1) + t2.listenerValueOrError = type$.AsyncError._as(_this._box_1.source._resultOrListeners); + else + t2.listenerValueOrError = A.AsyncError$(e, s); + t2.listenerHasError = true; + return; + } + if (completeResult instanceof A._Future && (completeResult._state & 24) !== 0) { + if ((completeResult._state & 16) !== 0) { + t1 = _this._box_0; + t1.listenerValueOrError = type$.AsyncError._as(completeResult._resultOrListeners); + t1.listenerHasError = true; + } + return; + } + if (type$.Future_dynamic._is(completeResult)) { + originalSource = _this._box_1.source; + t1 = _this._box_0; + t1.listenerValueOrError = completeResult.then$1$1(new A._Future__propagateToListeners_handleWhenCompleteCallback_closure(originalSource), type$.dynamic); + t1.listenerHasError = false; + } + }, + $signature: 2 + }; + A._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = { + call$1(_) { + return this.originalSource; + }, + $signature: 34 + }; + A._Future__propagateToListeners_handleValueCallback.prototype = { + call$0() { + var e, s, t1, t2, t3, t4, t5, exception; + try { + t1 = this._box_0; + t2 = t1.listener; + t3 = t2.$ti; + t4 = t3._precomputed1; + t5 = t4._as(this.sourceResult); + t1.listenerValueOrError = t2.result._zone.runUnary$2$2(t3._eval$1("2/(1)")._as(t2.callback), t5, t3._eval$1("2/"), t4); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = this._box_0; + t1.listenerValueOrError = A.AsyncError$(e, s); + t1.listenerHasError = true; + } + }, + $signature: 2 + }; + A._Future__propagateToListeners_handleError.prototype = { + call$0() { + var asyncError, e, s, t1, exception, t2, _this = this; + try { + asyncError = type$.AsyncError._as(_this._box_1.source._resultOrListeners); + t1 = _this._box_0; + if (t1.listener.matchesErrorTest$1(asyncError) && t1.listener.errorCallback != null) { + t1.listenerValueOrError = t1.listener.handleError$1(asyncError); + t1.listenerHasError = false; + } + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = type$.AsyncError._as(_this._box_1.source._resultOrListeners); + t2 = _this._box_0; + if (t1.error === e) + t2.listenerValueOrError = t1; + else + t2.listenerValueOrError = A.AsyncError$(e, s); + t2.listenerHasError = true; + } + }, + $signature: 2 + }; + A._AsyncCallbackEntry.prototype = {}; + A.StreamTransformerBase.prototype = {}; + A._StreamIterator.prototype = {}; + A._Zone.prototype = {$isZone: 1}; + A._rootHandleError_closure.prototype = { + call$0() { + var t1 = this.error, + t2 = this.stackTrace; + A.checkNotNullable(t1, "error", type$.Object); + A.checkNotNullable(t2, "stackTrace", type$.StackTrace); + A.Error__throw(t1, t2); + }, + $signature: 2 + }; + A._RootZone.prototype = { + runGuarded$1(f) { + var e, s, exception; + type$.void_Function._as(f); + try { + if (B.C__RootZone === $.Zone__current) { + f.call$0(); + return; + } + A._rootRun(null, null, this, f, type$.void); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s)); + } + }, + bindCallbackGuarded$1(f) { + return new A._RootZone_bindCallbackGuarded_closure(this, type$.void_Function._as(f)); + }, + $index(_, key) { + return null; + }, + run$1$1(f, $R) { + $R._eval$1("0()")._as(f); + if ($.Zone__current === B.C__RootZone) + return f.call$0(); + return A._rootRun(null, null, this, f, $R); + }, + runUnary$2$2(f, arg, $R, $T) { + $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); + $T._as(arg); + if ($.Zone__current === B.C__RootZone) + return f.call$1(arg); + return A._rootRunUnary(null, null, this, f, arg, $R, $T); + }, + runBinary$3$3(f, arg1, arg2, $R, T1, T2) { + $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f); + T1._as(arg1); + T2._as(arg2); + if ($.Zone__current === B.C__RootZone) + return f.call$2(arg1, arg2); + return A._rootRunBinary(null, null, this, f, arg1, arg2, $R, T1, T2); + }, + registerBinaryCallback$3$1(f, $R, T1, T2) { + return $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f); + } + }; + A._RootZone_bindCallbackGuarded_closure.prototype = { + call$0() { + return this.$this.runGuarded$1(this.f); + }, + $signature: 2 + }; + A._HashMap.prototype = { + get$length(_) { + return this._collection$_length; + }, + get$isEmpty(_) { + return this._collection$_length === 0; + }, + get$keys(_) { + return new A._HashMapKeyIterable(this, this.$ti._eval$1("_HashMapKeyIterable<1>")); + }, + containsKey$1(_, key) { + var strings, nums; + if (typeof key == "string" && key !== "__proto__") { + strings = this._collection$_strings; + return strings == null ? false : strings[key] != null; + } else if (typeof key == "number" && (key & 1073741823) === key) { + nums = this._collection$_nums; + return nums == null ? false : nums[key] != null; + } else + return this._containsKey$1(key); + }, + _containsKey$1(key) { + var rest = this._collection$_rest; + if (rest == null) + return false; + return this._findBucketIndex$2(this._getBucket$2(rest, key), key) >= 0; + }, + $index(_, key) { + var strings, t1, nums; + if (typeof key == "string" && key !== "__proto__") { + strings = this._collection$_strings; + t1 = strings == null ? null : A._HashMap__getTableEntry(strings, key); + return t1; + } else if (typeof key == "number" && (key & 1073741823) === key) { + nums = this._collection$_nums; + t1 = nums == null ? null : A._HashMap__getTableEntry(nums, key); + return t1; + } else + return this._get$1(0, key); + }, + _get$1(_, key) { + var bucket, index, + rest = this._collection$_rest; + if (rest == null) + return null; + bucket = this._getBucket$2(rest, key); + index = this._findBucketIndex$2(bucket, key); + return index < 0 ? null : bucket[index + 1]; + }, + $indexSet(_, key, value) { + var strings, nums, rest, hash, bucket, index, _this = this, + t1 = _this.$ti; + t1._precomputed1._as(key); + t1._rest[1]._as(value); + if (typeof key == "string" && key !== "__proto__") { + strings = _this._collection$_strings; + _this._collection$_addHashTableEntry$3(strings == null ? _this._collection$_strings = A._HashMap__newHashTable() : strings, key, value); + } else if (typeof key == "number" && (key & 1073741823) === key) { + nums = _this._collection$_nums; + _this._collection$_addHashTableEntry$3(nums == null ? _this._collection$_nums = A._HashMap__newHashTable() : nums, key, value); + } else { + rest = _this._collection$_rest; + if (rest == null) + rest = _this._collection$_rest = A._HashMap__newHashTable(); + hash = A.objectHashCode(key) & 1073741823; + bucket = rest[hash]; + if (bucket == null) { + A._HashMap__setTableEntry(rest, hash, [key, value]); + ++_this._collection$_length; + _this._collection$_keys = null; + } else { + index = _this._findBucketIndex$2(bucket, key); + if (index >= 0) + bucket[index + 1] = value; + else { + bucket.push(key, value); + ++_this._collection$_length; + _this._collection$_keys = null; + } + } + } + }, + forEach$1(_, action) { + var keys, $length, t2, i, key, t3, _this = this, + t1 = _this.$ti; + t1._eval$1("~(1,2)")._as(action); + keys = _this._computeKeys$0(); + for ($length = keys.length, t2 = t1._precomputed1, t1 = t1._rest[1], i = 0; i < $length; ++i) { + key = keys[i]; + t2._as(key); + t3 = _this.$index(0, key); + action.call$2(key, t3 == null ? t1._as(t3) : t3); + if (keys !== _this._collection$_keys) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + }, + _computeKeys$0() { + var strings, names, entries, index, i, nums, rest, bucket, $length, i0, _this = this, + result = _this._collection$_keys; + if (result != null) + return result; + result = A.List_List$filled(_this._collection$_length, null, false, type$.dynamic); + strings = _this._collection$_strings; + if (strings != null) { + names = Object.getOwnPropertyNames(strings); + entries = names.length; + for (index = 0, i = 0; i < entries; ++i) { + result[index] = names[i]; + ++index; + } + } else + index = 0; + nums = _this._collection$_nums; + if (nums != null) { + names = Object.getOwnPropertyNames(nums); + entries = names.length; + for (i = 0; i < entries; ++i) { + result[index] = +names[i]; + ++index; + } + } + rest = _this._collection$_rest; + if (rest != null) { + names = Object.getOwnPropertyNames(rest); + entries = names.length; + for (i = 0; i < entries; ++i) { + bucket = rest[names[i]]; + $length = bucket.length; + for (i0 = 0; i0 < $length; i0 += 2) { + result[index] = bucket[i0]; + ++index; + } + } + } + return _this._collection$_keys = result; + }, + _collection$_addHashTableEntry$3(table, key, value) { + var t1 = this.$ti; + t1._precomputed1._as(key); + t1._rest[1]._as(value); + if (table[key] == null) { + ++this._collection$_length; + this._collection$_keys = null; + } + A._HashMap__setTableEntry(table, key, value); + }, + _getBucket$2(table, key) { + return table[A.objectHashCode(key) & 1073741823]; + } + }; + A._IdentityHashMap.prototype = { + _findBucketIndex$2(bucket, key) { + var $length, i, t1; + if (bucket == null) + return -1; + $length = bucket.length; + for (i = 0; i < $length; i += 2) { + t1 = bucket[i]; + if (t1 == null ? key == null : t1 === key) + return i; + } + return -1; + } + }; + A._HashMapKeyIterable.prototype = { + get$length(_) { + return this._collection$_map._collection$_length; + }, + get$isEmpty(_) { + return this._collection$_map._collection$_length === 0; + }, + get$iterator(_) { + var t1 = this._collection$_map; + return new A._HashMapKeyIterator(t1, t1._computeKeys$0(), this.$ti._eval$1("_HashMapKeyIterator<1>")); + } + }; + A._HashMapKeyIterator.prototype = { + get$current(_) { + var t1 = this._collection$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var _this = this, + keys = _this._collection$_keys, + offset = _this._offset, + t1 = _this._collection$_map; + if (keys !== t1._collection$_keys) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + else if (offset >= keys.length) { + _this.set$_collection$_current(null); + return false; + } else { + _this.set$_collection$_current(keys[offset]); + _this._offset = offset + 1; + return true; + } + }, + set$_collection$_current(_current) { + this._collection$_current = this.$ti._eval$1("1?")._as(_current); + }, + $isIterator: 1 + }; + A._LinkedCustomHashMap.prototype = { + $index(_, key) { + if (!A.boolConversionCheck(this._validKey.call$1(key))) + return null; + return this.super$JsLinkedHashMap$internalGet(key); + }, + $indexSet(_, key, value) { + var t1 = this.$ti; + this.super$JsLinkedHashMap$internalSet(t1._precomputed1._as(key), t1._rest[1]._as(value)); + }, + containsKey$1(_, key) { + if (!A.boolConversionCheck(this._validKey.call$1(key))) + return false; + return this.super$JsLinkedHashMap$internalContainsKey(key); + }, + internalComputeHashCode$1(key) { + return this._hashCode.call$1(this.$ti._precomputed1._as(key)) & 1073741823; + }, + internalFindBucketIndex$2(bucket, key) { + var $length, t1, t2, i; + if (bucket == null) + return -1; + $length = bucket.length; + for (t1 = this.$ti._precomputed1, t2 = this._equals, i = 0; i < $length; ++i) + if (A.boolConversionCheck(t2.call$2(t1._as(bucket[i].hashMapCellKey), t1._as(key)))) + return i; + return -1; + } + }; + A._LinkedCustomHashMap_closure.prototype = { + call$1(v) { + return this.K._is(v); + }, + $signature: 32 + }; + A.IterableBase.prototype = {}; + A.LinkedHashMap_LinkedHashMap$from_closure.prototype = { + call$2(k, v) { + this.result.$indexSet(0, this.K._as(k), this.V._as(v)); + }, + $signature: 31 + }; + A.ListBase.prototype = {$isEfficientLengthIterable: 1, $isIterable: 1, $isList: 1}; + A.ListMixin.prototype = { + get$iterator(receiver) { + return new A.ListIterator(receiver, this.get$length(receiver), A.instanceType(receiver)._eval$1("ListIterator")); + }, + elementAt$1(receiver, index) { + return this.$index(receiver, index); + }, + get$isEmpty(receiver) { + return this.get$length(receiver) === 0; + }, + get$isNotEmpty(receiver) { + return this.get$length(receiver) !== 0; + }, + get$first(receiver) { + if (this.get$length(receiver) === 0) + throw A.wrapException(A.IterableElementError_noElement()); + return this.$index(receiver, 0); + }, + map$1$1(receiver, f, $T) { + var t1 = A.instanceType(receiver); + return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(ListMixin.E)")._as(f), t1._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>")); + }, + skip$1(receiver, count) { + return A.SubListIterable$(receiver, count, null, A.instanceType(receiver)._eval$1("ListMixin.E")); + }, + sublist$2(receiver, start, end) { + var t1, + listLength = this.get$length(receiver); + A.RangeError_checkValidRange(start, end, listLength); + A.RangeError_checkValidRange(start, end, this.get$length(receiver)); + t1 = A.instanceType(receiver)._eval$1("ListMixin.E"); + return A.List_List$from(A.SubListIterable$(receiver, start, end, t1), t1); + }, + fillRange$3(receiver, start, end, fill) { + var i; + A.instanceType(receiver)._eval$1("ListMixin.E?")._as(fill); + A.RangeError_checkValidRange(start, end, this.get$length(receiver)); + for (i = start; i < end; ++i) + this.$indexSet(receiver, i, fill); + }, + setRange$4(receiver, start, end, iterable, skipCount) { + var $length, otherStart, otherList, i, + t1 = A.instanceType(receiver); + t1._eval$1("Iterable")._as(iterable); + A.RangeError_checkValidRange(start, end, this.get$length(receiver)); + $length = end - start; + if ($length === 0) + return; + A.RangeError_checkNotNegative(skipCount, "skipCount"); + if (t1._eval$1("List")._is(iterable)) { + otherStart = skipCount; + otherList = iterable; + } else { + otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false); + otherStart = 0; + } + t1 = J.getInterceptor$asx(otherList); + if (otherStart + $length > t1.get$length(otherList)) + throw A.wrapException(A.IterableElementError_tooFew()); + if (otherStart < start) + for (i = $length - 1; i >= 0; --i) + this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i)); + else + for (i = 0; i < $length; ++i) + this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i)); + }, + toString$0(receiver) { + return A.IterableBase_iterableToFullString(receiver, "[", "]"); + } + }; + A.MapBase.prototype = {}; + A.MapBase_mapToString_closure.prototype = { + call$2(k, v) { + var t2, + t1 = this._box_0; + if (!t1.first) + this.result._contents += ", "; + t1.first = false; + t1 = this.result; + t2 = t1._contents += A.S(k); + t1._contents = t2 + ": "; + t1._contents += A.S(v); + }, + $signature: 6 + }; + A.MapMixin.prototype = { + forEach$1(receiver, action) { + var t2, key, t3, + t1 = A.instanceType(receiver); + t1._eval$1("~(MapMixin.K,MapMixin.V)")._as(action); + for (t2 = J.get$iterator$ax(this.get$keys(receiver)), t1 = t1._eval$1("MapMixin.V"); t2.moveNext$0();) { + key = t2.get$current(t2); + t3 = this.$index(receiver, key); + action.call$2(key, t3 == null ? t1._as(t3) : t3); + } + }, + get$entries(receiver) { + return J.map$1$1$ax(this.get$keys(receiver), new A.MapMixin_entries_closure(receiver), A.instanceType(receiver)._eval$1("MapEntry")); + }, + map$2$1(receiver, transform, K2, V2) { + var result, t2, key, t3, entry, + t1 = A.instanceType(receiver); + t1._bind$1(K2)._bind$1(V2)._eval$1("MapEntry<1,2>(MapMixin.K,MapMixin.V)")._as(transform); + result = A.LinkedHashMap_LinkedHashMap$_empty(K2, V2); + for (t2 = J.get$iterator$ax(this.get$keys(receiver)), t1 = t1._eval$1("MapMixin.V"); t2.moveNext$0();) { + key = t2.get$current(t2); + t3 = this.$index(receiver, key); + entry = transform.call$2(key, t3 == null ? t1._as(t3) : t3); + result.$indexSet(0, entry.key, entry.value); + } + return result; + }, + addEntries$1(receiver, newEntries) { + var t1, t2, t3, t4; + A.instanceType(receiver)._eval$1("Iterable>")._as(newEntries); + for (t1 = J.get$iterator$ax(newEntries._source), t2 = newEntries.$ti, t3 = new A.WhereTypeIterator(t1, t2._eval$1("WhereTypeIterator<1>")), t2 = t2._precomputed1; t3.moveNext$0();) { + t4 = t2._as(t1.get$current(t1)); + this.$indexSet(receiver, t4.key, t4.value); + } + }, + get$length(receiver) { + return J.get$length$asx(this.get$keys(receiver)); + }, + get$isEmpty(receiver) { + return J.get$isEmpty$asx(this.get$keys(receiver)); + }, + toString$0(receiver) { + return A.MapBase_mapToString(receiver); + }, + $isMap: 1 + }; + A.MapMixin_entries_closure.prototype = { + call$1(key) { + var t1 = this.$this, + t2 = A.instanceType(t1); + t2._eval$1("MapMixin.K")._as(key); + t1 = J.$index$asx(t1, key); + if (t1 == null) + t1 = t2._eval$1("MapMixin.V")._as(t1); + return new A.MapEntry(key, t1, t2._eval$1("@")._bind$1(t2._eval$1("MapMixin.V"))._eval$1("MapEntry<1,2>")); + }, + $signature() { + return A.instanceType(this.$this)._eval$1("MapEntry(MapMixin.K)"); + } + }; + A._UnmodifiableMapMixin.prototype = { + $indexSet(_, key, value) { + var t1 = A._instanceType(this); + t1._eval$1("_UnmodifiableMapMixin.K")._as(key); + t1._eval$1("_UnmodifiableMapMixin.V")._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable map")); + } + }; + A.MapView.prototype = { + $index(_, key) { + return this._collection$_map.$index(0, key); + }, + containsKey$1(_, key) { + return this._collection$_map.containsKey$1(0, key); + }, + forEach$1(_, action) { + this._collection$_map.forEach$1(0, this.$ti._eval$1("~(1,2)")._as(action)); + }, + get$isEmpty(_) { + return this._collection$_map._length === 0; + }, + get$length(_) { + return this._collection$_map._length; + }, + get$keys(_) { + var t1 = this._collection$_map; + return new A.LinkedHashMapKeyIterable(t1, t1.$ti._eval$1("LinkedHashMapKeyIterable<1>")); + }, + toString$0(_) { + return A.MapBase_mapToString(this._collection$_map); + }, + get$entries(_) { + var t1 = this._collection$_map; + return t1.get$entries(t1); + }, + $isMap: 1 + }; + A.UnmodifiableMapView.prototype = {}; + A._ListBase_Object_ListMixin.prototype = {}; + A._UnmodifiableMapView_MapView__UnmodifiableMapMixin.prototype = {}; + A._JsonMap.prototype = { + $index(_, key) { + var result, + t1 = this._processed; + if (t1 == null) + return this._data.$index(0, key); + else if (typeof key != "string") + return null; + else { + result = t1[key]; + return typeof result == "undefined" ? this._process$1(key) : result; + } + }, + get$length(_) { + return this._processed == null ? this._data._length : this._convert$_computeKeys$0().length; + }, + get$isEmpty(_) { + return this.get$length(this) === 0; + }, + get$keys(_) { + var t1; + if (this._processed == null) { + t1 = this._data; + return new A.LinkedHashMapKeyIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterable<1>")); + } + return new A._JsonMapKeyIterable(this); + }, + $indexSet(_, key, value) { + var processed, original, _this = this; + A._asString(key); + if (_this._processed == null) + _this._data.$indexSet(0, key, value); + else if (_this.containsKey$1(0, key)) { + processed = _this._processed; + processed[key] = value; + original = _this._original; + if (original == null ? processed != null : original !== processed) + original[key] = null; + } else + _this._upgrade$0().$indexSet(0, key, value); + }, + containsKey$1(_, key) { + if (this._processed == null) + return this._data.containsKey$1(0, key); + return Object.prototype.hasOwnProperty.call(this._original, key); + }, + forEach$1(_, f) { + var keys, i, key, value, _this = this; + type$.void_Function_String_dynamic._as(f); + if (_this._processed == null) + return _this._data.forEach$1(0, f); + keys = _this._convert$_computeKeys$0(); + for (i = 0; i < keys.length; ++i) { + key = keys[i]; + value = _this._processed[key]; + if (typeof value == "undefined") { + value = A._convertJsonToDartLazy(_this._original[key]); + _this._processed[key] = value; + } + f.call$2(key, value); + if (keys !== _this._data) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + }, + _convert$_computeKeys$0() { + var keys = type$.nullable_List_dynamic._as(this._data); + if (keys == null) + keys = this._data = A._setArrayType(Object.keys(this._original), type$.JSArray_String); + return keys; + }, + _upgrade$0() { + var result, keys, i, t1, key, _this = this; + if (_this._processed == null) + return _this._data; + result = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); + keys = _this._convert$_computeKeys$0(); + for (i = 0; t1 = keys.length, i < t1; ++i) { + key = keys[i]; + result.$indexSet(0, key, _this.$index(0, key)); + } + if (t1 === 0) + B.JSArray_methods.add$1(keys, ""); + else + B.JSArray_methods.set$length(keys, 0); + _this._original = _this._processed = null; + return _this._data = result; + }, + _process$1(key) { + var result; + if (!Object.prototype.hasOwnProperty.call(this._original, key)) + return null; + result = A._convertJsonToDartLazy(this._original[key]); + return this._processed[key] = result; + } + }; + A._JsonMapKeyIterable.prototype = { + get$length(_) { + var t1 = this._parent; + return t1.get$length(t1); + }, + elementAt$1(_, index) { + var t1 = this._parent; + if (t1._processed == null) + t1 = t1.get$keys(t1).elementAt$1(0, index); + else { + t1 = t1._convert$_computeKeys$0(); + if (!(index >= 0 && index < t1.length)) + return A.ioore(t1, index); + t1 = t1[index]; + } + return t1; + }, + get$iterator(_) { + var t1 = this._parent; + if (t1._processed == null) { + t1 = t1.get$keys(t1); + t1 = t1.get$iterator(t1); + } else { + t1 = t1._convert$_computeKeys$0(); + t1 = new J.ArrayIterator(t1, t1.length, A._arrayInstanceType(t1)._eval$1("ArrayIterator<1>")); + } + return t1; + } + }; + A.Utf8Decoder__decoder_closure.prototype = { + call$0() { + var t1, exception; + try { + t1 = new TextDecoder("utf-8", {fatal: true}); + return t1; + } catch (exception) { + } + return null; + }, + $signature: 14 + }; + A.Utf8Decoder__decoderNonfatal_closure.prototype = { + call$0() { + var t1, exception; + try { + t1 = new TextDecoder("utf-8", {fatal: false}); + return t1; + } catch (exception) { + } + return null; + }, + $signature: 14 + }; + A._UnicodeSubsetEncoder.prototype = { + convert$1(string) { + var i, codeUnit, + $length = A.RangeError_checkValidRange(0, null, string.length) - 0, + result = new Uint8Array($length); + for (i = 0; i < $length; ++i) { + codeUnit = B.JSString_methods._codeUnitAt$1(string, i); + if ((codeUnit & 4294967040) !== 0) + throw A.wrapException(A.ArgumentError$value(string, "string", "Contains invalid characters.")); + if (!(i < $length)) + return A.ioore(result, i); + result[i] = codeUnit; + } + return result; + } + }; + A._UnicodeSubsetDecoder.prototype = { + convert$1(bytes) { + var t1, end, i, byte; + type$.List_int._as(bytes); + t1 = bytes.length; + end = A.RangeError_checkValidRange(0, null, t1); + for (i = 0; i < end; ++i) { + if (!(i < t1)) + return A.ioore(bytes, i); + byte = bytes[i]; + if ((byte & 4294967040) !== 0) { + if (!this._allowInvalid) + throw A.wrapException(A.FormatException$("Invalid value in input: " + byte, null, null)); + return this._convertInvalid$3(bytes, 0, end); + } + } + return A.String_String$fromCharCodes(bytes, 0, end); + }, + _convertInvalid$3(bytes, start, end) { + var t1, i, t2, value; + type$.List_int._as(bytes); + for (t1 = bytes.length, i = start, t2 = ""; i < end; ++i) { + if (!(i < t1)) + return A.ioore(bytes, i); + value = bytes[i]; + t2 += A.Primitives_stringFromCharCode((value & 4294967040) !== 0 ? 65533 : value); + } + return t2.charCodeAt(0) == 0 ? t2 : t2; + } + }; + A.Codec.prototype = {}; + A.Converter.prototype = {}; + A.Encoding.prototype = {}; + A.JsonUnsupportedObjectError.prototype = { + toString$0(_) { + var safeString = A.Error_safeToString(this.unsupportedObject); + return (this.cause != null ? "Converting object to an encodable object failed:" : "Converting object did not return an encodable object:") + " " + safeString; + } + }; + A.JsonCyclicError.prototype = { + toString$0(_) { + return "Cyclic error in JSON stringify"; + } + }; + A.JsonCodec.prototype = { + decode$1(_, source) { + var t1 = A._parseJson(source, this.get$decoder()._reviver); + return t1; + }, + encode$1(value) { + var t1 = this.get$encoder(); + t1 = A._JsonStringStringifier_stringify(value, t1._toEncodable, t1.indent); + return t1; + }, + get$encoder() { + return B.JsonEncoder_null_null; + }, + get$decoder() { + return B.JsonDecoder_null; + } + }; + A.JsonEncoder.prototype = {}; + A.JsonDecoder.prototype = {}; + A._JsonStringifier.prototype = { + writeStringContent$1(s) { + var t1, offset, i, charCode, t2, t3, + $length = s.length; + for (t1 = this._sink, offset = 0, i = 0; i < $length; ++i) { + charCode = B.JSString_methods._codeUnitAt$1(s, i); + if (charCode > 92) { + if (charCode >= 55296) { + t2 = charCode & 64512; + if (t2 === 55296) { + t3 = i + 1; + t3 = !(t3 < $length && (B.JSString_methods._codeUnitAt$1(s, t3) & 64512) === 56320); + } else + t3 = false; + if (!t3) + if (t2 === 56320) { + t2 = i - 1; + t2 = !(t2 >= 0 && (B.JSString_methods.codeUnitAt$1(s, t2) & 64512) === 55296); + } else + t2 = false; + else + t2 = true; + if (t2) { + if (i > offset) + t1._contents += B.JSString_methods.substring$2(s, offset, i); + offset = i + 1; + t2 = t1._contents += A.Primitives_stringFromCharCode(92); + t2 += A.Primitives_stringFromCharCode(117); + t1._contents = t2; + t2 += A.Primitives_stringFromCharCode(100); + t1._contents = t2; + t3 = charCode >>> 8 & 15; + t2 += A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); + t1._contents = t2; + t3 = charCode >>> 4 & 15; + t2 += A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); + t1._contents = t2; + t3 = charCode & 15; + t1._contents = t2 + A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); + } + } + continue; + } + if (charCode < 32) { + if (i > offset) + t1._contents += B.JSString_methods.substring$2(s, offset, i); + offset = i + 1; + t2 = t1._contents += A.Primitives_stringFromCharCode(92); + switch (charCode) { + case 8: + t1._contents = t2 + A.Primitives_stringFromCharCode(98); + break; + case 9: + t1._contents = t2 + A.Primitives_stringFromCharCode(116); + break; + case 10: + t1._contents = t2 + A.Primitives_stringFromCharCode(110); + break; + case 12: + t1._contents = t2 + A.Primitives_stringFromCharCode(102); + break; + case 13: + t1._contents = t2 + A.Primitives_stringFromCharCode(114); + break; + default: + t2 += A.Primitives_stringFromCharCode(117); + t1._contents = t2; + t2 += A.Primitives_stringFromCharCode(48); + t1._contents = t2; + t2 += A.Primitives_stringFromCharCode(48); + t1._contents = t2; + t3 = charCode >>> 4 & 15; + t2 += A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); + t1._contents = t2; + t3 = charCode & 15; + t1._contents = t2 + A.Primitives_stringFromCharCode(t3 < 10 ? 48 + t3 : 87 + t3); + break; + } + } else if (charCode === 34 || charCode === 92) { + if (i > offset) + t1._contents += B.JSString_methods.substring$2(s, offset, i); + offset = i + 1; + t2 = t1._contents += A.Primitives_stringFromCharCode(92); + t1._contents = t2 + A.Primitives_stringFromCharCode(charCode); + } + } + if (offset === 0) + t1._contents += s; + else if (offset < $length) + t1._contents += B.JSString_methods.substring$2(s, offset, $length); + }, + _checkCycle$1(object) { + var t1, t2, i, t3; + for (t1 = this._seen, t2 = t1.length, i = 0; i < t2; ++i) { + t3 = t1[i]; + if (object == null ? t3 == null : object === t3) + throw A.wrapException(new A.JsonCyclicError(object, null)); + } + B.JSArray_methods.add$1(t1, object); + }, + writeObject$1(object) { + var customJson, e, t1, exception, _this = this; + if (_this.writeJsonValue$1(object)) + return; + _this._checkCycle$1(object); + try { + customJson = _this._toEncodable.call$1(object); + if (!_this.writeJsonValue$1(customJson)) { + t1 = A.JsonUnsupportedObjectError$(object, null, _this.get$_partialResult()); + throw A.wrapException(t1); + } + t1 = _this._seen; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + } catch (exception) { + e = A.unwrapException(exception); + t1 = A.JsonUnsupportedObjectError$(object, e, _this.get$_partialResult()); + throw A.wrapException(t1); + } + }, + writeJsonValue$1(object) { + var t1, success, _this = this; + if (typeof object == "number") { + if (!isFinite(object)) + return false; + _this._sink._contents += B.JSNumber_methods.toString$0(object); + return true; + } else if (object === true) { + _this._sink._contents += "true"; + return true; + } else if (object === false) { + _this._sink._contents += "false"; + return true; + } else if (object == null) { + _this._sink._contents += "null"; + return true; + } else if (typeof object == "string") { + t1 = _this._sink; + t1._contents += '"'; + _this.writeStringContent$1(object); + t1._contents += '"'; + return true; + } else if (type$.List_dynamic._is(object)) { + _this._checkCycle$1(object); + _this.writeList$1(object); + t1 = _this._seen; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + return true; + } else if (type$.Map_dynamic_dynamic._is(object)) { + _this._checkCycle$1(object); + success = _this.writeMap$1(object); + t1 = _this._seen; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + return success; + } else + return false; + }, + writeList$1(list) { + var t2, i, + t1 = this._sink; + t1._contents += "["; + t2 = J.getInterceptor$ax(list); + if (t2.get$isNotEmpty(list)) { + this.writeObject$1(t2.$index(list, 0)); + for (i = 1; i < t2.get$length(list); ++i) { + t1._contents += ","; + this.writeObject$1(t2.$index(list, i)); + } + } + t1._contents += "]"; + }, + writeMap$1(map) { + var t2, keyValueList, i, separator, t3, _this = this, _box_0 = {}, + t1 = J.getInterceptor$asx(map); + if (t1.get$isEmpty(map)) { + _this._sink._contents += "{}"; + return true; + } + t2 = t1.get$length(map) * 2; + keyValueList = A.List_List$filled(t2, null, false, type$.nullable_Object); + i = _box_0.i = 0; + _box_0.allStringKeys = true; + t1.forEach$1(map, new A._JsonStringifier_writeMap_closure(_box_0, keyValueList)); + if (!_box_0.allStringKeys) + return false; + t1 = _this._sink; + t1._contents += "{"; + for (separator = '"'; i < t2; i += 2, separator = ',"') { + t1._contents += separator; + _this.writeStringContent$1(A._asString(keyValueList[i])); + t1._contents += '":'; + t3 = i + 1; + if (!(t3 < t2)) + return A.ioore(keyValueList, t3); + _this.writeObject$1(keyValueList[t3]); + } + t1._contents += "}"; + return true; + } + }; + A._JsonStringifier_writeMap_closure.prototype = { + call$2(key, value) { + var t1, t2; + if (typeof key != "string") + this._box_0.allStringKeys = false; + t1 = this.keyValueList; + t2 = this._box_0; + B.JSArray_methods.$indexSet(t1, t2.i++, key); + B.JSArray_methods.$indexSet(t1, t2.i++, value); + }, + $signature: 6 + }; + A._JsonPrettyPrintMixin.prototype = { + writeList$1(list) { + var i, _this = this, + t1 = J.getInterceptor$asx(list), + t2 = t1.get$isEmpty(list), + t3 = _this._sink, + t4 = t3._contents; + if (t2) + t3._contents = t4 + "[]"; + else { + t3._contents = t4 + "[\n"; + _this.writeIndentation$1(++_this._JsonPrettyPrintMixin__indentLevel); + _this.writeObject$1(t1.$index(list, 0)); + for (i = 1; i < t1.get$length(list); ++i) { + t3._contents += ",\n"; + _this.writeIndentation$1(_this._JsonPrettyPrintMixin__indentLevel); + _this.writeObject$1(t1.$index(list, i)); + } + t3._contents += "\n"; + _this.writeIndentation$1(--_this._JsonPrettyPrintMixin__indentLevel); + t3._contents += "]"; + } + }, + writeMap$1(map) { + var t2, keyValueList, i, separator, t3, _this = this, _box_0 = {}, + t1 = J.getInterceptor$asx(map); + if (t1.get$isEmpty(map)) { + _this._sink._contents += "{}"; + return true; + } + t2 = t1.get$length(map) * 2; + keyValueList = A.List_List$filled(t2, null, false, type$.nullable_Object); + i = _box_0.i = 0; + _box_0.allStringKeys = true; + t1.forEach$1(map, new A._JsonPrettyPrintMixin_writeMap_closure(_box_0, keyValueList)); + if (!_box_0.allStringKeys) + return false; + t1 = _this._sink; + t1._contents += "{\n"; + ++_this._JsonPrettyPrintMixin__indentLevel; + for (separator = ""; i < t2; i += 2, separator = ",\n") { + t1._contents += separator; + _this.writeIndentation$1(_this._JsonPrettyPrintMixin__indentLevel); + t1._contents += '"'; + _this.writeStringContent$1(A._asString(keyValueList[i])); + t1._contents += '": '; + t3 = i + 1; + if (!(t3 < t2)) + return A.ioore(keyValueList, t3); + _this.writeObject$1(keyValueList[t3]); + } + t1._contents += "\n"; + _this.writeIndentation$1(--_this._JsonPrettyPrintMixin__indentLevel); + t1._contents += "}"; + return true; + } + }; + A._JsonPrettyPrintMixin_writeMap_closure.prototype = { + call$2(key, value) { + var t1, t2; + if (typeof key != "string") + this._box_0.allStringKeys = false; + t1 = this.keyValueList; + t2 = this._box_0; + B.JSArray_methods.$indexSet(t1, t2.i++, key); + B.JSArray_methods.$indexSet(t1, t2.i++, value); + }, + $signature: 6 + }; + A._JsonStringStringifier.prototype = { + get$_partialResult() { + var t1 = this._sink._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + } + }; + A._JsonStringStringifierPretty.prototype = { + writeIndentation$1(count) { + var t1, t2, i; + for (t1 = this._indent, t2 = this._sink, i = 0; i < count; ++i) + t2._contents += t1; + } + }; + A.Latin1Codec.prototype = { + decode$1(_, bytes) { + var t1; + type$.List_int._as(bytes); + t1 = B.Latin1Decoder_false.convert$1(bytes); + return t1; + } + }; + A.Latin1Encoder.prototype = {}; + A.Latin1Decoder.prototype = {}; + A.Utf8Decoder.prototype = { + convert$1(codeUnits) { + var t1, result; + type$.List_int._as(codeUnits); + t1 = this._allowMalformed; + result = A.Utf8Decoder__convertIntercepted(t1, codeUnits, 0, null); + if (result != null) + return result; + return new A._Utf8Decoder(t1).convertGeneral$4(codeUnits, 0, null, true); + } + }; + A._Utf8Decoder.prototype = { + convertGeneral$4(codeUnits, start, maybeEnd, single) { + var end, bytes, result, t1, message, _this = this; + type$.List_int._as(codeUnits); + end = A.RangeError_checkValidRange(start, maybeEnd, codeUnits.length); + if (start === end) + return ""; + bytes = A._Utf8Decoder__makeUint8List(codeUnits, start, end); + result = _this._convertRecursive$4(bytes, 0, end - start, true); + t1 = _this._convert$_state; + if ((t1 & 1) !== 0) { + message = A._Utf8Decoder_errorDescription(t1); + _this._convert$_state = 0; + throw A.wrapException(A.FormatException$(message, codeUnits, start + _this._charOrIndex)); + } + return result; + }, + _convertRecursive$4(bytes, start, end, single) { + var mid, s1, _this = this; + if (end - start > 1000) { + mid = B.JSInt_methods._tdivFast$1(start + end, 2); + s1 = _this._convertRecursive$4(bytes, start, mid, false); + if ((_this._convert$_state & 1) !== 0) + return s1; + return s1 + _this._convertRecursive$4(bytes, mid, end, single); + } + return _this.decodeGeneral$4(bytes, start, end, single); + }, + decodeGeneral$4(bytes, start, end, single) { + var byte, t2, type, t3, i0, markEnd, i1, m, _this = this, _65533 = 65533, + state = _this._convert$_state, + char = _this._charOrIndex, + buffer = new A.StringBuffer(""), + i = start + 1, + t1 = bytes.length; + if (!(start >= 0 && start < t1)) + return A.ioore(bytes, start); + byte = bytes[start]; + $label0$0: + for (t2 = _this.allowMalformed; true;) { + for (; true; i = i0) { + type = B.JSString_methods._codeUnitAt$1("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE", byte) & 31; + char = state <= 32 ? byte & 61694 >>> type : (byte & 63 | char << 6) >>> 0; + state = B.JSString_methods._codeUnitAt$1(" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA", state + type); + if (state === 0) { + buffer._contents += A.Primitives_stringFromCharCode(char); + if (i === end) + break $label0$0; + break; + } else if ((state & 1) !== 0) { + if (t2) + switch (state) { + case 69: + case 67: + buffer._contents += A.Primitives_stringFromCharCode(_65533); + break; + case 65: + buffer._contents += A.Primitives_stringFromCharCode(_65533); + --i; + break; + default: + t3 = buffer._contents += A.Primitives_stringFromCharCode(_65533); + buffer._contents = t3 + A.Primitives_stringFromCharCode(_65533); + break; + } + else { + _this._convert$_state = state; + _this._charOrIndex = i - 1; + return ""; + } + state = 0; + } + if (i === end) + break $label0$0; + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(bytes, i); + byte = bytes[i]; + } + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(bytes, i); + byte = bytes[i]; + if (byte < 128) { + while (true) { + if (!(i0 < end)) { + markEnd = end; + break; + } + i1 = i0 + 1; + if (!(i0 >= 0 && i0 < t1)) + return A.ioore(bytes, i0); + byte = bytes[i0]; + if (byte >= 128) { + markEnd = i1 - 1; + i0 = i1; + break; + } + i0 = i1; + } + if (markEnd - i < 20) + for (m = i; m < markEnd; ++m) { + if (!(m < t1)) + return A.ioore(bytes, m); + buffer._contents += A.Primitives_stringFromCharCode(bytes[m]); + } + else + buffer._contents += A.String_String$fromCharCodes(bytes, i, markEnd); + if (markEnd === end) + break $label0$0; + i = i0; + } else + i = i0; + } + if (single && state > 32) + if (t2) + buffer._contents += A.Primitives_stringFromCharCode(_65533); + else { + _this._convert$_state = 77; + _this._charOrIndex = end; + return ""; + } + _this._convert$_state = state; + _this._charOrIndex = char; + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + } + }; + A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin.prototype = {}; + A.NoSuchMethodError_toString_closure.prototype = { + call$2(key, value) { + var t1, t2, t3; + type$.Symbol._as(key); + t1 = this.sb; + t2 = this._box_0; + t3 = t1._contents += t2.comma; + t3 += key._name; + t1._contents = t3; + t1._contents = t3 + ": "; + t1._contents += A.Error_safeToString(value); + t2.comma = ", "; + }, + $signature: 27 + }; + A.DateTime.prototype = { + $eq(_, other) { + if (other == null) + return false; + return other instanceof A.DateTime && this._core$_value === other._core$_value && this.isUtc === other.isUtc; + }, + get$hashCode(_) { + var t1 = this._core$_value; + return (t1 ^ B.JSInt_methods._shrOtherPositive$1(t1, 30)) & 1073741823; + }, + toString$0(_) { + var _this = this, + y = A.DateTime__fourDigits(A.Primitives_getYear(_this)), + m = A.DateTime__twoDigits(A.Primitives_getMonth(_this)), + d = A.DateTime__twoDigits(A.Primitives_getDay(_this)), + h = A.DateTime__twoDigits(A.Primitives_getHours(_this)), + min = A.DateTime__twoDigits(A.Primitives_getMinutes(_this)), + sec = A.DateTime__twoDigits(A.Primitives_getSeconds(_this)), + ms = A.DateTime__threeDigits(A.Primitives_getMilliseconds(_this)), + t1 = y + "-" + m; + if (_this.isUtc) + return t1 + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + "Z"; + else + return t1 + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms; + } + }; + A._Enum.prototype = {}; + A.Error.prototype = { + get$stackTrace() { + return A.getTraceFromException(this.$thrownJsError); + } + }; + A.AssertionError.prototype = { + toString$0(_) { + var t1 = this.message; + if (t1 != null) + return "Assertion failed: " + A.Error_safeToString(t1); + return "Assertion failed"; + } + }; + A.TypeError.prototype = {}; + A.NullThrownError.prototype = { + toString$0(_) { + return "Throw of null."; + } + }; + A.ArgumentError.prototype = { + get$_errorName() { + return "Invalid argument" + (!this._hasValue ? "(s)" : ""); + }, + get$_errorExplanation() { + return ""; + }, + toString$0(_) { + var _this = this, + $name = _this.name, + nameString = $name == null ? "" : " (" + $name + ")", + message = _this.message, + messageString = message == null ? "" : ": " + A.S(message), + prefix = _this.get$_errorName() + nameString + messageString; + if (!_this._hasValue) + return prefix; + return prefix + _this.get$_errorExplanation() + ": " + A.Error_safeToString(_this.invalidValue); + } + }; + A.RangeError.prototype = { + get$_errorName() { + return "RangeError"; + }, + get$_errorExplanation() { + var explanation, + start = this.start, + end = this.end; + if (start == null) + explanation = end != null ? ": Not less than or equal to " + A.S(end) : ""; + else if (end == null) + explanation = ": Not greater than or equal to " + A.S(start); + else if (end > start) + explanation = ": Not in inclusive range " + A.S(start) + ".." + A.S(end); + else + explanation = end < start ? ": Valid value range is empty" : ": Only valid value is " + A.S(start); + return explanation; + } + }; + A.IndexError.prototype = { + get$_errorName() { + return "RangeError"; + }, + get$_errorExplanation() { + if (A._asInt(this.invalidValue) < 0) + return ": index must not be negative"; + var t1 = this.length; + if (t1 === 0) + return ": no indices are valid"; + return ": index should be less than " + t1; + }, + get$length(receiver) { + return this.length; + } + }; + A.NoSuchMethodError.prototype = { + toString$0(_) { + var $arguments, t1, _i, t2, t3, argument, receiverText, actualParameters, _this = this, _box_0 = {}, + sb = new A.StringBuffer(""); + _box_0.comma = ""; + $arguments = _this._core$_arguments; + for (t1 = $arguments.length, _i = 0, t2 = "", t3 = ""; _i < t1; ++_i, t3 = ", ") { + argument = $arguments[_i]; + sb._contents = t2 + t3; + t2 = sb._contents += A.Error_safeToString(argument); + _box_0.comma = ", "; + } + _this._namedArguments.forEach$1(0, new A.NoSuchMethodError_toString_closure(_box_0, sb)); + receiverText = A.Error_safeToString(_this._core$_receiver); + actualParameters = sb.toString$0(0); + return "NoSuchMethodError: method not found: '" + _this._core$_memberName._name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]"; + } + }; + A.UnsupportedError.prototype = { + toString$0(_) { + return "Unsupported operation: " + this.message; + } + }; + A.UnimplementedError.prototype = { + toString$0(_) { + var message = this.message; + return message != null ? "UnimplementedError: " + message : "UnimplementedError"; + } + }; + A.StateError.prototype = { + toString$0(_) { + return "Bad state: " + this.message; + } + }; + A.ConcurrentModificationError.prototype = { + toString$0(_) { + var t1 = this.modifiedObject; + if (t1 == null) + return "Concurrent modification during iteration."; + return "Concurrent modification during iteration: " + A.Error_safeToString(t1) + "."; + } + }; + A.OutOfMemoryError.prototype = { + toString$0(_) { + return "Out of Memory"; + }, + get$stackTrace() { + return null; + }, + $isError: 1 + }; + A.StackOverflowError.prototype = { + toString$0(_) { + return "Stack Overflow"; + }, + get$stackTrace() { + return null; + }, + $isError: 1 + }; + A.CyclicInitializationError.prototype = { + toString$0(_) { + return "Reading static variable '" + this.variableName + "' during its initialization"; + } + }; + A._Exception.prototype = { + toString$0(_) { + return "Exception: " + this.message; + } + }; + A.FormatException.prototype = { + toString$0(_) { + var message = this.message, + report = "" !== message ? "FormatException: " + message : "FormatException", + offset = this.offset; + return offset != null ? report + (" (at offset " + A.S(offset) + ")") : report; + } + }; + A.Iterable.prototype = { + map$1$1(_, toElement, $T) { + var t1 = A._instanceType(this); + return A.MappedIterable_MappedIterable(this, t1._bind$1($T)._eval$1("1(Iterable.E)")._as(toElement), t1._eval$1("Iterable.E"), $T); + }, + toList$1$growable(_, growable) { + return A.List_List$of(this, true, A._instanceType(this)._eval$1("Iterable.E")); + }, + toList$0($receiver) { + return this.toList$1$growable($receiver, true); + }, + get$length(_) { + var count, + it = this.get$iterator(this); + for (count = 0; it.moveNext$0();) + ++count; + return count; + }, + get$isEmpty(_) { + return !this.get$iterator(this).moveNext$0(); + }, + get$first(_) { + var it = this.get$iterator(this); + if (!it.moveNext$0()) + throw A.wrapException(A.IterableElementError_noElement()); + return it.get$current(it); + }, + elementAt$1(_, index) { + var t1, elementIndex, element; + A.RangeError_checkNotNegative(index, "index"); + for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) { + element = t1.get$current(t1); + if (index === elementIndex) + return element; + ++elementIndex; + } + throw A.wrapException(A.IndexError$(index, this, "index", null, elementIndex)); + }, + toString$0(_) { + return A.IterableBase_iterableToShortString(this, "(", ")"); + } + }; + A._GeneratorIterable.prototype = { + elementAt$1(_, index) { + A.RangeError_checkValidIndex(index, this); + return this._generator.call$1(index); + }, + get$length(receiver) { + return this.length; + } + }; + A.Iterator.prototype = {}; + A.MapEntry.prototype = { + toString$0(_) { + return "MapEntry(" + A.S(this.key) + ": " + A.S(this.value) + ")"; + } + }; + A.Null.prototype = { + get$hashCode(_) { + return A.Object.prototype.get$hashCode.call(this, this); + }, + toString$0(_) { + return "null"; + } + }; + A.Object.prototype = {$isObject: 1, + $eq(_, other) { + return this === other; + }, + get$hashCode(_) { + return A.Primitives_objectHashCode(this); + }, + toString$0(_) { + return "Instance of '" + A.Primitives_objectTypeName(this) + "'"; + }, + noSuchMethod$1(_, invocation) { + type$.Invocation._as(invocation); + throw A.wrapException(A.NoSuchMethodError$(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); + }, + toString() { + return this.toString$0(this); + } + }; + A._StringStackTrace.prototype = { + toString$0(_) { + return ""; + }, + $isStackTrace: 1 + }; + A.StringBuffer.prototype = { + get$length(_) { + return this._contents.length; + }, + toString$0(_) { + var t1 = this._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + $isStringSink: 1 + }; + A.HtmlElement.prototype = {}; + A.AccessibleNodeList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.AnchorElement.prototype = { + toString$0(receiver) { + return String(receiver); + } + }; + A.AreaElement.prototype = { + toString$0(receiver) { + return String(receiver); + } + }; + A.Blob.prototype = {$isBlob: 1}; + A.CharacterData.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.CssPerspective.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.CssRule.prototype = {$isCssRule: 1}; + A.CssStyleDeclaration.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.CssStyleDeclarationBase.prototype = {}; + A.CssStyleValue.prototype = {}; + A.CssTransformComponent.prototype = {}; + A.CssTransformValue.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.CssUnparsedValue.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.DataTransferItemList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + return receiver[A._asInt(index)]; + } + }; + A.DomException.prototype = { + toString$0(receiver) { + return String(receiver); + } + }; + A.DomRectList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Rectangle_num._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.DomRectReadOnly.prototype = { + toString$0(receiver) { + var t2, + t1 = receiver.left; + t1.toString; + t2 = receiver.top; + t2.toString; + return "Rectangle (" + A.S(t1) + ", " + A.S(t2) + ") " + A.S(this.get$width(receiver)) + " x " + A.S(this.get$height(receiver)); + }, + $eq(receiver, other) { + var t1, t2; + if (other == null) + return false; + if (type$.Rectangle_num._is(other)) { + t1 = receiver.left; + t1.toString; + t2 = other.left; + t2.toString; + if (t1 === t2) { + t1 = receiver.top; + t1.toString; + t2 = other.top; + t2.toString; + if (t1 === t2) { + t1 = J.getInterceptor$x(other); + t1 = this.get$width(receiver) === t1.get$width(other) && this.get$height(receiver) === t1.get$height(other); + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + return t1; + }, + get$hashCode(receiver) { + var t2, + t1 = receiver.left; + t1.toString; + t2 = receiver.top; + t2.toString; + return A.Object_hash(t1, t2, this.get$width(receiver), this.get$height(receiver)); + }, + get$_height(receiver) { + return receiver.height; + }, + get$height(receiver) { + var t1 = this.get$_height(receiver); + t1.toString; + return t1; + }, + get$_width(receiver) { + return receiver.width; + }, + get$width(receiver) { + var t1 = this.get$_width(receiver); + t1.toString; + return t1; + }, + $isRectangle: 1 + }; + A.DomStringList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + A._asString(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.DomTokenList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.Element.prototype = { + toString$0(receiver) { + return receiver.localName; + } + }; + A.Event.prototype = { + get$target(receiver) { + return A._convertNativeToDart_EventTarget(receiver.target); + }, + $isEvent: 1 + }; + A.EventTarget.prototype = {$isEventTarget: 1}; + A.File.prototype = {$isFile: 1}; + A.FileList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.File._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.FileWriter.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.FormElement.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.Gamepad.prototype = {$isGamepad: 1}; + A.History.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.HtmlCollection.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Node._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.ImageData.prototype = {$isImageData: 1}; + A.Location.prototype = { + toString$0(receiver) { + return String(receiver); + } + }; + A.MediaList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.MessageEvent.prototype = {$isMessageEvent: 1}; + A.MidiInputMap.prototype = { + $index(receiver, key) { + return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); + }, + forEach$1(receiver, f) { + var entries, entry; + type$.void_Function_String_dynamic._as(f); + entries = receiver.entries(); + for (; true;) { + entry = entries.next(); + if (entry.done) + return; + f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); + } + }, + get$keys(receiver) { + var keys = A._setArrayType([], type$.JSArray_String); + this.forEach$1(receiver, new A.MidiInputMap_keys_closure(keys)); + return keys; + }, + get$length(receiver) { + return receiver.size; + }, + get$isEmpty(receiver) { + return receiver.size === 0; + }, + $indexSet(receiver, key, value) { + A._asString(key); + throw A.wrapException(A.UnsupportedError$("Not supported")); + }, + $isMap: 1 + }; + A.MidiInputMap_keys_closure.prototype = { + call$2(k, v) { + return B.JSArray_methods.add$1(this.keys, k); + }, + $signature: 3 + }; + A.MidiOutputMap.prototype = { + $index(receiver, key) { + return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); + }, + forEach$1(receiver, f) { + var entries, entry; + type$.void_Function_String_dynamic._as(f); + entries = receiver.entries(); + for (; true;) { + entry = entries.next(); + if (entry.done) + return; + f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); + } + }, + get$keys(receiver) { + var keys = A._setArrayType([], type$.JSArray_String); + this.forEach$1(receiver, new A.MidiOutputMap_keys_closure(keys)); + return keys; + }, + get$length(receiver) { + return receiver.size; + }, + get$isEmpty(receiver) { + return receiver.size === 0; + }, + $indexSet(receiver, key, value) { + A._asString(key); + throw A.wrapException(A.UnsupportedError$("Not supported")); + }, + $isMap: 1 + }; + A.MidiOutputMap_keys_closure.prototype = { + call$2(k, v) { + return B.JSArray_methods.add$1(this.keys, k); + }, + $signature: 3 + }; + A.MimeType.prototype = {$isMimeType: 1}; + A.MimeTypeArray.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.MimeType._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.Node.prototype = { + toString$0(receiver) { + var value = receiver.nodeValue; + return value == null ? this.super$Interceptor$toString(receiver) : value; + }, + $isNode: 1 + }; + A.NodeList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Node._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.Plugin.prototype = { + get$length(receiver) { + return receiver.length; + }, + $isPlugin: 1 + }; + A.PluginArray.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Plugin._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.RtcStatsReport.prototype = { + $index(receiver, key) { + return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); + }, + forEach$1(receiver, f) { + var entries, entry; + type$.void_Function_String_dynamic._as(f); + entries = receiver.entries(); + for (; true;) { + entry = entries.next(); + if (entry.done) + return; + f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); + } + }, + get$keys(receiver) { + var keys = A._setArrayType([], type$.JSArray_String); + this.forEach$1(receiver, new A.RtcStatsReport_keys_closure(keys)); + return keys; + }, + get$length(receiver) { + return receiver.size; + }, + get$isEmpty(receiver) { + return receiver.size === 0; + }, + $indexSet(receiver, key, value) { + A._asString(key); + throw A.wrapException(A.UnsupportedError$("Not supported")); + }, + $isMap: 1 + }; + A.RtcStatsReport_keys_closure.prototype = { + call$2(k, v) { + return B.JSArray_methods.add$1(this.keys, k); + }, + $signature: 3 + }; + A.SelectElement.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.SourceBuffer.prototype = {$isSourceBuffer: 1}; + A.SourceBufferList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.SourceBuffer._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.SpeechGrammar.prototype = {$isSpeechGrammar: 1}; + A.SpeechGrammarList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.SpeechGrammar._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.SpeechRecognitionResult.prototype = { + get$length(receiver) { + return receiver.length; + }, + $isSpeechRecognitionResult: 1 + }; + A.Storage.prototype = { + $index(receiver, key) { + return receiver.getItem(A._asString(key)); + }, + $indexSet(receiver, key, value) { + receiver.setItem(A._asString(key), A._asString(value)); + }, + forEach$1(receiver, f) { + var i, key, t1; + type$.void_Function_String_String._as(f); + for (i = 0; true; ++i) { + key = receiver.key(i); + if (key == null) + return; + t1 = receiver.getItem(key); + t1.toString; + f.call$2(key, t1); + } + }, + get$keys(receiver) { + var keys = A._setArrayType([], type$.JSArray_String); + this.forEach$1(receiver, new A.Storage_keys_closure(keys)); + return keys; + }, + get$length(receiver) { + return receiver.length; + }, + get$isEmpty(receiver) { + return receiver.key(0) == null; + }, + $isMap: 1 + }; + A.Storage_keys_closure.prototype = { + call$2(k, v) { + return B.JSArray_methods.add$1(this.keys, k); + }, + $signature: 53 + }; + A.StyleSheet.prototype = {$isStyleSheet: 1}; + A.TextTrack.prototype = {$isTextTrack: 1}; + A.TextTrackCue.prototype = {$isTextTrackCue: 1}; + A.TextTrackCueList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.TextTrackCue._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.TextTrackList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.TextTrack._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.TimeRanges.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.Touch.prototype = {$isTouch: 1}; + A.TouchList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Touch._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.TrackDefaultList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.Url.prototype = { + toString$0(receiver) { + return String(receiver); + } + }; + A.VideoTrackList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.Window.prototype = {$isWindow: 1, $isWindowBase: 1}; + A.WorkerGlobalScope.prototype = {$isWorkerGlobalScope: 1}; + A._CssRuleList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.CssRule._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A._DomRect.prototype = { + toString$0(receiver) { + var t2, t3, t4, + t1 = receiver.left; + t1.toString; + t2 = receiver.top; + t2.toString; + t3 = receiver.width; + t3.toString; + t4 = receiver.height; + t4.toString; + return "Rectangle (" + A.S(t1) + ", " + A.S(t2) + ") " + A.S(t3) + " x " + A.S(t4); + }, + $eq(receiver, other) { + var t1, t2; + if (other == null) + return false; + if (type$.Rectangle_num._is(other)) { + t1 = receiver.left; + t1.toString; + t2 = other.left; + t2.toString; + if (t1 === t2) { + t1 = receiver.top; + t1.toString; + t2 = other.top; + t2.toString; + if (t1 === t2) { + t1 = receiver.width; + t1.toString; + t2 = J.getInterceptor$x(other); + if (t1 === t2.get$width(other)) { + t1 = receiver.height; + t1.toString; + t2 = t1 === t2.get$height(other); + t1 = t2; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + return t1; + }, + get$hashCode(receiver) { + var t2, t3, t4, + t1 = receiver.left; + t1.toString; + t2 = receiver.top; + t2.toString; + t3 = receiver.width; + t3.toString; + t4 = receiver.height; + t4.toString; + return A.Object_hash(t1, t2, t3, t4); + }, + get$_height(receiver) { + return receiver.height; + }, + get$height(receiver) { + var t1 = receiver.height; + t1.toString; + return t1; + }, + get$_width(receiver) { + return receiver.width; + }, + get$width(receiver) { + var t1 = receiver.width; + t1.toString; + return t1; + } + }; + A._GamepadList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.nullable_Gamepad._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A._NamedNodeMap.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Node._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A._SpeechRecognitionResultList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.SpeechRecognitionResult._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A._StyleSheetList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.StyleSheet._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + $isEfficientLengthIterable: 1, + $isJavaScriptIndexingBehavior: 1, + $isIterable: 1, + $isList: 1 + }; + A.ImmutableListMixin.prototype = { + get$iterator(receiver) { + return new A.FixedSizeListIterator(receiver, this.get$length(receiver), A.instanceType(receiver)._eval$1("FixedSizeListIterator")); + }, + setRange$4(receiver, start, end, iterable, skipCount) { + A.instanceType(receiver)._eval$1("Iterable")._as(iterable); + throw A.wrapException(A.UnsupportedError$("Cannot setRange on immutable List.")); + }, + fillRange$3(receiver, start, end, fillValue) { + A.instanceType(receiver)._eval$1("ImmutableListMixin.E?")._as(fillValue); + throw A.wrapException(A.UnsupportedError$("Cannot modify an immutable List.")); + } + }; + A.FixedSizeListIterator.prototype = { + moveNext$0() { + var _this = this, + nextPosition = _this._position + 1, + t1 = _this._html$_length; + if (nextPosition < t1) { + _this.set$_current(J.$index$asx(_this._array, nextPosition)); + _this._position = nextPosition; + return true; + } + _this.set$_current(null); + _this._position = t1; + return false; + }, + get$current(_) { + var t1 = this._current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + set$_current(_current) { + this._current = this.$ti._eval$1("1?")._as(_current); + }, + $isIterator: 1 + }; + A._DOMWindowCrossFrame.prototype = {$isEventTarget: 1, $isWindowBase: 1}; + A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase.prototype = {}; + A._DomRectList_JavaScriptObject_ListMixin.prototype = {}; + A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._DomStringList_JavaScriptObject_ListMixin.prototype = {}; + A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._FileList_JavaScriptObject_ListMixin.prototype = {}; + A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._HtmlCollection_JavaScriptObject_ListMixin.prototype = {}; + A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._MidiInputMap_JavaScriptObject_MapMixin.prototype = {}; + A._MidiOutputMap_JavaScriptObject_MapMixin.prototype = {}; + A._MimeTypeArray_JavaScriptObject_ListMixin.prototype = {}; + A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._NodeList_JavaScriptObject_ListMixin.prototype = {}; + A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._PluginArray_JavaScriptObject_ListMixin.prototype = {}; + A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._RtcStatsReport_JavaScriptObject_MapMixin.prototype = {}; + A._SourceBufferList_EventTarget_ListMixin.prototype = {}; + A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin.prototype = {}; + A._SpeechGrammarList_JavaScriptObject_ListMixin.prototype = {}; + A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._Storage_JavaScriptObject_MapMixin.prototype = {}; + A._TextTrackCueList_JavaScriptObject_ListMixin.prototype = {}; + A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._TextTrackList_EventTarget_ListMixin.prototype = {}; + A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin.prototype = {}; + A._TouchList_JavaScriptObject_ListMixin.prototype = {}; + A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A.__CssRuleList_JavaScriptObject_ListMixin.prototype = {}; + A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A.__GamepadList_JavaScriptObject_ListMixin.prototype = {}; + A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A.__NamedNodeMap_JavaScriptObject_ListMixin.prototype = {}; + A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin.prototype = {}; + A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A.__StyleSheetList_JavaScriptObject_ListMixin.prototype = {}; + A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._AcceptStructuredClone.prototype = { + findSlot$1(value) { + var i, + t1 = this.values, + $length = t1.length; + for (i = 0; i < $length; ++i) + if (t1[i] === value) + return i; + B.JSArray_methods.add$1(t1, value); + B.JSArray_methods.add$1(this.copies, null); + return $length; + }, + walk$1(e) { + var slot, t1, copy, t2, l, $length, i, _this = this, _box_0 = {}; + if (e == null) + return e; + if (A._isBool(e)) + return e; + if (typeof e == "number") + return e; + if (typeof e == "string") + return e; + if (e instanceof Date) + return A.DateTime$fromMillisecondsSinceEpoch(e.getTime(), true); + if (e instanceof RegExp) + throw A.wrapException(A.UnimplementedError$("structured clone of RegExp")); + if (typeof Promise != "undefined" && e instanceof Promise) + return A.promiseToFuture(e, type$.dynamic); + if (A.isJavaScriptSimpleObject(e)) { + slot = _this.findSlot$1(e); + t1 = _this.copies; + if (!(slot < t1.length)) + return A.ioore(t1, slot); + copy = _box_0.copy = t1[slot]; + if (copy != null) + return copy; + t2 = type$.dynamic; + copy = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); + _box_0.copy = copy; + B.JSArray_methods.$indexSet(t1, slot, copy); + _this.forEachJsField$2(e, new A._AcceptStructuredClone_walk_closure(_box_0, _this)); + return _box_0.copy; + } + if (e instanceof Array) { + l = e; + slot = _this.findSlot$1(l); + t1 = _this.copies; + if (!(slot < t1.length)) + return A.ioore(t1, slot); + copy = t1[slot]; + if (copy != null) + return copy; + t2 = J.getInterceptor$asx(l); + $length = t2.get$length(l); + copy = _this.mustCopy ? new Array($length) : l; + B.JSArray_methods.$indexSet(t1, slot, copy); + for (t1 = J.getInterceptor$ax(copy), i = 0; i < $length; ++i) + t1.$indexSet(copy, i, _this.walk$1(t2.$index(l, i))); + return copy; + } + return e; + } + }; + A._AcceptStructuredClone_walk_closure.prototype = { + call$2(key, value) { + var t1 = this._box_0.copy, + t2 = this.$this.walk$1(value); + J.$indexSet$ax(t1, key, t2); + return t2; + }, + $signature: 20 + }; + A._AcceptStructuredCloneDart2Js.prototype = { + forEachJsField$2(object, action) { + var t1, t2, _i, key; + type$.dynamic_Function_dynamic_dynamic._as(action); + for (t1 = Object.keys(object), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { + key = t1[_i]; + action.call$2(key, object[key]); + } + } + }; + A.KeyRange.prototype = {$isKeyRange: 1}; + A.Request.prototype = {$isRequest: 1}; + A.VersionChangeEvent.prototype = { + get$target(receiver) { + return receiver.target; + } + }; + A._convertToJS_closure.prototype = { + call$1(o) { + var jsFunction; + type$.Function._as(o); + jsFunction = function(_call, f, captureThis) { + return function() { + return _call(f, captureThis, this, Array.prototype.slice.apply(arguments)); + }; + }(A._callDartFunction, o, false); + A._defineProperty(jsFunction, $.$get$DART_CLOSURE_PROPERTY_NAME(), o); + return jsFunction; + }, + $signature: 4 + }; + A._convertToJS_closure0.prototype = { + call$1(o) { + return new this.ctor(o); + }, + $signature: 4 + }; + A._wrapToDart_closure.prototype = { + call$1(o) { + return new A.JsFunction(o == null ? type$.Object._as(o) : o); + }, + $signature: 21 + }; + A._wrapToDart_closure0.prototype = { + call$1(o) { + var t1 = o == null ? type$.Object._as(o) : o; + return new A.JsArray(t1, type$.JsArray_dynamic); + }, + $signature: 22 + }; + A._wrapToDart_closure1.prototype = { + call$1(o) { + return new A.JsObject(o == null ? type$.Object._as(o) : o); + }, + $signature: 23 + }; + A.JsObject.prototype = { + $index(_, property) { + if (typeof property != "string" && typeof property != "number") + throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); + return A._convertToDart(this._js$_jsObject[property]); + }, + $indexSet(_, property, value) { + type$.Object._as(property); + if (typeof property != "string" && typeof property != "number") + throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); + this._js$_jsObject[property] = A._convertToJS(value); + }, + $eq(_, other) { + if (other == null) + return false; + return other instanceof A.JsObject && this._js$_jsObject === other._js$_jsObject; + }, + toString$0(_) { + var t1, exception; + try { + t1 = String(this._js$_jsObject); + return t1; + } catch (exception) { + t1 = this.super$Object$toString(0); + return t1; + } + }, + get$hashCode(_) { + return 0; + } + }; + A.JsFunction.prototype = {}; + A.JsArray.prototype = { + _checkIndex$1(index) { + var _this = this, + t1 = index < 0 || index >= _this.get$length(_this); + if (t1) + throw A.wrapException(A.RangeError$range(index, 0, _this.get$length(_this), null, null)); + }, + $index(_, index) { + if (A._isInt(index)) + this._checkIndex$1(index); + return this.$ti._precomputed1._as(this.super$JsObject$$index(0, index)); + }, + $indexSet(_, index, value) { + type$.Object._as(index); + if (A._isInt(index)) + this._checkIndex$1(index); + this.super$_JsArray_JsObject_ListMixin$$indexSet(0, index, value); + }, + get$length(_) { + var len = this._js$_jsObject.length; + if (typeof len === "number" && len >>> 0 === len) + return len; + throw A.wrapException(A.StateError$("Bad JsArray length")); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A._JsArray_JsObject_ListMixin.prototype = { + $indexSet(_, property, value) { + return this.super$JsObject$$indexSet(0, type$.Object._as(property), value); + } + }; + A._convertDataTree__convert.prototype = { + call$1(o) { + var convertedMap, t2, key, convertedList, + t1 = this._convertedObjects; + if (t1.containsKey$1(0, o)) + return t1.$index(0, o); + if (type$.Map_dynamic_dynamic._is(o)) { + convertedMap = {}; + t1.$indexSet(0, o, convertedMap); + for (t1 = J.getInterceptor$x(o), t2 = J.get$iterator$ax(t1.get$keys(o)); t2.moveNext$0();) { + key = t2.get$current(t2); + convertedMap[key] = this.call$1(t1.$index(o, key)); + } + return convertedMap; + } else if (type$.Iterable_dynamic._is(o)) { + convertedList = []; + t1.$indexSet(0, o, convertedList); + B.JSArray_methods.addAll$1(convertedList, J.map$1$1$ax(o, this, type$.dynamic)); + return convertedList; + } else + return o; + }, + $signature: 24 + }; + A.NullRejectionException.prototype = { + toString$0(_) { + return "Promise was rejected with a value of `" + (this.isUndefined ? "undefined" : "null") + "`."; + } + }; + A.promiseToFuture_closure.prototype = { + call$1(r) { + return this.completer.complete$1(0, this.T._eval$1("0/?")._as(r)); + }, + $signature: 5 + }; + A.promiseToFuture_closure0.prototype = { + call$1(e) { + if (e == null) + return this.completer.completeError$1(new A.NullRejectionException(e === undefined)); + return this.completer.completeError$1(e); + }, + $signature: 5 + }; + A.Length.prototype = {$isLength: 1}; + A.LengthList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver.getItem(index); + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Length._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + return this.$index(receiver, index); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.Number.prototype = {$isNumber: 1}; + A.NumberList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver.getItem(index); + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Number._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + return this.$index(receiver, index); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.PointList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.StringList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver.getItem(index); + }, + $indexSet(receiver, index, value) { + A._asInt(index); + A._asString(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + return this.$index(receiver, index); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.Transform.prototype = {$isTransform: 1}; + A.TransformList.prototype = { + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._asInt(index); + if (index >>> 0 !== index || index >= receiver.length) + throw A.wrapException(A.IndexError$(index, receiver, null, null, null)); + return receiver.getItem(index); + }, + $indexSet(receiver, index, value) { + A._asInt(index); + type$.Transform._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.StateError$("No elements")); + }, + elementAt$1(receiver, index) { + return this.$index(receiver, index); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A._LengthList_JavaScriptObject_ListMixin.prototype = {}; + A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._NumberList_JavaScriptObject_ListMixin.prototype = {}; + A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._StringList_JavaScriptObject_ListMixin.prototype = {}; + A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A._TransformList_JavaScriptObject_ListMixin.prototype = {}; + A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; + A.AudioBuffer.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.AudioParamMap.prototype = { + $index(receiver, key) { + return A.convertNativeToDart_Dictionary(receiver.get(A._asString(key))); + }, + forEach$1(receiver, f) { + var entries, entry; + type$.void_Function_String_dynamic._as(f); + entries = receiver.entries(); + for (; true;) { + entry = entries.next(); + if (entry.done) + return; + f.call$2(entry.value[0], A.convertNativeToDart_Dictionary(entry.value[1])); + } + }, + get$keys(receiver) { + var keys = A._setArrayType([], type$.JSArray_String); + this.forEach$1(receiver, new A.AudioParamMap_keys_closure(keys)); + return keys; + }, + get$length(receiver) { + return receiver.size; + }, + get$isEmpty(receiver) { + return receiver.size === 0; + }, + $indexSet(receiver, key, value) { + A._asString(key); + throw A.wrapException(A.UnsupportedError$("Not supported")); + }, + $isMap: 1 + }; + A.AudioParamMap_keys_closure.prototype = { + call$2(k, v) { + return B.JSArray_methods.add$1(this.keys, k); + }, + $signature: 3 + }; + A.AudioTrackList.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A.BaseAudioContext.prototype = {}; + A.OfflineAudioContext.prototype = { + get$length(receiver) { + return receiver.length; + } + }; + A._AudioParamMap_JavaScriptObject_MapMixin.prototype = {}; + A.ArchiveException.prototype = {}; + A.InputStreamBase.prototype = {}; + A.InputStream.prototype = { + get$length(_) { + return A._lateReadCheck(this.__InputStream__length, "_length") - (this.offset - this.start); + }, + get$isEOS() { + return this.offset >= this.start + A._lateReadCheck(this.__InputStream__length, "_length"); + }, + $index(_, index) { + A._asInt(index); + return J.$index$asx(this.buffer, B.JSInt_methods.$add(this.offset, index)); + }, + readByte$0() { + var t1 = this.buffer, + t2 = this.offset++; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + return t1[t2]; + }, + readBytes$1(count) { + var _this = this, + t1 = _this.start, + position = _this.offset - t1 + t1, + $length = count < 0 ? A._lateReadCheck(_this.__InputStream__length, "_length") - (position - t1) : count, + bytes = A.InputStream$(_this.buffer, _this.byteOrder, $length, position); + _this.offset = _this.offset + bytes.get$length(bytes); + return bytes; + }, + readUint32$0() { + var b1, b2, b3, b4, _this = this, + t1 = _this.buffer, + t2 = _this.offset, + t3 = _this.offset = t2 + 1, + t4 = t1.length; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b1 = t2 & 255; + t2 = _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b2 = t3 & 255; + t3 = _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b3 = t2 & 255; + _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b4 = t3 & 255; + if (_this.byteOrder === 1) + return (b1 << 24 | b2 << 16 | b3 << 8 | b4) >>> 0; + return (b4 << 24 | b3 << 16 | b2 << 8 | b1) >>> 0; + }, + toUint8List$0() { + var t2, t3, end, end0, _this = this, + len = _this.get$length(_this), + t1 = _this.buffer; + if (type$.Uint8List._is(t1)) { + t2 = _this.offset; + t3 = t1.length; + if (t2 + len > t3) + len = t3 - t2; + return A.NativeUint8List_NativeUint8List$view(t1.buffer, t1.byteOffset + t2, len); + } + t2 = _this.offset; + end = t2 + len; + end0 = t1.length; + return new Uint8Array(A._ensureNativeList(J.sublist$2$ax(t1, t2, end > end0 ? end0 : end))); + } + }; + A.OutputStreamBase.prototype = {}; + A.OutputStream.prototype = { + writeByte$1(value) { + var t1, t2, _this = this; + if (_this.length === _this._output_stream$_buffer.length) + _this._output_stream$_expandBuffer$0(); + t1 = _this._output_stream$_buffer; + t2 = _this.length++; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = value & 255; + }, + writeBytes$2(bytes, len) { + var t1, t2, t3, t4, _this = this; + type$.List_int._as(bytes); + if (len == null) + len = bytes.length; + for (; t1 = _this.length, t2 = t1 + len, t3 = _this._output_stream$_buffer, t4 = t3.length, t2 > t4;) + _this._output_stream$_expandBuffer$1(t2 - t4); + B.NativeUint8List_methods.setRange$3(t3, t1, t2, bytes); + _this.length += len; + }, + writeBytes$1(bytes) { + return this.writeBytes$2(bytes, null); + }, + writeInputStream$1(stream) { + var t1, t2, t3, t4, t5, _this = this; + for (t1 = stream.start; t2 = _this.length, t3 = A._lateReadCheck(stream.__InputStream__length, "_length"), t4 = stream.offset, t5 = _this._output_stream$_buffer, t2 + (t3 - (t4 - t1)) > t5.length;) + _this._output_stream$_expandBuffer$1(_this.length + (A._lateReadCheck(stream.__InputStream__length, "_length") - (stream.offset - t1)) - _this._output_stream$_buffer.length); + t1 = _this.length; + B.NativeUint8List_methods.setRange$4(t5, t1, t1 + stream.get$length(stream), stream.buffer, stream.offset); + _this.length = _this.length + stream.get$length(stream); + }, + writeUint32$1(value) { + var _this = this; + if (_this.byteOrder === 1) { + _this.writeByte$1(value >>> 24 & 255); + _this.writeByte$1(value >>> 16 & 255); + _this.writeByte$1(value >>> 8 & 255); + _this.writeByte$1(value & 255); + return; + } + _this.writeByte$1(value & 255); + _this.writeByte$1(value >>> 8 & 255); + _this.writeByte$1(value >>> 16 & 255); + _this.writeByte$1(value >>> 24 & 255); + }, + subset$2(start, end) { + var _this = this; + if (start < 0) + start = _this.length + start; + if (end == null) + end = _this.length; + else if (end < 0) + end = _this.length + end; + return A.NativeUint8List_NativeUint8List$view(_this._output_stream$_buffer.buffer, start, end - start); + }, + subset$1(start) { + return this.subset$2(start, null); + }, + _output_stream$_expandBuffer$1(required) { + var blockSize = required != null ? required > 32768 ? required : 32768 : 32768, + t1 = this._output_stream$_buffer, + t2 = t1.length, + newBuffer = new Uint8Array((t2 + blockSize) * 2); + B.NativeUint8List_methods.setRange$3(newBuffer, 0, t2, t1); + this._output_stream$_buffer = newBuffer; + }, + _output_stream$_expandBuffer$0() { + return this._output_stream$_expandBuffer$1(null); + }, + get$length(receiver) { + return this.length; + } + }; + A._ZLibDecoder.prototype = { + decodeBuffer$2$verify(input, verify) { + var t1, t2, t3, buffer, + cmf = input.readByte$0(), + flg = input.readByte$0(), + method = cmf & 8; + B.JSInt_methods._shrOtherPositive$1(cmf, 3); + if (method !== 8) + throw A.wrapException(A.ArchiveException$("Only DEFLATE compression supported: " + method)); + if (B.JSInt_methods.$mod((cmf << 8 >>> 0) + flg, 31) !== 0) + throw A.wrapException(A.ArchiveException$("Invalid FCHECK")); + if ((flg >>> 5 & 1) !== 0) { + input.readUint32$0(); + throw A.wrapException(A.ArchiveException$("FDICT Encoding not currently supported")); + } + t1 = A.HuffmanTable$(B.List_2Bc); + t2 = A.HuffmanTable$(B.List_X3d); + t3 = A.OutputStream$(0, null); + t2 = new A.Inflate(input, t3, t1, t2); + t2.inputSet = true; + t2._inflate$0(); + buffer = type$.List_int._as(A.NativeUint8List_NativeUint8List$view(t3._output_stream$_buffer.buffer, 0, t3.length)); + input.readUint32$0(); + return buffer; + } + }; + A.Deflate.prototype = { + _deflate$1(flush) { + var t1, bstate, i, _this = this; + if (flush > 4 || false) + throw A.wrapException(A.ArchiveException$("Invalid Deflate Parameter")); + if (A._lateReadCheck(_this.__Deflate__pending, "_pending") !== 0) + _this._flushPending$0(); + if (_this._deflate$_input.get$isEOS()) + if (A._lateReadCheck(_this.__Deflate__lookAhead, "_lookAhead") === 0) + t1 = flush !== 0 && _this._status !== 666; + else + t1 = true; + else + t1 = true; + if (t1) { + switch ($.Deflate____config._readField$0().$function) { + case 0: + bstate = _this._deflateStored$1(flush); + break; + case 1: + bstate = _this._deflateFast$1(flush); + break; + case 2: + bstate = _this._deflateSlow$1(flush); + break; + default: + bstate = -1; + break; + } + t1 = bstate === 2; + if (t1 || bstate === 3) + _this._status = 666; + if (bstate === 0 || t1) + return 0; + if (bstate === 1) { + if (flush === 1) { + _this._sendBits$2(2, 3); + _this._sendCode$2(256, B.List_Xg4); + _this.biFlush$0(); + if (1 + A._lateReadCheck(_this.__Deflate__lastEOBLen, "_lastEOBLen") + 10 - A._lateReadCheck(_this.__Deflate__numValidBits, "_numValidBits") < 9) { + _this._sendBits$2(2, 3); + _this._sendCode$2(256, B.List_Xg4); + _this.biFlush$0(); + } + _this.__Deflate__lastEOBLen = 7; + } else { + _this._trStoredBlock$3(0, 0, false); + if (flush === 3) + for (i = 0; i < A._lateReadCheck(_this.__Deflate__hashSize, "_hashSize"); ++i) { + t1 = A._lateReadCheck(_this.__Deflate__head, "_head"); + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = 0; + } + } + _this._flushPending$0(); + } + } + if (flush !== 4) + return 0; + return 1; + }, + _lmInit$0() { + var t1, t2, i, _this = this, + _s9_ = "_hashSize"; + _this.__Deflate__actualWindowSize = 2 * A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize"); + t1 = A._lateReadCheck(_this.__Deflate__head, "_head"); + t2 = A._lateReadCheck(_this.__Deflate__hashSize, _s9_) - 1; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = 0; + for (i = 0; i < A._lateReadCheck(_this.__Deflate__hashSize, _s9_) - 1; ++i) { + t1 = A._lateReadCheck(_this.__Deflate__head, "_head"); + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = 0; + } + _this.__Deflate__lookAhead = _this.__Deflate__blockStart = _this.__Deflate__strStart = 0; + _this.__Deflate__matchLength = _this.__Deflate__prevLength = 2; + _this.__Deflate__insertHash = _this.__Deflate__matchAvailable = 0; + }, + _initBlock$0() { + var i, t1, t2, _this = this, + _s18_ = "_dynamicLengthTree"; + for (i = 0; i < 286; ++i) { + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + t2 = i * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = 0; + } + for (i = 0; i < 30; ++i) { + t1 = A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree"); + t2 = i * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = 0; + } + for (i = 0; i < 19; ++i) { + t1 = A._lateReadCheck(_this.__Deflate__bitLengthTree, "_bitLengthTree"); + t2 = i * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = 0; + } + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + if (512 >= t1.length) + return A.ioore(t1, 512); + t1[512] = 1; + _this.__Deflate__lastLit = _this.__Deflate__matches = _this.__Deflate__optimalLen = _this.__Deflate__staticLen = 0; + }, + _pqdownheap$2(tree, k) { + var v, j, t2, t3, j0, _this = this, + _s8_ = "_heapLen", + t1 = _this._heap; + if (!(k >= 0 && k < 573)) + return A.ioore(t1, k); + v = t1[k]; + j = k << 1 >>> 0; + for (t2 = _this._depth; j <= A._lateReadCheck(_this.__Deflate__heapLen, _s8_); k = j, j = j0) { + if (j < A._lateReadCheck(_this.__Deflate__heapLen, _s8_)) { + t3 = j + 1; + if (!(t3 >= 0 && t3 < 573)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (!(j >= 0 && j < 573)) + return A.ioore(t1, j); + t3 = A.Deflate__smaller(tree, t3, t1[j], t2); + } else + t3 = false; + if (t3) + ++j; + if (!(j >= 0 && j < 573)) + return A.ioore(t1, j); + if (A.Deflate__smaller(tree, v, t1[j], t2)) + break; + t3 = t1[j]; + if (!(k >= 0 && k < 573)) + return A.ioore(t1, k); + t1[k] = t3; + j0 = j << 1 >>> 0; + } + if (!(k >= 0 && k < 573)) + return A.ioore(t1, k); + t1[k] = v; + }, + _scanTree$2(tree, maxCode) { + var nextLen, maxCount, minCount, t2, n, prevLen, count, nextLen0, t3, t4, _this = this, + _s14_ = "_bitLengthTree", + t1 = tree.length; + if (1 >= t1) + return A.ioore(tree, 1); + nextLen = tree[1]; + if (nextLen === 0) { + maxCount = 138; + minCount = 3; + } else { + maxCount = 7; + minCount = 4; + } + t2 = (maxCode + 1) * 2 + 1; + if (!(t2 >= 0 && t2 < t1)) + return A.ioore(tree, t2); + tree[t2] = 65535; + for (n = 0, prevLen = -1, count = 0; n <= maxCode; nextLen = nextLen0) { + ++n; + t2 = n * 2 + 1; + if (!(t2 < t1)) + return A.ioore(tree, t2); + nextLen0 = tree[t2]; + ++count; + if (count < maxCount && nextLen === nextLen0) + continue; + else if (count < minCount) { + t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); + t3 = nextLen * 2; + t4 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); + if (!(t3 < t4.length)) + return A.ioore(t4, t3); + t4 = t4[t3]; + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + t2[t3] = t4 + count; + } else if (nextLen !== 0) { + if (nextLen !== prevLen) { + t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); + t3 = nextLen * 2; + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + t2[t3] = t2[t3] + 1; + } + t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_); + if (32 >= t2.length) + return A.ioore(t2, 32); + t2[32] = t2[32] + 1; + } else { + t2 = _this.__Deflate__bitLengthTree; + if (count <= 10) { + t2 = A._lateReadCheck(t2, _s14_); + if (34 >= t2.length) + return A.ioore(t2, 34); + t2[34] = t2[34] + 1; + } else { + t2 = A._lateReadCheck(t2, _s14_); + if (36 >= t2.length) + return A.ioore(t2, 36); + t2[36] = t2[36] + 1; + } + } + if (nextLen0 === 0) { + maxCount = 138; + minCount = 3; + } else if (nextLen === nextLen0) { + maxCount = 6; + minCount = 3; + } else { + maxCount = 7; + minCount = 4; + } + prevLen = nextLen; + count = 0; + } + }, + _buildBitLengthTree$0() { + var maxBLIndex, t1, t2, _this = this; + _this._scanTree$2(A._lateReadCheck(_this.__Deflate__dynamicLengthTree, "_dynamicLengthTree"), A._lateReadCheck(_this._lDesc.___HuffmanTree_maxCode, "maxCode")); + _this._scanTree$2(A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree"), A._lateReadCheck(_this._dDesc.___HuffmanTree_maxCode, "maxCode")); + _this._blDesc._buildTree$1(_this); + for (maxBLIndex = 18; maxBLIndex >= 3; --maxBLIndex) { + t1 = A._lateReadCheck(_this.__Deflate__bitLengthTree, "_bitLengthTree"); + t2 = B.List_uSC[maxBLIndex] * 2 + 1; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + if (t1[t2] !== 0) + break; + } + _this.__Deflate__optimalLen = A._lateReadCheck(_this.__Deflate__optimalLen, "_optimalLen") + (3 * (maxBLIndex + 1) + 5 + 5 + 4); + return maxBLIndex; + }, + _sendAllTrees$3(lcodes, dcodes, blcodes) { + var t1, rank, t2, t3, _this = this; + _this._sendBits$2(lcodes - 257, 5); + t1 = dcodes - 1; + _this._sendBits$2(t1, 5); + _this._sendBits$2(blcodes - 4, 4); + for (rank = 0; rank < blcodes; ++rank) { + t2 = A._lateReadCheck(_this.__Deflate__bitLengthTree, "_bitLengthTree"); + if (!(rank < 19)) + return A.ioore(B.List_uSC, rank); + t3 = B.List_uSC[rank] * 2 + 1; + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + _this._sendBits$2(t2[t3], 3); + } + _this._sendTree$2(A._lateReadCheck(_this.__Deflate__dynamicLengthTree, "_dynamicLengthTree"), lcodes - 1); + _this._sendTree$2(A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree"), t1); + }, + _sendTree$2(tree, maxCode) { + var nextLen, maxCount, minCount, t2, n, prevLen, count, t3, nextLen0, t4, t5, t6, t7, _this = this, + _s14_ = "_bitLengthTree", + t1 = tree.length; + if (1 >= t1) + return A.ioore(tree, 1); + nextLen = tree[1]; + if (nextLen === 0) { + maxCount = 138; + minCount = 3; + } else { + maxCount = 7; + minCount = 4; + } + for (t2 = type$.List_int, n = 0, prevLen = -1, count = 0; n <= maxCode; nextLen = nextLen0) { + ++n; + t3 = n * 2 + 1; + if (!(t3 < t1)) + return A.ioore(tree, t3); + nextLen0 = tree[t3]; + ++count; + if (count < maxCount && nextLen === nextLen0) + continue; + else if (count < minCount) { + t3 = nextLen * 2; + t4 = t3 + 1; + do { + t5 = t2._as(A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_)); + t6 = t5.length; + if (!(t3 < t6)) + return A.ioore(t5, t3); + t7 = t5[t3]; + if (!(t4 < t6)) + return A.ioore(t5, t4); + _this._sendBits$2(t7 & 65535, t5[t4] & 65535); + } while (--count, count !== 0); + } else if (nextLen !== 0) { + if (nextLen !== prevLen) { + t3 = t2._as(A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_)); + t4 = nextLen * 2; + t5 = t3.length; + if (!(t4 < t5)) + return A.ioore(t3, t4); + t6 = t3[t4]; + ++t4; + if (!(t4 < t5)) + return A.ioore(t3, t4); + _this._sendBits$2(t6 & 65535, t3[t4] & 65535); + --count; + } + t3 = t2._as(A._lateReadCheck(_this.__Deflate__bitLengthTree, _s14_)); + t4 = t3.length; + if (32 >= t4) + return A.ioore(t3, 32); + t5 = t3[32]; + if (33 >= t4) + return A.ioore(t3, 33); + _this._sendBits$2(t5 & 65535, t3[33] & 65535); + _this._sendBits$2(count - 3, 2); + } else { + t3 = _this.__Deflate__bitLengthTree; + if (count <= 10) { + t3 = t2._as(A._lateReadCheck(t3, _s14_)); + t4 = t3.length; + if (34 >= t4) + return A.ioore(t3, 34); + t5 = t3[34]; + if (35 >= t4) + return A.ioore(t3, 35); + _this._sendBits$2(t5 & 65535, t3[35] & 65535); + _this._sendBits$2(count - 3, 3); + } else { + t3 = t2._as(A._lateReadCheck(t3, _s14_)); + t4 = t3.length; + if (36 >= t4) + return A.ioore(t3, 36); + t5 = t3[36]; + if (37 >= t4) + return A.ioore(t3, 37); + _this._sendBits$2(t5 & 65535, t3[37] & 65535); + _this._sendBits$2(count - 11, 7); + } + } + if (nextLen0 === 0) { + maxCount = 138; + minCount = 3; + } else if (nextLen === nextLen0) { + maxCount = 6; + minCount = 3; + } else { + maxCount = 7; + minCount = 4; + } + prevLen = nextLen; + count = 0; + } + }, + _putBytes$3(p, start, len) { + var _this = this, + _s8_ = "_pending"; + if (len === 0) + return; + B.NativeUint8List_methods.setRange$4(A._lateReadCheck(_this.__Deflate__pendingBuffer, "_pendingBuffer"), A._lateReadCheck(_this.__Deflate__pending, _s8_), A._lateReadCheck(_this.__Deflate__pending, _s8_) + len, p, start); + _this.__Deflate__pending = A._lateReadCheck(_this.__Deflate__pending, _s8_) + len; + }, + _putByte$1(c) { + var t1 = A._lateReadCheck(this.__Deflate__pendingBuffer, "_pendingBuffer"), + t2 = A._lateReadCheck(this.__Deflate__pending, "_pending"); + this.__Deflate__pending = t2 + 1; + if (t2 >>> 0 !== t2 || t2 >= t1.length) + return A.ioore(t1, t2); + t1[t2] = c; + }, + _sendCode$2(c, tree) { + var t1, t2, t3; + type$.List_int._as(tree); + t1 = c * 2; + t2 = tree.length; + if (!(t1 < t2)) + return A.ioore(tree, t1); + t3 = tree[t1]; + ++t1; + if (!(t1 < t2)) + return A.ioore(tree, t1); + this._sendBits$2(t3 & 65535, tree[t1] & 65535); + }, + _sendBits$2(valueRenamed, $length) { + var _this = this, + _s13_ = "_numValidBits", + _s10_ = "_bitBuffer", + t1 = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_), + t2 = _this.__Deflate__bitBuffer; + if (t1 > 16 - $length) { + t1 = (A._lateReadCheck(t2, _s10_) | B.JSInt_methods.$shl(valueRenamed, A._lateReadCheck(_this.__Deflate__numValidBits, _s13_)) & 65535) >>> 0; + _this.__Deflate__bitBuffer = t1; + t1 = A._lateReadCheck(t1, _s10_); + _this._putByte$1(t1); + _this._putByte$1(A._rshift(t1, 8)); + _this.__Deflate__bitBuffer = A._rshift(valueRenamed, 16 - A._lateReadCheck(_this.__Deflate__numValidBits, _s13_)); + _this.__Deflate__numValidBits = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) + ($length - 16); + } else { + _this.__Deflate__bitBuffer = (A._lateReadCheck(t2, _s10_) | B.JSInt_methods.$shl(valueRenamed, A._lateReadCheck(_this.__Deflate__numValidBits, _s13_)) & 65535) >>> 0; + _this.__Deflate__numValidBits = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) + $length; + } + }, + _trTally$2(dist, lc) { + var outLength, dcode, t4, _this = this, + _s14_ = "_pendingBuffer", + _s8_ = "_lastLit", + _s18_ = "_dynamicLengthTree", + _s8_0 = "_matches", + _s16_ = "_dynamicDistTree", + t1 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_), + t2 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + A._lateReadCheck(_this.__Deflate__lastLit, _s8_) * 2, + t3 = A._rshift(dist, 8); + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t3; + t3 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); + t2 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + A._lateReadCheck(_this.__Deflate__lastLit, _s8_) * 2 + 1; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t3[t2] = dist; + t2 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); + t3 = A._lateReadCheck(_this.__Deflate__lbuf, "_lbuf") + A._lateReadCheck(_this.__Deflate__lastLit, _s8_); + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t2[t3] = lc; + _this.__Deflate__lastLit = A._lateReadCheck(_this.__Deflate__lastLit, _s8_) + 1; + if (dist === 0) { + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + t2 = lc * 2; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t1[t2] + 1; + } else { + _this.__Deflate__matches = A._lateReadCheck(_this.__Deflate__matches, _s8_0) + 1; + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + if (!(lc >= 0 && lc < 256)) + return A.ioore(B.List_NUU, lc); + t2 = (B.List_NUU[lc] + 256 + 1) * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t1[t2] + 1; + t2 = A._lateReadCheck(_this.__Deflate__dynamicDistTree, _s16_); + t1 = A._HuffmanTree__dCode(dist - 1) * 2; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + t2[t1] = t2[t1] + 1; + } + if ((A._lateReadCheck(_this.__Deflate__lastLit, _s8_) & 8191) === 0 && A._lateReadCheck(_this.__Deflate__level, "_level") > 2) { + outLength = A._lateReadCheck(_this.__Deflate__lastLit, _s8_) * 8; + t1 = A._lateReadCheck(_this.__Deflate__strStart, "_strStart"); + t2 = A._lateReadCheck(_this.__Deflate__blockStart, "_blockStart"); + for (dcode = 0; dcode < 30; ++dcode) { + t3 = A._lateReadCheck(_this.__Deflate__dynamicDistTree, _s16_); + t4 = dcode * 2; + if (!(t4 < t3.length)) + return A.ioore(t3, t4); + outLength += t3[t4] * (5 + B.List_X3d0[dcode]); + } + outLength = A._rshift(outLength, 3); + if (A._lateReadCheck(_this.__Deflate__matches, _s8_0) < A._lateReadCheck(_this.__Deflate__lastLit, _s8_) / 2 && outLength < (t1 - t2) / 2) + return true; + } + return A._lateReadCheck(_this.__Deflate__lastLit, _s8_) === A._lateReadCheck(_this.__Deflate__litBufferSize, "_litBufferSize") - 1; + }, + _compressBlock$2(ltree, dtree) { + var lx, t2, t3, dist, lc, code, extra, _this = this, + _s8_ = "_lastLit", + _s14_ = "_pendingBuffer", + t1 = type$.List_int; + t1._as(ltree); + t1._as(dtree); + if (A._lateReadCheck(_this.__Deflate__lastLit, _s8_) !== 0) { + lx = 0; + do { + t1 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); + t2 = lx * 2; + t3 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + t2; + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t1 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); + t2 = A._lateReadCheck(_this.__Deflate__dbuf, "_dbuf") + t2 + 1; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + dist = t3 << 8 & 65280 | t1[t2] & 255; + t2 = A._lateReadCheck(_this.__Deflate__pendingBuffer, _s14_); + t1 = A._lateReadCheck(_this.__Deflate__lbuf, "_lbuf") + lx; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + lc = t2[t1] & 255; + ++lx; + if (dist === 0) + _this._sendCode$2(lc, ltree); + else { + code = B.List_NUU[lc]; + _this._sendCode$2(code + 256 + 1, ltree); + if (!(code < 29)) + return A.ioore(B.List_qQn0, code); + extra = B.List_qQn0[code]; + if (extra !== 0) + _this._sendBits$2(lc - B.List_qQn1[code], extra); + --dist; + code = A._HuffmanTree__dCode(dist); + _this._sendCode$2(code, dtree); + if (!(code < 30)) + return A.ioore(B.List_X3d0, code); + extra = B.List_X3d0[code]; + if (extra !== 0) + _this._sendBits$2(dist - B.List_X3d1[code], extra); + } + } while (lx < A._lateReadCheck(_this.__Deflate__lastLit, _s8_)); + } + _this._sendCode$2(256, ltree); + if (513 >= ltree.length) + return A.ioore(ltree, 513); + _this.__Deflate__lastEOBLen = ltree[513]; + }, + setDataType$0() { + var n, binFreq, t1, t2, asciiFreq, _this = this, + _s18_ = "_dynamicLengthTree"; + for (n = 0, binFreq = 0; n < 7;) { + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + t2 = n * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + binFreq += t1[t2]; + ++n; + } + for (asciiFreq = 0; n < 128;) { + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + t2 = n * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + asciiFreq += t1[t2]; + ++n; + } + for (; n < 256;) { + t1 = A._lateReadCheck(_this.__Deflate__dynamicLengthTree, _s18_); + t2 = n * 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + binFreq += t1[t2]; + ++n; + } + _this._dataType = binFreq > A._rshift(asciiFreq, 2) ? 0 : 1; + }, + biFlush$0() { + var t1, _this = this, + _s13_ = "_numValidBits", + _s10_ = "_bitBuffer"; + if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) === 16) { + t1 = A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_); + _this._putByte$1(t1); + _this._putByte$1(A._rshift(t1, 8)); + _this.__Deflate__numValidBits = _this.__Deflate__bitBuffer = 0; + } else if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) >= 8) { + _this._putByte$1(A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_)); + _this.__Deflate__bitBuffer = A._rshift(A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_), 8); + _this.__Deflate__numValidBits = A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) - 8; + } + }, + _biWindup$0() { + var t1, _this = this, + _s13_ = "_numValidBits", + _s10_ = "_bitBuffer"; + if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) > 8) { + t1 = A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_); + _this._putByte$1(t1); + _this._putByte$1(A._rshift(t1, 8)); + } else if (A._lateReadCheck(_this.__Deflate__numValidBits, _s13_) > 0) + _this._putByte$1(A._lateReadCheck(_this.__Deflate__bitBuffer, _s10_)); + _this.__Deflate__numValidBits = _this.__Deflate__bitBuffer = 0; + }, + _flushBlockOnly$1(eof) { + var maxBlIndex, optLenb, staticLenb, _this = this, + _s11_ = "_blockStart", + _s9_ = "_strStart", + t1 = A._lateReadCheck(_this.__Deflate__blockStart, _s11_) >= 0 ? A._lateReadCheck(_this.__Deflate__blockStart, _s11_) : -1, + t2 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - A._lateReadCheck(_this.__Deflate__blockStart, _s11_); + if (A._lateReadCheck(_this.__Deflate__level, "_level") > 0) { + if (_this._dataType === 2) + _this.setDataType$0(); + _this._lDesc._buildTree$1(_this); + _this._dDesc._buildTree$1(_this); + maxBlIndex = _this._buildBitLengthTree$0(); + optLenb = A._rshift(A._lateReadCheck(_this.__Deflate__optimalLen, "_optimalLen") + 3 + 7, 3); + staticLenb = A._rshift(A._lateReadCheck(_this.__Deflate__staticLen, "_staticLen") + 3 + 7, 3); + if (staticLenb <= optLenb) + optLenb = staticLenb; + } else { + staticLenb = t2 + 5; + optLenb = staticLenb; + maxBlIndex = 0; + } + if (t2 + 4 <= optLenb && t1 !== -1) + _this._trStoredBlock$3(t1, t2, eof); + else if (staticLenb === optLenb) { + _this._sendBits$2(2 + (eof ? 1 : 0), 3); + _this._compressBlock$2(B.List_Xg4, B.List_iYO); + } else { + _this._sendBits$2(4 + (eof ? 1 : 0), 3); + _this._sendAllTrees$3(A._lateReadCheck(_this._lDesc.___HuffmanTree_maxCode, "maxCode") + 1, A._lateReadCheck(_this._dDesc.___HuffmanTree_maxCode, "maxCode") + 1, maxBlIndex + 1); + _this._compressBlock$2(A._lateReadCheck(_this.__Deflate__dynamicLengthTree, "_dynamicLengthTree"), A._lateReadCheck(_this.__Deflate__dynamicDistTree, "_dynamicDistTree")); + } + _this._initBlock$0(); + if (eof) + _this._biWindup$0(); + _this.__Deflate__blockStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + _this._flushPending$0(); + }, + _deflateStored$1(flush) { + var t1, maxStart, _this = this, + _s18_ = "_pendingBufferSize", + _s10_ = "_lookAhead", + _s9_ = "_strStart", + _s11_ = "_blockStart", + maxBlockSize = 65535 > A._lateReadCheck(_this.__Deflate__pendingBufferSize, _s18_) - 5 ? A._lateReadCheck(_this.__Deflate__pendingBufferSize, _s18_) - 5 : 65535; + for (t1 = flush === 0; true;) { + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) <= 1) { + _this._fillWindow$0(); + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0 && t1) + return 0; + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) + break; + } + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__lookAhead, _s10_); + _this.__Deflate__lookAhead = 0; + maxStart = A._lateReadCheck(_this.__Deflate__blockStart, _s11_) + maxBlockSize; + if (A._lateReadCheck(_this.__Deflate__strStart, _s9_) >= maxStart) { + _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - maxStart; + _this.__Deflate__strStart = maxStart; + _this._flushBlockOnly$1(false); + } + if (A._lateReadCheck(_this.__Deflate__strStart, _s9_) - A._lateReadCheck(_this.__Deflate__blockStart, _s11_) >= A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize") - 262) + _this._flushBlockOnly$1(false); + } + t1 = flush === 4; + _this._flushBlockOnly$1(t1); + return t1 ? 3 : 1; + }, + _trStoredBlock$3(buf, storedLen, eof) { + var t1, _this = this; + _this._sendBits$2(eof ? 1 : 0, 3); + _this._biWindup$0(); + _this.__Deflate__lastEOBLen = 8; + _this._putByte$1(storedLen); + _this._putByte$1(A._rshift(storedLen, 8)); + t1 = (~storedLen >>> 0) + 65536 & 65535; + _this._putByte$1(t1); + _this._putByte$1(A._rshift(t1, 8)); + _this._putBytes$3(A._lateReadCheck(_this.__Deflate__window, "_window"), buf, storedLen); + }, + _fillWindow$0() { + var more, p, n, t2, m, t3, t4, _this = this, + _s10_ = "_lookAhead", + _s9_ = "_strStart", + _s11_ = "_windowSize", + _s7_ = "_window", + t1 = _this._deflate$_input; + do { + more = A._lateReadCheck(_this.__Deflate__actualWindowSize, "_actualWindowSize") - A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (more === 0 && A._lateReadCheck(_this.__Deflate__strStart, _s9_) === 0 && A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) + more = A._lateReadCheck(_this.__Deflate__windowSize, _s11_); + else if (A._lateReadCheck(_this.__Deflate__strStart, _s9_) >= A._lateReadCheck(_this.__Deflate__windowSize, _s11_) + A._lateReadCheck(_this.__Deflate__windowSize, _s11_) - 262) { + B.NativeUint8List_methods.setRange$4(A._lateReadCheck(_this.__Deflate__window, _s7_), 0, A._lateReadCheck(_this.__Deflate__windowSize, _s11_), A._lateReadCheck(_this.__Deflate__window, _s7_), A._lateReadCheck(_this.__Deflate__windowSize, _s11_)); + _this._matchStart = _this._matchStart - A._lateReadCheck(_this.__Deflate__windowSize, _s11_); + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - A._lateReadCheck(_this.__Deflate__windowSize, _s11_); + _this.__Deflate__blockStart = A._lateReadCheck(_this.__Deflate__blockStart, "_blockStart") - A._lateReadCheck(_this.__Deflate__windowSize, _s11_); + p = A._lateReadCheck(_this.__Deflate__hashSize, "_hashSize"); + n = p; + do { + t2 = A._lateReadCheck(_this.__Deflate__head, "_head"); + --p; + if (!(p >= 0 && p < t2.length)) + return A.ioore(t2, p); + m = t2[p] & 65535; + t2 = A._lateReadCheck(_this.__Deflate__head, "_head"); + t3 = m >= A._lateReadCheck(_this.__Deflate__windowSize, _s11_) ? m - A._lateReadCheck(_this.__Deflate__windowSize, _s11_) : 0; + if (!(p < t2.length)) + return A.ioore(t2, p); + t2[p] = t3; + } while (--n, n !== 0); + p = A._lateReadCheck(_this.__Deflate__windowSize, _s11_); + n = p; + do { + t2 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + --p; + if (!(p >= 0 && p < t2.length)) + return A.ioore(t2, p); + m = t2[p] & 65535; + t2 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + t3 = m >= A._lateReadCheck(_this.__Deflate__windowSize, _s11_) ? m - A._lateReadCheck(_this.__Deflate__windowSize, _s11_) : 0; + if (!(p < t2.length)) + return A.ioore(t2, p); + t2[p] = t3; + } while (--n, n !== 0); + more += A._lateReadCheck(_this.__Deflate__windowSize, _s11_); + } + if (t1.get$isEOS()) + return; + n = _this._readBuf$3(A._lateReadCheck(_this.__Deflate__window, _s7_), A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__lookAhead, _s10_), more); + t2 = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) + n; + _this.__Deflate__lookAhead = t2; + if (A._lateReadCheck(t2, _s10_) >= 3) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t3 >>> 0 !== t3 || t3 >= t2.length) + return A.ioore(t2, t3); + t3 = t2[t3] & 255; + _this.__Deflate__insertHash = t3; + t3 = B.JSInt_methods.$shl(A._lateReadCheck(t3, "_insertHash"), A._lateReadCheck(_this.__Deflate__hashShift, "_hashShift")); + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + _this.__Deflate__insertHash = ((t3 ^ t2[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, "_hashMask")) >>> 0; + } + } while (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262 && !t1.get$isEOS()); + }, + _deflateFast$1(flush) { + var t1, hashHead, t2, t3, t4, t5, bflush, _this = this, + _s10_ = "_lookAhead", + _s11_ = "_insertHash", + _s10_0 = "_hashShift", + _s7_ = "_window", + _s9_ = "_strStart", + _s9_0 = "_hashMask", + _s5_ = "_head", + _s11_0 = "_windowMask", + _s12_ = "_matchLength"; + for (t1 = flush === 0, hashHead = 0; true;) { + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262) { + _this._fillWindow$0(); + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262 && t1) + return 0; + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) + break; + } + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) >= 3) { + t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; + t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t3 >>> 0 !== t3 || t3 >= t4.length) + return A.ioore(t4, t3); + hashHead = t4[t3] & 65535; + t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; + t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t5 >>> 0 !== t5 || t5 >= t2.length) + return A.ioore(t2, t5); + t5 = t2[t5]; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t3[t4] = t5; + t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t4 >>> 0 !== t4 || t4 >= t5.length) + return A.ioore(t5, t4); + t5[t4] = t3; + } + if (hashHead !== 0 && (A._lateReadCheck(_this.__Deflate__strStart, _s9_) - hashHead & 65535) <= A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize") - 262) + if (A._lateReadCheck(_this.__Deflate__strategy, "_strategy") !== 2) + _this.__Deflate__matchLength = _this._longestMatch$1(hashHead); + if (A._lateReadCheck(_this.__Deflate__matchLength, _s12_) >= 3) { + bflush = _this._trTally$2(A._lateReadCheck(_this.__Deflate__strStart, _s9_) - _this._matchStart, A._lateReadCheck(_this.__Deflate__matchLength, _s12_) - 3); + _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - A._lateReadCheck(_this.__Deflate__matchLength, _s12_); + t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_); + t3 = $.Deflate____config._value; + if (t3 == null ? $.Deflate____config == null : t3 === $.Deflate____config) + A.throwExpression(A.LateError$fieldNI($.Deflate____config.__late_helper$_name)); + if (t2 <= t3.maxLazy && A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) >= 3) { + _this.__Deflate__matchLength = A._lateReadCheck(_this.__Deflate__matchLength, _s12_) - 1; + do { + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; + t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t3 >>> 0 !== t3 || t3 >= t4.length) + return A.ioore(t4, t3); + hashHead = t4[t3] & 65535; + t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; + t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t5 >>> 0 !== t5 || t5 >= t2.length) + return A.ioore(t2, t5); + t5 = t2[t5]; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t3[t4] = t5; + t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t4 >>> 0 !== t4 || t4 >= t5.length) + return A.ioore(t5, t4); + t5[t4] = t3; + } while (t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_) - 1, _this.__Deflate__matchLength = t2, t2 !== 0); + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + } else { + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__matchLength, _s12_); + _this.__Deflate__matchLength = 0; + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t3 >>> 0 !== t3 || t3 >= t2.length) + return A.ioore(t2, t3); + t3 = t2[t3] & 255; + _this.__Deflate__insertHash = t3; + t3 = B.JSInt_methods.$shl(A._lateReadCheck(t3, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + _this.__Deflate__insertHash = ((t3 ^ t2[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; + } + } else { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t3 >>> 0 !== t3 || t3 >= t2.length) + return A.ioore(t2, t3); + bflush = _this._trTally$2(0, t2[t3] & 255); + _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 1; + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + } + if (bflush) + _this._flushBlockOnly$1(false); + } + t1 = flush === 4; + _this._flushBlockOnly$1(t1); + return t1 ? 3 : 1; + }, + _deflateSlow$1(flush) { + var t1, hashHead, t2, t3, t4, t5, maxInsert, bflush, _this = this, + _s10_ = "_lookAhead", + _s11_ = "_insertHash", + _s10_0 = "_hashShift", + _s7_ = "_window", + _s9_ = "_strStart", + _s9_0 = "_hashMask", + _s5_ = "_head", + _s11_0 = "_windowMask", + _s12_ = "_matchLength", + _s11_1 = "_prevLength", + _s9_1 = "_strategy", + _s15_ = "_matchAvailable"; + for (t1 = flush === 0, hashHead = 0; true;) { + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262) { + _this._fillWindow$0(); + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) < 262 && t1) + return 0; + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) === 0) + break; + } + if (A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) >= 3) { + t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; + t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t3 >>> 0 !== t3 || t3 >= t4.length) + return A.ioore(t4, t3); + hashHead = t4[t3] & 65535; + t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; + t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t5 >>> 0 !== t5 || t5 >= t2.length) + return A.ioore(t2, t5); + t5 = t2[t5]; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t3[t4] = t5; + t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t4 >>> 0 !== t4 || t4 >= t5.length) + return A.ioore(t5, t4); + t5[t4] = t3; + } + t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_); + _this.__Deflate__prevLength = t2; + _this.__Deflate__prevMatch = _this._matchStart; + _this.__Deflate__matchLength = 2; + if (hashHead !== 0) { + t2 = A._lateReadCheck(t2, _s11_1); + t3 = $.Deflate____config._value; + if (t3 == null ? $.Deflate____config == null : t3 === $.Deflate____config) + A.throwExpression(A.LateError$fieldNI($.Deflate____config.__late_helper$_name)); + t2 = t2 < t3.maxLazy && (A._lateReadCheck(_this.__Deflate__strStart, _s9_) - hashHead & 65535) <= A._lateReadCheck(_this.__Deflate__windowSize, "_windowSize") - 262; + } else + t2 = false; + if (t2) { + if (A._lateReadCheck(_this.__Deflate__strategy, _s9_1) !== 2) + _this.__Deflate__matchLength = _this._longestMatch$1(hashHead); + if (A._lateReadCheck(_this.__Deflate__matchLength, _s12_) <= 5) + if (A._lateReadCheck(_this.__Deflate__strategy, _s9_1) !== 1) + t2 = A._lateReadCheck(_this.__Deflate__matchLength, _s12_) === 3 && A._lateReadCheck(_this.__Deflate__strStart, _s9_) - _this._matchStart > 4096; + else + t2 = true; + else + t2 = false; + if (t2) + _this.__Deflate__matchLength = 2; + } + if (A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) >= 3 && A._lateReadCheck(_this.__Deflate__matchLength, _s12_) <= A._lateReadCheck(_this.__Deflate__prevLength, _s11_1)) { + maxInsert = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 3; + bflush = _this._trTally$2(A._lateReadCheck(_this.__Deflate__strStart, _s9_) - 1 - A._lateReadCheck(_this.__Deflate__prevMatch, "_prevMatch"), A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 3); + _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - (A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 1); + _this.__Deflate__prevLength = A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 2; + do { + t2 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + _this.__Deflate__strStart = t2; + if (t2 <= maxInsert) { + t2 = B.JSInt_methods.$shl(A._lateReadCheck(_this.__Deflate__insertHash, _s11_), A._lateReadCheck(_this.__Deflate__hashShift, _s10_0)); + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 2; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + _this.__Deflate__insertHash = ((t2 ^ t3[t4] & 255) & A._lateReadCheck(_this.__Deflate__hashMask, _s9_0)) >>> 0; + t4 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t3 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t3 >>> 0 !== t3 || t3 >= t4.length) + return A.ioore(t4, t3); + hashHead = t4[t3] & 65535; + t3 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + t4 = (A._lateReadCheck(_this.__Deflate__strStart, _s9_) & A._lateReadCheck(_this.__Deflate__windowMask, _s11_0)) >>> 0; + t2 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t5 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + if (t5 >>> 0 !== t5 || t5 >= t2.length) + return A.ioore(t2, t5); + t5 = t2[t5]; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t3[t4] = t5; + t5 = A._lateReadCheck(_this.__Deflate__head, _s5_); + t4 = A._lateReadCheck(_this.__Deflate__insertHash, _s11_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_); + if (t4 >>> 0 !== t4 || t4 >= t5.length) + return A.ioore(t5, t4); + t5[t4] = t3; + } + } while (t2 = A._lateReadCheck(_this.__Deflate__prevLength, _s11_1) - 1, _this.__Deflate__prevLength = t2, t2 !== 0); + _this.__Deflate__matchAvailable = 0; + _this.__Deflate__matchLength = 2; + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + if (bflush) + _this._flushBlockOnly$1(false); + } else if (A._lateReadCheck(_this.__Deflate__matchAvailable, _s15_) !== 0) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t3 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - 1; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + if (_this._trTally$2(0, t2[t3] & 255)) + _this._flushBlockOnly$1(false); + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 1; + } else { + _this.__Deflate__matchAvailable = 1; + _this.__Deflate__strStart = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 1; + _this.__Deflate__lookAhead = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_) - 1; + } + } + if (A._lateReadCheck(_this.__Deflate__matchAvailable, _s15_) !== 0) { + t1 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t2 = A._lateReadCheck(_this.__Deflate__strStart, _s9_) - 1; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + _this._trTally$2(0, t1[t2] & 255); + _this.__Deflate__matchAvailable = 0; + } + t1 = flush === 4; + _this._flushBlockOnly$1(t1); + return t1 ? 3 : 1; + }, + _longestMatch$1(curMatch) { + var scanEnd1, scanEnd, scan0, match, len, _this = this, + _s9_ = "_strStart", + _s11_ = "_prevLength", + _s11_0 = "_windowSize", + _s7_ = "_window", + _s10_ = "_lookAhead", + chainLength = $.Deflate____config._readField$0().maxChain, + scan = A._lateReadCheck(_this.__Deflate__strStart, _s9_), + bestLen = A._lateReadCheck(_this.__Deflate__prevLength, _s11_), + limit = A._lateReadCheck(_this.__Deflate__strStart, _s9_) > A._lateReadCheck(_this.__Deflate__windowSize, _s11_0) - 262 ? A._lateReadCheck(_this.__Deflate__strStart, _s9_) - (A._lateReadCheck(_this.__Deflate__windowSize, _s11_0) - 262) : 0, + niceMatch = $.Deflate____config._readField$0().niceLength, + t1 = A._lateReadCheck(_this.__Deflate__windowMask, "_windowMask"), + strend = A._lateReadCheck(_this.__Deflate__strStart, _s9_) + 258, + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_), + t3 = scan + bestLen, + t4 = t3 - 1; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + scanEnd1 = t2[t4]; + t4 = A._lateReadCheck(_this.__Deflate__window, _s7_); + if (!(t3 >= 0 && t3 < t4.length)) + return A.ioore(t4, t3); + scanEnd = t4[t3]; + if (A._lateReadCheck(_this.__Deflate__prevLength, _s11_) >= $.Deflate____config._readField$0().goodLength) + chainLength = chainLength >>> 2; + if (niceMatch > A._lateReadCheck(_this.__Deflate__lookAhead, _s10_)) + niceMatch = A._lateReadCheck(_this.__Deflate__lookAhead, _s10_); + scan0 = strend - 258; + do { + c$0: { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t3 = curMatch + bestLen; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + if (t2[t3] === scanEnd) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + --t3; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + if (t2[t3] === scanEnd1) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + if (!(curMatch >= 0 && curMatch < t2.length)) + return A.ioore(t2, curMatch); + t2 = t2[curMatch]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + if (!(scan >= 0 && scan < t3.length)) + return A.ioore(t3, scan); + if (t2 === t3[scan]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + match = curMatch + 1; + if (!(match < t2.length)) + return A.ioore(t2, match); + t2 = t2[match]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t4 = scan + 1; + if (!(t4 < t3.length)) + return A.ioore(t3, t4); + t4 = t2 !== t3[t4]; + t2 = t4; + } else { + match = curMatch; + t2 = true; + } + } else { + match = curMatch; + t2 = true; + } + } else { + match = curMatch; + t2 = true; + } + if (t2) + break c$0; + scan += 2; + ++match; + do { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan >= 0 && scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match >= 0 && match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + if (t2 === t3[match]) { + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++scan; + if (!(scan < t2.length)) + return A.ioore(t2, scan); + t2 = t2[scan]; + t3 = A._lateReadCheck(_this.__Deflate__window, _s7_); + ++match; + if (!(match < t3.length)) + return A.ioore(t3, match); + t2 = t2 === t3[match] && scan < strend; + } else + t2 = false; + } else + t2 = false; + } else + t2 = false; + } else + t2 = false; + } else + t2 = false; + } else + t2 = false; + } else + t2 = false; + } while (t2); + len = 258 - (strend - scan); + if (len > bestLen) { + _this._matchStart = curMatch; + if (len >= niceMatch) { + bestLen = len; + break; + } + t2 = A._lateReadCheck(_this.__Deflate__window, _s7_); + t3 = scan0 + len; + t4 = t3 - 1; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + scanEnd1 = t2[t4]; + t4 = A._lateReadCheck(_this.__Deflate__window, _s7_); + if (!(t3 < t4.length)) + return A.ioore(t4, t3); + scanEnd = t4[t3]; + bestLen = len; + } + scan = scan0; + } + t2 = A._lateReadCheck(_this.__Deflate__prev, "_prev"); + t3 = curMatch & t1; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + curMatch = t2[t3] & 65535; + if (curMatch > limit) { + --chainLength; + t2 = chainLength !== 0; + } else + t2 = false; + } while (t2); + if (bestLen <= A._lateReadCheck(_this.__Deflate__lookAhead, _s10_)) + return bestLen; + return A._lateReadCheck(_this.__Deflate__lookAhead, _s10_); + }, + _readBuf$3(buf, start, size) { + var data, len, bytes, len0, _this = this; + if (size === 0 || _this._deflate$_input.get$isEOS()) + return 0; + data = _this._deflate$_input.readBytes$1(size); + len = data.get$length(data); + if (len === 0) + return 0; + bytes = data.toUint8List$0(); + len0 = bytes.length; + if (len > len0) + len = len0; + B.NativeUint8List_methods.setRange$3(buf, start, start + len, bytes); + _this.total += len; + _this.crc32 = A.getCrc32(bytes, _this.crc32); + return len; + }, + _flushPending$0() { + var _this = this, + _s8_ = "_pending", + t1 = A._lateReadCheck(_this.__Deflate__pending, _s8_); + _this._deflate$_output.writeBytes$2(A._lateReadCheck(_this.__Deflate__pendingBuffer, "_pendingBuffer"), t1); + _this.__Deflate__pendingOut = A._lateReadCheck(_this.__Deflate__pendingOut, "_pendingOut") + t1; + t1 = A._lateReadCheck(_this.__Deflate__pending, _s8_) - t1; + _this.__Deflate__pending = t1; + if (A._lateReadCheck(t1, _s8_) === 0) + _this.__Deflate__pendingOut = 0; + }, + _getConfig$1(level) { + switch (level) { + case 0: + return new A._DeflaterConfig(0, 0, 0, 0, 0); + case 1: + return new A._DeflaterConfig(4, 4, 8, 4, 1); + case 2: + return new A._DeflaterConfig(4, 5, 16, 8, 1); + case 3: + return new A._DeflaterConfig(4, 6, 32, 32, 1); + case 4: + return new A._DeflaterConfig(4, 4, 16, 16, 2); + case 5: + return new A._DeflaterConfig(8, 16, 32, 32, 2); + case 6: + return new A._DeflaterConfig(8, 16, 128, 128, 2); + case 7: + return new A._DeflaterConfig(8, 32, 128, 256, 2); + case 8: + return new A._DeflaterConfig(32, 128, 258, 1024, 2); + case 9: + return new A._DeflaterConfig(32, 258, 258, 4096, 2); + } + throw A.wrapException(A.ArchiveException$("Invalid Deflate parameter")); + } + }; + A._DeflaterConfig.prototype = {}; + A._HuffmanTree.prototype = { + _genBitlen$1(s) { + var t2, bits, t3, t4, t5, h, t6, overflow, n, t7, t8, t9, xbits, f, bits0, m, _this = this, + _s10_ = "staticDesc", + _s8_ = "_heapMax", + _s11_ = "_optimalLen", + t1 = A._lateReadCheck(_this.___HuffmanTree_dynamicTree, "dynamicTree"), + stree = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).staticTree, + extra = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).extraBits, + baseRenamed = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).extraBase, + maxLength = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).maxLength; + for (t2 = s._bitLengthCount, bits = 0; bits <= 15; ++bits) + t2[bits] = 0; + t3 = s._heap; + t4 = A._lateReadCheck(s.__Deflate__heapMax, _s8_); + if (t4 >>> 0 !== t4 || t4 >= 573) + return A.ioore(t3, t4); + t4 = t3[t4] * 2 + 1; + t5 = t1.length; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t1, t4); + t1[t4] = 0; + for (h = A._lateReadCheck(s.__Deflate__heapMax, _s8_) + 1, t4 = stree != null, t6 = extra.length, overflow = 0; h < 573; ++h) { + if (!(h >= 0)) + return A.ioore(t3, h); + n = t3[h]; + t7 = n * 2; + t8 = t7 + 1; + if (!(t8 >= 0 && t8 < t5)) + return A.ioore(t1, t8); + t9 = t1[t8] * 2 + 1; + if (!(t9 < t5)) + return A.ioore(t1, t9); + bits = t1[t9] + 1; + if (bits > maxLength) { + ++overflow; + bits = maxLength; + } + t1[t8] = bits; + if (n > A._lateReadCheck(_this.___HuffmanTree_maxCode, "maxCode")) + continue; + if (!(bits < 16)) + return A.ioore(t2, bits); + t2[bits] = t2[bits] + 1; + if (n >= baseRenamed) { + t9 = n - baseRenamed; + if (!(t9 >= 0 && t9 < t6)) + return A.ioore(extra, t9); + xbits = extra[t9]; + } else + xbits = 0; + if (!(t7 >= 0 && t7 < t5)) + return A.ioore(t1, t7); + f = t1[t7]; + s.__Deflate__optimalLen = A._lateReadCheck(s.__Deflate__optimalLen, _s11_) + f * (bits + xbits); + if (t4) { + t7 = A._lateReadCheck(s.__Deflate__staticLen, "_staticLen"); + if (!(t8 < stree.length)) + return A.ioore(stree, t8); + s.__Deflate__staticLen = t7 + f * (stree[t8] + xbits); + } + } + if (overflow === 0) + return; + bits = maxLength - 1; + do { + bits0 = bits; + while (true) { + if (!(bits0 >= 0 && bits0 < 16)) + return A.ioore(t2, bits0); + t4 = t2[bits0]; + if (!(t4 === 0)) + break; + --bits0; + } + t2[bits0] = t4 - 1; + t4 = bits0 + 1; + if (!(t4 < 16)) + return A.ioore(t2, t4); + t2[t4] = t2[t4] + 2; + if (!(maxLength < 16)) + return A.ioore(t2, maxLength); + t2[maxLength] = t2[maxLength] - 1; + overflow -= 2; + } while (overflow > 0); + for (bits = maxLength; bits !== 0; --bits) { + if (!(bits >= 0)) + return A.ioore(t2, bits); + n = t2[bits]; + for (; n !== 0;) { + --h; + if (!(h >= 0 && h < 573)) + return A.ioore(t3, h); + m = t3[h]; + if (m > A._lateReadCheck(_this.___HuffmanTree_maxCode, "maxCode")) + continue; + t4 = m * 2; + t6 = t4 + 1; + if (!(t6 >= 0 && t6 < t5)) + return A.ioore(t1, t6); + if (t1[t6] !== bits) { + t7 = A._lateReadCheck(s.__Deflate__optimalLen, _s11_); + t8 = t1[t6]; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t1, t4); + s.__Deflate__optimalLen = t7 + (bits - t8) * t1[t4]; + t1[t6] = bits; + } + --n; + } + } + }, + _buildTree$1(s) { + var t2, t3, t4, n, maxCode, t5, t6, node, t7, m, t8, t9, node0, _this = this, + _s10_ = "staticDesc", + _s8_ = "_heapLen", + _s8_0 = "_heapMax", + t1 = A._lateReadCheck(_this.___HuffmanTree_dynamicTree, "dynamicTree"), + stree = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).staticTree, + elems = A._lateReadCheck(_this.___HuffmanTree_staticDesc, _s10_).numElements; + s.__Deflate__heapLen = 0; + s.__Deflate__heapMax = 573; + for (t2 = t1.length, t3 = s._heap, t4 = s._depth, n = 0, maxCode = -1; n < elems; ++n) { + t5 = n * 2; + if (!(t5 < t2)) + return A.ioore(t1, t5); + if (t1[t5] !== 0) { + t5 = A._lateReadCheck(s.__Deflate__heapLen, _s8_) + 1; + s.__Deflate__heapLen = t5; + if (!(t5 >= 0 && t5 < 573)) + return A.ioore(t3, t5); + t3[t5] = n; + if (!(n < 573)) + return A.ioore(t4, n); + t4[n] = 0; + maxCode = n; + } else { + ++t5; + if (!(t5 < t2)) + return A.ioore(t1, t5); + t1[t5] = 0; + } + } + for (t5 = stree != null; A._lateReadCheck(s.__Deflate__heapLen, _s8_) < 2;) { + t6 = A._lateReadCheck(s.__Deflate__heapLen, _s8_) + 1; + s.__Deflate__heapLen = t6; + if (maxCode < 2) { + ++maxCode; + node = maxCode; + } else + node = 0; + if (!(t6 >= 0 && t6 < 573)) + return A.ioore(t3, t6); + t3[t6] = node; + t6 = node * 2; + if (!(t6 >= 0 && t6 < t2)) + return A.ioore(t1, t6); + t1[t6] = 1; + t4[node] = 0; + s.__Deflate__optimalLen = A._lateReadCheck(s.__Deflate__optimalLen, "_optimalLen") - 1; + if (t5) { + t7 = A._lateReadCheck(s.__Deflate__staticLen, "_staticLen"); + ++t6; + if (!(t6 < stree.length)) + return A.ioore(stree, t6); + s.__Deflate__staticLen = t7 - stree[t6]; + } + } + _this.___HuffmanTree_maxCode = maxCode; + for (n = B.JSInt_methods._tdivFast$1(A._lateReadCheck(s.__Deflate__heapLen, _s8_), 2); n >= 1; --n) + s._pqdownheap$2(t1, n); + node = elems; + do { + n = t3[1]; + t5 = A._lateReadCheck(s.__Deflate__heapLen, _s8_); + s.__Deflate__heapLen = t5 - 1; + if (t5 >>> 0 !== t5 || t5 >= 573) + return A.ioore(t3, t5); + t3[1] = t3[t5]; + s._pqdownheap$2(t1, 1); + m = t3[1]; + t5 = A._lateReadCheck(s.__Deflate__heapMax, _s8_0) - 1; + s.__Deflate__heapMax = t5; + if (!(t5 >= 0 && t5 < 573)) + return A.ioore(t3, t5); + t3[t5] = n; + t5 = A._lateReadCheck(t5, _s8_0) - 1; + s.__Deflate__heapMax = t5; + if (!(t5 >= 0 && t5 < 573)) + return A.ioore(t3, t5); + t3[t5] = m; + t5 = node * 2; + t6 = n * 2; + if (!(t6 >= 0 && t6 < t2)) + return A.ioore(t1, t6); + t7 = t1[t6]; + t8 = m * 2; + if (!(t8 >= 0 && t8 < t2)) + return A.ioore(t1, t8); + t9 = t1[t8]; + if (!(t5 < t2)) + return A.ioore(t1, t5); + t1[t5] = t7 + t9; + if (!(n >= 0 && n < 573)) + return A.ioore(t4, n); + t9 = t4[n]; + if (!(m >= 0 && m < 573)) + return A.ioore(t4, m); + t7 = t4[m]; + t5 = t9 > t7 ? t9 : t7; + if (!(node < 573)) + return A.ioore(t4, node); + t4[node] = t5 + 1; + ++t6; + ++t8; + if (!(t8 < t2)) + return A.ioore(t1, t8); + t1[t8] = node; + if (!(t6 < t2)) + return A.ioore(t1, t6); + t1[t6] = node; + node0 = node + 1; + t3[1] = node; + s._pqdownheap$2(t1, 1); + if (A._lateReadCheck(s.__Deflate__heapLen, _s8_) >= 2) { + node = node0; + continue; + } else + break; + } while (true); + t2 = A._lateReadCheck(s.__Deflate__heapMax, _s8_0) - 1; + s.__Deflate__heapMax = t2; + t4 = t3[1]; + if (!(t2 >= 0 && t2 < 573)) + return A.ioore(t3, t2); + t3[t2] = t4; + _this._genBitlen$1(s); + A._HuffmanTree__genCodes(t1, maxCode, s._bitLengthCount); + } + }; + A._StaticTree.prototype = {}; + A.HuffmanTable.prototype = { + HuffmanTable$1(lengths) { + var i, t1, t2, size, bitLength, code, skip, rtemp, reversed, j, t3, _this = this, + listSize = lengths.length; + for (i = 0; i < listSize; ++i) { + if (!(i < lengths.length)) + return A.ioore(lengths, i); + t1 = lengths[i]; + t2 = _this.maxCodeLength; + if (typeof t1 !== "number") + return t1.$gt(); + if (t1 > t2) + _this.set$maxCodeLength(t1); + if (!(i < lengths.length)) + return A.ioore(lengths, i); + t1 = lengths[i]; + t2 = _this.minCodeLength; + if (typeof t1 !== "number") + return t1.$lt(); + if (t1 < t2) + _this.set$minCodeLength(t1); + } + size = B.JSInt_methods.$shl(1, _this.maxCodeLength); + _this.__HuffmanTable_table = new Uint32Array(size); + for (bitLength = 1, code = 0, skip = 2; bitLength <= _this.maxCodeLength;) { + for (t1 = bitLength << 16, i = 0; i < listSize; ++i) { + if (!(i < lengths.length)) + return A.ioore(lengths, i); + if (J.$eq$(lengths[i], bitLength)) { + for (rtemp = code, reversed = 0, j = 0; j < bitLength; ++j) { + reversed = (reversed << 1 | rtemp & 1) >>> 0; + rtemp = rtemp >>> 1; + } + for (t2 = (t1 | i) >>> 0, j = reversed; j < size; j += skip) { + t3 = A._lateReadCheck(_this.__HuffmanTable_table, "table"); + if (!(j >= 0 && j < t3.length)) + return A.ioore(t3, j); + t3[j] = t2; + } + ++code; + } + } + ++bitLength; + code = code << 1 >>> 0; + skip = skip << 1 >>> 0; + } + }, + set$maxCodeLength(maxCodeLength) { + this.maxCodeLength = A._asInt(maxCodeLength); + }, + set$minCodeLength(minCodeLength) { + this.minCodeLength = A._asInt(minCodeLength); + } + }; + A.Inflate.prototype = { + _inflate$0() { + var t1, t2, _this = this; + _this._bitBufferLen = _this._bitBuffer = 0; + if (!_this.inputSet) + return; + for (t1 = _this.__Inflate_input; t2 = A._lateReadCheck(t1, "input"), t2.offset < t2.start + A._lateReadCheck(t2.__InputStream__length, "_length");) + if (!_this._parseBlock$0()) + break; + }, + _parseBlock$0() { + var blockHeader, _this = this; + if (A._lateReadCheck(_this.__Inflate_input, "input").get$isEOS()) + return false; + blockHeader = _this._readBits$1(3); + switch (B.JSInt_methods._shrOtherPositive$1(blockHeader, 1)) { + case 0: + if (_this._parseUncompressedBlock$0() === -1) + return false; + break; + case 1: + if (_this._decodeHuffman$2(_this._fixedLiteralLengthTable, _this._fixedDistanceTable) === -1) + return false; + break; + case 2: + if (_this._parseDynamicHuffmanBlock$0() === -1) + return false; + break; + default: + return false; + } + return (blockHeader & 1) === 0; + }, + _readBits$1($length) { + var t1, t2, t3, t4, _this = this; + if ($length === 0) + return 0; + for (t1 = _this.__Inflate_input; t2 = _this._bitBufferLen, t2 < $length;) { + t2 = A._lateReadCheck(t1, "input"); + if (t2.offset >= t2.start + A._lateReadCheck(t2.__InputStream__length, "_length")) + return -1; + t2 = A._lateReadCheck(t1, "input"); + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + t3 = _this._bitBuffer; + t4 = _this._bitBufferLen; + _this._bitBuffer = (t3 | B.JSInt_methods.$shl(t2, t4)) >>> 0; + _this._bitBufferLen = t4 + 8; + } + t1 = _this._bitBuffer; + t3 = B.JSInt_methods._shlPositive$1(1, $length); + _this._bitBuffer = B.JSInt_methods._shrBothPositive$1(t1, $length); + _this._bitBufferLen = t2 - $length; + return (t1 & t3 - 1) >>> 0; + }, + _readCodeByTable$1(table) { + var t2, t3, t4, t5, codeWithLength, codeLength, _this = this, + t1 = A._lateReadCheck(table.__HuffmanTable_table, "table"), + maxCodeLength = table.maxCodeLength; + for (t2 = _this.__Inflate_input; t3 = _this._bitBufferLen, t3 < maxCodeLength;) { + t3 = A._lateReadCheck(t2, "input"); + if (t3.offset >= t3.start + A._lateReadCheck(t3.__InputStream__length, "_length")) + return -1; + t3 = A._lateReadCheck(t2, "input"); + t4 = t3.buffer; + t3 = t3.offset++; + if (!(t3 >= 0 && t3 < t4.length)) + return A.ioore(t4, t3); + t3 = t4[t3]; + t4 = _this._bitBuffer; + t5 = _this._bitBufferLen; + _this._bitBuffer = (t4 | B.JSInt_methods.$shl(t3, t5)) >>> 0; + _this._bitBufferLen = t5 + 8; + } + t2 = _this._bitBuffer; + t4 = (t2 & B.JSInt_methods.$shl(1, maxCodeLength) - 1) >>> 0; + if (!(t4 < t1.length)) + return A.ioore(t1, t4); + codeWithLength = t1[t4]; + codeLength = codeWithLength >>> 16; + _this._bitBuffer = B.JSInt_methods._shrBothPositive$1(t2, codeLength); + _this._bitBufferLen = t3 - codeLength; + return codeWithLength & 65535; + }, + _parseUncompressedBlock$0() { + var len, t1, t2, _this = this; + _this._bitBufferLen = _this._bitBuffer = 0; + len = _this._readBits$1(16); + t1 = _this._readBits$1(16); + if (len !== 0 && len !== (t1 ^ 65535) >>> 0) + return -1; + t1 = _this.__Inflate_input; + t2 = A._lateReadCheck(t1, "input"); + if (len > t2.get$length(t2)) + return -1; + _this.output.writeInputStream$1(A._lateReadCheck(t1, "input").readBytes$1(len)); + return 0; + }, + _parseDynamicHuffmanBlock$0() { + var numDistanceCodes, numCodeLengths, codeLengths, i, len, t1, codeLengthsTable, litLenDistLengths, litlenLengths, distLengths, _this = this, + numLitLengthCodes = _this._readBits$1(5); + if (numLitLengthCodes === -1) + return -1; + numLitLengthCodes += 257; + if (numLitLengthCodes > 288) + return -1; + numDistanceCodes = _this._readBits$1(5); + if (numDistanceCodes === -1) + return -1; + ++numDistanceCodes; + if (numDistanceCodes > 32) + return -1; + numCodeLengths = _this._readBits$1(4); + if (numCodeLengths === -1) + return -1; + numCodeLengths += 4; + if (numCodeLengths > 19) + return -1; + codeLengths = new Uint8Array(19); + for (i = 0; i < numCodeLengths; ++i) { + len = _this._readBits$1(3); + if (len === -1) + return -1; + t1 = B.List_uSC[i]; + if (!(t1 < 19)) + return A.ioore(codeLengths, t1); + codeLengths[t1] = len; + } + codeLengthsTable = A.HuffmanTable$(codeLengths); + t1 = numLitLengthCodes + numDistanceCodes; + litLenDistLengths = new Uint8Array(t1); + litlenLengths = A.NativeUint8List_NativeUint8List$view(litLenDistLengths.buffer, 0, numLitLengthCodes); + distLengths = A.NativeUint8List_NativeUint8List$view(litLenDistLengths.buffer, numLitLengthCodes, numDistanceCodes); + if (_this._decode$3(t1, codeLengthsTable, litLenDistLengths) === -1) + return -1; + return _this._decodeHuffman$2(A.HuffmanTable$(litlenLengths), A.HuffmanTable$(distLengths)); + }, + _decodeHuffman$2(litlen, dist) { + var t1, code, ti, codeLength, distCode, distance, t2, _this = this; + for (t1 = _this.output; true;) { + code = _this._readCodeByTable$1(litlen); + if (code < 0 || code > 285) + return -1; + if (code === 256) + break; + if (code < 256) { + t1.writeByte$1(code & 255); + continue; + } + ti = code - 257; + if (!(ti >= 0 && ti < 29)) + return A.ioore(B.List_qQn, ti); + codeLength = B.List_qQn[ti] + _this._readBits$1(B.List_eea[ti]); + distCode = _this._readCodeByTable$1(dist); + if (distCode < 0 || distCode > 29) + return -1; + if (!(distCode >= 0 && distCode < 30)) + return A.ioore(B.List_i3t, distCode); + distance = B.List_i3t[distCode] + _this._readBits$1(B.List_X3d0[distCode]); + for (t2 = -distance; codeLength > distance;) { + t1.writeBytes$1(t1.subset$1(t2)); + codeLength -= distance; + } + if (codeLength === distance) + t1.writeBytes$1(t1.subset$1(t2)); + else + t1.writeBytes$1(t1.subset$2(t2, codeLength - distance)); + } + for (t1 = _this.__Inflate_input; t2 = _this._bitBufferLen, t2 >= 8;) { + _this._bitBufferLen = t2 - 8; + t2 = A._lateReadCheck(t1, "input"); + if (--t2.offset < 0) + t2.offset = 0; + } + return 0; + }, + _decode$3(num, table, codeLengths) { + var t1, prev, i, code, repeat, repeat0, i0, _this = this; + type$.List_int._as(codeLengths); + for (t1 = codeLengths.length, prev = 0, i = 0; i < num;) { + code = _this._readCodeByTable$1(table); + if (code === -1) + return -1; + switch (code) { + case 16: + repeat = _this._readBits$1(2); + if (repeat === -1) + return -1; + repeat += 3; + for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, i = i0) { + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(codeLengths, i); + codeLengths[i] = prev; + } + break; + case 17: + repeat = _this._readBits$1(3); + if (repeat === -1) + return -1; + repeat += 3; + for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, i = i0) { + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(codeLengths, i); + codeLengths[i] = 0; + } + prev = 0; + break; + case 18: + repeat = _this._readBits$1(7); + if (repeat === -1) + return -1; + repeat += 11; + for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, i = i0) { + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(codeLengths, i); + codeLengths[i] = 0; + } + prev = 0; + break; + default: + if (code < 0 || code > 15) + return -1; + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(codeLengths, i); + codeLengths[i] = code; + i = i0; + prev = code; + break; + } + } + return 0; + } + }; + A.ZLibDecoderBase.prototype = {}; + A.ZLibDecoder.prototype = {}; + A.ZLibEncoder.prototype = { + encode$2$level(data, level) { + var output, fcheck, t2, adler32, input, t3, t4, t5, t6, t7, t8, + _s11_ = "_windowSize", + _s9_ = "_hashBits", + _s9_0 = "_hashSize", + _s14_ = "_litBufferSize", + t1 = type$.List_int; + t1._as(data); + output = A.OutputStream$(1, 32768); + output.writeByte$1(120); + for (fcheck = 0; t2 = (fcheck | 0) >>> 0, (30720 + t2) % 31 !== 0;) + ++fcheck; + output.writeByte$1(t2); + adler32 = A.getAdler32(data); + input = A.InputStream$(data, 1, null, 0); + t2 = A._HuffmanTree$(); + t3 = A._HuffmanTree$(); + t4 = A._HuffmanTree$(); + t5 = new Uint16Array(16); + t6 = new Uint32Array(573); + t7 = new Uint8Array(573); + t8 = A.OutputStream$(0, 32768); + t5 = new A.Deflate(input, t8, t2, t3, t4, t5, t6, t7); + if (level == null || level === -1) + level = 6; + if (typeof level !== "number") + return level.$lt(); + if (level <= 9) + t6 = false; + else + t6 = true; + if (t6) + A.throwExpression(A.ArchiveException$("Invalid Deflate parameter")); + $.Deflate____config._value = t5._getConfig$1(level); + t5.__Deflate__dynamicLengthTree = new Uint16Array(1146); + t5.__Deflate__dynamicDistTree = new Uint16Array(122); + t5.__Deflate__bitLengthTree = new Uint16Array(78); + t5.__Deflate__windowBits = 15; + t6 = B.JSInt_methods.$shl(1, A._lateReadCheck(15, "_windowBits")); + t5.__Deflate__windowSize = t6; + t5.__Deflate__windowMask = A._lateReadCheck(t6, _s11_) - 1; + t5.__Deflate__hashBits = 15; + t6 = B.JSInt_methods.$shl(1, A._lateReadCheck(15, _s9_)); + t5.__Deflate__hashSize = t6; + t5.__Deflate__hashMask = A._lateReadCheck(t6, _s9_0) - 1; + t5.__Deflate__hashShift = B.JSInt_methods._tdivFast$1(A._lateReadCheck(t5.__Deflate__hashBits, _s9_) + 3 - 1, 3); + t6 = A._lateReadCheck(t5.__Deflate__windowSize, _s11_); + t5.__Deflate__window = new Uint8Array(t6 * 2); + t6 = A._lateReadCheck(t5.__Deflate__windowSize, _s11_); + t5.__Deflate__prev = new Uint16Array(t6); + t6 = A._lateReadCheck(t5.__Deflate__hashSize, _s9_0); + t5.__Deflate__head = new Uint16Array(t6); + t5.__Deflate__litBufferSize = 16384; + t6 = A._lateReadCheck(16384, _s14_); + t5.__Deflate__pendingBuffer = new Uint8Array(t6 * 4); + t5.__Deflate__pendingBufferSize = A._lateReadCheck(t5.__Deflate__litBufferSize, _s14_) * 4; + t5.__Deflate__dbuf = A._lateReadCheck(t5.__Deflate__litBufferSize, _s14_); + t5.__Deflate__lbuf = 3 * A._lateReadCheck(t5.__Deflate__litBufferSize, _s14_); + t5.__Deflate__level = A._asInt(level); + t5.__Deflate__pendingOut = t5.__Deflate__pending = t5.__Deflate__strategy = 0; + t5._status = 113; + t5.crc32 = 0; + t2.___HuffmanTree_dynamicTree = A._lateReadCheck(t5.__Deflate__dynamicLengthTree, "_dynamicLengthTree"); + t6 = type$._StaticTree; + t2.___HuffmanTree_staticDesc = t6._as($.$get$_StaticTree_staticLDesc()); + t3.___HuffmanTree_dynamicTree = A._lateReadCheck(t5.__Deflate__dynamicDistTree, "_dynamicDistTree"); + t3.___HuffmanTree_staticDesc = t6._as($.$get$_StaticTree_staticDDesc()); + t4.___HuffmanTree_dynamicTree = A._lateReadCheck(t5.__Deflate__bitLengthTree, "_bitLengthTree"); + t4.___HuffmanTree_staticDesc = t6._as($.$get$_StaticTree_staticBlDesc()); + t5.__Deflate__numValidBits = t5.__Deflate__bitBuffer = 0; + t5.__Deflate__lastEOBLen = 8; + t5._initBlock$0(); + t5._lmInit$0(); + t5._deflate$1(4); + t5._flushPending$0(); + output.writeBytes$1(t1._as(A.NativeUint8List_NativeUint8List$view(t8._output_stream$_buffer.buffer, 0, t8.length))); + output.writeUint32$1(adler32); + t1 = A.NativeUint8List_NativeUint8List$view(output._output_stream$_buffer.buffer, 0, output.length); + return t1; + }, + encode$1(data) { + return this.encode$2$level(data, null); + } + }; + A.BlurHash.prototype = {}; + A.BlurHashEncodeException.prototype = { + toString$0(_) { + return "Exception: " + this.message; + } + }; + A.ColorTriplet.prototype = { + toString$0(_) { + return "ColorTriplet(" + A.S(this.r) + ", " + A.S(this.g) + ", " + A.S(this.b) + ")"; + } + }; + A.ExifData.prototype = { + ExifData$from$1(other) { + var _length, _list, i, t1; + if (other != null && other.rawData != null) { + _length = other.rawData.length; + _list = J.JSArray_JSArray$allocateGrowable(_length, type$.Uint8List); + for (i = 0; i < _length; ++i) { + t1 = other.rawData; + if (!(i < t1.length)) + return A.ioore(t1, i); + t1 = t1[i]; + _list[i] = new Uint8Array(t1.subarray(0, A._checkValidRange(0, null, t1.length))); + } + this.set$rawData(_list); + } + }, + set$rawData(rawData) { + this.rawData = type$.nullable_List_Uint8List._as(rawData); + } + }; + A.BitmapCompression.prototype = { + toString$0(_) { + return "BitmapCompression." + this._core$_name; + } + }; + A.BitmapFileHeader.prototype = { + toJson$0() { + return A.LinkedHashMap_LinkedHashMap$_literal(["offset", A._lateReadCheck(this.__BitmapFileHeader_offset, "offset"), "fileLength", A._lateReadCheck(this.__BitmapFileHeader_fileLength, "fileLength"), "fileType", 19778], type$.String, type$.int); + } + }; + A.BmpInfo.prototype = { + get$ignoreAlphaChannel() { + var t1 = this.headerSize; + if (t1 !== 40) + t1 = t1 === 124 && this.v5alphaMask === 0; + else + t1 = true; + return t1; + }, + get$height(_) { + return Math.abs(this._bmp_info$_height); + }, + BmpInfo$2$fileHeader(p, fileHeader) { + var _this = this; + if (B.JSArray_methods.contains$1(A._setArrayType([1, 4, 8], type$.JSArray_int), _this.bpp)) + _this.readPalette$1(p); + if (_this.headerSize === 124) { + _this.v5redMask = p.readUint32$0(); + _this.v5greenMask = p.readUint32$0(); + _this.v5blueMask = p.readUint32$0(); + _this.v5alphaMask = p.readUint32$0(); + } + }, + readPalette$1(p) { + var _this = this, + colors = _this.totalColors; + if (colors === 0) + colors = B.JSInt_methods._shlPositive$1(1, _this.bpp); + _this.set$colorPalette(A.Iterable_Iterable$generate(colors, new A.BmpInfo_readPalette_closure(_this, p, _this.headerSize === 12 ? 3 : 4), type$.int).toList$0(0)); + }, + _readRgba$2$aDefault(input, aDefault) { + var b, g, r, a; + if (!B.JSInt_methods.get$isNegative(this._bmp_info$_height)) { + b = input.readByte$0(); + g = input.readByte$0(); + r = input.readByte$0(); + a = aDefault == null ? input.readByte$0() : aDefault; + return A.getColor(r, g, b, this.get$ignoreAlphaChannel() ? 255 : a); + } else { + r = input.readByte$0(); + b = input.readByte$0(); + g = input.readByte$0(); + a = aDefault == null ? input.readByte$0() : aDefault; + return A.getColor(r, b, g, this.get$ignoreAlphaChannel() ? 255 : a); + } + }, + _readRgba$1(input) { + return this._readRgba$2$aDefault(input, null); + }, + decodeRgba$2(input, pixel) { + var t1, b, left, right, t2, _this = this; + type$.void_Function_int._as(pixel); + if (_this.colorPalette != null) { + t1 = _this.bpp; + if (t1 === 4) { + b = input.readByte$0(); + left = B.JSInt_methods._shrOtherPositive$1(b, 4); + right = b & 15; + t1 = _this.colorPalette; + if (!(left < t1.length)) + return A.ioore(t1, left); + pixel.call$1(t1[left]); + t1 = _this.colorPalette; + if (!(right < t1.length)) + return A.ioore(t1, right); + pixel.call$1(t1[right]); + return; + } else if (t1 === 8) { + b = input.readByte$0(); + t1 = _this.colorPalette; + if (!(b >= 0 && b < t1.length)) + return A.ioore(t1, b); + pixel.call$1(t1[b]); + return; + } + } + t1 = _this.compression; + if (t1 === B.BitmapCompression_0 && _this.bpp === 32) + return pixel.call$1(_this._readRgba$1(input)); + else { + t2 = _this.bpp; + if (t2 === 32 && t1 === B.BitmapCompression_1) + return pixel.call$1(_this._readRgba$1(input)); + else if (t2 === 24) + return pixel.call$1(_this._readRgba$2$aDefault(input, 255)); + else + throw A.wrapException(A.ImageException$("Unsupported bpp (" + t2 + ") or compression (" + t1.toString$0(0) + ").")); + } + }, + _compToString$0() { + switch (this.compression.index) { + case 0: + return "BI_BITFIELDS"; + case 1: + return "none"; + } + }, + toString$0(_) { + var _this = this; + return A._JsonStringStringifier_stringify(A.LinkedHashMap_LinkedHashMap$_literal(["headerSize", _this.headerSize, "width", _this.BmpInfo_width, "height", _this.get$height(_this), "planes", _this.planes, "bpp", _this.bpp, "file", _this.file.toJson$0(), "compression", _this._compToString$0(), "imageSize", _this.imageSize, "xppm", _this.xppm, "yppm", _this.yppm, "totalColors", _this.totalColors, "importantColors", _this.importantColors, "readBottomUp", !B.JSInt_methods.get$isNegative(_this._bmp_info$_height), "v5redMask", A.debugBits32(_this.v5redMask), "v5greenMask", A.debugBits32(_this.v5greenMask), "v5blueMask", A.debugBits32(_this.v5blueMask), "v5alphaMask", A.debugBits32(_this.v5alphaMask)], type$.String, type$.Object), null, " "); + }, + set$colorPalette(colorPalette) { + this.colorPalette = type$.nullable_List_int._as(colorPalette); + } + }; + A.BmpInfo_readPalette_closure.prototype = { + call$1(i) { + var t1; + A._asInt(i); + t1 = this.colorBytes === 3 ? 100 : null; + return this.$this._readRgba$2$aDefault(this.p, t1); + }, + $signature: 18 + }; + A.BmpDecoder.prototype = { + startDecode$1(bytes) { + var t1, _null = null; + type$.List_int._as(bytes); + if (!A.BitmapFileHeader_isValidFile(A.InputBuffer$(bytes, false, _null, 0))) + return _null; + t1 = A.InputBuffer$(bytes, false, _null, 0); + this.__BmpDecoder__input = t1; + return this.info = A.BmpInfo$(A._lateReadCheck(t1, "_input"), _null); + }, + decodeFrame$1(frame) { + var t1, t2, rowStride, t3, image, y, y0, line, bytes, _box_0, _box_00, _this = this; + A._lateReadCheck(_this.__BmpDecoder__input, "_input").offset = A._lateReadCheck(_this.info.file.__BitmapFileHeader_offset, "offset"); + t1 = _this.info; + t2 = t1.BmpInfo_width; + rowStride = B.JSInt_methods._shrOtherPositive$1(t2 * t1.bpp, 3); + t3 = B.JSInt_methods.$mod(rowStride, 4); + if (t3 !== 0) + rowStride += 4 - t3; + image = A.Image$(t2, t1.get$height(t1), B.Channels_1, null, null); + for (y = image.height - 1, t1 = image.width, y0 = y; y0 >= 0; --y0) { + t2 = _this.info._bmp_info$_height; + line = !(t2 === 0 ? 1 / t2 < 0 : t2 < 0) ? y0 : y - y0; + t2 = A._lateReadCheck(_this.__BmpDecoder__input, "_input"); + bytes = t2.subset$1(rowStride); + t2.offset = t2.offset + (bytes.end - bytes.offset); + _box_0 = {}; + for (_box_0.x = 0; _box_0.x < t1; _box_00 = {}, _box_00.x = _box_0.x, _box_0 = _box_00) + _this.info.decodeRgba$2(bytes, new A.BmpDecoder_decodeFrame_closure(_box_0, image, line)); + } + return image; + }, + decodeImage$1(data) { + type$.List_int._as(data); + if (!A.BitmapFileHeader_isValidFile(A.InputBuffer$(data, false, null, 0))) + return null; + this.startDecode$1(data); + return this.decodeFrame$1(0); + } + }; + A.BmpDecoder_decodeFrame_closure.prototype = { + call$1(color) { + return this.image.setPixel$3(this._box_0.x++, this.line, color); + }, + $signature: 7 + }; + A.DibDecoder.prototype = {}; + A.BmpEncoder.prototype = { + encodeImage$1(image) { + var t3, t4, t5, y, pi, x, rgba, + out = A.OutputBuffer$(false, 8192), + bytesPerPixel = image.channels === B.Channels_0 ? 3 : 4, + t1 = image.width, + t2 = image.height, + rgbSize = t1 * t2 * bytesPerPixel; + out.writeUint16$1(19778); + out.writeUint32$1(rgbSize + 54); + out.writeUint32$1(0); + out.writeUint32$1(54); + out.writeUint32$1(40); + out.writeUint32$1(t1); + out.writeUint32$1(-t2); + out.writeUint16$1(1); + out.writeUint16$1(bytesPerPixel * 8); + out.writeUint32$1(0); + out.writeUint32$1(rgbSize); + out.writeUint32$1(0); + out.writeUint32$1(0); + out.writeUint32$1(0); + out.writeUint32$1(0); + for (t3 = bytesPerPixel === 4, t4 = image.data, t5 = t4.length, y = 0, pi = 0; y < t2; ++y) + for (x = 0; x < t1; ++x, ++pi) { + if (!(pi >= 0 && pi < t5)) + return A.ioore(t4, pi); + rgba = t4[pi]; + out.writeByte$1(rgba >>> 16 & 255); + out.writeByte$1(rgba >>> 8 & 255); + out.writeByte$1(rgba & 255); + if (t3) + out.writeByte$1(rgba >>> 24 & 255); + } + return A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); + } + }; + A.CurEncoder.prototype = { + colorPlanesOrXHotSpot$1(index) { + return 0; + }, + bitsPerPixelOrYHotSpot$1(index) { + return 0; + }, + get$type(_) { + return 2; + } + }; + A.DecodeInfo.prototype = {}; + A.Decoder.prototype = {}; + A.Encoder.prototype = {}; + A.ExrAttribute.prototype = {}; + A.InternalExrB44Compressor.prototype = { + numScanLines$0() { + return this._numScanLines; + }, + uncompress$5(input, x, y, width, height) { + throw A.wrapException(A.ImageException$("B44 compression not yet supported.")); + }, + uncompress$3(input, x, y) { + return this.uncompress$5(input, x, y, null, null); + } + }; + A.ExrChannel.prototype = { + get$type(_) { + return A._lateReadCheck(this.__ExrChannel_type, "type"); + }, + ExrChannel$1(input) { + var _this = this, + t1 = input.readString$0(); + _this.name = t1; + if (t1.length === 0) { + _this.name = null; + return; + } + _this.__ExrChannel_type = input.readUint32$0(); + input.readByte$0(); + input.offset += 3; + _this.__ExrChannel_xSampling = input.readUint32$0(); + _this.__ExrChannel_ySampling = input.readUint32$0(); + switch (A._lateReadCheck(_this.__ExrChannel_type, "type")) { + case 0: + _this.__ExrChannel_size = 4; + break; + case 1: + _this.__ExrChannel_size = 2; + break; + case 2: + _this.__ExrChannel_size = 4; + break; + default: + throw A.wrapException(A.ImageException$("EXR Invalid pixel type: " + _this.get$type(_this))); + } + } + }; + A.ExrCompressor.prototype = { + uncompress$5(input, x, y, width, height) { + throw A.wrapException(A.ImageException$("Unsupported compression type")); + }, + uncompress$3(input, x, y) { + return this.uncompress$5(input, x, y, null, null); + } + }; + A.InternalExrCompressor.prototype = {}; + A.ExrHufDec.prototype = { + set$p(p) { + this.p = type$.nullable_List_int._as(p); + } + }; + A.ExrImage.prototype = { + ExrImage$1(bytes) { + var t1, part, t2, _i, _this = this, _s5_ = "flags", + input = A.InputBuffer$(bytes, false, null, 0); + if (input.readUint32$0() !== 20000630) + throw A.wrapException(A.ImageException$("File is not an OpenEXR image file.")); + t1 = _this.version = input.readByte$0(); + if (t1 !== 2) + throw A.wrapException(A.ImageException$("Cannot read version " + t1 + " image files.")); + t1 = input.readUint24$0(); + _this.__ExrImage_flags = t1; + if ((A._lateReadCheck(t1, _s5_) & 4294967289) >>> 0 !== 0) + throw A.wrapException(A.ImageException$("The file format version number's flag field contains unrecognized flags.")); + if ((A._lateReadCheck(_this.__ExrImage_flags, _s5_) & 16) === 0) { + part = A.InternalExrPart$((A._lateReadCheck(_this.__ExrImage_flags, _s5_) & 2) !== 0, input); + if (part.width != null) + B.JSArray_methods.add$1(_this._parts, part); + } else + for (t1 = _this._parts; true;) { + part = A.InternalExrPart$((A._lateReadCheck(_this.__ExrImage_flags, _s5_) & 2) !== 0, input); + if (part.width == null) + break; + B.JSArray_methods.add$1(t1, part); + } + t1 = _this._parts; + t2 = t1.length; + if (t2 === 0) + throw A.wrapException(A.ImageException$("Error reading image header")); + for (_i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) + t1[_i].readOffsets$1(input); + _this._readImage$1(input); + }, + _readImage$1(input) { + var t1, pi, part, framebuffer, t2, t3, ci, ch, t4, t5, t6, t7, t8, _this = this; + for (t1 = _this._parts, pi = 0; pi < t1.length; ++pi) { + part = t1[pi]; + framebuffer = part.framebuffer; + for (t2 = part.channels, t3 = framebuffer.slices, ci = 0; ci < t2.length; ++ci) { + ch = t2[ci]; + if (!t3.containsKey$1(0, ch.name)) { + t4 = part.width; + t4.toString; + _this.width = t4; + t5 = part.height; + t5.toString; + _this.height = t5; + t6 = ch.name; + t7 = A._lateReadCheck(ch.__ExrChannel_type, "type") === 0 ? 0 : 3; + t8 = 8 * A._lateReadCheck(ch.__ExrChannel_size, "size"); + framebuffer.addSlice$1(new A.HdrSlice(t6, t4, t5, t7, t8, A.HdrSlice_allocateDataForType(t4 * t5, t7, t8))); + } + } + if (part._tiled) + _this._readTiledPart$2(pi, input); + else + _this._readScanlinePart$2(pi, input); + } + }, + _readTiledPart$2(pi, input) { + var part, multiPart, compressor, offsets, imgData, t2, ly, l, t3, lx, ty, oi, t4, tx, tileX, tileY, bytes, ty0, t5, t6, uncompressedData, tileWidth, tileHeight, len, numChannels, si, yi, ci, ch, slice, tx0, xx, bi, si0, di, _this = this, + t1 = _this._parts; + if (!(pi < t1.length)) + return A.ioore(t1, pi); + part = t1[pi]; + multiPart = (A._lateReadCheck(_this.__ExrImage_flags, "flags") & 16) !== 0; + compressor = part._compressor; + offsets = part._offsets; + imgData = A.InputBuffer$from(input, null, 0); + t1 = part.channels; + t2 = part.framebuffer.slices; + ly = 0; + l = 0; + while (true) { + t3 = part._numYLevels; + t3.toString; + if (!(ly < t3)) + break; + lx = 0; + while (true) { + t3 = part._numXLevels; + t3.toString; + if (!(lx < t3)) + break; + t3 = l !== 0; + ty = 0; + oi = 0; + while (true) { + t4 = part._numYTiles; + if (!(ly < t4.length)) + return A.ioore(t4, ly); + if (!(ty < t4[ly])) + break; + tx = 0; + while (true) { + t4 = part._numXTiles; + if (!(lx < t4.length)) + return A.ioore(t4, lx); + if (!(tx < t4[lx])) + break; + if (t3) + break; + if (!(l >= 0 && l < offsets.length)) + return A.ioore(offsets, l); + t4 = offsets[l]; + if (!(oi >= 0 && oi < t4.length)) + return A.ioore(t4, oi); + imgData.offset = t4[oi]; + if (multiPart) + if (imgData.readUint32$0() !== pi) + throw A.wrapException(A.ImageException$("Invalid Image Data")); + tileX = imgData.readUint32$0(); + tileY = imgData.readUint32$0(); + imgData.readUint32$0(); + imgData.readUint32$0(); + bytes = imgData.subset$1(imgData.readUint32$0()); + imgData.offset = imgData.offset + (bytes.end - bytes.offset); + t4 = part._tileHeight; + t4.toString; + ty0 = tileY * t4; + t5 = part._tileWidth; + t5.toString; + compressor.toString; + t6 = _this.width; + if (typeof t6 !== "number") + return A.iae(t6); + t6 = _this.height; + if (typeof t6 !== "number") + return A.iae(t6); + uncompressedData = compressor.uncompress$5(bytes, tileX * t5, ty0, t5, t4); + tileWidth = compressor.decodedWidth; + tileHeight = compressor.decodedHeight; + len = uncompressedData.length; + numChannels = t1.length; + si = 0; + yi = 0; + while (true) { + if (yi < tileHeight) { + t4 = _this.height; + if (typeof t4 !== "number") + return A.iae(t4); + t4 = ty0 < t4; + } else + t4 = false; + if (!t4) + break; + for (ci = 0; ci < numChannels; ++ci) { + if (!(ci < t1.length)) + return A.ioore(t1, ci); + ch = t1[ci]; + t4 = t2.$index(0, ch.name).data.buffer; + slice = new Uint8Array(t4, 0); + if (si >= len) + break; + t4 = part._tileWidth; + t4.toString; + tx0 = tileX * t4; + for (t4 = slice.length, xx = 0; xx < tileWidth; ++xx, ++tx0) + for (bi = 0; bi < A._lateReadCheck(ch.__ExrChannel_size, "size"); ++bi, si = si0) { + t5 = part.width; + t5.toString; + if (tx0 < t5) { + t6 = part.height; + t6.toString; + t6 = ty0 < t6; + } else + t6 = false; + si0 = si + 1; + if (t6) { + di = (ty0 * t5 + tx0) * A._lateReadCheck(ch.__ExrChannel_size, "size") + bi; + if (!(si >= 0 && si < len)) + return A.ioore(uncompressedData, si); + t5 = uncompressedData[si]; + if (!(di >= 0 && di < t4)) + return A.ioore(slice, di); + slice[di] = t5; + } + } + } + ++yi; + ++ty0; + } + ++tx; + ++oi; + } + ++ty; + } + ++lx; + ++l; + } + ++ly; + } + }, + _readScanlinePart$2(pi, input) { + var part, multiPart, compressor, offsets, linesInBuffer, t2, fbi, imgData, t3, t4, t5, yy, _i, t6, t7, bytes, uncompressedData, len, numChannels, yi, si, ci, ch, slice, xx, bi, si0, t8, + t1 = this._parts; + if (!(pi < t1.length)) + return A.ioore(t1, pi); + part = t1[pi]; + multiPart = (A._lateReadCheck(this.__ExrImage_flags, "flags") & 16) !== 0; + compressor = part._compressor; + t1 = part._offsets; + if (0 >= t1.length) + return A.ioore(t1, 0); + offsets = t1[0]; + linesInBuffer = part._linesInBuffer; + t1 = part.channels; + t2 = t1.length; + fbi = new Uint32Array(t2); + imgData = A.InputBuffer$from(input, null, 0); + for (t3 = offsets.length, t4 = part.framebuffer.slices, t5 = compressor != null, yy = 0, _i = 0; _i < t3; ++_i) { + imgData.offset = offsets[_i]; + if (multiPart) + if (imgData.readUint32$0() !== pi) + throw A.wrapException(A.ImageException$("Invalid Image Data")); + t6 = imgData.readUint32$0(); + t7 = $.$get$__uint32(); + t7[0] = t6; + t6 = $.$get$__uint32ToInt32(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t7[0] = imgData.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + bytes = imgData.subset$1(t6[0]); + imgData.offset = imgData.offset + (bytes.end - bytes.offset); + uncompressedData = t5 ? compressor.uncompress$3(bytes, 0, yy) : bytes.toUint8List$0(); + len = uncompressedData.length; + numChannels = t1.length; + linesInBuffer.toString; + yi = 0; + while (true) { + if (yi < linesInBuffer) { + t6 = this.height; + if (typeof t6 !== "number") + return A.iae(t6); + t6 = yy < t6; + } else + t6 = false; + if (!t6) + break; + t6 = part._offsetInLineBuffer; + if (!(yy >= 0 && yy < t6.length)) + return A.ioore(t6, yy); + si = t6[yy]; + if (si >= len) + break; + for (ci = 0; ci < numChannels; ++ci) { + if (!(ci < t1.length)) + return A.ioore(t1, ci); + ch = t1[ci]; + t6 = t4.$index(0, ch.name).data.buffer; + slice = new Uint8Array(t6, 0); + if (si >= len) + break; + t6 = slice.length; + xx = 0; + while (true) { + t7 = part.width; + t7.toString; + if (!(xx < t7)) + break; + for (bi = 0; bi < A._lateReadCheck(ch.__ExrChannel_size, "size"); ++bi, si = si0) { + if (!(ci < t2)) + return A.ioore(fbi, ci); + t7 = fbi[ci]; + if (!(ci < t2)) + return A.ioore(fbi, ci); + fbi[ci] = t7 + 1; + si0 = si + 1; + if (!(si >= 0 && si < len)) + return A.ioore(uncompressedData, si); + t8 = uncompressedData[si]; + if (!(t7 < t6)) + return A.ioore(slice, t7); + slice[t7] = t8; + } + ++xx; + } + } + ++yi; + ++yy; + } + } + } + }; + A.ExrPart.prototype = { + ExrPart$2(_tiled, input, _box_0) { + var t1, t2, t3, t4, $name, bytes, channel, t5, t6, t7, t8, t9, s, num, w, h, _i, ch, nBytes, y, maxBytesPerLine, offset, i, _this = this, + _s14_ = "chromaticities", + _s10_ = "dataWindow", + _s25_ = "Unknown LevelMode format.", + _s13_ = "_bytesPerLine"; + for (t1 = _this.attributes, t2 = type$.JSArray_int, t3 = type$.List_int, t4 = _this.channels; true;) { + $name = input.readString$0(); + if ($name.length === 0) + break; + input.readString$0(); + bytes = input.subset$1(input.readUint32$0()); + input.offset = input.offset + (bytes.end - bytes.offset); + t1.$indexSet(0, $name, new A.ExrAttribute()); + switch ($name) { + case "channels": + for (; true;) { + channel = new A.ExrChannel(); + channel.ExrChannel$1(bytes); + if (channel.name == null) + break; + B.JSArray_methods.add$1(t4, channel); + } + break; + case "chromaticities": + t5 = new Float32Array(8); + _this.__ExrPart_chromaticities = t5; + t5 = A._lateReadCheck(t5, _s14_); + t6 = bytes.readUint32$0(); + t7 = $.$get$__uint32(); + t7[0] = t6; + t6 = $.$get$__uint32ToFloat32(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t8 = t6[0]; + if (0 >= t5.length) + return A.ioore(t5, 0); + t5[0] = t8; + t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t5 = t6[0]; + if (1 >= t8.length) + return A.ioore(t8, 1); + t8[1] = t5; + t5 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t8 = t6[0]; + if (2 >= t5.length) + return A.ioore(t5, 2); + t5[2] = t8; + t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t5 = t6[0]; + if (3 >= t8.length) + return A.ioore(t8, 3); + t8[3] = t5; + t5 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t8 = t6[0]; + if (4 >= t5.length) + return A.ioore(t5, 4); + t5[4] = t8; + t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t5 = t6[0]; + if (5 >= t8.length) + return A.ioore(t8, 5); + t8[5] = t5; + t5 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t8 = t6[0]; + if (6 >= t5.length) + return A.ioore(t5, 6); + t5[6] = t8; + t8 = A._lateReadCheck(_this.__ExrPart_chromaticities, _s14_); + t7[0] = bytes.readUint32$0(); + if (0 >= t6.length) + return A.ioore(t6, 0); + t6 = t6[0]; + if (7 >= t8.length) + return A.ioore(t8, 7); + t8[7] = t6; + break; + case "compression": + t5 = bytes.buffer; + t6 = bytes.offset++; + if (!(t6 >= 0 && t6 < t5.length)) + return A.ioore(t5, t6); + t6 = t5[t6]; + _this._compressionType = t6; + if (t6 > 7) + throw A.wrapException(A.ImageException$("EXR Invalid compression type")); + break; + case "dataWindow": + t5 = bytes.readUint32$0(); + t6 = $.$get$__uint32(); + t6[0] = t5; + t5 = $.$get$__uint32ToInt32(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t7 = t5[0]; + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t8 = t5[0]; + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t9 = t5[0]; + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + _this.set$__ExrPart_dataWindow(t3._as(A._setArrayType([t7, t8, t9, t5[0]], t2))); + t5 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2); + t9 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0); + if (typeof t5 !== "number") + return t5.$sub(); + if (typeof t9 !== "number") + return A.iae(t9); + _this.set$width(0, t5 - t9 + 1); + t9 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3); + t5 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1); + if (typeof t9 !== "number") + return t9.$sub(); + if (typeof t5 !== "number") + return A.iae(t5); + _this.set$height(0, t9 - t5 + 1); + break; + case "displayWindow": + t5 = bytes.readUint32$0(); + t6 = $.$get$__uint32(); + t6[0] = t5; + t5 = $.$get$__uint32ToInt32(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t7 = t5[0]; + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t8 = t5[0]; + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t9 = t5[0]; + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + _this.set$displayWindow(A._setArrayType([t7, t8, t9, t5[0]], t2)); + break; + case "lineOrder": + break; + case "pixelAspectRatio": + t5 = bytes.readUint32$0(); + $.$get$__uint32()[0] = t5; + t5 = $.$get$__uint32ToFloat32(); + if (0 >= t5.length) + return A.ioore(t5, 0); + break; + case "screenWindowCenter": + t5 = bytes.readUint32$0(); + t6 = $.$get$__uint32(); + t6[0] = t5; + t5 = $.$get$__uint32ToFloat32(); + if (0 >= t5.length) + return A.ioore(t5, 0); + t6[0] = bytes.readUint32$0(); + if (0 >= t5.length) + return A.ioore(t5, 0); + break; + case "screenWindowWidth": + t5 = bytes.readUint32$0(); + $.$get$__uint32()[0] = t5; + t5 = $.$get$__uint32ToFloat32(); + if (0 >= t5.length) + return A.ioore(t5, 0); + break; + case "tiles": + _this._tileWidth = bytes.readUint32$0(); + _this._tileHeight = bytes.readUint32$0(); + t5 = bytes.buffer; + t6 = bytes.offset++; + if (!(t6 >= 0 && t6 < t5.length)) + return A.ioore(t5, t6); + t6 = t5[t6]; + _this._tileLevelMode = t6 & 15; + _this._tileRoundingMode = B.JSInt_methods._shrOtherPositive$1(t6, 4) & 15; + break; + case "type": + s = bytes.readString$0(); + if (s !== "deepscanline") + if (s !== "deeptile") + throw A.wrapException(A.ImageException$("EXR Invalid type: " + s)); + break; + default: + break; + } + } + if (_this._tiled) { + t1 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0); + t2 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2); + t3 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1); + t4 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3); + switch (_this._tileLevelMode) { + case 0: + num = 1; + break; + case 1: + t1 = Math.max(t2 - t1 + 1, t4 - t3 + 1); + t2 = _this._tileRoundingMode; + A._asInt(t1); + num = (t2 === 0 ? _this._floorLog2$1(t1) : _this._ceilLog2$1(t1)) + 1; + break; + case 2: + w = t2 - t1 + 1; + num = (_this._tileRoundingMode === 0 ? _this._floorLog2$1(w) : _this._ceilLog2$1(w)) + 1; + break; + default: + A.throwExpression(A.ImageException$(_s25_)); + num = 0; + } + _this._numXLevels = num; + t1 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0); + t2 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2); + t3 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1); + t4 = J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3); + switch (_this._tileLevelMode) { + case 0: + num = 1; + break; + case 1: + t1 = Math.max(t2 - t1 + 1, t4 - t3 + 1); + t2 = _this._tileRoundingMode; + A._asInt(t1); + num = (t2 === 0 ? _this._floorLog2$1(t1) : _this._ceilLog2$1(t1)) + 1; + break; + case 2: + h = t4 - t3 + 1; + num = (_this._tileRoundingMode === 0 ? _this._floorLog2$1(h) : _this._ceilLog2$1(h)) + 1; + break; + default: + A.throwExpression(A.ImageException$(_s25_)); + num = 0; + } + _this._numYLevels = num; + if (_this._tileLevelMode !== 2) + _this._numYLevels = 1; + t1 = _this._numXLevels; + t1.toString; + _this.set$_numXTiles(_this._calculateNumTiles$5(t1, J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 0), J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 2), _this._tileWidth, _this._tileRoundingMode)); + t1 = _this._numYLevels; + t1.toString; + _this.set$_numYTiles(_this._calculateNumTiles$5(t1, J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1), J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 3), _this._tileHeight, _this._tileRoundingMode)); + t1 = _this._calculateBytesPerPixel$0(); + _this.__ExrPart__bytesPerPixel = t1; + t1 = A._lateReadCheck(t1, "_bytesPerPixel"); + t2 = _this._tileWidth; + t2.toString; + t2 = t1 * t2; + _this._maxBytesPerTileLine = t2; + _this._compressor = A.ExrCompressor_ExrCompressor(_this._compressionType, _this, t2, _this._tileHeight); + _box_0.ly = _box_0.lx = 0; + t2 = _this._numXLevels; + t2.toString; + t1 = _this._numYLevels; + t1.toString; + _this.set$_offsets(A.List_List$generate(t2 * t1, new A.ExrPart_closure(_box_0, _this), true, type$.Uint32List)); + } else { + t1 = _this.height; + t1.toString; + _this.__ExrPart__bytesPerLine = new Uint32Array(t1 + 1); + for (t1 = t4.length, _i = 0; _i < t4.length; t4.length === t1 || (0, A.throwConcurrentModificationError)(t4), ++_i) { + ch = t4[_i]; + t2 = A._lateReadCheck(ch.__ExrChannel_size, "size"); + t3 = _this.width; + t3.toString; + nBytes = B.JSInt_methods.$tdiv(t2 * t3, A._lateReadCheck(ch.__ExrChannel_xSampling, "xSampling")); + y = 0; + while (true) { + t2 = _this.height; + t2.toString; + if (!(y < t2)) + break; + if (B.JSInt_methods.$mod(y + J.$index$asx(A._lateReadCheck(_this.__ExrPart_dataWindow, _s10_), 1), A._lateReadCheck(ch.__ExrChannel_ySampling, "ySampling")) === 0) { + t2 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_); + if (!(y < t2.length)) + return A.ioore(t2, y); + t2[y] = t2[y] + nBytes; + } + ++y; + } + } + maxBytesPerLine = 0; + y = 0; + while (true) { + t1 = _this.height; + t1.toString; + if (!(y < t1)) + break; + t1 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_); + if (!(y < t1.length)) + return A.ioore(t1, y); + maxBytesPerLine = Math.max(maxBytesPerLine, t1[y]); + ++y; + } + t1 = A.ExrCompressor_ExrCompressor(_this._compressionType, _this, maxBytesPerLine, null); + _this._compressor = t1; + _this._linesInBuffer = t1.numScanLines$0(); + t1 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_).length; + _this._offsetInLineBuffer = new Uint32Array(t1); + for (offset = 0, i = 0; i <= A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_).length - 1; ++i) { + t1 = _this._linesInBuffer; + t1.toString; + if (B.JSInt_methods.$mod(i, t1) === 0) + offset = 0; + t1 = _this._offsetInLineBuffer; + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = offset; + t1 = A._lateReadCheck(_this.__ExrPart__bytesPerLine, _s13_); + if (!(i < t1.length)) + return A.ioore(t1, i); + offset += t1[i]; + } + t1 = _this.height; + t1.toString; + t2 = _this._linesInBuffer; + t2.toString; + t2 = B.JSInt_methods.$tdiv(t1 + t2, t2); + _this.set$_offsets(A._setArrayType([new Uint32Array(t2 - 1)], type$.JSArray_nullable_Uint32List)); + } + }, + _floorLog2$1(x) { + var y; + for (y = 0; x > 1;) { + ++y; + x = B.JSInt_methods._shrOtherPositive$1(x, 1); + } + return y; + }, + _ceilLog2$1(x) { + var y, r; + for (y = 0, r = 0; x > 1;) { + if ((x & 1) !== 0) + r = 1; + ++y; + x = B.JSInt_methods._shrOtherPositive$1(x, 1); + } + return y + r; + }, + _calculateBytesPerPixel$0() { + var t1, t2, bytesPerPixel, _i; + for (t1 = this.channels, t2 = t1.length, bytesPerPixel = 0, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) + bytesPerPixel += A._lateReadCheck(t1[_i].__ExrChannel_size, "size"); + return bytesPerPixel; + }, + _calculateNumTiles$5(numLevels, min, max, size, rmode) { + var t1, a, i, b, size0, t2, + _list = J.JSArray_JSArray$allocateFixed(numLevels, type$.int); + for (t1 = rmode === 1, a = max - min + 1, i = 0; i < numLevels; ++i) { + b = B.JSInt_methods._shlPositive$1(1, i); + size0 = B.JSInt_methods.$tdiv(a, b); + if (t1 && size0 * b < a) + ++size0; + t2 = Math.max(size0, 1); + size.toString; + _list[i] = B.JSInt_methods.$tdiv(t2 + size - 1, size); + } + return _list; + }, + set$displayWindow(displayWindow) { + type$.nullable_List_int._as(displayWindow); + }, + set$__ExrPart_dataWindow(__ExrPart_dataWindow) { + this.__ExrPart_dataWindow = type$.List_int._as(__ExrPart_dataWindow); + }, + set$width(_, width) { + this.width = A._asIntQ(width); + }, + set$height(_, height) { + this.height = A._asIntQ(height); + }, + set$_offsets(_offsets) { + this._offsets = type$.nullable_List_nullable_Uint32List._as(_offsets); + }, + set$_numXTiles(_numXTiles) { + this._numXTiles = type$.nullable_List_nullable_int._as(_numXTiles); + }, + set$_numYTiles(_numYTiles) { + this._numYTiles = type$.nullable_List_nullable_int._as(_numYTiles); + } + }; + A.ExrPart_closure.prototype = { + call$1(l) { + var t5, t6, result, lx, + t1 = this.$this, + t2 = t1._numXTiles, + t3 = this._box_0, + t4 = t3.lx; + if (!(t4 < t2.length)) + return A.ioore(t2, t4); + t2 = t2[t4]; + t5 = t1._numYTiles; + t6 = t3.ly; + if (!(t6 < t5.length)) + return A.ioore(t5, t6); + t5 = t5[t6]; + result = new Uint32Array(t2 * t5); + lx = t4 + 1; + t3.lx = lx; + if (lx === t1._numXLevels) { + t3.lx = 0; + t3.ly = t6 + 1; + } + return result; + }, + $signature: 54 + }; + A.InternalExrPart.prototype = { + readOffsets$1(input) { + var i, j, t1, numOffsets, t2, _this = this; + if (_this._tiled) + for (i = 0; i < _this._offsets.length; ++i) { + j = 0; + while (true) { + t1 = _this._offsets; + if (!(i < t1.length)) + return A.ioore(t1, i); + t1 = t1[i]; + if (!(j < t1.length)) + break; + t1[j] = input.readUint64$0(); + ++j; + } + } + else { + t1 = _this._offsets; + if (0 >= t1.length) + return A.ioore(t1, 0); + numOffsets = t1[0].length; + for (i = 0; i < numOffsets; ++i) { + t1 = _this._offsets; + if (0 >= t1.length) + return A.ioore(t1, 0); + t1 = t1[0]; + t2 = input.readUint64$0(); + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = t2; + } + } + } + }; + A.InternalExrPizCompressor.prototype = { + InternalExrPizCompressor$3(header, _maxScanLineSize, _numScanLines) { + var _i, t1, tmpBufferSize, _this = this, + _length = header.channels.length, + _list = J.JSArray_JSArray$allocateFixed(_length, type$._PizChannelData); + for (_i = 0; _i < _length; ++_i) + _list[_i] = new A._PizChannelData(); + _this.set$__InternalExrPizCompressor__channelData(type$.List_nullable__PizChannelData._as(_list)); + t1 = _this._exr_piz_compressor$_maxScanLineSize; + t1.toString; + tmpBufferSize = B.JSInt_methods._tdivFast$1(t1 * _this._exr_piz_compressor$_numScanLines, 2); + _this._tmpBuffer = new Uint16Array(tmpBufferSize); + }, + numScanLines$0() { + return this._exr_piz_compressor$_numScanLines; + }, + uncompress$5(input, x, y, width, height) { + var maxX, maxY, t1, t2, channels, numChannels, tmpBufferEnd, i, ch, a1, b1, minNonZero, maxNonZero, bitmap, b, len, t3, j, j0, t4, lut, maxValue, _this = this, + _s12_ = "_channelData", + _s9_ = "ySampling", + _s4_ = "size", _s2_ = "nx"; + if (width == null) + width = _this._header.width; + if (height == null) + height = _this._header._linesInBuffer; + width.toString; + maxX = x + width - 1; + height.toString; + maxY = y + height - 1; + t1 = _this._header; + t2 = t1.width; + t2.toString; + if (maxX > t2) + maxX = t2 - 1; + t2 = t1.height; + t2.toString; + if (maxY > t2) + maxY = t2 - 1; + _this.decodedWidth = maxX - x + 1; + _this.decodedHeight = maxY - y + 1; + channels = t1.channels; + numChannels = channels.length; + for (tmpBufferEnd = 0, i = 0; i < numChannels; ++i) { + if (!(i < channels.length)) + return A.ioore(channels, i); + ch = channels[i]; + t1 = J.$index$asx(A._lateReadCheck(_this.__InternalExrPizCompressor__channelData, _s12_), i); + t1.toString; + t1.___PizChannelData_start = tmpBufferEnd; + t1.___PizChannelData_end = A._lateReadCheck(tmpBufferEnd, "start"); + t2 = A._lateReadCheck(ch.__ExrChannel_xSampling, "xSampling"); + a1 = B.JSInt_methods.$tdiv(x, t2); + b1 = B.JSInt_methods.$tdiv(maxX, t2); + t2 = a1 * t2 < x ? 0 : 1; + t1.___PizChannelData_nx = b1 - a1 + t2; + t2 = A._lateReadCheck(ch.__ExrChannel_ySampling, _s9_); + a1 = B.JSInt_methods.$tdiv(y, t2); + b1 = B.JSInt_methods.$tdiv(maxY, t2); + t2 = a1 * t2 < y ? 0 : 1; + t1.___PizChannelData_ny = b1 - a1 + t2; + t1.___PizChannelData_ys = A._lateReadCheck(ch.__ExrChannel_ySampling, _s9_); + t1.___PizChannelData_size = B.JSInt_methods._tdivFast$1(A._lateReadCheck(ch.__ExrChannel_size, _s4_), 2); + tmpBufferEnd += A._lateReadCheck(t1.___PizChannelData_nx, _s2_) * A._lateReadCheck(t1.___PizChannelData_ny, "ny") * A._lateReadCheck(t1.___PizChannelData_size, _s4_); + } + minNonZero = input.readUint16$0(); + maxNonZero = input.readUint16$0(); + if (maxNonZero >= 8192) + throw A.wrapException(A.ImageException$("Error in header for PIZ-compressed data (invalid bitmap size).")); + bitmap = new Uint8Array(8192); + if (minNonZero <= maxNonZero) { + b = input.readBytes$1(maxNonZero - minNonZero + 1); + for (t1 = b.offset, len = b.end - t1, t2 = b.buffer, t3 = t2.length, j = minNonZero, i = 0; i < len; ++i, j = j0) { + j0 = j + 1; + t4 = t1 + i; + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t2, t4); + t4 = t2[t4]; + if (!(j < 8192)) + return A.ioore(bitmap, j); + bitmap[j] = t4; + } + } + lut = new Uint16Array(65536); + maxValue = _this._reverseLutFromBitmap$2(bitmap, lut); + A.ExrHuffman_uncompress(input, input.readUint32$0(), _this._tmpBuffer, tmpBufferEnd); + for (i = 0; i < numChannels; ++i) { + t1 = J.$index$asx(A._lateReadCheck(_this.__InternalExrPizCompressor__channelData, _s12_), i); + t1.toString; + for (j = 0; j < A._lateReadCheck(t1.___PizChannelData_size, _s4_); ++j) { + t2 = _this._tmpBuffer; + t2.toString; + A.ExrWavelet_decode(t2, A._lateReadCheck(t1.___PizChannelData_start, "start") + j, A._lateReadCheck(t1.___PizChannelData_nx, _s2_), A._lateReadCheck(t1.___PizChannelData_size, _s4_), A._lateReadCheck(t1.___PizChannelData_ny, "ny"), A._lateReadCheck(t1.___PizChannelData_nx, _s2_) * A._lateReadCheck(t1.___PizChannelData_size, _s4_), maxValue); + } + } + t1 = _this._tmpBuffer; + t1.toString; + _this._applyLut$3(lut, t1, tmpBufferEnd); + t1 = _this._exr_piz_compressor$_output; + if (t1 == null) { + t1 = _this._exr_piz_compressor$_maxScanLineSize; + t1.toString; + t1 = _this._exr_piz_compressor$_output = A.OutputBuffer$(false, t1 * _this._exr_piz_compressor$_numScanLines + 73728); + } + t1.length = 0; + for (; y <= maxY; ++y) + for (i = 0; i < numChannels; ++i) { + t1 = J.$index$asx(A._lateReadCheck(_this.__InternalExrPizCompressor__channelData, _s12_), i); + t1.toString; + if (B.JSInt_methods.$mod(y, A._lateReadCheck(t1.___PizChannelData_ys, "ys")) !== 0) + continue; + for (x = A._lateReadCheck(t1.___PizChannelData_nx, _s2_) * A._lateReadCheck(t1.___PizChannelData_size, _s4_); x > 0; --x) { + t2 = _this._exr_piz_compressor$_output; + t2.toString; + t3 = _this._tmpBuffer; + t3.toString; + t4 = A._lateReadCheck(t1.___PizChannelData_end, "end"); + t1.___PizChannelData_end = t4 + 1; + if (t4 >>> 0 !== t4 || t4 >= t3.length) + return A.ioore(t3, t4); + t2.writeUint16$1(t3[t4]); + } + } + t1 = _this._exr_piz_compressor$_output; + return A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); + }, + uncompress$3(input, x, y) { + return this.uncompress$5(input, x, y, null, null); + }, + _applyLut$3(lut, data, nData) { + var i, t2, + t1 = type$.List_int; + t1._as(lut); + t1._as(data); + for (t1 = data.length, i = 0; i < nData; ++i) { + if (!(i < t1)) + return A.ioore(data, i); + t2 = data[i]; + if (!(t2 >= 0 && t2 < 65536)) + return A.ioore(lut, t2); + data[i] = lut[t2]; + } + }, + _reverseLutFromBitmap$2(bitmap, lut) { + var k, i, t1, k0, k1; + for (k = 0, i = 0; i < 65536; ++i) { + if (i !== 0) { + t1 = i >>> 3; + if (!(t1 < 8192)) + return A.ioore(bitmap, t1); + t1 = (bitmap[t1] & 1 << (i & 7)) >>> 0 !== 0; + } else + t1 = true; + if (t1) { + k0 = k + 1; + if (!(k < 65536)) + return A.ioore(lut, k); + lut[k] = i; + k = k0; + } + } + for (k0 = k; k0 < 65536; k0 = k1) { + k1 = k0 + 1; + if (!(k0 < 65536)) + return A.ioore(lut, k0); + lut[k0] = 0; + } + return k - 1; + }, + set$__InternalExrPizCompressor__channelData(__InternalExrPizCompressor__channelData) { + this.__InternalExrPizCompressor__channelData = type$.List_nullable__PizChannelData._as(__InternalExrPizCompressor__channelData); + } + }; + A._PizChannelData.prototype = {}; + A.InternalExrPxr24Compressor.prototype = { + numScanLines$0() { + return this._exr_pxr24_compressor$_numScanLines; + }, + uncompress$5(input, x, y, width, height) { + var ptr, pixel, pixelBytes, maxX, maxY, t2, numChannels, t3, yi, tmpEnd, ci, ch, t4, a1, b1, n, j, t5, t6, k, _this = this, + data = B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(input.toUint8List$0()), 1, null, 0), false), + t1 = _this._output; + if (t1 == null) { + t1 = _this._maxScanLineSize; + t1.toString; + t1 = _this._output = A.OutputBuffer$(false, _this._exr_pxr24_compressor$_numScanLines * t1); + } + t1.length = 0; + ptr = A._setArrayType([0, 0, 0, 0], type$.JSArray_int); + pixel = new Uint32Array(1); + pixelBytes = A.NativeUint8List_NativeUint8List$view(pixel.buffer, 0, null); + if (width == null) + width = _this._header.width; + if (height == null) + height = _this._header._linesInBuffer; + width.toString; + maxX = x + width - 1; + height.toString; + maxY = y + height - 1; + t1 = _this._header; + t2 = t1.width; + t2.toString; + if (maxX > t2) + maxX = t2 - 1; + t2 = t1.height; + t2.toString; + if (maxY > t2) + maxY = t2 - 1; + _this.decodedWidth = maxX - x + 1; + _this.decodedHeight = maxY - y + 1; + t1 = t1.channels; + numChannels = t1.length; + for (t2 = pixelBytes.length, t3 = data.length, yi = y, tmpEnd = 0; yi <= maxY; ++yi) + for (ci = 0; ci < numChannels; ++ci) { + if (!(ci < t1.length)) + return A.ioore(t1, ci); + ch = t1[ci]; + if (B.JSInt_methods.$mod(y, A._lateReadCheck(ch.__ExrChannel_ySampling, "ySampling")) !== 0) + continue; + t4 = A._lateReadCheck(ch.__ExrChannel_xSampling, "xSampling"); + a1 = B.JSInt_methods.$tdiv(x, t4); + b1 = B.JSInt_methods.$tdiv(maxX, t4); + t4 = a1 * t4 < x ? 0 : 1; + n = b1 - a1 + t4; + if (0 >= 1) + return A.ioore(pixel, 0); + pixel[0] = 0; + switch (A._lateReadCheck(ch.__ExrChannel_type, "type")) { + case 0: + B.JSArray_methods.$indexSet(ptr, 0, tmpEnd); + B.JSArray_methods.$indexSet(ptr, 1, ptr[0] + n); + B.JSArray_methods.$indexSet(ptr, 2, ptr[1] + n); + tmpEnd = ptr[2] + n; + for (j = 0; j < n; ++j) { + t4 = ptr[0]; + B.JSArray_methods.$indexSet(ptr, 0, t4 + 1); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(data, t4); + t4 = data[t4]; + t5 = ptr[1]; + B.JSArray_methods.$indexSet(ptr, 1, t5 + 1); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(data, t5); + t5 = data[t5]; + t6 = ptr[2]; + B.JSArray_methods.$indexSet(ptr, 2, t6 + 1); + if (!(t6 >= 0 && t6 < t3)) + return A.ioore(data, t6); + t6 = data[t6]; + pixel[0] = pixel[0] + ((t4 << 24 | t5 << 16 | t6 << 8) >>> 0); + for (k = 0; k < 4; ++k) { + t4 = _this._output; + t4.toString; + if (!(k < t2)) + return A.ioore(pixelBytes, k); + t4.writeByte$1(pixelBytes[k]); + } + } + break; + case 1: + B.JSArray_methods.$indexSet(ptr, 0, tmpEnd); + B.JSArray_methods.$indexSet(ptr, 1, ptr[0] + n); + tmpEnd = ptr[1] + n; + for (j = 0; j < n; ++j) { + t4 = ptr[0]; + B.JSArray_methods.$indexSet(ptr, 0, t4 + 1); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(data, t4); + t4 = data[t4]; + t5 = ptr[1]; + B.JSArray_methods.$indexSet(ptr, 1, t5 + 1); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(data, t5); + t5 = data[t5]; + pixel[0] = pixel[0] + ((t4 << 8 | t5) >>> 0); + for (k = 0; k < 2; ++k) { + t4 = _this._output; + t4.toString; + if (!(k < t2)) + return A.ioore(pixelBytes, k); + t4.writeByte$1(pixelBytes[k]); + } + } + break; + case 2: + B.JSArray_methods.$indexSet(ptr, 0, tmpEnd); + B.JSArray_methods.$indexSet(ptr, 1, ptr[0] + n); + B.JSArray_methods.$indexSet(ptr, 2, ptr[1] + n); + tmpEnd = ptr[2] + n; + for (j = 0; j < n; ++j) { + t4 = ptr[0]; + B.JSArray_methods.$indexSet(ptr, 0, t4 + 1); + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(data, t4); + t4 = data[t4]; + t5 = ptr[1]; + B.JSArray_methods.$indexSet(ptr, 1, t5 + 1); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(data, t5); + t5 = data[t5]; + t6 = ptr[2]; + B.JSArray_methods.$indexSet(ptr, 2, t6 + 1); + if (!(t6 >= 0 && t6 < t3)) + return A.ioore(data, t6); + t6 = data[t6]; + pixel[0] = pixel[0] + ((t4 << 24 | t5 << 16 | t6 << 8) >>> 0); + for (k = 0; k < 4; ++k) { + t4 = _this._output; + t4.toString; + if (!(k < t2)) + return A.ioore(pixelBytes, k); + t4.writeByte$1(pixelBytes[k]); + } + } + break; + } + } + t1 = _this._output; + return A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); + }, + uncompress$3(input, x, y) { + return this.uncompress$5(input, x, y, null, null); + } + }; + A.InternalExrRleCompressor.prototype = { + numScanLines$0() { + return 1; + }, + uncompress$5(input, x, y, width, height) { + var maxX, maxY, t2, t3, n, count, count0, data, len, i, t10, si, si0, t11, t4, t20, _this = this, + t1 = input.end, + out = A.OutputBuffer$(false, (t1 - input.offset) * 2); + if (width == null) + width = _this._header.width; + if (height == null) + height = _this._header._linesInBuffer; + width.toString; + maxX = x + width - 1; + height.toString; + maxY = y + height - 1; + t2 = _this._header; + t3 = t2.width; + t3.toString; + if (maxX > t3) + maxX = t3 - 1; + t2 = t2.height; + t2.toString; + if (maxY > t2) + maxY = t2 - 1; + _this.decodedWidth = maxX - x + 1; + _this.decodedHeight = maxY - y + 1; + for (; t2 = input.offset, t2 < t1;) { + t3 = input.buffer; + input.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + n = t2[0]; + if (n < 0) { + count = -n; + for (; count0 = count - 1, count > 0; count = count0) { + t2 = input.buffer; + t3 = input.offset++; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + out.writeByte$1(t2[t3]); + } + } else + for (count = n; count0 = count - 1, count >= 0; count = count0) { + t2 = input.buffer; + t3 = input.offset++; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + out.writeByte$1(t2[t3]); + } + } + data = A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); + for (len = data.length, i = 1; i < len; ++i) + data[i] = data[i - 1] + data[i] - 128; + t1 = _this._exr_rle_compressor$_outCache; + if (t1 == null || t1.length !== len) + t1 = _this._exr_rle_compressor$_outCache = new Uint8Array(len); + t2 = B.JSInt_methods._tdivFast$1(len + 1, 2); + for (t10 = 0, si = 0; true; t2 = t20, t10 = t11) { + if (si < len) { + t1.toString; + si0 = si + 1; + t11 = t10 + 1; + if (!(t10 < len)) + return A.ioore(data, t10); + t3 = data[t10]; + t4 = t1.length; + if (!(si < t4)) + return A.ioore(t1, si); + t1[si] = t3; + } else + break; + if (si0 < len) { + si = si0 + 1; + t20 = t2 + 1; + if (!(t2 < len)) + return A.ioore(data, t2); + t2 = data[t2]; + if (!(si0 < t4)) + return A.ioore(t1, si0); + t1[si0] = t2; + } else + break; + } + t1.toString; + return t1; + }, + uncompress$3(input, x, y) { + return this.uncompress$5(input, x, y, null, null); + } + }; + A.InternalExrZipCompressor.prototype = { + numScanLines$0() { + return this._exr_zip_compressor$_numScanLines; + }, + uncompress$5(input, x, y, width, height) { + var maxX, maxY, t1, t2, len, i, t10, si, si0, t11, t3, t4, t20, _this = this, + data = B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(input.toUint8List$0()), 1, null, 0), false); + if (width == null) + width = _this._header.width; + if (height == null) + height = _this._header._linesInBuffer; + width.toString; + maxX = x + width - 1; + height.toString; + maxY = y + height - 1; + t1 = _this._header; + t2 = t1.width; + t2.toString; + if (maxX > t2) + maxX = t2 - 1; + t1 = t1.height; + t1.toString; + if (maxY > t1) + maxY = t1 - 1; + _this.decodedWidth = maxX - x + 1; + _this.decodedHeight = maxY - y + 1; + for (len = data.length, i = 1; i < len; ++i) + data[i] = data[i - 1] + data[i] - 128; + t1 = _this._outCache; + if (t1 == null || t1.length !== len) + t1 = _this._outCache = new Uint8Array(len); + t2 = B.JSInt_methods._tdivFast$1(len + 1, 2); + for (t10 = 0, si = 0; true; t2 = t20, t10 = t11) { + if (si < len) { + t1.toString; + si0 = si + 1; + t11 = t10 + 1; + if (!(t10 < len)) + return A.ioore(data, t10); + t3 = data[t10]; + t4 = t1.length; + if (!(si < t4)) + return A.ioore(t1, si); + t1[si] = t3; + } else + break; + if (si0 < len) { + si = si0 + 1; + t20 = t2 + 1; + if (!(t2 < len)) + return A.ioore(data, t2); + t2 = data[t2]; + if (!(si0 < t4)) + return A.ioore(t1, si0); + t1[si0] = t2; + } else + break; + } + t1.toString; + return t1; + }, + uncompress$3(input, x, y) { + return this.uncompress$5(input, x, y, null, null); + } + }; + A.ExrDecoder.prototype = { + decodeFrame$1(frame) { + var t1 = this.exrImage; + if (t1 == null) + return null; + t1 = t1._parts; + if (!(frame < t1.length)) + return A.ioore(t1, frame); + return A.hdrToImage(t1[frame].framebuffer, 1); + }, + decodeImage$1(bytes) { + var t1; + type$.List_int._as(bytes); + t1 = new A.ExrImage(A._setArrayType([], type$.JSArray_InternalExrPart)); + t1.ExrImage$1(bytes); + this.exrImage = t1; + return this.decodeFrame$1(0); + } + }; + A.GifColorMap.prototype = { + $index(_, index) { + return B.NativeUint8List_methods.$index(this.colors, A._asInt(index)); + }, + setColor$4(index, r, g, b) { + var t3, + ci = index * 3, + t1 = this.colors, + t2 = t1.length; + if (!(ci < t2)) + return A.ioore(t1, ci); + t1[ci] = r; + t3 = ci + 1; + if (!(t3 < t2)) + return A.ioore(t1, t3); + t1[t3] = g; + t3 = ci + 2; + if (!(t3 < t2)) + return A.ioore(t1, t3); + t1[t3] = b; + } + }; + A.GifImageDesc.prototype = { + GifImageDesc$1(input) { + var b, i, t1, t2, t3, t4, t5, t6, _this = this; + _this.__GifImageDesc_x = input.readUint16$0(); + _this.__GifImageDesc_y = input.readUint16$0(); + _this.__GifImageDesc_width = input.readUint16$0(); + _this.__GifImageDesc_height = input.readUint16$0(); + b = input.readByte$0(); + _this.__GifImageDesc_interlaced = (b & 64) !== 0; + if ((b & 128) !== 0) { + _this.colorMap = A.GifColorMap$(B.JSInt_methods._shlPositive$1(1, (b & 7) + 1)); + for (i = 0; t1 = _this.colorMap, i < t1.numColors; ++i) { + t2 = input.buffer; + t3 = input.offset; + t4 = input.offset = t3 + 1; + t5 = t2.length; + if (!(t3 >= 0 && t3 < t5)) + return A.ioore(t2, t3); + t3 = t2[t3]; + t6 = input.offset = t4 + 1; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t2, t4); + t4 = t2[t4]; + input.offset = t6 + 1; + if (!(t6 >= 0 && t6 < t5)) + return A.ioore(t2, t6); + t1.setColor$4(i, t3, t4, t2[t6]); + } + } + _this.__GifImageDesc__inputPosition = input.offset - input.start; + } + }; + A.InternalGifImageDesc.prototype = {}; + A.GifInfo.prototype = {}; + A.GifDecoder.prototype = { + startDecode$1(bytes) { + var recordType, gifImage, extCode, error, t1, t2, t3, t4, t5, exception, _this = this; + _this._input = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); + _this.info = new A.GifInfo(A._setArrayType([], type$.JSArray_GifImageDesc)); + if (!_this._getInfo$0()) + return null; + try { + for (; t1 = _this._input, t2 = t1.offset, t2 < t1.end;) { + t3 = t1.buffer; + t4 = t1.offset = t2 + 1; + t5 = t3.length; + if (!(t2 >= 0 && t2 < t5)) + return A.ioore(t3, t2); + recordType = t3[t2]; + switch (recordType) { + case 44: + gifImage = _this._skipImage$0(); + if (gifImage == null) { + t1 = _this.info; + return t1; + } + B.JSArray_methods.add$1(_this.info.frames, gifImage); + break; + case 33: + t1.offset = t4 + 1; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t3, t4); + extCode = t3[t4]; + if (J.$eq$(extCode, 255)) { + t1 = _this._input; + t2 = t1.buffer; + t3 = t1.offset++; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + if (t1.readString$1(t2[t3]) === "NETSCAPE2.0") { + t2 = t1.buffer; + t3 = t1.offset; + t4 = t1.offset = t3 + 1; + t5 = t2.length; + if (!(t3 >= 0 && t3 < t5)) + return A.ioore(t2, t3); + t3 = t2[t3]; + t1.offset = t4 + 1; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t2, t4); + t4 = t2[t4]; + if (t3 === 3 && t4 === 1) + t1.readUint16$0(); + } else + _this._skipRemainder$0(); + } else if (J.$eq$(extCode, 249)) { + t1 = _this._input; + t1.toString; + _this._readGraphicsControlExt$1(t1); + } else + _this._skipRemainder$0(); + break; + case 59: + t1 = _this.info; + return t1; + default: + break; + } + } + } catch (exception) { + error = A.unwrapException(exception); + A.print(error); + } + return _this.info; + }, + _readGraphicsControlExt$1(_input) { + var b, transparent, t1, t2, gifImage; + _input.readByte$0(); + b = _input.readByte$0(); + _input.readUint16$0(); + transparent = _input.readByte$0(); + _input.readByte$0(); + B.JSInt_methods._shrOtherPositive$1(b, 2); + t1 = _input.subset$2$offset(1, 0); + t2 = t1.buffer; + t1 = t1.offset; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 44) { + ++_input.offset; + gifImage = this._skipImage$0(); + if (gifImage == null) + return; + if ((b & 1) !== 0) { + t1 = gifImage.colorMap; + if (t1 != null) + t1.transparent = transparent; + else { + t1 = this.info.globalColorMap; + if (t1 != null) + t1.transparent = transparent; + } + } + B.JSArray_methods.add$1(this.info.frames, gifImage); + } + }, + decodeFrame$1(frame) { + var t2, t3, gifImage, _this = this, + t1 = _this._input; + if (t1 == null || _this.info == null) + return null; + t2 = _this.info.frames; + t3 = t2.length; + if (frame >= t3 || false) + return null; + if (!(frame < t3)) + return A.ioore(t2, frame); + gifImage = t2[frame]; + t1.toString; + t1.offset = A._lateReadCheck(gifImage.__GifImageDesc__inputPosition, "_inputPosition"); + t1 = _this.info.frames; + if (!(frame < t1.length)) + return A.ioore(t1, frame); + return _this._decodeImage$1(t1[frame]); + }, + decodeImage$1(bytes) { + if (this.startDecode$1(type$.List_int._as(bytes)) == null) + return null; + return this.decodeFrame$1(0); + }, + _skipImage$0() { + var gifImage, + t1 = this._input; + if (t1.offset >= t1.end) + return null; + gifImage = new A.InternalGifImageDesc(); + gifImage.GifImageDesc$1(t1); + ++this._input.offset; + this._skipRemainder$0(); + return gifImage; + }, + _decodeImage$1(gifImage) { + var t1, t2, t3, t4, t5, colorMap, image, line, i, j, y, _this = this; + if (_this._gif_decoder$_buffer == null) { + _this._gif_decoder$_buffer = new Uint8Array(256); + _this.__GifDecoder__stack = new Uint8Array(4095); + _this.__GifDecoder__suffix = new Uint8Array(4096); + _this._prefix = new Uint32Array(4096); + } + t1 = _this._bitsPerPixel = _this._input.readByte$0(); + t2 = B.JSInt_methods.$shl(1, t1); + _this._clearCode = t2; + ++t2; + _this._eofCode = t2; + _this._runningCode = t2 + 1; + ++t1; + _this._runningBits = t1; + _this._maxCode1 = B.JSInt_methods.$shl(1, t1); + _this._stackPtr = 0; + _this._lastCode = 4098; + _this._currentShiftDWord = _this._currentShiftState = 0; + _this._gif_decoder$_buffer[0] = 0; + t1 = _this._prefix; + t1.toString; + B.NativeUint32List_methods.fillRange$3(t1, 0, 4096, 4098); + t1 = A._lateReadCheck(gifImage.__GifImageDesc_width, "width"); + t2 = A._lateReadCheck(gifImage.__GifImageDesc_height, "height"); + t3 = A._lateReadCheck(gifImage.__GifImageDesc_x, "x"); + t4 = _this.info; + t5 = t4.width; + if (typeof t5 !== "number") + return A.iae(t5); + if (t3 + t1 <= t5) { + t3 = A._lateReadCheck(gifImage.__GifImageDesc_y, "y"); + t4 = _this.info; + t5 = t4.height; + if (typeof t5 !== "number") + return A.iae(t5); + t5 = t3 + t2 > t5; + t3 = t5; + } else + t3 = true; + if (t3) + return null; + colorMap = gifImage.colorMap; + colorMap = colorMap != null ? colorMap : t4.globalColorMap; + _this._pixelCount = t1 * t2; + image = A.Image$(t1, t2, B.Channels_1, null, null); + line = new Uint8Array(t1); + if (A._lateReadCheck(gifImage.__GifImageDesc_interlaced, "interlaced")) { + t1 = A._lateReadCheck(gifImage.__GifImageDesc_y, "y"); + for (t2 = t1 + t2, i = 0, j = 0; i < 4; ++i) + for (y = t1 + B.List_0_4_2_1[i]; y < t2; y += B.List_8_8_4_2[i], ++j) { + if (!_this._getLine$1(line)) + return image; + _this._updateImage$4(image, y, colorMap, line); + } + } else + for (y = 0; y < t2; ++y) { + if (!_this._getLine$1(line)) + return image; + _this._updateImage$4(image, y, colorMap, line); + } + return image; + }, + _updateImage$4(image, y, colorMap, line) { + var width, t1, t2, t3, t4, t5, x, t6, ci, a, t7, t8, t9, t10; + if (colorMap != null) + for (width = line.length, t1 = colorMap.colors, t2 = t1.length, t3 = image.data, t4 = y * image.width, t5 = t3.length, x = 0; x < width; ++x) { + t6 = line[x]; + ci = t6 * 3; + a = t6 === colorMap.transparent ? 0 : 255; + if (!(ci < t2)) + return A.ioore(t1, ci); + t6 = t1[ci]; + t7 = ci + 1; + if (!(t7 < t2)) + return A.ioore(t1, t7); + t7 = t1[t7]; + t8 = ci + 2; + if (!(t8 < t2)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)); + t8 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t8, 0, 255)); + t7 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t7, 0, 255)); + t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t6, 0, 255)); + t10 = t4 + x; + if (!(t10 >= 0 && t10 < t5)) + return A.ioore(t3, t10); + t3[t10] = (t9 << 24 | t8 << 16 | t7 << 8 | t6) >>> 0; + } + }, + _getInfo$0() { + var t1, b, i, t2, t3, t4, t5, t6, t7, _this = this, + tag = _this._input.readString$1(6); + if (tag !== "GIF87a" && tag !== "GIF89a") + return false; + t1 = _this.info; + t1.toString; + t1.width = _this._input.readUint16$0(); + t1 = _this.info; + t1.toString; + t1.height = _this._input.readUint16$0(); + b = _this._input.readByte$0(); + _this.info.toString; + _this._input.readByte$0(); + ++_this._input.offset; + if ((b & 128) !== 0) { + t1 = _this.info; + t1.toString; + t1.globalColorMap = A.GifColorMap$(B.JSInt_methods._shlPositive$1(1, (b & 7) + 1)); + for (i = 0; t1 = _this.info.globalColorMap, i < t1.numColors; ++i) { + t2 = _this._input; + t3 = t2.buffer; + t4 = t2.offset; + t5 = t2.offset = t4 + 1; + t6 = t3.length; + if (!(t4 >= 0 && t4 < t6)) + return A.ioore(t3, t4); + t4 = t3[t4]; + t7 = t2.offset = t5 + 1; + if (!(t5 >= 0 && t5 < t6)) + return A.ioore(t3, t5); + t5 = t3[t5]; + t2.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t6)) + return A.ioore(t3, t7); + t1.setColor$4(i, t4, t5, t3[t7]); + } + } + _this.info.toString; + return true; + }, + _getLine$1(line) { + var _this = this, + t1 = _this._pixelCount; + t1.toString; + _this._pixelCount = t1 - line.length; + if (!_this._decompressLine$1(line)) + return false; + if (_this._pixelCount === 0) + _this._skipRemainder$0(); + return true; + }, + _skipRemainder$0() { + var b, t2, t3, + t1 = this._input; + if (t1.offset >= t1.end) + return true; + b = t1.readByte$0(); + while (true) { + if (b !== 0) { + t1 = this._input; + t1 = t1.offset < t1.end; + } else + t1 = false; + if (!t1) + break; + t1 = this._input; + t2 = t1.offset += b; + if (t2 >= t1.end) + return true; + t3 = t1.buffer; + t1.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + b = t3[t2]; + } + return true; + }, + _decompressLine$1(line) { + var lineLen, i, i0, t2, currentPrefix, j, t3, t4, t5, j0, _this = this, _s6_ = "_stack", + _s7_ = "_suffix", + t1 = _this._stackPtr; + if (t1 > 4095) + return false; + lineLen = line.length; + if (t1 !== 0) { + i = 0; + while (true) { + if (!(t1 !== 0 && i < lineLen)) + break; + i0 = i + 1; + t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); + t2 = --_this._stackPtr; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1 = t1[t2]; + if (!(i < lineLen)) + return A.ioore(line, i); + line[i] = t1; + t1 = t2; + i = i0; + } + } else + i = 0; + for (; i < lineLen;) { + currentPrefix = _this._currentCode = _this._decompressInput$0(); + if (currentPrefix == null) + return false; + t1 = _this._eofCode; + if (currentPrefix === t1) + return false; + t2 = _this._clearCode; + if (currentPrefix === t2) { + for (t2 = _this._prefix, j = 0; j <= 4095; ++j) + t2[j] = 4098; + _this._runningCode = t1 + 1; + t1 = _this._bitsPerPixel + 1; + _this._runningBits = t1; + _this._maxCode1 = B.JSInt_methods.$shl(1, t1); + _this._lastCode = 4098; + } else { + if (currentPrefix < t2) { + i0 = i + 1; + if (!(i >= 0)) + return A.ioore(line, i); + line[i] = currentPrefix; + i = i0; + } else { + t1 = _this._prefix; + t1.toString; + if (currentPrefix >>> 0 !== currentPrefix || currentPrefix >= 4096) + return A.ioore(t1, currentPrefix); + if (t1[currentPrefix] === 4098) + if (currentPrefix === _this._runningCode - 2) { + currentPrefix = _this._lastCode; + t1 = A._lateReadCheck(_this.__GifDecoder__suffix, _s7_); + t2 = _this._runningCode - 2; + t3 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); + t4 = _this._stackPtr++; + t5 = _this._getPrefixChar$3(_this._prefix, _this._lastCode, _this._clearCode); + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t3[t4] = t5; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t5; + } else + return false; + j = 0; + while (true) { + j0 = j + 1; + if (!(j <= 4095 && currentPrefix > _this._clearCode && currentPrefix <= 4095)) + break; + t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); + t2 = _this._stackPtr++; + t3 = A._lateReadCheck(_this.__GifDecoder__suffix, _s7_); + if (!(currentPrefix >= 0 && currentPrefix < t3.length)) + return A.ioore(t3, currentPrefix); + t3 = t3[currentPrefix]; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t3; + t3 = _this._prefix; + t3.toString; + if (!(currentPrefix < 4096)) + return A.ioore(t3, currentPrefix); + currentPrefix = t3[currentPrefix]; + j = j0; + } + if (j0 >= 4095 || currentPrefix > 4095) + return false; + t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); + t2 = _this._stackPtr++; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = currentPrefix; + while (true) { + if (!(_this._stackPtr !== 0 && i < lineLen)) + break; + i0 = i + 1; + t1 = A._lateReadCheck(_this.__GifDecoder__stack, _s6_); + t2 = --_this._stackPtr; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (!(i >= 0 && i < lineLen)) + return A.ioore(line, i); + line[i] = t2; + i = i0; + } + } + t1 = _this._lastCode; + if (t1 !== 4098) { + t2 = _this._prefix; + t2.toString; + t3 = _this._runningCode - 2; + if (!(t3 >= 0 && t3 < 4096)) + return A.ioore(t2, t3); + t3 = t2[t3] === 4098; + t2 = t3; + } else + t2 = false; + if (t2) { + t2 = _this._prefix; + t2.toString; + t3 = _this._runningCode - 2; + if (!(t3 >= 0 && t3 < 4096)) + return A.ioore(t2, t3); + t2[t3] = t1; + t1 = _this._currentCode; + t2 = _this.__GifDecoder__suffix; + if (t1 === t3) { + t1 = A._lateReadCheck(t2, _s7_); + t2 = _this._runningCode - 2; + t3 = _this._getPrefixChar$3(_this._prefix, _this._lastCode, _this._clearCode); + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t3; + } else { + t1 = A._lateReadCheck(t2, _s7_); + t2 = _this._runningCode - 2; + t3 = _this._prefix; + t4 = _this._currentCode; + t4.toString; + t4 = _this._getPrefixChar$3(t3, t4, _this._clearCode); + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = t4; + } + } + t1 = _this._currentCode; + t1.toString; + _this._lastCode = t1; + } + } + return true; + }, + _decompressInput$0() { + var t1, t2, t3, t4, _this = this; + if (_this._runningBits > 12) + return null; + for (; t1 = _this._currentShiftState, t2 = _this._runningBits, t1 < t2;) { + t1 = _this._bufferedInput$0(); + t1.toString; + t2 = _this._currentShiftDWord; + t3 = _this._currentShiftState; + _this._currentShiftDWord = (t2 | B.JSInt_methods.$shl(t1, t3)) >>> 0; + _this._currentShiftState = t3 + 8; + } + t3 = _this._currentShiftDWord; + if (!(t2 >= 0 && t2 < 13)) + return A.ioore(B.List_Qw3, t2); + t4 = B.List_Qw3[t2]; + _this._currentShiftDWord = B.JSInt_methods._shrBothPositive$1(t3, t2); + _this._currentShiftState = t1 - t2; + t1 = _this._runningCode; + if (t1 < 4097) { + ++t1; + _this._runningCode = t1; + t1 = t1 > _this._maxCode1 && t2 < 12; + } else + t1 = false; + if (t1) { + _this._maxCode1 = _this._maxCode1 << 1 >>> 0; + _this._runningBits = t2 + 1; + } + return t3 & t4; + }, + _getPrefixChar$3(prefix, code, clearCode) { + var i0, t1, i = 0; + while (true) { + if (code > clearCode) { + i0 = i + 1; + t1 = i <= 4095; + i = i0; + } else + t1 = false; + if (!t1) + break; + if (code > 4095) + return 4098; + prefix.toString; + if (!(code >= 0)) + return A.ioore(prefix, code); + code = prefix[code]; + } + return code; + }, + _bufferedInput$0() { + var nextByte, t3, _this = this, + t1 = _this._gif_decoder$_buffer, + t2 = t1[0]; + if (t2 === 0) { + t1[0] = _this._input.readByte$0(); + t1 = _this._gif_decoder$_buffer; + t2 = t1[0]; + if (t2 === 0) + return null; + B.NativeUint8List_methods.setRange$3(t1, 1, 1 + t2, _this._input.readBytes$1(t2).toUint8List$0()); + t1 = _this._gif_decoder$_buffer; + nextByte = t1[1]; + t1[1] = 2; + t1[0] = t1[0] - 1; + } else { + t3 = t1[1]; + t1[1] = t3 + 1; + if (!(t3 < 256)) + return A.ioore(t1, t3); + nextByte = t1[t3]; + t1[0] = t2 - 1; + } + return nextByte; + } + }; + A.GifEncoder.prototype = { + addFrame$1(image) { + var t1, _this = this; + if (_this.output == null) { + _this.output = A.OutputBuffer$(false, 8192); + t1 = A.NeuralQuantizer$(image, _this.samplingFactor); + _this._lastColorMap = t1; + _this._lastImage = A.ditherPixels(image, t1, B.DitherKernel_2, false); + _this._lastImageDuration = null; + _this.__GifEncoder__width = image.width; + _this.__GifEncoder__height = image.height; + return; + } + if (_this._encodedFrames === 0) { + _this._writeHeader$2(A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height")); + _this._writeApplicationExt$0(); + } + _this._writeGraphicsCtrlExt$0(); + _this._addImage$5(_this._lastImage, A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height"), A._lateReadCheck(_this._lastColorMap.__NeuralQuantizer_colorMap, "colorMap"), 256); + ++_this._encodedFrames; + t1 = A.NeuralQuantizer$(image, _this.samplingFactor); + _this._lastColorMap = t1; + _this._lastImage = A.ditherPixels(image, t1, B.DitherKernel_2, false); + _this._lastImageDuration = null; + }, + finish$0(_) { + var t1, bytes, _this = this; + if (_this.output == null) + return null; + if (_this._encodedFrames === 0) { + _this._writeHeader$2(A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height")); + _this._writeApplicationExt$0(); + } else + _this._writeGraphicsCtrlExt$0(); + _this._addImage$5(_this._lastImage, A._lateReadCheck(_this.__GifEncoder__width, "_width"), A._lateReadCheck(_this.__GifEncoder__height, "_height"), A._lateReadCheck(_this._lastColorMap.__NeuralQuantizer_colorMap, "colorMap"), 256); + _this.output.writeByte$1(59); + _this._lastColorMap = _this._lastImage = null; + _this._encodedFrames = 0; + t1 = _this.output; + bytes = A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); + _this.output = null; + return bytes; + }, + _addImage$5(image, width, height, colorMap, numColors) { + var i, _this = this; + _this.output.writeByte$1(44); + _this.output.writeUint16$1(0); + _this.output.writeUint16$1(0); + _this.output.writeUint16$1(width); + _this.output.writeUint16$1(height); + _this.output.writeByte$1(135); + _this.output.writeBytes$1(colorMap); + for (i = numColors; i < 256; ++i) { + _this.output.writeByte$1(0); + _this.output.writeByte$1(0); + _this.output.writeByte$1(0); + } + _this._encodeLZW$3(image, width, height); + }, + _encodeLZW$3(image, width, height) { + var hTab, codeTab, _nextPixel, ent, hshift, fcode, i, outerLoop, c, t1, disp, c0, _this = this, _box_0 = {}; + _this._blockSize = _this._curBits = _this._curAccum = 0; + _this.__GifEncoder__block = new Uint8Array(256); + _this.output.writeByte$1(8); + hTab = new Int32Array(5003); + codeTab = new Int32Array(5003); + _box_0.remaining = width * height; + _box_0.curPixel = 0; + _this._nBits = _this._initBits = 9; + _this._maxCode = 511; + _this._gif_encoder$_clearCode = 256; + _this._EOFCode = 257; + _this._clearFlag = false; + _this._freeEnt = 258; + _nextPixel = new A.GifEncoder__encodeLZW__nextPixel(_box_0, image); + ent = _nextPixel.call$0(); + for (hshift = 0, fcode = 5003; fcode < 65536; fcode *= 2) + ++hshift; + hshift = 8 - hshift; + for (i = 0; i < 5003; ++i) + hTab[i] = -1; + _this._gif_encoder$_output$1(_this._gif_encoder$_clearCode); + for (outerLoop = true; outerLoop;) { + c = _nextPixel.call$0(); + for (outerLoop = false; c !== -1;) { + fcode = (c << 12 >>> 0) + ent; + i = (B.JSInt_methods.$shl(c, hshift) ^ ent) >>> 0; + if (!(i < 5003)) + return A.ioore(hTab, i); + t1 = hTab[i]; + if (t1 === fcode) { + ent = codeTab[i]; + c = _nextPixel.call$0(); + continue; + } else if (t1 >= 0) { + disp = 5003 - i; + if (i === 0) + disp = 1; + do { + i -= disp; + if (i < 0) + i += 5003; + if (!(i >= 0 && i < 5003)) + return A.ioore(hTab, i); + t1 = hTab[i]; + if (t1 === fcode) { + ent = codeTab[i]; + outerLoop = true; + break; + } + } while (t1 >= 0); + if (outerLoop) + break; + } + _this._gif_encoder$_output$1(ent); + t1 = _this._freeEnt; + if (t1 < 4096) { + _this._freeEnt = t1 + 1; + codeTab[i] = t1; + hTab[i] = fcode; + } else { + for (i = 0; i < 5003; ++i) + hTab[i] = -1; + t1 = _this._gif_encoder$_clearCode; + _this._freeEnt = t1 + 2; + _this._clearFlag = true; + _this._gif_encoder$_output$1(t1); + } + c0 = _nextPixel.call$0(); + ent = c; + c = c0; + } + } + _this._gif_encoder$_output$1(ent); + _this._gif_encoder$_output$1(_this._EOFCode); + _this.output.writeByte$1(0); + }, + _gif_encoder$_output$1(code) { + var t3, _this = this, + t1 = _this._curAccum, + t2 = _this._curBits; + if (!(t2 >= 0 && t2 < 17)) + return A.ioore(B.List_uRr, t2); + t1 &= B.List_uRr[t2]; + _this._curAccum = t1; + if (t2 > 0) { + t1 = (t1 | B.JSInt_methods._shlPositive$1(code, t2)) >>> 0; + _this._curAccum = t1; + } else { + _this._curAccum = code; + t1 = code; + } + t2 += _this._nBits; + _this._curBits = t2; + for (; t2 >= 8;) { + _this._addToBlock$1(t1 & 255); + t1 = B.JSInt_methods._shrOtherPositive$1(_this._curAccum, 8); + _this._curAccum = t1; + t2 = _this._curBits -= 8; + } + if (_this._freeEnt > _this._maxCode || _this._clearFlag) + if (_this._clearFlag) { + t3 = _this._initBits; + _this._nBits = t3; + _this._maxCode = B.JSInt_methods._shlPositive$1(1, t3) - 1; + _this._clearFlag = false; + } else { + t3 = ++_this._nBits; + if (t3 === 12) + _this._maxCode = 4096; + else + _this._maxCode = B.JSInt_methods._shlPositive$1(1, t3) - 1; + } + if (code === _this._EOFCode) { + for (; t2 > 0;) { + _this._addToBlock$1(t1 & 255); + t1 = B.JSInt_methods._shrOtherPositive$1(_this._curAccum, 8); + _this._curAccum = t1; + t2 = _this._curBits -= 8; + } + _this._writeBlock$0(); + } + }, + _writeBlock$0() { + var _this = this, + t1 = _this._blockSize; + if (t1 > 0) { + _this.output.writeByte$1(t1); + t1 = _this.output; + t1.toString; + t1.writeBytes$2(A._lateReadCheck(_this.__GifEncoder__block, "_block"), _this._blockSize); + _this._blockSize = 0; + } + }, + _addToBlock$1(c) { + var _this = this, + t1 = A._lateReadCheck(_this.__GifEncoder__block, "_block"), + t2 = _this._blockSize, + t3 = t2 + 1; + _this._blockSize = t3; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = c; + if (t3 >= 254) + _this._writeBlock$0(); + }, + _writeApplicationExt$0() { + var t1, _this = this; + _this.output.writeByte$1(33); + _this.output.writeByte$1(255); + _this.output.writeByte$1(11); + _this.output.writeBytes$1(new A.CodeUnits("NETSCAPE2.0")); + t1 = _this.output; + t1.toString; + t1.writeBytes$1(A._setArrayType([3, 1], type$.JSArray_int)); + _this.output.writeUint16$1(0); + _this.output.writeByte$1(0); + }, + _writeGraphicsCtrlExt$0() { + var t1, _this = this; + _this.output.writeByte$1(33); + _this.output.writeByte$1(249); + _this.output.writeByte$1(4); + _this.output.writeByte$1(0); + t1 = _this.output; + t1.writeUint16$1(80); + _this.output.writeByte$1(0); + _this.output.writeByte$1(0); + }, + _writeHeader$2(width, height) { + var _this = this; + _this.output.writeBytes$1(new A.CodeUnits("GIF89a")); + _this.output.writeUint16$1(width); + _this.output.writeUint16$1(height); + _this.output.writeByte$1(0); + _this.output.writeByte$1(0); + _this.output.writeByte$1(0); + } + }; + A.GifEncoder__encodeLZW__nextPixel.prototype = { + call$0() { + var t1 = this._box_0, + t2 = t1.remaining; + if (t2 === 0) + return -1; + t1.remaining = t2 - 1; + t2 = this.image; + t2.toString; + t1 = t1.curPixel++; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + return t2[t1] & 255; + }, + $signature: 28 + }; + A.IcoDecoder.prototype = { + decodeFrame$1(frame) { + var t2, imageInfo, t3, imageBuffer, png, dummyBmpHeader, t4, t5, t6, t7, t8, t9, t10, compression, t11, bmpInfo, offset, inp, bmp, image, padding, rowLength, y, line, bytes, x, j, t12, t13, t14, t15, _null = null, + t1 = this._ico_decoder$_input; + if (t1 != null) { + t2 = this._icoInfo; + t2 = t2 == null || frame >= t2.numFrames; + } else + t2 = true; + if (t2) + return _null; + t2 = this._icoInfo.images; + if (!(frame < t2.length)) + return A.ioore(t2, frame); + imageInfo = t2[frame]; + t2 = t1.buffer; + t1 = t1.start + imageInfo.bytesOffset; + t3 = imageInfo.bytesSize; + imageBuffer = J.sublist$2$ax(t2, t1, t1 + t3); + png = new A.PngDecoder(); + if (png.isValidFile$1(imageBuffer)) + return png.decodeImage$1(imageBuffer); + dummyBmpHeader = A.OutputBuffer$(false, 14); + dummyBmpHeader.writeUint16$1(19778); + dummyBmpHeader.writeUint32$1(t3); + dummyBmpHeader.writeUint32$1(0); + dummyBmpHeader.writeUint32$1(0); + t1 = A.InputBuffer$(imageBuffer, false, _null, 0); + t2 = A.BitmapFileHeader$(A.InputBuffer$(A.NativeUint8List_NativeUint8List$view(dummyBmpHeader._buffer.buffer, 0, dummyBmpHeader.length), false, _null, 0)); + t3 = t1.readUint32$0(); + t4 = t1.readUint32$0(); + t5 = $.$get$__uint32(); + t5[0] = t4; + t4 = $.$get$__uint32ToInt32(); + if (0 >= t4.length) + return A.ioore(t4, 0); + t6 = t4[0]; + t5[0] = t1.readUint32$0(); + t7 = t4[0]; + t8 = t1.readUint16$0(); + t9 = t1.readUint16$0(); + t10 = t1.readUint32$0(); + compression = A.LinkedHashMap_LinkedHashMap$_literal([0, B.BitmapCompression_1, 3, B.BitmapCompression_0], type$.int, type$.BitmapCompression).$index(0, t10); + if (compression == null) + A.throwExpression(A.ImageException$("Bitmap compression " + t10 + " is not supported yet.")); + t10 = t1.readUint32$0(); + t5[0] = t1.readUint32$0(); + t11 = t4[0]; + t5[0] = t1.readUint32$0(); + t4 = t4[0]; + t5 = t1.readUint32$0(); + bmpInfo = new A.IcoBmpInfo(t2, t7, t6, t3, t8, t9, compression, t10, t11, t4, t5, t1.readUint32$0()); + bmpInfo.BmpInfo$2$fileHeader(t1, t2); + if (t3 !== 40 && t8 !== 1) + return _null; + offset = t5 === 0 && t9 <= 8 ? 40 + 4 * B.JSInt_methods._shlPositive$1(1, t9) : 40 + 4 * t5; + t2.__BitmapFileHeader_offset = offset; + dummyBmpHeader.length -= 4; + dummyBmpHeader.writeUint32$1(offset); + inp = A.InputBuffer$(imageBuffer, false, _null, 0); + bmp = new A.DibDecoder(); + bmp.__BmpDecoder__input = inp; + bmp.info = bmpInfo; + image = bmp.decodeFrame$1(0); + if (t9 >= 32) + return image; + padding = 32 - B.JSInt_methods.$mod(t6, 32); + rowLength = B.JSInt_methods._tdivFast$1(padding === 32 ? t6 : t6 + padding, 8); + for (t1 = image.data, t2 = image.width, t3 = t1.length, t4 = image.height - 1, t5 = 1 / t7 < 0, t8 = t7 < 0, t7 = t7 === 0, y = 0; y < B.JSInt_methods._tdivFast$1(A.BmpInfo.prototype.get$height.call(bmpInfo, bmpInfo), 2); ++y) { + line = !(t7 ? t5 : t8) ? y : t4 - y; + bytes = inp.subset$1(rowLength); + inp.offset = inp.offset + (bytes.end - bytes.offset); + for (t9 = line * t2, x = 0; x < t6;) { + t10 = bytes.buffer; + t11 = bytes.offset++; + if (!(t11 >= 0 && t11 < t10.length)) + return A.ioore(t10, t11); + t11 = t10[t11]; + j = 7; + while (true) { + if (!(j > -1 && x < t6)) + break; + if ((t11 & B.JSInt_methods.$shl(1, j)) >>> 0 !== 0) { + t10 = t9 + x; + t12 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); + t13 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); + t14 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); + t15 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(0, 0, 255)); + if (!(t10 >= 0 && t10 < t3)) + return A.ioore(t1, t10); + t1[t10] = (t12 << 24 | t13 << 16 | t14 << 8 | t15) >>> 0; + } + ++x; + --j; + } + } + } + return image; + }, + decodeImage$1(bytes) { + var t1 = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); + this._ico_decoder$_input = t1; + t1 = A.IcoInfo__read(t1); + this._icoInfo = t1; + if (t1 == null) + return null; + return this.decodeFrame$1(0); + } + }; + A.IcoInfo.prototype = {}; + A.IcoInfo__read_closure.prototype = { + call$1(e) { + var t1; + A._asInt(e); + t1 = this.input; + t1.readByte$0(); + t1.readByte$0(); + t1.readByte$0(); + ++t1.offset; + t1.readUint16$0(); + t1.readUint16$0(); + return new A.IcoInfoImage(t1.readUint32$0(), t1.readUint32$0()); + }, + $signature: 29 + }; + A.IcoInfoImage.prototype = {}; + A.IcoBmpInfo.prototype = { + get$height(_) { + return B.JSInt_methods._tdivFast$1(A.BmpInfo.prototype.get$height.call(this, this), 2); + }, + get$ignoreAlphaChannel() { + return this.headerSize === 40 && this.bpp === 32 ? false : A.BmpInfo.prototype.get$ignoreAlphaChannel.call(this); + } + }; + A.WinEncoder.prototype = { + encodeImages$1(images) { + var out, imageDatas, offset, i, _i, img, t1, data, _this = this; + type$.List_Image._as(images); + out = A.OutputBuffer$(false, 8192); + out.writeUint16$1(0); + out.writeUint16$1(_this.get$type(_this)); + out.writeUint16$1(1); + imageDatas = A._setArrayType([A._setArrayType([], type$.JSArray_int)], type$.JSArray_List_int); + for (offset = 22, i = 0, _i = 0; _i < 1; ++_i) { + img = images[_i]; + t1 = img.width; + if (t1 > 256 || img.height > 256) + throw A.wrapException(A.Exception_Exception("ICO and CUR support only sizes until 256")); + out.writeByte$1(t1); + out.writeByte$1(img.height); + out.writeByte$1(0); + out.writeByte$1(0); + out.writeUint16$1(_this.colorPlanesOrXHotSpot$1(i)); + out.writeUint16$1(_this.bitsPerPixelOrYHotSpot$1(i)); + t1 = A.PngEncoder$(null); + t1.isAnimated = false; + t1.addFrame$1(img); + data = t1.finish$0(0); + t1 = data.length; + out.writeUint32$1(t1); + out.writeUint32$1(offset); + offset += t1; + ++i; + B.JSArray_methods.add$1(imageDatas, data); + } + for (t1 = imageDatas.length, _i = 0; _i < imageDatas.length; imageDatas.length === t1 || (0, A.throwConcurrentModificationError)(imageDatas), ++_i) + out.writeBytes$1(imageDatas[_i]); + return A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); + } + }; + A.IcoEncoder.prototype = { + colorPlanesOrXHotSpot$1(index) { + return 0; + }, + bitsPerPixelOrYHotSpot$1(index) { + return 32; + }, + get$type(_) { + return 1; + } + }; + A.ComponentData.prototype = {}; + A.JpegAdobe.prototype = {}; + A.JpegComponent.prototype = { + set$__JpegComponent_blocks(__JpegComponent_blocks) { + this.__JpegComponent_blocks = type$.List_List_List_int._as(__JpegComponent_blocks); + } + }; + A.JpegData.prototype = { + validate$1(bytes) { + var soiCheck, t2, t3, marker, hasSOF, hasSOS, sectionByteSize, _this = this, _s5_ = "input", + t1 = A.InputBuffer$(type$.List_int._as(bytes), true, null, 0); + _this.__JpegData_input = t1; + soiCheck = A._lateReadCheck(t1, _s5_).subset$2$offset(2, 0); + t1 = soiCheck.buffer; + t2 = soiCheck.offset; + t3 = t1.length; + if (!(t2 >= 0 && t2 < t3)) + return A.ioore(t1, t2); + if (t1[t2] === 255) { + ++t2; + if (!(t2 < t3)) + return A.ioore(t1, t2); + t2 = t1[t2] !== 216; + t1 = t2; + } else + t1 = true; + if (t1) + return false; + if (_this._nextMarker$0() !== 216) + return false; + marker = _this._nextMarker$0(); + hasSOF = false; + hasSOS = false; + while (true) { + if (marker !== 217) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t1 = t1.offset < t1.end; + } else + t1 = false; + if (!t1) + break; + sectionByteSize = A._lateReadCheck(_this.__JpegData_input, _s5_).readUint16$0(); + if (sectionByteSize < 2) + break; + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t1.offset = t1.offset + (sectionByteSize - 2); + switch (marker) { + case 192: + case 193: + case 194: + hasSOF = true; + break; + case 218: + hasSOS = true; + break; + } + marker = _this._nextMarker$0(); + } + return hasSOF && hasSOS; + }, + read$1(_, bytes) { + var t1, i, t2, t3, component, t4, t5, t6, _this = this; + _this.__JpegData_input = A.InputBuffer$(type$.List_int._as(bytes), true, null, 0); + _this._read$0(); + if (_this.frames.length !== 1) + throw A.wrapException(A.ImageException$("Only single frame JPEGs supported")); + for (t1 = _this.components, i = 0; t2 = _this.frame, t3 = t2.componentsOrder, i < t3.length; ++i) { + component = t2.components.$index(0, t3[i]); + t2 = component.hSamples; + t3 = _this.frame; + t4 = t3.maxHSamples; + t5 = component.vSamples; + t6 = t3.maxVSamples; + t3 = _this._buildComponentData$2(t3, component); + t2 = t2 === 1 && t4 === 2 ? 1 : 0; + B.JSArray_methods.add$1(t1, new A.ComponentData(t3, t2, t5 === 1 && t6 === 2 ? 1 : 0)); + } + }, + _read$0() { + var marker, t1, $length, bytes, t2, _this = this, _s5_ = "input"; + if (_this._nextMarker$0() !== 216) + throw A.wrapException(A.ImageException$("Start Of Image marker not found.")); + marker = _this._nextMarker$0(); + while (true) { + if (marker !== 217) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t1 = t1.offset < t1.end; + } else + t1 = false; + if (!t1) + break; + $length = A._lateReadCheck(_this.__JpegData_input, _s5_).readUint16$0(); + if ($length < 2) + A.throwExpression(A.ImageException$("Invalid Block")); + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + bytes = t1.subset$1($length - 2); + t1.offset = t1.offset + (bytes.end - bytes.offset); + switch (marker) { + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 234: + case 235: + case 236: + case 237: + case 238: + case 239: + case 254: + _this._readAppData$2(marker, bytes); + break; + case 219: + _this._readDQT$1(bytes); + break; + case 192: + case 193: + case 194: + _this._readFrame$2(marker, bytes); + break; + case 195: + case 197: + case 198: + case 199: + case 200: + case 201: + case 202: + case 203: + case 205: + case 206: + case 207: + throw A.wrapException(A.ImageException$("Unhandled frame type " + B.JSInt_methods.toRadixString$1(marker, 16))); + case 196: + _this._readDHT$1(bytes); + break; + case 221: + _this.resetInterval = bytes.readUint16$0(); + break; + case 218: + _this._readSOS$1(bytes); + break; + case 255: + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t2 = t1.buffer; + t1 = t1.offset; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] !== 255) + --A._lateReadCheck(_this.__JpegData_input, _s5_).offset; + break; + default: + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t2 = t1.buffer; + t1 = t1.offset + -3; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 255) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t2 = t1.buffer; + t1 = t1.offset + -2; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] >= 192) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t2 = t1.buffer; + t1 = t1.offset + -2; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1] <= 254; + } else + t1 = false; + } else + t1 = false; + if (t1) { + A._lateReadCheck(_this.__JpegData_input, _s5_).offset -= 3; + break; + } + if (marker !== 0) + throw A.wrapException(A.ImageException$("Unknown JPEG marker " + B.JSInt_methods.toRadixString$1(marker, 16))); + break; + } + marker = _this._nextMarker$0(); + } + }, + _nextMarker$0() { + var c, _this = this, _s5_ = "input", + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + if (t1.offset >= t1.end) + return 0; + do { + do { + c = A._lateReadCheck(_this.__JpegData_input, _s5_).readByte$0(); + if (c !== 255) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t1 = t1.offset < t1.end; + } else + t1 = false; + } while (t1); + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + if (t1.offset >= t1.end) + return c; + do { + c = A._lateReadCheck(_this.__JpegData_input, _s5_).readByte$0(); + if (c === 255) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t1 = t1.offset < t1.end; + } else + t1 = false; + } while (t1); + if (c === 0) { + t1 = A._lateReadCheck(_this.__JpegData_input, _s5_); + t1 = t1.offset < t1.end; + } else + t1 = false; + } while (t1); + return c; + }, + _readExifValue$3(block, format, offset) { + var buffer, num, den, bytesRead, t2, t3, + t1 = block.end, + initialBlockLength = t1 - block.offset; + try { + switch (format) { + case 6: + t2 = block.readByte$0(); + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + t2 = t2[0]; + return t2; + case 1: + case 7: + t2 = block.readByte$0(); + return t2; + case 2: + t2 = block.readString$1(1); + return t2; + case 3: + t2 = block.readUint16$0(); + return t2; + case 4: + t2 = block.readUint32$0(); + return t2; + case 5: + case 10: + buffer = block.subset$2$offset(8, offset); + t2 = buffer.readUint32$0(); + t3 = $.$get$__uint32(); + t3[0] = t2; + t2 = $.$get$__uint32ToInt32(); + if (0 >= t2.length) + return A.ioore(t2, 0); + num = t2[0]; + t3[0] = buffer.readUint32$0(); + if (0 >= t2.length) + return A.ioore(t2, 0); + den = t2[0]; + if (J.$eq$(den, 0)) + return 0; + t2 = num; + t3 = den; + if (typeof t2 !== "number") + return t2.$div(); + if (typeof t3 !== "number") + return A.iae(t3); + return t2 / t3; + case 8: + t2 = block.readUint16$0(); + $.$get$__uint16()[0] = t2; + t2 = $.$get$__uint16ToInt16(); + if (0 >= t2.length) + return A.ioore(t2, 0); + t2 = t2[0]; + return t2; + case 9: + t2 = block.readUint32$0(); + $.$get$__uint32()[0] = t2; + t2 = $.$get$__uint32ToInt32(); + if (0 >= t2.length) + return A.ioore(t2, 0); + t2 = t2[0]; + return t2; + case 11: + t2 = block.readUint32$0(); + $.$get$__uint32()[0] = t2; + t2 = $.$get$__uint32ToFloat32(); + if (0 >= t2.length) + return A.ioore(t2, 0); + t2 = t2[0]; + return t2; + case 12: + t2 = block.subset$2$offset(8, offset).readFloat64$0(); + return t2; + default: + return 0; + } + } finally { + t2 = initialBlockLength; + t3 = block.offset; + if (typeof t2 !== "number") + return t2.$sub(); + bytesRead = t2 - (t1 - t3); + t1 = bytesRead; + if (typeof t1 !== "number") + return t1.$lt(); + if (t1 < 4) { + t1 = bytesRead; + if (typeof t1 !== "number") + return A.iae(t1); + block.offset = t3 + A._asInt(4 - t1); + } + } + }, + _readExifDir$1(block) { + var t1, t2, di, tag, format, components, byteCount, offset, + numDirEntries = block.readUint16$0(); + for (t1 = this.exif.data, t2 = block.end, di = 0; di < numDirEntries; ++di) { + tag = block.readUint16$0(); + format = block.readUint16$0(); + components = block.readUint32$0(); + if (format - 1 >= 12) + continue; + if (components > 65536) + continue; + if (!(format < 13)) + return A.ioore(B.List_mC8, format); + byteCount = B.List_mC8[format]; + if (byteCount > 4) { + offset = block.readUint32$0(); + if (offset + byteCount > t2 - block.offset) + continue; + } else + offset = 0; + t1.$indexSet(0, tag, this._readExifValue$3(block, format, offset)); + } + }, + _readExifData$1(block) { + var rawData, saveEndian, alignment, offset, + t1 = this.exif; + if (t1.rawData == null) + t1.set$rawData(A._setArrayType([], type$.JSArray_Uint8List)); + rawData = B.NativeUint8List_methods.sublist$1(block.toUint8List$0(), 0); + t1 = t1.rawData; + t1.toString; + B.JSArray_methods.add$1(t1, rawData); + if (block.readUint32$0() !== 1165519206) + return; + if (block.readUint16$0() !== 0) + return; + saveEndian = block.bigEndian; + alignment = block.readString$1(2); + if (alignment === "II") + block.bigEndian = false; + else if (alignment === "MM") + block.bigEndian = true; + else + return; + block.offset += 2; + offset = block.readUint32$0(); + if (offset < 8 || offset > 16) + if (offset > block.end - block.offset - 16) { + block.bigEndian = saveEndian; + return; + } + if (offset > 8) + block.offset += offset - 8; + this._readExifDir$1(block); + block.bigEndian = saveEndian; + }, + _readAppData$2(marker, block) { + var t1, t2, t3, exception, _this = this, _s4_ = "jfif", + appData = block; + if (marker === 224) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 74) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 1; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 70) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 2; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 73) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 3; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 70) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 4; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1] === 0; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + if (t1) { + t1 = new A.JpegJfif(); + _this.__JpegData_jfif = t1; + A._lateReadCheck(t1, _s4_); + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 5; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + A._lateReadCheck(_this.__JpegData_jfif, _s4_); + t2 = appData; + t1 = t2.buffer; + t2 = t2.offset + 6; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + A._lateReadCheck(_this.__JpegData_jfif, _s4_); + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 7; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + A._lateReadCheck(_this.__JpegData_jfif, _s4_); + t2 = appData; + t1 = t2.buffer; + t2 = t2.offset + 8; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 9; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + A._lateReadCheck(_this.__JpegData_jfif, _s4_); + t2 = appData; + t1 = t2.buffer; + t2 = t2.offset + 10; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 11; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t2 = A._lateReadCheck(_this.__JpegData_jfif, _s4_); + t1 = appData; + t3 = t1.buffer; + t1 = t1.offset + 12; + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + t2.__JpegJfif_thumbWidth = t3[t1]; + t1 = A._lateReadCheck(_this.__JpegData_jfif, _s4_); + t3 = appData; + t2 = t3.buffer; + t3 = t3.offset + 13; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t1.__JpegJfif_thumbHeight = t2[t3]; + t3 = A._lateReadCheck(A._lateReadCheck(_this.__JpegData_jfif, _s4_).__JpegJfif_thumbWidth, "thumbWidth"); + t2 = A._lateReadCheck(A._lateReadCheck(_this.__JpegData_jfif, _s4_).__JpegJfif_thumbHeight, "thumbHeight"); + A._lateReadCheck(_this.__JpegData_jfif, _s4_); + appData.subset$2$offset(14 + 3 * t3 * t2, 14); + } + } else if (marker === 225) + _this._readExifData$1(appData); + else if (marker === 238) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 65) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 1; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 100) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 2; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 111) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 3; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 98) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 4; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + if (t2[t1] === 101) { + t1 = appData; + t2 = t1.buffer; + t1 = t1.offset + 5; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1] === 0; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + if (t1) { + t1 = new A.JpegAdobe(); + _this.adobe = t1; + t2 = appData; + t3 = t2.buffer; + t2 = t2.offset + 6; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t3 = appData; + t2 = t3.buffer; + t3 = t3.offset + 7; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t2 = appData; + t3 = t2.buffer; + t2 = t2.offset + 8; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t3 = appData; + t2 = t3.buffer; + t3 = t3.offset + 9; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t2 = appData; + t3 = t2.buffer; + t2 = t2.offset + 10; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t3 = appData; + t2 = t3.buffer; + t3 = t3.offset + 11; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t1.transformCode = t2[t3]; + } + } else if (marker === 254) + try { + appData.readStringUtf8$0(); + } catch (exception) { + A.getTraceFromException(exception); + } + }, + _readDQT$1(block) { + var t1, t2, t3, t4, prec, n, tableData, i, tmp, t5; + for (t1 = block.end, t2 = this.quantizationTables; t3 = block.offset, t4 = t3 < t1, t4;) { + t4 = block.buffer; + block.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4.length)) + return A.ioore(t4, t3); + t3 = t4[t3]; + prec = B.JSInt_methods._shrOtherPositive$1(t3, 4); + n = t3 & 15; + if (n >= 4) + throw A.wrapException(A.ImageException$("Invalid number of quantization tables")); + if (t2[n] == null) + B.JSArray_methods.$indexSet(t2, n, new Int16Array(64)); + tableData = t2[n]; + for (t3 = prec !== 0, i = 0; i < 64; ++i) { + if (t3) + tmp = block.readUint16$0(); + else { + t4 = block.buffer; + t5 = block.offset++; + if (!(t5 >= 0 && t5 < t4.length)) + return A.ioore(t4, t5); + tmp = t4[t5]; + } + tableData.toString; + t4 = B.List_AZw[i]; + if (!(t4 < 64)) + return A.ioore(tableData, t4); + tableData[t4] = tmp; + } + } + if (t4) + throw A.wrapException(A.ImageException$("Bad length for DQT block")); + }, + _readFrame$2(marker, block) { + var t1, numComponents, i, t2, t3, t4, t5, t6, t7, _this = this; + if (_this.frame != null) + throw A.wrapException(A.ImageException$("Duplicate JPG frame data found.")); + t1 = _this.frame = new A.JpegFrame(A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.JpegComponent), A._setArrayType([], type$.JSArray_int)); + t1.progressive = marker === 194; + t1.precision = block.readByte$0(); + t1 = _this.frame; + t1.toString; + t1.scanLines = block.readUint16$0(); + t1 = _this.frame; + t1.toString; + t1.samplesPerLine = block.readUint16$0(); + numComponents = block.readByte$0(); + for (t1 = _this.quantizationTables, i = 0; i < numComponents; ++i) { + t2 = block.buffer; + t3 = block.offset; + t4 = block.offset = t3 + 1; + t5 = t2.length; + if (!(t3 >= 0 && t3 < t5)) + return A.ioore(t2, t3); + t3 = t2[t3]; + t6 = block.offset = t4 + 1; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t2, t4); + t4 = t2[t4]; + t7 = B.JSInt_methods._shrOtherPositive$1(t4, 4); + block.offset = t6 + 1; + if (!(t6 >= 0 && t6 < t5)) + return A.ioore(t2, t6); + t6 = t2[t6]; + B.JSArray_methods.add$1(_this.frame.componentsOrder, t3); + _this.frame.components.$indexSet(0, t3, new A.JpegComponent(t7 & 15, t4 & 15, t1, t6)); + } + _this.frame.prepare$0(); + B.JSArray_methods.add$1(_this.frames, _this.frame); + }, + _readDHT$1(block) { + var t1, ht, ht0, t2, t3, t4, index, bits, count, j, huffmanValues, ht1; + for (t1 = block.end, ht = this.huffmanTablesDC, ht0 = this.huffmanTablesAC; t2 = block.offset, t2 < t1;) { + t3 = block.buffer; + t4 = t2 + 1; + block.offset = t4; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + index = t3[t2]; + bits = new Uint8Array(16); + for (t2 = t4, count = 0, j = 0; j < 16; ++j, t2 = t4) { + t4 = t2 + 1; + block.offset = t4; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + if (!(j < 16)) + return A.ioore(bits, j); + bits[j] = t2; + count += bits[j]; + } + huffmanValues = new Uint8Array(count); + for (j = 0; j < count; ++j, t2 = t4) { + t4 = t2 + 1; + block.offset = t4; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + if (!(j < count)) + return A.ioore(huffmanValues, j); + huffmanValues[j] = t2; + } + if ((index & 16) !== 0) { + index -= 16; + ht1 = ht0; + } else + ht1 = ht; + if (ht1.length <= index) + B.JSArray_methods.set$length(ht1, index + 1); + B.JSArray_methods.$indexSet(ht1, index, this._buildHuffmanTable$2(bits, huffmanValues)); + } + }, + _readSOS$1(block) { + var components, spectralStart, spectralEnd, successiveApproximation, t1, t2, t3, _this = this, + n = block.readByte$0(); + if (n < 1 || n > 4) + throw A.wrapException(A.ImageException$("Invalid SOS block")); + components = A.List_List$generate(n, new A.JpegData__readSOS_closure(_this, block), true, type$.JpegComponent); + spectralStart = block.readByte$0(); + spectralEnd = block.readByte$0(); + successiveApproximation = block.readByte$0(); + t1 = B.JSInt_methods._shrOtherPositive$1(successiveApproximation, 4); + t2 = A._lateReadCheck(_this.__JpegData_input, "input"); + t3 = _this.frame; + t1 = new A.JpegScan(t2, t3, components, _this.resetInterval, spectralStart, spectralEnd, t1 & 15, successiveApproximation & 15); + t1.__JpegScan_mcusPerLine = A._lateReadCheck(t3.__JpegFrame_mcusPerLine, "mcusPerLine"); + t1.progressive = t3.progressive; + t1.decode$0(0); + }, + _buildHuffmanTable$2(codeLengths, values) { + var p, t1, k, i, j, t2, t3, t4, q, t5, + code = A._setArrayType([], type$.JSArray__JpegHuffman), + $length = 16; + while (true) { + if (!($length > 0 && codeLengths[$length - 1] === 0)) + break; + --$length; + } + B.JSArray_methods.add$1(code, new A._JpegHuffman([])); + if (0 >= code.length) + return A.ioore(code, 0); + p = code[0]; + for (t1 = values.length, k = 0, i = 0; i < $length;) { + for (j = 0; j < codeLengths[i]; ++j) { + if (0 >= code.length) + return A.ioore(code, -1); + p = code.pop(); + t2 = p.children; + t3 = t2.length; + t4 = p.index; + if (t3 <= t4) + B.JSArray_methods.set$length(t2, t4 + 1); + t3 = p.index; + if (!(k >= 0 && k < t1)) + return A.ioore(values, k); + B.JSArray_methods.$indexSet(t2, t3, values[k]); + for (; t2 = p.index, t2 > 0;) { + if (0 >= code.length) + return A.ioore(code, -1); + p = code.pop(); + } + p.index = t2 + 1; + B.JSArray_methods.add$1(code, p); + for (; code.length <= i; p = q) { + t2 = []; + q = new A._JpegHuffman(t2); + B.JSArray_methods.add$1(code, q); + t3 = p.children; + t4 = t3.length; + t5 = p.index; + if (t4 <= t5) + B.JSArray_methods.set$length(t3, t5 + 1); + B.JSArray_methods.$indexSet(t3, p.index, t2); + } + ++k; + } + ++i; + if (i < $length) { + t2 = []; + q = new A._JpegHuffman(t2); + B.JSArray_methods.add$1(code, q); + t3 = p.children; + t4 = t3.length; + t5 = p.index; + if (t4 <= t5) + B.JSArray_methods.set$length(t3, t5 + 1); + B.JSArray_methods.$indexSet(t3, p.index, t2); + p = q; + } + } + if (0 >= code.length) + return A.ioore(code, 0); + return code[0].children; + }, + _buildComponentData$2(frame, component) { + var t4, t5, t6, l, blockRow, scanLine, i, l0, blockCol, t7, sample, offset, j, line, offset0, t8, + t1 = A._lateReadCheck(component.__JpegComponent_blocksPerLine, "blocksPerLine"), + t2 = A._lateReadCheck(component.__JpegComponent_blocksPerColumn, "blocksPerColumn"), + samplesPerLine = t1 << 3 >>> 0, + $R = new Int32Array(64), + r = new Uint8Array(64), + t3 = t2 * 8, + lines = A.List_List$filled(t3, null, false, type$.nullable_Uint8List); + for (t4 = component.quantizationTableList, t5 = component.quantizationIndex, t6 = type$.Int32List, l = 0, blockRow = 0; blockRow < t2; ++blockRow) { + scanLine = blockRow << 3 >>> 0; + for (i = 0; i < 8; ++i, l = l0) { + l0 = l + 1; + B.JSArray_methods.$indexSet(lines, l, new Uint8Array(samplesPerLine)); + } + for (blockCol = 0; blockCol < t1; ++blockCol) { + if (!(t5 >= 0 && t5 < 4)) + return A.ioore(t4, t5); + t7 = t4[t5]; + t7.toString; + A.quantizeAndInverse(t7, t6._as(J.$index$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, "blocks"), blockRow), blockCol)), r, $R); + sample = blockCol << 3 >>> 0; + for (offset = 0, j = 0; j < 8; ++j) { + t7 = scanLine + j; + if (!(t7 < t3)) + return A.ioore(lines, t7); + line = lines[t7]; + for (i = 0; i < 8; ++i, offset = offset0) { + line.toString; + t7 = sample + i; + offset0 = offset + 1; + if (!(offset >= 0 && offset < 64)) + return A.ioore(r, offset); + t8 = r[offset]; + if (!(t7 < line.length)) + return A.ioore(line, t7); + line[t7] = t8; + } + } + } + } + return lines; + } + }; + A.JpegData__readSOS_closure.prototype = { + call$1(i) { + var t2, dc_tbl_no, ac_tbl_no, t3, t4, + t1 = this.block, + id = t1.readByte$0(), + c = t1.readByte$0(); + t1 = this.$this; + if (!t1.frame.components.containsKey$1(0, id)) + throw A.wrapException(A.ImageException$("Invalid Component in SOS block")); + t2 = t1.frame.components.$index(0, id); + t2.toString; + dc_tbl_no = B.JSInt_methods._shrOtherPositive$1(c, 4) & 15; + ac_tbl_no = c & 15; + t3 = t1.huffmanTablesDC; + t4 = t3.length; + if (dc_tbl_no < t4) { + if (!(dc_tbl_no < t4)) + return A.ioore(t3, dc_tbl_no); + t3 = t3[dc_tbl_no]; + t3.toString; + t2.__JpegComponent_huffmanTableDC = t3; + } + t1 = t1.huffmanTablesAC; + t3 = t1.length; + if (ac_tbl_no < t3) { + if (!(ac_tbl_no < t3)) + return A.ioore(t1, ac_tbl_no); + t1 = t1[ac_tbl_no]; + t1.toString; + t2.__JpegComponent_huffmanTableAC = t1; + } + return t2; + }, + $signature: 30 + }; + A._JpegHuffman.prototype = {}; + A.JpegFrame.prototype = { + prepare$0() { + var t1, t2, t3, component, t4, t5, t6, t7, t8, blocksPerLine, t9, blocksPerColumn, blocksPerLineForMcu, blocksPerColumnForMcu, blocks, _i, _list, _i0, _this = this; + for (t1 = _this.components, t2 = A._instanceType(t1)._precomputed1, t3 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, t2); t3.moveNext$0();) { + component = t1.$index(0, t3.__js_helper$_current); + _this.set$maxHSamples(Math.max(_this.maxHSamples, component.hSamples)); + _this.set$maxVSamples(Math.max(_this.maxVSamples, component.vSamples)); + } + t3 = _this.samplesPerLine; + t3.toString; + _this.__JpegFrame_mcusPerLine = B.JSNumber_methods.ceil$0(t3 / 8 / _this.maxHSamples); + t3 = _this.scanLines; + t3.toString; + _this.__JpegFrame_mcusPerColumn = B.JSNumber_methods.ceil$0(t3 / 8 / _this.maxVSamples); + for (t2 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, t2), t3 = type$.List_List_List_int, t4 = type$.Int32List, t5 = type$.List_Int32List; t2.moveNext$0();) { + t6 = t1.$index(0, t2.__js_helper$_current); + t6.toString; + t7 = _this.samplesPerLine; + t7.toString; + t8 = t6.hSamples; + blocksPerLine = B.JSNumber_methods.ceil$0(B.JSNumber_methods.ceil$0(t7 / 8) * t8 / _this.maxHSamples); + t7 = _this.scanLines; + t7.toString; + t9 = t6.vSamples; + blocksPerColumn = B.JSNumber_methods.ceil$0(B.JSNumber_methods.ceil$0(t7 / 8) * t9 / _this.maxVSamples); + blocksPerLineForMcu = A._lateReadCheck(_this.__JpegFrame_mcusPerLine, "mcusPerLine") * t8; + blocksPerColumnForMcu = A._lateReadCheck(_this.__JpegFrame_mcusPerColumn, "mcusPerColumn") * t9; + blocks = J.JSArray_JSArray$allocateFixed(blocksPerColumnForMcu, t5); + for (_i = 0; _i < blocksPerColumnForMcu; ++_i) { + _list = J.JSArray_JSArray$allocateFixed(blocksPerLineForMcu, t4); + for (_i0 = 0; _i0 < blocksPerLineForMcu; ++_i0) + _list[_i0] = new Int32Array(64); + blocks[_i] = _list; + } + t6.__JpegComponent_blocksPerLine = blocksPerLine; + t6.__JpegComponent_blocksPerColumn = blocksPerColumn; + t6.set$__JpegComponent_blocks(t3._as(blocks)); + } + }, + set$maxHSamples(maxHSamples) { + this.maxHSamples = A._asInt(maxHSamples); + }, + set$maxVSamples(maxVSamples) { + this.maxVSamples = A._asInt(maxVSamples); + } + }; + A.JpegJfif.prototype = {}; + A.JpegScan.prototype = { + decode$0(_) { + var decodeFn, t3, mcuExpected, t4, mcu, i, component, n, t5, blockRow, blockCol, h, v, j, k, t6, t7, t8, t9, _this = this, + _s13_ = "blocksPerLine", + t1 = _this.components, + componentsLength = t1.length, + t2 = _this.progressive; + t2.toString; + if (t2) + if (_this.spectralStart === 0) + decodeFn = _this.successivePrev === 0 ? _this.get$_decodeDCFirst() : _this.get$_decodeDCSuccessive(); + else + decodeFn = _this.successivePrev === 0 ? _this.get$_decodeACFirst() : _this.get$_decodeACSuccessive(); + else + decodeFn = _this.get$_decodeBaseline(); + t2 = componentsLength === 1; + if (t2) { + if (0 >= componentsLength) + return A.ioore(t1, 0); + t3 = A._lateReadCheck(t1[0].__JpegComponent_blocksPerLine, _s13_); + if (0 >= t1.length) + return A.ioore(t1, 0); + mcuExpected = t3 * A._lateReadCheck(t1[0].__JpegComponent_blocksPerColumn, "blocksPerColumn"); + } else + mcuExpected = A._lateReadCheck(_this.__JpegScan_mcusPerLine, "mcusPerLine") * A._lateReadCheck(_this.frame.__JpegFrame_mcusPerColumn, "mcusPerColumn"); + t3 = _this.resetInterval; + if (t3 == null || t3 === 0) + _this.resetInterval = mcuExpected; + for (t3 = _this.input, t4 = type$.void_Function_2_JpegComponent_and_List_int, mcu = 0; mcu < mcuExpected;) { + for (i = 0; i < componentsLength; ++i) { + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i].__JpegComponent_pred = 0; + } + _this.eobrun = 0; + if (t2) { + if (0 >= t1.length) + return A.ioore(t1, 0); + component = t1[0]; + n = 0; + while (true) { + t5 = _this.resetInterval; + t5.toString; + if (!(n < t5)) + break; + t4._as(decodeFn); + blockRow = B.JSInt_methods.$tdiv(mcu, A._lateReadCheck(component.__JpegComponent_blocksPerLine, _s13_)); + blockCol = B.JSInt_methods.$mod(mcu, A._lateReadCheck(component.__JpegComponent_blocksPerLine, _s13_)); + decodeFn.call$2(component, J.$index$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, "blocks"), blockRow), blockCol)); + ++mcu; + ++n; + } + } else { + n = 0; + while (true) { + t5 = _this.resetInterval; + t5.toString; + if (!(n < t5)) + break; + for (i = 0; i < componentsLength; ++i) { + if (!(i < t1.length)) + return A.ioore(t1, i); + component = t1[i]; + h = component.hSamples; + v = component.vSamples; + for (j = 0; j < v; ++j) + for (k = 0; k < h; ++k) + _this._decodeMcu$5(component, decodeFn, mcu, j, k); + } + ++mcu; + ++n; + } + } + _this.bitsCount = 0; + t5 = t3.buffer; + t6 = t3.offset; + t7 = t5.length; + if (!(t6 >= 0 && t6 < t7)) + return A.ioore(t5, t6); + t8 = t5[t6]; + t9 = t6 + 1; + if (!(t9 < t7)) + return A.ioore(t5, t9); + t9 = t5[t9]; + if (t8 === 255) + if (t9 >= 208 && t9 <= 215) + t3.offset = t6 + 2; + else + break; + } + }, + _readBit$0() { + var t2, nextByte, _this = this, + t1 = _this.bitsCount; + if (t1 > 0) { + --t1; + _this.bitsCount = t1; + return B.JSInt_methods.$shr(_this.bitsData, t1) & 1; + } + t1 = _this.input; + if (t1.offset >= t1.end) + return null; + t2 = t1.readByte$0(); + _this.bitsData = t2; + if (t2 === 255) { + nextByte = t1.readByte$0(); + if (nextByte !== 0) + throw A.wrapException(A.ImageException$("unexpected marker: " + B.JSInt_methods.toRadixString$1((_this.bitsData << 8 | nextByte) >>> 0, 16))); + } + _this.bitsCount = 7; + return B.JSInt_methods._shrOtherPositive$1(_this.bitsData, 7) & 1; + }, + _jpeg_scan$_decodeHuffman$1(tree) { + var t1, node, bit; + for (t1 = type$.List_dynamic, node = tree; bit = this._readBit$0(), bit != null;) { + node = J.$index$asx(t1._as(node), bit); + if (typeof node == "number") + return B.JSNumber_methods.toInt$0(node); + } + return null; + }, + _receive$1($length) { + var n, bit; + for (n = 0; $length > 0;) { + bit = this._readBit$0(); + if (bit == null) + return null; + n = (n << 1 | bit) >>> 0; + --$length; + } + return n; + }, + _receiveAndExtend$1($length) { + var t1; + if ($length === 1) + return this._readBit$0() === 1 ? 1 : -1; + $length.toString; + t1 = this._receive$1($length); + t1.toString; + if (t1 >= B.JSInt_methods.$shl(1, $length - 1)) + return t1; + return t1 + B.JSInt_methods.$shl(-1, $length) + 1; + }, + _decodeBaseline$2(component, zz) { + var t2, k, s, r, _this = this, + t = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableDC, "huffmanTableDC")), + diff = t === 0 ? 0 : _this._receiveAndExtend$1(t), + t1 = A._lateReadCheck(component.__JpegComponent_pred, "pred") + diff; + component.__JpegComponent_pred = t1; + t2 = J.getInterceptor$ax(zz); + t2.$indexSet(zz, 0, A._lateReadCheck(t1, "pred")); + for (k = 1; k < 64;) { + t1 = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableAC, "huffmanTableAC")); + t1.toString; + s = t1 & 15; + r = B.JSInt_methods._shrOtherPositive$1(t1, 4); + if (s === 0) { + if (r < 15) + break; + k += 16; + continue; + } + k += r; + s = _this._receiveAndExtend$1(s); + if (!(k >= 0 && k < 80)) + return A.ioore(B.List_AZw, k); + t2.$indexSet(zz, B.List_AZw[k], s); + ++k; + } + }, + _decodeDCFirst$2(component, zz) { + var t = this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableDC, "huffmanTableDC")), + diff = t === 0 ? 0 : B.JSInt_methods._shlPositive$1(this._receiveAndExtend$1(t), this.successive), + t1 = A._lateReadCheck(component.__JpegComponent_pred, "pred") + diff; + component.__JpegComponent_pred = t1; + J.$indexSet$ax(zz, 0, A._lateReadCheck(t1, "pred")); + }, + _decodeDCSuccessive$2(component, zz) { + var t1, t2, t3; + type$.List_int._as(zz); + t1 = J.getInterceptor$asx(zz); + t2 = t1.$index(zz, 0); + t3 = this._readBit$0(); + t3.toString; + t3 = B.JSInt_methods._shlPositive$1(t3, this.successive); + if (typeof t2 !== "number") + return t2.$or(); + t1.$indexSet(zz, 0, (t2 | t3) >>> 0); + }, + _decodeACFirst$2(component, zz) { + var k, e, t2, t3, s, r, _this = this, + t1 = _this.eobrun; + if (t1 > 0) { + _this.eobrun = t1 - 1; + return; + } + k = _this.spectralStart; + e = _this.spectralEnd; + for (t1 = _this.successive, t2 = J.getInterceptor$ax(zz); k <= e;) { + t3 = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableAC, "huffmanTableAC")); + t3.toString; + s = t3 & 15; + r = B.JSInt_methods._shrOtherPositive$1(t3, 4); + if (s === 0) { + if (r < 15) { + t1 = _this._receive$1(r); + t1.toString; + _this.eobrun = t1 + B.JSInt_methods._shlPositive$1(1, r) - 1; + break; + } + k += 16; + continue; + } + k += r; + if (!(k >= 0 && k < 80)) + return A.ioore(B.List_AZw, k); + t2.$indexSet(zz, B.List_AZw[k], _this._receiveAndExtend$1(s) * B.JSInt_methods._shlPositive$1(1, t1)); + ++k; + } + }, + _decodeACSuccessive$2(component, zz) { + var k, e, t1, t2, r, z, rs, s, t3, t4, _this = this; + type$.List_int._as(zz); + k = _this.spectralStart; + e = _this.spectralEnd; + for (t1 = J.getInterceptor$asx(zz), t2 = _this.successive, r = 0; k <= e;) { + if (!(k >= 0 && k < 80)) + return A.ioore(B.List_AZw, k); + z = B.List_AZw[k]; + switch (_this.successiveACState) { + case 0: + rs = _this._jpeg_scan$_decodeHuffman$1(A._lateReadCheck(component.__JpegComponent_huffmanTableAC, "huffmanTableAC")); + if (rs == null) + throw A.wrapException(A.ImageException$("Invalid progressive encoding")); + s = rs & 15; + r = B.JSInt_methods._shrOtherPositive$1(rs, 4); + if (s === 0) + if (r < 15) { + t3 = _this._receive$1(r); + t3.toString; + _this.eobrun = t3 + B.JSInt_methods._shlPositive$1(1, r); + _this.successiveACState = 4; + } else { + _this.successiveACState = 1; + r = 16; + } + else { + if (s !== 1) + throw A.wrapException(A.ImageException$("invalid ACn encoding")); + _this.__JpegScan_successiveACNextValue = _this._receiveAndExtend$1(s); + _this.successiveACState = r !== 0 ? 2 : 3; + } + continue; + case 1: + case 2: + if (!J.$eq$(t1.$index(zz, z), 0)) { + t3 = t1.$index(zz, z); + t4 = _this._readBit$0(); + t4.toString; + t4 = B.JSInt_methods._shlPositive$1(t4, t2); + if (typeof t3 !== "number") + return t3.$add(); + t1.$indexSet(zz, z, t3 + t4); + } else { + --r; + if (r === 0) + _this.successiveACState = _this.successiveACState === 2 ? 3 : 0; + } + break; + case 3: + if (!J.$eq$(t1.$index(zz, z), 0)) { + t3 = t1.$index(zz, z); + t4 = _this._readBit$0(); + t4.toString; + t4 = B.JSInt_methods._shlPositive$1(t4, t2); + if (typeof t3 !== "number") + return t3.$add(); + t1.$indexSet(zz, z, t3 + t4); + } else { + t1.$indexSet(zz, z, B.JSInt_methods._shlPositive$1(A._lateReadCheck(_this.__JpegScan_successiveACNextValue, "successiveACNextValue"), t2)); + _this.successiveACState = 0; + } + break; + case 4: + if (!J.$eq$(t1.$index(zz, z), 0)) { + t3 = t1.$index(zz, z); + t4 = _this._readBit$0(); + t4.toString; + t4 = B.JSInt_methods._shlPositive$1(t4, t2); + if (typeof t3 !== "number") + return t3.$add(); + t1.$indexSet(zz, z, t3 + t4); + } + break; + } + ++k; + } + if (_this.successiveACState === 4) + if (--_this.eobrun === 0) + _this.successiveACState = 0; + }, + _decodeMcu$5(component, decodeFn, mcu, row, col) { + var blockRow, blockCol, + _s11_ = "mcusPerLine", + _s6_ = "blocks"; + type$.void_Function_2_JpegComponent_and_List_int._as(decodeFn); + blockRow = B.JSInt_methods.$tdiv(mcu, A._lateReadCheck(this.__JpegScan_mcusPerLine, _s11_)) * component.vSamples + row; + blockCol = B.JSInt_methods.$mod(mcu, A._lateReadCheck(this.__JpegScan_mcusPerLine, _s11_)) * component.hSamples + col; + if (blockRow >= J.get$length$asx(A._lateReadCheck(component.__JpegComponent_blocks, _s6_))) + return; + if (blockCol >= J.get$length$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, _s6_), blockRow))) + return; + decodeFn.call$2(component, J.$index$asx(J.$index$asx(A._lateReadCheck(component.__JpegComponent_blocks, _s6_), blockRow), blockCol)); + } + }; + A.JpegDecoder.prototype = { + decodeImage$1(bytes) { + var jpeg; + type$.List_int._as(bytes); + jpeg = A.JpegData$(); + jpeg.read$1(0, bytes); + if (jpeg.frames.length !== 1) + throw A.wrapException(A.ImageException$("only single frame JPEGs supported")); + return A.getImageFromJpeg(jpeg); + } + }; + A.JpegEncoder.prototype = { + setQuality$1(quality) { + quality = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(quality, 1, 100)); + if (this.currentQuality === quality) + return; + this._initQuantTables$1(quality < 50 ? B.JSNumber_methods.floor$0(5000 / quality) : B.JSInt_methods.floor$0(200 - quality * 2)); + this.currentQuality = quality; + }, + encodeImage$1(image) { + var t1, t2, imageData, quadWidth, t3, t4, t5, t6, t7, t8, DCY, DCU, DCV, y, t9, t10, x, start, pos, row, col, p, t11, p0, r, g, b, t12, t13, _this = this, + fp = A.OutputBuffer$(true, 8192); + fp.writeByte$1(255); + fp.writeByte$1(216); + fp.writeByte$1(255); + fp.writeByte$1(224); + fp.writeUint16$1(16); + fp.writeByte$1(74); + fp.writeByte$1(70); + fp.writeByte$1(73); + fp.writeByte$1(70); + fp.writeByte$1(0); + fp.writeByte$1(1); + fp.writeByte$1(1); + fp.writeByte$1(0); + fp.writeUint16$1(1); + fp.writeUint16$1(1); + fp.writeByte$1(0); + fp.writeByte$1(0); + _this._writeAPP1$2(fp, image.exif); + _this._writeDQT$1(fp); + t1 = image.width; + t2 = image.height; + fp.writeByte$1(255); + fp.writeByte$1(192); + fp.writeUint16$1(17); + fp.writeByte$1(8); + fp.writeUint16$1(t2); + fp.writeUint16$1(t1); + fp.writeByte$1(3); + fp.writeByte$1(1); + fp.writeByte$1(17); + fp.writeByte$1(0); + fp.writeByte$1(2); + fp.writeByte$1(17); + fp.writeByte$1(1); + fp.writeByte$1(3); + fp.writeByte$1(17); + fp.writeByte$1(1); + _this._writeDHT$1(fp); + fp.writeByte$1(255); + fp.writeByte$1(218); + fp.writeUint16$1(12); + fp.writeByte$1(3); + fp.writeByte$1(1); + fp.writeByte$1(0); + fp.writeByte$1(2); + fp.writeByte$1(17); + fp.writeByte$1(3); + fp.writeByte$1(17); + fp.writeByte$1(0); + fp.writeByte$1(63); + fp.writeByte$1(0); + _this._bytenew = 0; + _this._bytepos = 7; + imageData = image.getBytes$0(); + quadWidth = t1 * 4; + for (t1 = _this.YDU, t3 = _this.fdtbl_Y, t4 = _this.UDU, t5 = _this.fdtbl_UV, t6 = _this.VDU, t7 = imageData.length, t8 = _this.RGB_YUV_TABLE, DCY = 0, DCU = 0, DCV = 0, y = 0; y < t2;) { + for (t9 = y + 1, t10 = quadWidth * y, x = 0; x < quadWidth;) { + start = t10 + x; + for (pos = 0; pos < 64; ++pos) { + row = pos >>> 3; + col = (pos & 7) * 4; + p = start + row * quadWidth + col; + if (y + row >= t2) + p -= quadWidth * (t9 + row - t2); + t11 = x + col; + if (t11 >= quadWidth) + p -= t11 - quadWidth + 4; + p0 = p + 1; + if (!(p >= 0 && p < t7)) + return A.ioore(imageData, p); + r = imageData[p]; + p = p0 + 1; + if (!(p0 >= 0 && p0 < t7)) + return A.ioore(imageData, p0); + g = imageData[p0]; + if (!(p >= 0 && p < t7)) + return A.ioore(imageData, p); + b = imageData[p]; + if (!(r < 2048)) + return A.ioore(t8, r); + t11 = t8[r]; + t12 = g + 256; + if (!(t12 < 2048)) + return A.ioore(t8, t12); + t12 = t8[t12]; + t13 = b + 512; + if (!(t13 < 2048)) + return A.ioore(t8, t13); + t1[pos] = B.JSInt_methods._shrOtherPositive$1(t11 + t12 + t8[t13], 16) - 128; + t13 = r + 768; + if (!(t13 < 2048)) + return A.ioore(t8, t13); + t13 = t8[t13]; + t12 = g + 1024; + if (!(t12 < 2048)) + return A.ioore(t8, t12); + t12 = t8[t12]; + t11 = b + 1280; + if (!(t11 < 2048)) + return A.ioore(t8, t11); + t4[pos] = B.JSInt_methods._shrOtherPositive$1(t13 + t12 + t8[t11], 16) - 128; + t11 = r + 1280; + if (!(t11 < 2048)) + return A.ioore(t8, t11); + t11 = t8[t11]; + t12 = g + 1536; + if (!(t12 < 2048)) + return A.ioore(t8, t12); + t12 = t8[t12]; + t13 = b + 1792; + if (!(t13 < 2048)) + return A.ioore(t8, t13); + t6[pos] = B.JSInt_methods._shrOtherPositive$1(t11 + t12 + t8[t13], 16) - 128; + } + DCY = _this._processDU$6(fp, t1, t3, DCY, _this.YDC_HT, A._lateReadCheck(_this.__JpegEncoder_YAC_HT, "YAC_HT")); + DCU = _this._processDU$6(fp, t4, t5, DCU, _this.UVDC_HT, A._lateReadCheck(_this.__JpegEncoder_UVAC_HT, "UVAC_HT")); + DCV = _this._processDU$6(fp, t6, t5, DCV, _this.UVDC_HT, A._lateReadCheck(_this.__JpegEncoder_UVAC_HT, "UVAC_HT")); + x += 32; + } + y += 8; + } + t1 = _this._bytepos; + if (t1 >= 0) { + ++t1; + _this._writeBits$2(fp, A._setArrayType([B.JSInt_methods.$shl(1, t1) - 1, t1], type$.JSArray_int)); + } + fp.writeByte$1(255); + fp.writeByte$1(217); + return A.NativeUint8List_NativeUint8List$view(fp._buffer.buffer, 0, fp.length); + }, + _initQuantTables$1(sf) { + var t1, i, t, t2, j, u, t3, t4, k, row, col, t5, t6, t7, t8, _this = this; + for (t1 = _this.YTable, i = 0; i < 64; ++i) { + t = B.JSNumber_methods.floor$0((B.List_kcl0[i] * sf + 50) / 100); + if (t < 1) + t = 1; + else if (t > 255) + t = 255; + t2 = B.List_kcl[i]; + if (!(t2 < 64)) + return A.ioore(t1, t2); + t1[t2] = t; + } + for (t2 = _this.UVTable, j = 0; j < 64; ++j) { + u = B.JSNumber_methods.floor$0((B.List_kcl1[j] * sf + 50) / 100); + if (u < 1) + u = 1; + else if (u > 255) + u = 255; + t3 = B.List_kcl[j]; + if (!(t3 < 64)) + return A.ioore(t2, t3); + t2[t3] = u; + } + for (t3 = _this.fdtbl_Y, t4 = _this.fdtbl_UV, k = 0, row = 0; row < 8; ++row) + for (col = 0; col < 8; ++col) { + if (!(k >= 0 && k < 64)) + return A.ioore(B.List_kcl, k); + t5 = B.List_kcl[k]; + if (!(t5 < 64)) + return A.ioore(t1, t5); + t6 = t1[t5]; + t7 = B.List_K2a[row]; + t8 = B.List_K2a[col]; + t3[k] = 1 / (t6 * t7 * t8 * 8); + t4[k] = 1 / (t2[t5] * t7 * t8 * 8); + ++k; + } + }, + _computeHuffmanTbl$2(nrcodes, std_table) { + var HT, t2, codevalue, pos_in_table, k, j, index, + t1 = type$.List_int; + t1._as(nrcodes); + t1._as(std_table); + t1 = type$.JSArray_int; + HT = A._setArrayType([A._setArrayType([], t1)], type$.JSArray_nullable_List_int); + for (t2 = std_table.length, codevalue = 0, pos_in_table = 0, k = 1; k <= 16; ++k) { + for (j = 1; j <= nrcodes[k]; ++j) { + if (!(pos_in_table >= 0 && pos_in_table < t2)) + return A.ioore(std_table, pos_in_table); + index = std_table[pos_in_table]; + if (HT.length <= index) + B.JSArray_methods.set$length(HT, index + 1); + B.JSArray_methods.$indexSet(HT, index, A._setArrayType([codevalue, k], t1)); + ++pos_in_table; + ++codevalue; + } + codevalue *= 2; + } + return HT; + }, + _initCategoryNumber$0() { + var t1, t2, t3, nrlower, nrupper, cat, nr, t4, nrneg, t5, t6; + for (t1 = this.category, t2 = this.bitcode, t3 = type$.JSArray_int, nrlower = 1, nrupper = 2, cat = 1; cat <= 15; ++cat) { + for (nr = nrlower; nr < nrupper; ++nr) { + t4 = 32767 + nr; + B.JSArray_methods.$indexSet(t1, t4, cat); + B.JSArray_methods.$indexSet(t2, t4, A._setArrayType([nr, cat], t3)); + } + for (t4 = nrupper - 1, nrneg = -t4, t5 = -nrlower; nrneg <= t5; ++nrneg) { + t6 = 32767 + nrneg; + B.JSArray_methods.$indexSet(t1, t6, cat); + B.JSArray_methods.$indexSet(t2, t6, A._setArrayType([t4 + nrneg, cat], t3)); + } + nrlower = nrlower << 1 >>> 0; + nrupper = nrupper << 1 >>> 0; + } + }, + _initRGBYUVTable$0() { + var t1, i; + for (t1 = this.RGB_YUV_TABLE, i = 0; i < 256; ++i) { + t1[i] = 19595 * i; + t1[i + 256] = 38470 * i; + t1[i + 512] = 7471 * i + 32768; + t1[i + 768] = -11059 * i; + t1[i + 1024] = -21709 * i; + t1[i + 1280] = 32768 * i + 8421375; + t1[i + 1536] = -27439 * i; + t1[i + 1792] = -5329 * i; + } + }, + _fDCTQuant$2(data, fdtbl) { + var dataOff, i, d0, d1, t2, d2, t3, d3, t4, d4, t5, d5, t6, d6, t7, d7, tmp0, tmp7, tmp1, tmp6, tmp2, tmp5, tmp3, tmp10, tmp13, tmp11, z1, tmp12, z5, z2, z4, z3, z11, z13, tmp0p2, tmp7p2, tmp1p2, tmp6p2, tmp2p2, tmp5p2, tmp3p2, tmp10p2, tmp13p2, tmp11p2, z1p2, tmp12p2, z5p2, z2p2, z4p2, z3p2, z11p2, z13p2, fDCTQuant, + t1 = type$.List_double; + t1._as(data); + t1._as(fdtbl); + for (dataOff = 0, i = 0; i < 8; ++i) { + if (!(dataOff < 64)) + return A.ioore(data, dataOff); + d0 = data[dataOff]; + t1 = dataOff + 1; + if (!(t1 < 64)) + return A.ioore(data, t1); + d1 = data[t1]; + t2 = dataOff + 2; + if (!(t2 < 64)) + return A.ioore(data, t2); + d2 = data[t2]; + t3 = dataOff + 3; + if (!(t3 < 64)) + return A.ioore(data, t3); + d3 = data[t3]; + t4 = dataOff + 4; + if (!(t4 < 64)) + return A.ioore(data, t4); + d4 = data[t4]; + t5 = dataOff + 5; + if (!(t5 < 64)) + return A.ioore(data, t5); + d5 = data[t5]; + t6 = dataOff + 6; + if (!(t6 < 64)) + return A.ioore(data, t6); + d6 = data[t6]; + t7 = dataOff + 7; + if (!(t7 < 64)) + return A.ioore(data, t7); + d7 = data[t7]; + tmp0 = d0 + d7; + tmp7 = d0 - d7; + tmp1 = d1 + d6; + tmp6 = d1 - d6; + tmp2 = d2 + d5; + tmp5 = d2 - d5; + tmp3 = d3 + d4; + tmp10 = tmp0 + tmp3; + tmp13 = tmp0 - tmp3; + tmp11 = tmp1 + tmp2; + if (!(dataOff < 64)) + return A.ioore(data, dataOff); + data[dataOff] = tmp10 + tmp11; + if (!(t4 < 64)) + return A.ioore(data, t4); + data[t4] = tmp10 - tmp11; + z1 = (tmp1 - tmp2 + tmp13) * 0.707106781; + if (!(t2 < 64)) + return A.ioore(data, t2); + data[t2] = tmp13 + z1; + if (!(t6 < 64)) + return A.ioore(data, t6); + data[t6] = tmp13 - z1; + tmp10 = d3 - d4 + tmp5; + tmp12 = tmp6 + tmp7; + z5 = (tmp10 - tmp12) * 0.382683433; + z2 = 0.5411961 * tmp10 + z5; + z4 = 1.306562965 * tmp12 + z5; + z3 = (tmp5 + tmp6) * 0.707106781; + z11 = tmp7 + z3; + z13 = tmp7 - z3; + if (!(t5 < 64)) + return A.ioore(data, t5); + data[t5] = z13 + z2; + if (!(t3 < 64)) + return A.ioore(data, t3); + data[t3] = z13 - z2; + if (!(t1 < 64)) + return A.ioore(data, t1); + data[t1] = z11 + z4; + if (!(t7 < 64)) + return A.ioore(data, t7); + data[t7] = z11 - z4; + dataOff += 8; + } + for (dataOff = 0, i = 0; i < 8; ++i) { + if (!(dataOff < 64)) + return A.ioore(data, dataOff); + d0 = data[dataOff]; + t1 = dataOff + 8; + if (!(t1 < 64)) + return A.ioore(data, t1); + d1 = data[t1]; + t2 = dataOff + 16; + if (!(t2 < 64)) + return A.ioore(data, t2); + d2 = data[t2]; + t3 = dataOff + 24; + if (!(t3 < 64)) + return A.ioore(data, t3); + d3 = data[t3]; + t4 = dataOff + 32; + if (!(t4 < 64)) + return A.ioore(data, t4); + d4 = data[t4]; + t5 = dataOff + 40; + if (!(t5 < 64)) + return A.ioore(data, t5); + d5 = data[t5]; + t6 = dataOff + 48; + if (!(t6 < 64)) + return A.ioore(data, t6); + d6 = data[t6]; + t7 = dataOff + 56; + if (!(t7 < 64)) + return A.ioore(data, t7); + d7 = data[t7]; + tmp0p2 = d0 + d7; + tmp7p2 = d0 - d7; + tmp1p2 = d1 + d6; + tmp6p2 = d1 - d6; + tmp2p2 = d2 + d5; + tmp5p2 = d2 - d5; + tmp3p2 = d3 + d4; + tmp10p2 = tmp0p2 + tmp3p2; + tmp13p2 = tmp0p2 - tmp3p2; + tmp11p2 = tmp1p2 + tmp2p2; + if (!(dataOff < 64)) + return A.ioore(data, dataOff); + data[dataOff] = tmp10p2 + tmp11p2; + if (!(t4 < 64)) + return A.ioore(data, t4); + data[t4] = tmp10p2 - tmp11p2; + z1p2 = (tmp1p2 - tmp2p2 + tmp13p2) * 0.707106781; + if (!(t2 < 64)) + return A.ioore(data, t2); + data[t2] = tmp13p2 + z1p2; + if (!(t6 < 64)) + return A.ioore(data, t6); + data[t6] = tmp13p2 - z1p2; + tmp10p2 = d3 - d4 + tmp5p2; + tmp12p2 = tmp6p2 + tmp7p2; + z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; + z2p2 = 0.5411961 * tmp10p2 + z5p2; + z4p2 = 1.306562965 * tmp12p2 + z5p2; + z3p2 = (tmp5p2 + tmp6p2) * 0.707106781; + z11p2 = tmp7p2 + z3p2; + z13p2 = tmp7p2 - z3p2; + if (!(t5 < 64)) + return A.ioore(data, t5); + data[t5] = z13p2 + z2p2; + if (!(t3 < 64)) + return A.ioore(data, t3); + data[t3] = z13p2 - z2p2; + if (!(t1 < 64)) + return A.ioore(data, t1); + data[t1] = z11p2 + z4p2; + if (!(t7 < 64)) + return A.ioore(data, t7); + data[t7] = z11p2 - z4p2; + ++dataOff; + } + for (t1 = this.outputfDCTQuant, i = 0; i < 64; ++i) { + fDCTQuant = data[i] * fdtbl[i]; + B.JSArray_methods.$indexSet(t1, i, fDCTQuant > 0 ? B.JSNumber_methods.toInt$0(fDCTQuant + 0.5) : B.JSNumber_methods.toInt$0(fDCTQuant - 0.5)); + } + return t1; + }, + _writeAPP1$2(out, exif) { + var t2, _i, rawData, + t1 = exif.rawData; + if (t1 == null) + return; + for (t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { + rawData = t1[_i]; + out.writeByte$1(255); + out.writeByte$1(225); + out.writeUint16$1(rawData.length + 2); + out.writeBytes$1(rawData); + } + }, + _writeDQT$1(out) { + var t1, i, j; + out.writeByte$1(255); + out.writeByte$1(219); + out.writeUint16$1(132); + out.writeByte$1(0); + for (t1 = this.YTable, i = 0; i < 64; ++i) + out.writeByte$1(t1[i]); + out.writeByte$1(1); + for (t1 = this.UVTable, j = 0; j < 64; ++j) + out.writeByte$1(t1[j]); + }, + _writeDHT$1(out) { + var i, j, k, l, m, n, o, p; + out.writeByte$1(255); + out.writeByte$1(196); + out.writeUint16$1(418); + out.writeByte$1(0); + for (i = 0; i < 16;) { + ++i; + out.writeByte$1(B.List_F1L0[i]); + } + for (j = 0; j <= 11; ++j) + out.writeByte$1(B.List_UiL[j]); + out.writeByte$1(16); + for (k = 0; k < 16;) { + ++k; + out.writeByte$1(B.List_F1L2[k]); + } + for (l = 0; l <= 161; ++l) + out.writeByte$1(B.List_G61[l]); + out.writeByte$1(1); + for (m = 0; m < 16;) { + ++m; + out.writeByte$1(B.List_F1L1[m]); + } + for (n = 0; n <= 11; ++n) + out.writeByte$1(B.List_UiL[n]); + out.writeByte$1(17); + for (o = 0; o < 16;) { + ++o; + out.writeByte$1(B.List_F1L3[o]); + } + for (p = 0; p <= 161; ++p) + out.writeByte$1(B.List_AKW[p]); + }, + _processDU$6(out, CDU, fdtbl, DC, HTDC, HTAC) { + var EOB, M16zeroes, DU_DCT, j, t2, Diff, t3, pos, end0pos, t4, i, i0, nrzeroes, lng, nrmarker, t5, _this = this, + t1 = type$.List_double; + t1._as(CDU); + t1._as(fdtbl); + type$.nullable_List_nullable_List_int._as(HTDC); + type$.List_nullable_List_int._as(HTAC); + t1 = HTAC.length; + if (0 >= t1) + return A.ioore(HTAC, 0); + EOB = HTAC[0]; + if (240 >= t1) + return A.ioore(HTAC, 240); + M16zeroes = HTAC[240]; + DU_DCT = _this._fDCTQuant$2(CDU, fdtbl); + for (t1 = _this.DU, j = 0; j < 64; ++j) + B.JSArray_methods.$indexSet(t1, B.List_kcl[j], DU_DCT[j]); + t2 = t1[0]; + t2.toString; + Diff = t2 - DC; + if (Diff === 0) { + if (0 >= HTDC.length) + return A.ioore(HTDC, 0); + t3 = HTDC[0]; + t3.toString; + _this._writeBits$2(out, t3); + } else { + pos = 32767 + Diff; + HTDC.toString; + t3 = _this.category; + if (!(pos >= 0 && pos < 65535)) + return A.ioore(t3, pos); + t3 = t3[pos]; + t3.toString; + if (!(t3 < HTDC.length)) + return A.ioore(HTDC, t3); + t3 = HTDC[t3]; + t3.toString; + _this._writeBits$2(out, t3); + t3 = _this.bitcode[pos]; + t3.toString; + _this._writeBits$2(out, t3); + } + end0pos = 63; + while (true) { + if (!(end0pos > 0 && t1[end0pos] === 0)) + break; + --end0pos; + } + if (end0pos === 0) { + EOB.toString; + _this._writeBits$2(out, EOB); + return t2; + } + for (t3 = _this.category, t4 = _this.bitcode, i = 1; i <= end0pos;) { + i0 = i; + while (true) { + if (!(i0 >= 0 && i0 < 64)) + return A.ioore(t1, i0); + if (!(t1[i0] === 0 && i0 <= end0pos)) + break; + ++i0; + } + nrzeroes = i0 - i; + if (nrzeroes >= 16) { + lng = B.JSInt_methods._shrOtherPositive$1(nrzeroes, 4); + for (nrmarker = 1; nrmarker <= lng; ++nrmarker) { + M16zeroes.toString; + _this._writeBits$2(out, M16zeroes); + } + nrzeroes &= 15; + } + t5 = t1[i0]; + t5.toString; + pos = 32767 + t5; + if (!(pos >= 0 && pos < 65535)) + return A.ioore(t3, pos); + t5 = t3[pos]; + t5.toString; + t5 = (nrzeroes << 4 >>> 0) + t5; + if (!(t5 < HTAC.length)) + return A.ioore(HTAC, t5); + t5 = HTAC[t5]; + t5.toString; + _this._writeBits$2(out, t5); + t5 = t4[pos]; + t5.toString; + _this._writeBits$2(out, t5); + i = i0 + 1; + } + if (end0pos !== 63) { + EOB.toString; + _this._writeBits$2(out, EOB); + } + return t2; + }, + _writeBits$2(out, bits) { + var t1, value, posval, _this = this; + type$.List_int._as(bits); + t1 = J.getInterceptor$asx(bits); + value = t1.$index(bits, 0); + t1 = t1.$index(bits, 1); + if (typeof t1 !== "number") + return t1.$sub(); + posval = t1 - 1; + for (; posval >= 0;) { + if ((value & B.JSInt_methods.$shl(1, posval)) >>> 0 !== 0) + _this._bytenew = (_this._bytenew | B.JSInt_methods.$shl(1, _this._bytepos)) >>> 0; + --posval; + if (--_this._bytepos < 0) { + t1 = _this._bytenew; + if (t1 === 255) { + out.writeByte$1(255); + out.writeByte$1(0); + } else + out.writeByte$1(t1); + _this._bytepos = 7; + _this._bytenew = 0; + } + } + }, + set$YDC_HT(YDC_HT) { + this.YDC_HT = type$.nullable_List_nullable_List_int._as(YDC_HT); + }, + set$UVDC_HT(UVDC_HT) { + this.UVDC_HT = type$.nullable_List_nullable_List_int._as(UVDC_HT); + }, + set$__JpegEncoder_YAC_HT(__JpegEncoder_YAC_HT) { + this.__JpegEncoder_YAC_HT = type$.List_nullable_List_int._as(__JpegEncoder_YAC_HT); + }, + set$__JpegEncoder_UVAC_HT(__JpegEncoder_UVAC_HT) { + this.__JpegEncoder_UVAC_HT = type$.List_nullable_List_int._as(__JpegEncoder_UVAC_HT); + } + }; + A.PngFrame.prototype = {}; + A.InternalPngFrame.prototype = {}; + A.PngInfo.prototype = { + set$palette(palette) { + this.palette = type$.nullable_List_nullable_int._as(palette); + }, + set$transparency(transparency) { + this.transparency = type$.nullable_List_int._as(transparency); + }, + set$colorLut(colorLut) { + this.colorLut = type$.nullable_List_nullable_int._as(colorLut); + } + }; + A.InternalPngInfo.prototype = {}; + A.PngDecoder.prototype = { + isValidFile$1(data) { + var t1, t2, t3, i, t4, + pngHeader = A.InputBuffer$(type$.List_int._as(data), true, null, 0).readBytes$1(8); + for (t1 = pngHeader.buffer, t2 = pngHeader.offset, t3 = t1.length, i = 0; i < 8; ++i) { + t4 = t2 + i; + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + if (t1[t4] !== B.List_2Vk[i]) + return false; + } + return true; + }, + startDecode$1(data) { + var pngHeader, t3, t4, i, t5, inputPos, chunkSize, chunkType, bytes, txtData, l, key, text, hdr, hdrBytes, t6, t7, t8, t9, crc, gammaInt, frame, p3, r, g, b, _this = this, _null = null, _s6_ = "_input", + t1 = type$.List_int, + t2 = A.InputBuffer$(t1._as(data), true, _null, 0); + _this.__PngDecoder__input = t2; + pngHeader = A._lateReadCheck(t2, _s6_).readBytes$1(8); + for (t2 = pngHeader.buffer, t3 = pngHeader.offset, t4 = t2.length, i = 0; i < 8; ++i) { + t5 = t3 + i; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t2, t5); + if (t2[t5] !== B.List_2Vk[i]) + return _null; + } + for (t2 = type$.JSArray_int, t3 = type$.String, t4 = type$.JSArray_PngFrame; true;) { + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + inputPos = t5.offset - t5.start; + chunkSize = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + chunkType = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$1(4); + switch (chunkType) { + case "tEXt": + if (_this._png_decoder$_info == null) + _this._png_decoder$_info = new A.InternalPngInfo(A.LinkedHashMap_LinkedHashMap$_empty(t3, t3), A._setArrayType([], t4), A._setArrayType([], t2)); + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t5.subset$1(chunkSize); + t5.offset = t5.offset + (bytes.end - bytes.offset); + txtData = bytes.toUint8List$0(); + for (l = txtData.length, i = 0; i < l; ++i) + if (txtData[i] === 0) { + key = B.C_Latin1Codec.decode$1(0, new Uint8Array(txtData.subarray(0, A._checkValidRange(0, i, l)))); + t5 = i + 1; + text = B.C_Latin1Codec.decode$1(0, new Uint8Array(txtData.subarray(t5, A._checkValidRange(t5, _null, l)))); + _this._png_decoder$_info.textData.$indexSet(0, key, text); + break; + } + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "IHDR": + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t5.subset$1(chunkSize); + t5.offset = t5.offset + (bytes.end - bytes.offset); + hdr = A.InputBuffer$from(bytes, _null, 0); + hdrBytes = hdr.toUint8List$0(); + t5 = new A.InternalPngInfo(A.LinkedHashMap_LinkedHashMap$_empty(t3, t3), A._setArrayType([], t4), A._setArrayType([], t2)); + _this._png_decoder$_info = t5; + t5.width = hdr.readUint32$0(); + t5 = _this._png_decoder$_info; + t5.toString; + t5.height = hdr.readUint32$0(); + t5 = _this._png_decoder$_info; + t5.toString; + t6 = hdr.buffer; + t7 = hdr.offset; + t8 = hdr.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t5.bits = t6[t7]; + t7 = hdr.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + t5.colorType = t6[t8]; + t8 = hdr.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t7 = hdr.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + t5.filterMethod = t6[t8]; + hdr.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t5.interlaceMethod = t6[t7]; + if (!B.JSArray_methods.contains$1(A._setArrayType([0, 2, 3, 4, 6], t2), _this._png_decoder$_info.colorType)) + return _null; + t5 = _this._png_decoder$_info; + if (t5.filterMethod !== 0) + return _null; + switch (t5.colorType) { + case 0: + if (!B.JSArray_methods.contains$1(A._setArrayType([1, 2, 4, 8, 16], t2), _this._png_decoder$_info.bits)) + return _null; + break; + case 2: + if (!B.JSArray_methods.contains$1(A._setArrayType([8, 16], t2), _this._png_decoder$_info.bits)) + return _null; + break; + case 3: + if (!B.JSArray_methods.contains$1(A._setArrayType([1, 2, 4, 8], t2), _this._png_decoder$_info.bits)) + return _null; + break; + case 4: + if (!B.JSArray_methods.contains$1(A._setArrayType([8, 16], t2), _this._png_decoder$_info.bits)) + return _null; + break; + case 6: + if (!B.JSArray_methods.contains$1(A._setArrayType([8, 16], t2), _this._png_decoder$_info.bits)) + return _null; + break; + } + if (A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0() !== A.getCrc32(t1._as(hdrBytes), A.getCrc32(new A.CodeUnits(chunkType), 0))) + throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); + break; + case "PLTE": + t5 = _this._png_decoder$_info; + t5.toString; + t6 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t6.subset$1(chunkSize); + t6.offset = t6.offset + (bytes.end - bytes.offset); + t5.set$palette(bytes.toUint8List$0()); + if (A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0() !== A.getCrc32(t1._as(t1._as(_this._png_decoder$_info.palette)), A.getCrc32(new A.CodeUnits(chunkType), 0))) + throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); + break; + case "tRNS": + t5 = _this._png_decoder$_info; + t5.toString; + t6 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t6.subset$1(chunkSize); + t6.offset = t6.offset + (bytes.end - bytes.offset); + t5.set$transparency(bytes.toUint8List$0()); + crc = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + t5 = _this._png_decoder$_info.transparency; + t5.toString; + if (crc !== A.getCrc32(t1._as(t5), A.getCrc32(new A.CodeUnits(chunkType), 0))) + throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); + break; + case "IEND": + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "gAMA": + if (chunkSize !== 4) + throw A.wrapException(A.ImageException$("Invalid gAMA chunk")); + gammaInt = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + if (gammaInt !== 100000) + _this._png_decoder$_info.gamma = gammaInt / 100000; + break; + case "IDAT": + B.JSArray_methods.add$1(_this._png_decoder$_info._idat, inputPos); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize; + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "acTL": + _this._png_decoder$_info.toString; + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + _this._png_decoder$_info.toString; + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "fcTL": + frame = new A.InternalPngFrame(A._setArrayType([], t2)); + B.JSArray_methods.add$1(_this._png_decoder$_info.frames, frame); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + frame.width = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + frame.height = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + t6 = t5.buffer; + t5 = t5.offset++; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + t5 = t6.buffer; + t6 = t6.offset++; + if (!(t6 >= 0 && t6 < t5.length)) + return A.ioore(t5, t6); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "fdAT": + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + B.JSArray_methods.add$1(B.JSArray_methods.get$last(_this._png_decoder$_info.frames)._fdat, inputPos); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize - 4; + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "bKGD": + t5 = _this._png_decoder$_info.colorType; + if (t5 === 3) { + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + t6 = t5.buffer; + t5 = t5.offset++; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + --chunkSize; + p3 = t6[t5] * 3; + t5 = _this._png_decoder$_info.palette; + t6 = t5.length; + if (!(p3 >= 0 && p3 < t6)) + return A.ioore(t5, p3); + r = t5[p3]; + t7 = p3 + 1; + if (!(t7 < t6)) + return A.ioore(t5, t7); + g = t5[t7]; + t7 = p3 + 2; + if (!(t7 < t6)) + return A.ioore(t5, t7); + b = t5[t7]; + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255)); + } else if (t5 === 0 || t5 === 4) { + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); + chunkSize -= 2; + } else if (t5 === 2 || t5 === 6) { + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint16$0(); + chunkSize -= 24; + } + if (chunkSize > 0) + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize; + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + case "iCCP": + t5 = _this._png_decoder$_info; + t5.toString; + t5.iCCPName = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$0(); + _this._png_decoder$_info.toString; + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + t6 = t5.buffer; + t5 = t5.offset++; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6 = _this._png_decoder$_info.iCCPName; + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t5.subset$1(chunkSize - (t6.length + 2)); + t5.offset = t5.offset + (bytes.end - bytes.offset); + t5 = _this._png_decoder$_info; + t5.toString; + t5.iCCPData = bytes.toUint8List$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + default: + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += chunkSize; + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + break; + } + if (chunkType === "IEND") + break; + t5 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + if (t5.offset >= t5.end) + return _null; + } + return _this._png_decoder$_info; + }, + decodeFrame$1(frame) { + var imageData, t1, width, height, t2, t3, len, i, chunkSize, chunkType, bytes, data, f, channels, image, input, t4, origW, origH, _this = this, _null = null, _s6_ = "_input"; + if (_this._png_decoder$_info == null) + return _null; + imageData = A._setArrayType([], type$.JSArray_int); + t1 = _this._png_decoder$_info; + width = t1.width; + height = t1.height; + t2 = t1.frames; + t3 = t2.length; + if (t3 === 0 || frame === 0) + for (len = t1._idat.length, t1 = type$.List_int, i = 0; i < len; ++i) { + t2 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + t3 = _this._png_decoder$_info._idat; + if (!(i < t3.length)) + return A.ioore(t3, i); + t2.offset = t3[i]; + chunkSize = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + chunkType = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$1(4); + t3 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t3.subset$1(chunkSize); + t3.offset = t3.offset + (bytes.end - bytes.offset); + data = bytes.toUint8List$0(); + B.JSArray_methods.addAll$1(imageData, data); + if (A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0() !== A.getCrc32(t1._as(data), A.getCrc32(new A.CodeUnits(chunkType), 0))) + throw A.wrapException(A.ImageException$("Invalid " + chunkType + " checksum")); + } + else { + if (frame >= t3) + throw A.wrapException(A.ImageException$("Invalid Frame Number: " + frame)); + f = t2[frame]; + width = f.width; + height = f.height; + for (t1 = f._fdat, i = 0; i < t1.length; ++i) { + t2 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + if (!(i < t1.length)) + return A.ioore(t1, i); + t2.offset = t1[i]; + chunkSize = A._lateReadCheck(_this.__PngDecoder__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).readString$1(4); + A._lateReadCheck(_this.__PngDecoder__input, _s6_).offset += 4; + t2 = A._lateReadCheck(_this.__PngDecoder__input, _s6_); + bytes = t2.subset$1(chunkSize); + t2.offset = t2.offset + (bytes.end - bytes.offset); + B.JSArray_methods.addAll$1(imageData, bytes.toUint8List$0()); + } + } + t1 = _this._png_decoder$_info; + t2 = t1.colorType; + channels = t2 === 4 || t2 === 6 || t1.transparency != null ? B.Channels_1 : B.Channels_0; + width.toString; + height.toString; + image = A.Image$(width, height, channels, _null, _null); + input = A.InputBuffer$(B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(imageData), 1, _null, 0), false), true, _null, 0); + _this._png_decoder$_bitBufferLen = _this._png_decoder$_bitBuffer = 0; + t1 = _this._png_decoder$_info; + if (t1.colorLut == null) { + t1.set$colorLut(A.List_List$generate(256, new A.PngDecoder_decodeFrame_closure(), false, type$.int)); + t1 = _this._png_decoder$_info; + t2 = t1.palette; + if (t2 != null && t1.gamma != null) + for (t3 = t2.length, t1 = t1.colorLut, i = 0; i < t3; ++i) { + t1.toString; + t4 = t2[i]; + if (!(t4 < 256)) + return A.ioore(t1, t4); + t2[i] = t1[t4]; + } + } + t1 = _this._png_decoder$_info; + origW = t1.width; + origH = t1.height; + t1.width = width; + t1.height = height; + _this._progressY = 0; + if (t1.interlaceMethod !== 0) { + t1 = B.JSInt_methods._shrOtherPositive$1(width + 7, 3); + t2 = B.JSInt_methods._shrOtherPositive$1(height + 7, 3); + _this._processPass$8(input, image, 0, 0, 8, 8, t1, t2); + t1 = width + 3; + _this._processPass$8(input, image, 4, 0, 8, 8, B.JSInt_methods._shrOtherPositive$1(t1, 3), t2); + t2 = height + 3; + _this._processPass$8(input, image, 0, 4, 4, 8, B.JSInt_methods._shrOtherPositive$1(t1, 2), B.JSInt_methods._shrOtherPositive$1(t2, 3)); + t1 = width + 1; + _this._processPass$8(input, image, 2, 0, 4, 4, B.JSInt_methods._shrOtherPositive$1(t1, 2), B.JSInt_methods._shrOtherPositive$1(t2, 2)); + t2 = height + 1; + _this._processPass$8(input, image, 0, 2, 2, 4, B.JSInt_methods._shrOtherPositive$1(t1, 1), B.JSInt_methods._shrOtherPositive$1(t2, 2)); + _this._processPass$8(input, image, 1, 0, 2, 2, B.JSInt_methods._shrOtherPositive$1(width, 1), B.JSInt_methods._shrOtherPositive$1(t2, 1)); + _this._processPass$8(input, image, 0, 1, 1, 2, width, B.JSInt_methods._shrOtherPositive$1(height, 1)); + } else + _this._png_decoder$_process$2(input, image); + t1 = _this._png_decoder$_info; + t1.width = origW; + t1.height = origH; + t2 = t1.iCCPData; + if (t2 != null) + image.iccProfile = new A.ICCProfileData(t1.iCCPName, B.ICCPCompression_1, t2); + t1 = t1.textData; + if (t1._length !== 0) + image.addTextData$1(t1); + return image; + }, + decodeImage$1(bytes) { + if (this.startDecode$1(type$.List_int._as(bytes)) == null) + return null; + return this.decodeFrame$1(0); + }, + _processPass$8(input, image, xOffset, yOffset, xStep, yStep, passWidth, passHeight) { + var channels, pixelDepth, bpp, rowBytes, line, inData, pixel, t3, t4, t5, blockWidth, t6, dstY, srcY, ri, t7, t8, bytes, row, rowInput, dstX, srcX, c, i, j, t9, t10, _this = this, + t1 = _this._png_decoder$_info, + t2 = t1.colorType; + if (t2 === 4) + channels = 2; + else if (t2 === 2) + channels = 3; + else { + t2 = t2 === 6 ? 4 : 1; + channels = t2; + } + t1 = t1.bits; + t1.toString; + pixelDepth = channels * t1; + bpp = B.JSInt_methods._shrOtherPositive$1(pixelDepth + 7, 3); + rowBytes = B.JSInt_methods._shrOtherPositive$1(pixelDepth * passWidth + 7, 3); + line = A.List_List$filled(rowBytes, 0, false, type$.int); + inData = A._setArrayType([line, line], type$.JSArray_List_int); + pixel = A._setArrayType([0, 0, 0, 0], type$.JSArray_int); + for (t1 = image.data, t2 = image.width, t3 = t1.length, t4 = xStep > 1, t5 = image.height, blockWidth = xStep - xOffset, t6 = blockWidth <= 1, dstY = yOffset, srcY = 0, ri = 0; srcY < passHeight; ++srcY, dstY += yStep, ++_this._progressY) { + t7 = input.buffer; + t8 = input.offset++; + if (!(t8 >= 0 && t8 < t7.length)) + return A.ioore(t7, t8); + t8 = t7[t8]; + bytes = input.subset$1(rowBytes); + input.offset = input.offset + (bytes.end - bytes.offset); + B.JSArray_methods.$indexSet(inData, ri, bytes.toUint8List$0()); + if (!(ri >= 0 && ri < 2)) + return A.ioore(inData, ri); + row = inData[ri]; + ri = 1 - ri; + _this._unfilter$4(t8, bpp, row, inData[ri]); + _this._png_decoder$_bitBufferLen = _this._png_decoder$_bitBuffer = 0; + t7 = row.length; + rowInput = new A.InputBuffer(row, 0, t7, 0, true); + for (t7 = dstY * t2, dstX = xOffset, srcX = 0; srcX < passWidth; ++srcX, dstX += xStep) { + _this._readPixel$2(rowInput, pixel); + c = _this._getColor$1(pixel); + t8 = t7 + dstX; + if (!(t8 >= 0 && t8 < t3)) + return A.ioore(t1, t8); + t1[t8] = c; + if (!t6 || t4) + for (i = 0; i < xStep; ++i) + for (j = 0; j < blockWidth; ++j) { + t8 = dstX + j; + t9 = dstY + j; + if (t8 < t2) + t10 = t9 < t5; + else + t10 = false; + if (t10) { + t8 = t9 * t2 + t8; + if (!(t8 >= 0 && t8 < t3)) + return A.ioore(t1, t8); + t1[t8] = c; + } + } + } + } + }, + _png_decoder$_process$2(input, image) { + var channels, pixelDepth, w, h, rowBytes, bpp, line, inData, pixel, y, pi, ri, t3, t4, bytes, ri0, rowInput, x, pi0, _this = this, + t1 = _this._png_decoder$_info, + t2 = t1.colorType; + if (t2 === 4) + channels = 2; + else if (t2 === 2) + channels = 3; + else { + t2 = t2 === 6 ? 4 : 1; + channels = t2; + } + t2 = t1.bits; + t2.toString; + pixelDepth = channels * t2; + w = t1.width; + h = t1.height; + rowBytes = B.JSInt_methods._shrOtherPositive$1(w * pixelDepth + 7, 3); + bpp = B.JSInt_methods._shrOtherPositive$1(pixelDepth + 7, 3); + line = A.List_List$filled(rowBytes, 0, false, type$.int); + inData = A._setArrayType([line, line], type$.JSArray_List_int); + pixel = A._setArrayType([0, 0, 0, 0], type$.JSArray_int); + for (t1 = image.data, t2 = t1.length, y = 0, pi = 0, ri = 0; y < h; ++y, ri = ri0) { + t3 = input.buffer; + t4 = input.offset++; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t4 = t3[t4]; + bytes = input.subset$1(rowBytes); + input.offset = input.offset + (bytes.end - bytes.offset); + B.JSArray_methods.$indexSet(inData, ri, bytes.toUint8List$0()); + if (!(ri >= 0 && ri < 2)) + return A.ioore(inData, ri); + ri0 = 1 - ri; + _this._unfilter$4(t4, bpp, inData[ri], inData[ri0]); + _this._png_decoder$_bitBufferLen = _this._png_decoder$_bitBuffer = 0; + t4 = inData[ri]; + t3 = t4.length; + rowInput = new A.InputBuffer(t4, 0, t3, 0, true); + for (x = 0; x < w; ++x, pi = pi0) { + _this._readPixel$2(rowInput, pixel); + pi0 = pi + 1; + t3 = _this._getColor$1(pixel); + if (!(pi >= 0 && pi < t2)) + return A.ioore(t1, pi); + t1[pi] = t3; + } + } + }, + _unfilter$4(filterType, bpp, row, prevRow) { + var rowBytes, x, t2, t3, t4, a, b, c, p, pa, pb, pc, paeth, + t1 = type$.List_int; + t1._as(row); + t1._as(prevRow); + rowBytes = row.length; + switch (filterType) { + case 0: + break; + case 1: + for (t1 = J.getInterceptor$ax(row), x = bpp; x < rowBytes; ++x) { + t2 = row.length; + if (!(x < t2)) + return A.ioore(row, x); + t3 = row[x]; + t4 = x - bpp; + if (!(t4 >= 0 && t4 < t2)) + return A.ioore(row, t4); + t4 = row[t4]; + if (typeof t3 !== "number") + return t3.$add(); + if (typeof t4 !== "number") + return A.iae(t4); + t1.$indexSet(row, x, t3 + t4 & 255); + } + break; + case 2: + for (t1 = J.getInterceptor$ax(row), x = 0; x < rowBytes; ++x) { + if (!(x < row.length)) + return A.ioore(row, x); + t2 = row[x]; + if (!(x < prevRow.length)) + return A.ioore(prevRow, x); + t3 = prevRow[x]; + if (typeof t2 !== "number") + return t2.$add(); + if (typeof t3 !== "number") + return A.iae(t3); + t1.$indexSet(row, x, t2 + t3 & 255); + } + break; + case 3: + for (t1 = J.getInterceptor$ax(row), x = 0; x < rowBytes; ++x) { + if (x < bpp) + a = 0; + else { + t2 = x - bpp; + if (!(t2 >= 0 && t2 < row.length)) + return A.ioore(row, t2); + a = row[t2]; + } + if (!(x < prevRow.length)) + return A.ioore(prevRow, x); + b = prevRow[x]; + if (!(x < row.length)) + return A.ioore(row, x); + t2 = row[x]; + t3 = B.JSInt_methods._shrOtherPositive$1(a + b, 1); + if (typeof t2 !== "number") + return t2.$add(); + t1.$indexSet(row, x, t2 + t3 & 255); + } + break; + case 4: + for (t1 = J.getInterceptor$ax(row), x = 0; x < rowBytes; ++x) { + t2 = x < bpp; + if (t2) + a = 0; + else { + t3 = x - bpp; + if (!(t3 >= 0 && t3 < row.length)) + return A.ioore(row, t3); + a = row[t3]; + } + t3 = prevRow.length; + if (!(x < t3)) + return A.ioore(prevRow, x); + b = prevRow[x]; + if (t2) + c = 0; + else { + t2 = x - bpp; + if (!(t2 >= 0 && t2 < t3)) + return A.ioore(prevRow, t2); + c = prevRow[t2]; + } + p = a + b - c; + pa = Math.abs(p - a); + pb = Math.abs(p - b); + pc = Math.abs(p - c); + if (pa <= pb && pa <= pc) + paeth = a; + else + paeth = pb <= pc ? b : c; + if (!(x < row.length)) + return A.ioore(row, x); + t2 = row[x]; + if (typeof t2 !== "number") + return t2.$add(); + t1.$indexSet(row, x, t2 + paeth & 255); + } + break; + default: + throw A.wrapException(A.ImageException$("Invalid filter value: " + filterType)); + } + }, + _png_decoder$_readBits$2(input, numBits) { + var t1, t2, t3, t4, mask, _this = this; + if (numBits === 0) + return 0; + if (numBits === 8) + return input.readByte$0(); + if (numBits === 16) + return input.readUint16$0(); + for (t1 = input.end; t2 = _this._png_decoder$_bitBufferLen, t2 < numBits;) { + t3 = input.offset; + if (t3 >= t1) + throw A.wrapException(A.ImageException$("Invalid PNG data.")); + t4 = input.buffer; + input.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4.length)) + return A.ioore(t4, t3); + _this._png_decoder$_bitBuffer = B.JSInt_methods.$shl(t4[t3], t2); + _this._png_decoder$_bitBufferLen = t2 + 8; + } + if (numBits === 1) + mask = 1; + else if (numBits === 2) + mask = 3; + else { + if (numBits === 4) + t1 = 15; + else + t1 = 0; + mask = t1; + } + t1 = t2 - numBits; + t2 = B.JSInt_methods._shrReceiverPositive$1(_this._png_decoder$_bitBuffer, t1); + _this._png_decoder$_bitBufferLen = t1; + return (t2 & mask) >>> 0; + }, + _readPixel$2(input, pixel) { + var t1, t2, _this = this; + type$.List_int._as(pixel); + t1 = _this._png_decoder$_info; + t2 = t1.colorType; + switch (t2) { + case 0: + t1 = t1.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); + return; + case 2: + t1 = t1.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); + t1 = _this._png_decoder$_info.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 1, _this._png_decoder$_readBits$2(input, t1)); + t1 = _this._png_decoder$_info.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 2, _this._png_decoder$_readBits$2(input, t1)); + return; + case 3: + t1 = t1.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); + return; + case 4: + t1 = t1.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); + t1 = _this._png_decoder$_info.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 1, _this._png_decoder$_readBits$2(input, t1)); + return; + case 6: + t1 = t1.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 0, _this._png_decoder$_readBits$2(input, t1)); + t1 = _this._png_decoder$_info.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 1, _this._png_decoder$_readBits$2(input, t1)); + t1 = _this._png_decoder$_info.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 2, _this._png_decoder$_readBits$2(input, t1)); + t1 = _this._png_decoder$_info.bits; + t1.toString; + B.JSArray_methods.$indexSet(pixel, 3, _this._png_decoder$_readBits$2(input, t1)); + return; + } + throw A.wrapException(A.ImageException$("Invalid color type: " + A.S(t2) + ".")); + }, + _getColor$1(raw) { + var t1, t2, g, t3, r, b, t4, t5, t6, t7, p, a, _this = this; + type$.List_int._as(raw); + t1 = _this._png_decoder$_info; + t2 = t1.colorType; + switch (t2) { + case 0: + g = A._Cell$named("g"); + t1 = _this._png_decoder$_info; + switch (t1.bits) { + case 1: + g._value = raw[0] === 0 ? 0 : 255; + break; + case 2: + g._value = raw[0] * 85; + break; + case 4: + g._value = raw[0] << 4 >>> 0; + break; + case 8: + g._value = raw[0]; + break; + case 16: + g._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); + break; + } + t1 = t1.colorLut; + t1.toString; + g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); + t1 = _this._png_decoder$_info.transparency; + if (t1 != null) { + t2 = t1.length; + if (0 >= t2) + return A.ioore(t1, 0); + t3 = t1[0]; + if (1 >= t2) + return A.ioore(t1, 1); + t1 = t1[1]; + if (raw[0] === ((t3 & 255) << 24 | t1 & 255) >>> 0) + return A.getColor(g._readLocal$0(), g._readLocal$0(), g._readLocal$0(), 0); + } + return A.getColor(g._readLocal$0(), g._readLocal$0(), g._readLocal$0(), 255); + case 2: + r = A._Cell$named("r"); + g = A._Cell$named("g"); + b = A._Cell$named("b"); + t1 = _this._png_decoder$_info; + switch (t1.bits) { + case 1: + r._value = raw[0] === 0 ? 0 : 255; + g._value = raw[1] === 0 ? 0 : 255; + b._value = raw[2] === 0 ? 0 : 255; + break; + case 2: + r._value = raw[0] * 85; + g._value = raw[1] * 85; + b._value = raw[2] * 85; + break; + case 4: + r._value = raw[0] << 4 >>> 0; + g._value = raw[1] << 4 >>> 0; + b._value = raw[2] << 4 >>> 0; + break; + case 8: + r._value = raw[0]; + g._value = raw[1]; + b._value = raw[2]; + break; + case 16: + r._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); + g._value = B.JSInt_methods._shrOtherPositive$1(raw[1], 8); + b._value = B.JSInt_methods._shrOtherPositive$1(raw[2], 8); + break; + } + t1 = t1.colorLut; + t1.toString; + r._value = B.JSArray_methods.$index(t1, r._readLocal$0()); + t1 = _this._png_decoder$_info.colorLut; + t1.toString; + g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); + t1 = _this._png_decoder$_info.colorLut; + t1.toString; + b._value = B.JSArray_methods.$index(t1, b._readLocal$0()); + t1 = _this._png_decoder$_info.transparency; + if (t1 != null) { + t2 = t1.length; + if (0 >= t2) + return A.ioore(t1, 0); + t3 = t1[0]; + if (1 >= t2) + return A.ioore(t1, 1); + t4 = t1[1]; + if (2 >= t2) + return A.ioore(t1, 2); + t5 = t1[2]; + if (3 >= t2) + return A.ioore(t1, 3); + t6 = t1[3]; + if (4 >= t2) + return A.ioore(t1, 4); + t7 = t1[4]; + if (5 >= t2) + return A.ioore(t1, 5); + t1 = t1[5]; + if (raw[0] === ((t3 & 255) << 8 | t4 & 255) && raw[1] === ((t5 & 255) << 8 | t6 & 255) && raw[2] === ((t7 & 255) << 8 | t1 & 255)) + return A.getColor(r._readLocal$0(), g._readLocal$0(), b._readLocal$0(), 0); + } + return A.getColor(r._readLocal$0(), g._readLocal$0(), b._readLocal$0(), 255); + case 3: + t2 = raw[0]; + p = t2 * 3; + t3 = t1.transparency; + if (t3 != null && t2 < t3.length) { + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + a = t3[t2]; + } else + a = 255; + t1 = t1.palette; + t2 = t1.length; + if (p >= t2) + return A.getColor(255, 255, 255, a); + if (!(p >= 0)) + return A.ioore(t1, p); + r = t1[p]; + t3 = p + 1; + if (!(t3 < t2)) + return A.ioore(t1, t3); + g = t1[t3]; + t3 = p + 2; + if (!(t3 < t2)) + return A.ioore(t1, t3); + return A.getColor(r, g, t1[t3], a); + case 4: + g = A._Cell$named("g"); + a = A._Cell$named("a"); + t1 = _this._png_decoder$_info; + switch (t1.bits) { + case 1: + g._value = raw[0] === 0 ? 0 : 255; + a._value = raw[1] === 0 ? 0 : 255; + break; + case 2: + g._value = raw[0] * 85; + a._value = raw[1] * 85; + break; + case 4: + g._value = raw[0] << 4 >>> 0; + a._value = raw[1] << 4 >>> 0; + break; + case 8: + g._value = raw[0]; + a._value = raw[1]; + break; + case 16: + g._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); + a._value = B.JSInt_methods._shrOtherPositive$1(raw[1], 8); + break; + } + t1 = t1.colorLut; + t1.toString; + g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); + return A.getColor(g._readLocal$0(), g._readLocal$0(), g._readLocal$0(), a._readLocal$0()); + case 6: + r = A._Cell$named("r"); + g = A._Cell$named("g"); + b = A._Cell$named("b"); + a = A._Cell$named("a"); + t1 = _this._png_decoder$_info; + switch (t1.bits) { + case 1: + r._value = raw[0] === 0 ? 0 : 255; + g._value = raw[1] === 0 ? 0 : 255; + b._value = raw[2] === 0 ? 0 : 255; + a._value = raw[3] === 0 ? 0 : 255; + break; + case 2: + r._value = raw[0] * 85; + g._value = raw[1] * 85; + b._value = raw[2] * 85; + a._value = raw[3] * 85; + break; + case 4: + r._value = raw[0] << 4 >>> 0; + g._value = raw[1] << 4 >>> 0; + b._value = raw[2] << 4 >>> 0; + a._value = raw[3] << 4 >>> 0; + break; + case 8: + r._value = raw[0]; + g._value = raw[1]; + b._value = raw[2]; + a._value = raw[3]; + break; + case 16: + r._value = B.JSInt_methods._shrOtherPositive$1(raw[0], 8); + g._value = B.JSInt_methods._shrOtherPositive$1(raw[1], 8); + b._value = B.JSInt_methods._shrOtherPositive$1(raw[2], 8); + a._value = B.JSInt_methods._shrOtherPositive$1(raw[3], 8); + break; + } + t1 = t1.colorLut; + t1.toString; + r._value = B.JSArray_methods.$index(t1, r._readLocal$0()); + t1 = _this._png_decoder$_info.colorLut; + t1.toString; + g._value = B.JSArray_methods.$index(t1, g._readLocal$0()); + t1 = _this._png_decoder$_info.colorLut; + t1.toString; + b._value = B.JSArray_methods.$index(t1, b._readLocal$0()); + return A.getColor(r._readLocal$0(), g._readLocal$0(), b._readLocal$0(), a._readLocal$0()); + } + throw A.wrapException(A.ImageException$("Invalid color type: " + A.S(t2) + ".")); + } + }; + A.PngDecoder_decodeFrame_closure.prototype = { + call$1(i) { + return i; + }, + $signature: 18 + }; + A.PngEncoder.prototype = { + addFrame$1(image) { + var t1, t2, t3, chunk, filteredImage, compressed, t4, t5, fdat, _this = this; + _this.__PngEncoder_yOffset = _this.__PngEncoder_xOffset = image.xOffset; + _this.delay = image.duration; + _this.__PngEncoder_disposeMethod = image.disposeMethod; + _this.__PngEncoder_blendMethod = image.blendMethod; + if (_this.output == null) { + _this.output = A.OutputBuffer$(true, 8192); + _this.channels = image.channels; + t1 = image.width; + _this.__PngEncoder__width = t1; + _this.__PngEncoder__height = image.height; + t1 = A._lateReadCheck(t1, "_width"); + t2 = A._lateReadCheck(_this.__PngEncoder__height, "_height"); + t3 = _this.output; + t3.toString; + t3.writeBytes$1(A._setArrayType([137, 80, 78, 71, 13, 10, 26, 10], type$.JSArray_int)); + chunk = A.OutputBuffer$(true, 8192); + chunk.writeUint32$1(t1); + chunk.writeUint32$1(t2); + chunk.writeByte$1(8); + chunk.writeByte$1(_this.channels === B.Channels_0 ? 2 : 6); + chunk.writeByte$1(0); + chunk.writeByte$1(0); + chunk.writeByte$1(0); + t1 = _this.output; + t1.toString; + _this._writeChunk$3(t1, "IHDR", A.NativeUint8List_NativeUint8List$view(chunk._buffer.buffer, 0, chunk.length)); + _this._writeICCPChunk$2(_this.output, image.iccProfile); + } + t1 = image.height; + t2 = image.channels === B.Channels_1 ? 4 : 3; + filteredImage = new Uint8Array(image.width * t1 * t2 + t1); + _this._filter$2(0, image, filteredImage); + compressed = B.C_ZLibEncoder.encode$2$level(filteredImage, _this.level); + t1 = image.textData; + if (t1 != null) + for (t1 = A.LinkedHashMapKeyIterator$(t1, t1._modifications, A._instanceType(t1)._precomputed1), t2 = type$.List_int; t1.moveNext$0();) { + t3 = t1.__js_helper$_current; + t4 = image.textData.$index(0, t3); + t4.toString; + A._asString(t4); + chunk = new A.OutputBuffer(true, new Uint8Array(8192)); + chunk.writeBytes$1(B.C_Latin1Encoder.convert$1(t3)); + chunk.writeByte$1(0); + chunk.writeBytes$1(B.C_Latin1Encoder.convert$1(t4)); + t3 = _this.output; + t3.toString; + t4 = chunk._buffer.buffer; + t5 = chunk.length; + t4 = new Uint8Array(t4, 0, t5); + t2._as(t4); + t3.writeUint32$1(t4.length); + t3.writeBytes$1(new A.CodeUnits("tEXt")); + t3.writeBytes$1(t4); + t3.writeUint32$1(A.getCrc32(t4, A.getCrc32(new A.CodeUnits("tEXt"), 0))); + } + if (_this.sequenceNumber <= 1) { + t1 = _this.output; + t1.toString; + _this._writeChunk$3(t1, "IDAT", compressed); + } else { + fdat = A.OutputBuffer$(true, 8192); + fdat.writeUint32$1(_this.sequenceNumber); + fdat.writeBytes$1(compressed); + t1 = _this.output; + t1.toString; + _this._writeChunk$3(t1, "fdAT", A.NativeUint8List_NativeUint8List$view(fdat._buffer.buffer, 0, fdat.length)); + ++_this.sequenceNumber; + } + }, + finish$0(_) { + var bytes, _this = this, + t1 = _this.output; + if (t1 == null) + return null; + _this._writeChunk$3(t1, "IEND", A._setArrayType([], type$.JSArray_int)); + _this.sequenceNumber = 0; + t1 = _this.output; + bytes = A.NativeUint8List_NativeUint8List$view(t1._buffer.buffer, 0, t1.length); + _this.output = null; + return bytes; + }, + encodeImage$1(image) { + var t1; + this.isAnimated = false; + this.addFrame$1(image); + t1 = this.finish$0(0); + t1.toString; + return t1; + }, + _writeICCPChunk$2(out, iccp) { + var chunk, t1; + if (iccp == null) + return; + chunk = A.OutputBuffer$(true, 8192); + chunk.writeBytes$1(new A.CodeUnits(iccp.name)); + chunk.writeByte$1(0); + chunk.writeByte$1(0); + chunk.writeBytes$1(iccp.compressed$0()); + t1 = this.output; + t1.toString; + this._writeChunk$3(t1, "iCCP", A.NativeUint8List_NativeUint8List$view(chunk._buffer.buffer, 0, chunk.length)); + }, + _writeChunk$3(out, type, chunk) { + type$.List_int._as(chunk); + out.writeUint32$1(chunk.length); + out.writeBytes$1(new A.CodeUnits(type)); + out.writeBytes$1(chunk); + out.writeUint32$1(A.getCrc32(chunk, A.getCrc32(new A.CodeUnits(type), 0))); + }, + _filter$2(_, image, out) { + var t1, oi, y; + type$.List_int._as(out); + for (t1 = image.height, oi = 0, y = 0; y < t1; ++y) + switch (4) { + case 4: + oi = this._filterPaeth$4(image, oi, y, out); + break; + } + }, + _paethPredictor$3(a, b, c) { + var p = a + b - c, + pa = p > a ? p - a : a - p, + pb = p > b ? p - b : b - p, + pc = p > c ? p - c : c - p; + if (pa <= pb && pa <= pc) + return a; + else if (pb <= pc) + return b; + return c; + }, + _filterPaeth$4(image, oi, row, out) { + var oi0, t1, t2, t3, t4, t5, t6, t7, t8, t9, x, t10, ar, t11, ag, ab, br, bg, bb, cr, cg, cb, t12, pr, pg, pb, aa, ba, ca, pa, _this = this; + type$.List_int._as(out); + oi0 = oi + 1; + t1 = out.length; + if (!(oi < t1)) + return A.ioore(out, oi); + out[oi] = 4; + for (t2 = image.width, t3 = image.channels === B.Channels_1, t4 = image.data, t5 = row * t2, t6 = t4.length, t7 = (row - 1) * t2, t8 = row === 0, t9 = !t8, oi = oi0, x = 0; x < t2; ++x) { + t10 = x === 0; + if (t10) + ar = 0; + else { + t11 = t5 + (x - 1); + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + ar = t4[t11] & 255; + } + if (t10) + ag = 0; + else { + t11 = t5 + (x - 1); + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + ag = t4[t11] >>> 8 & 255; + } + if (t10) + ab = 0; + else { + t11 = t5 + (x - 1); + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + ab = t4[t11] >>> 16 & 255; + } + if (t8) + br = 0; + else { + t11 = t7 + x; + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + br = t4[t11] & 255; + } + if (t8) + bg = 0; + else { + t11 = t7 + x; + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + bg = t4[t11] >>> 8 & 255; + } + if (t8) + bb = 0; + else { + t11 = t7 + x; + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + bb = t4[t11] >>> 16 & 255; + } + if (!t9 || t10) + cr = 0; + else { + t11 = t7 + (x - 1); + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + cr = t4[t11] & 255; + } + if (!t9 || t10) + cg = 0; + else { + t11 = t7 + (x - 1); + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + cg = t4[t11] >>> 8 & 255; + } + if (!t9 || t10) + cb = 0; + else { + t11 = t7 + (x - 1); + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + cb = t4[t11] >>> 16 & 255; + } + t11 = t5 + x; + if (!(t11 >= 0 && t11 < t6)) + return A.ioore(t4, t11); + t12 = t4[t11]; + pr = _this._paethPredictor$3(ar, br, cr); + pg = _this._paethPredictor$3(ag, bg, cg); + pb = _this._paethPredictor$3(ab, bb, cb); + oi0 = oi + 1; + if (!(oi < t1)) + return A.ioore(out, oi); + out[oi] = (t12 & 255) - pr & 255; + oi = oi0 + 1; + if (!(oi0 < t1)) + return A.ioore(out, oi0); + out[oi0] = (t12 >>> 8 & 255) - pg & 255; + oi0 = oi + 1; + if (!(oi < t1)) + return A.ioore(out, oi); + out[oi] = (t12 >>> 16 & 255) - pb & 255; + if (t3) { + if (t10) + aa = 0; + else { + t12 = t5 + (x - 1); + if (!(t12 >= 0 && t12 < t6)) + return A.ioore(t4, t12); + aa = t4[t12] >>> 24 & 255; + } + if (t8) + ba = 0; + else { + t12 = t7 + x; + if (!(t12 >= 0 && t12 < t6)) + return A.ioore(t4, t12); + ba = t4[t12] >>> 24 & 255; + } + if (!t9 || t10) + ca = 0; + else { + t10 = t7 + (x - 1); + if (!(t10 >= 0 && t10 < t6)) + return A.ioore(t4, t10); + ca = t4[t10] >>> 24 & 255; + } + t10 = t4[t11]; + pa = _this._paethPredictor$3(aa, ba, ca); + oi = oi0 + 1; + if (!(oi0 < t1)) + return A.ioore(out, oi0); + out[oi0] = (t10 >>> 24 & 255) - pa & 255; + } else + oi = oi0; + } + return oi; + } + }; + A.PsdBevelEffect.prototype = { + set$highlightColor(highlightColor) { + type$.nullable_List_int._as(highlightColor); + }, + set$shadowColor(_, shadowColor) { + type$.nullable_List_int._as(shadowColor); + }, + set$realHighlightColor(realHighlightColor) { + type$.nullable_List_int._as(realHighlightColor); + }, + set$realShadowColor(realShadowColor) { + type$.nullable_List_int._as(realShadowColor); + } + }; + A.PsdDropShadowEffect.prototype = { + set$color(_, color) { + type$.nullable_List_int._as(color); + }, + set$nativeColor(nativeColor) { + type$.nullable_List_int._as(nativeColor); + } + }; + A.PsdEffect.prototype = {}; + A.PsdInnerGlowEffect.prototype = { + set$color(_, color) { + type$.nullable_List_int._as(color); + }, + set$nativeColor(nativeColor) { + type$.nullable_List_int._as(nativeColor); + } + }; + A.PsdInnerShadowEffect.prototype = { + set$color(_, color) { + type$.nullable_List_int._as(color); + }, + set$nativeColor(nativeColor) { + type$.nullable_List_int._as(nativeColor); + } + }; + A.PsdOuterGlowEffect.prototype = { + set$color(_, color) { + type$.nullable_List_int._as(color); + }, + set$nativeColor(nativeColor) { + type$.nullable_List_int._as(nativeColor); + } + }; + A.PsdSolidFillEffect.prototype = { + set$color(_, color) { + type$.nullable_List_int._as(color); + }, + set$nativeColor(nativeColor) { + type$.nullable_List_int._as(nativeColor); + } + }; + A.PsdLayerAdditionalData.prototype = {}; + A.PsdLayerSectionDivider.prototype = {}; + A.PsdBlendingRanges.prototype = { + PsdBlendingRanges$1(input) { + var numChannels, i, t1, t2, _this = this; + input.readUint16$0(); + input.readUint16$0(); + input.readUint16$0(); + input.readUint16$0(); + numChannels = B.JSInt_methods._tdivFast$1(input.end - input.offset, 8); + if (numChannels > 0) { + _this.__PsdBlendingRanges_blackSrc = new Uint16Array(numChannels); + _this.__PsdBlendingRanges_whiteSrc = new Uint16Array(numChannels); + _this.__PsdBlendingRanges_blackDst = new Uint16Array(numChannels); + _this.__PsdBlendingRanges_whiteDst = new Uint16Array(numChannels); + for (i = 0; i < numChannels; ++i) { + t1 = A._lateReadCheck(_this.__PsdBlendingRanges_blackSrc, "blackSrc"); + t2 = input.readUint16$0(); + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = t2; + t2 = A._lateReadCheck(_this.__PsdBlendingRanges_whiteSrc, "whiteSrc"); + t1 = input.readUint16$0(); + if (!(i < t2.length)) + return A.ioore(t2, i); + t2[i] = t1; + t1 = A._lateReadCheck(_this.__PsdBlendingRanges_blackDst, "blackDst"); + t2 = input.readUint16$0(); + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = t2; + t2 = A._lateReadCheck(_this.__PsdBlendingRanges_whiteDst, "whiteDst"); + t1 = input.readUint16$0(); + if (!(i < t2.length)) + return A.ioore(t2, i); + t2[i] = t1; + } + } + } + }; + A.PsdChannel.prototype = { + readPlane$7(input, width, height, bitDepth, compression, lineLengths, planeNum) { + if (compression == null) + compression = input.readUint16$0(); + switch (compression) { + case 0: + bitDepth.toString; + this._readPlaneUncompressed$4(input, width, height, bitDepth); + break; + case 1: + if (lineLengths == null) + lineLengths = this._readLineLengths$2(input, height); + bitDepth.toString; + this._readPlaneRleCompressed$6(input, width, height, bitDepth, lineLengths, planeNum); + break; + default: + throw A.wrapException(A.ImageException$("Unsupported compression: " + compression)); + } + }, + readPlane$4(input, width, height, bitDepth) { + return this.readPlane$7(input, width, height, bitDepth, null, null, 0); + }, + _readLineLengths$2(input, height) { + var i, t1, + lineLengths = new Uint16Array(height); + for (i = 0; i < height; ++i) { + t1 = input.readUint16$0(); + if (!(i < height)) + return A.ioore(lineLengths, i); + lineLengths[i] = t1; + } + return lineLengths; + }, + _readPlaneUncompressed$4(input, width, height, bitDepth) { + var t1, + len = width * height; + if (bitDepth === 16) + len *= 2; + if (len > input.end - input.offset) { + t1 = new Uint8Array(len); + this.__PsdChannel_data = t1; + B.NativeUint8List_methods.fillRange$3(A._lateReadCheck(t1, "data"), 0, len, 255); + return; + } + this.__PsdChannel_data = input.readBytes$1(len).toUint8List$0(); + }, + _readPlaneRleCompressed$6(input, width, height, bitDepth, lineLengths, planeNum) { + var t1, lineIndex, t2, pos, i, lineIndex0, bytes, _this = this, _s4_ = "data", + len = width * height; + if (bitDepth === 16) + len *= 2; + t1 = new Uint8Array(len); + _this.__PsdChannel_data = t1; + lineIndex = planeNum * height; + t2 = lineLengths.length; + if (lineIndex >= t2) { + B.NativeUint8List_methods.fillRange$3(A._lateReadCheck(t1, _s4_), 0, A._lateReadCheck(_this.__PsdChannel_data, _s4_).length, 255); + return; + } + for (pos = 0, i = 0; i < height; ++i, lineIndex = lineIndex0) { + lineIndex0 = lineIndex + 1; + if (!(lineIndex >= 0 && lineIndex < t2)) + return A.ioore(lineLengths, lineIndex); + bytes = input.subset$1(lineLengths[lineIndex]); + input.offset = input.offset + (bytes.end - bytes.offset); + _this._decodeRLE$3(bytes, A._lateReadCheck(_this.__PsdChannel_data, _s4_), pos); + pos += width; + } + }, + _decodeRLE$3(src, dst, dstIndex) { + var t1, t2, t3, t4, t5, t6, n, i, dstIndex0; + for (t1 = src.end, t2 = dst.length; t3 = src.offset, t3 < t1;) { + t4 = src.buffer; + t5 = src.offset = t3 + 1; + t6 = t4.length; + if (!(t3 >= 0 && t3 < t6)) + return A.ioore(t4, t3); + t3 = t4[t3]; + $.$get$__uint8()[0] = t3; + t3 = $.$get$__uint8ToInt8(); + if (0 >= t3.length) + return A.ioore(t3, 0); + n = t3[0]; + if (n < 0) { + n = 1 - n; + src.offset = t5 + 1; + if (!(t5 >= 0 && t5 < t6)) + return A.ioore(t4, t5); + t3 = t4[t5]; + for (i = 0; i < n; ++i, dstIndex = dstIndex0) { + dstIndex0 = dstIndex + 1; + if (!(dstIndex >= 0 && dstIndex < t2)) + return A.ioore(dst, dstIndex); + dst[dstIndex] = t3; + } + } else { + ++n; + for (t3 = t5, i = 0; i < n; ++i, t3 = t5, dstIndex = dstIndex0) { + dstIndex0 = dstIndex + 1; + t5 = t3 + 1; + src.offset = t5; + if (!(t3 >= 0 && t3 < t4.length)) + return A.ioore(t4, t3); + t3 = t4[t3]; + if (!(dstIndex >= 0 && dstIndex < t2)) + return A.ioore(dst, dstIndex); + dst[dstIndex] = t3; + } + } + } + } + }; + A.PsdImage.prototype = { + PsdImage$1(bytes) { + var len, t1, t2, _this = this, _s6_ = "_input"; + _this.__PsdImage__input = A.InputBuffer$(bytes, true, null, 0); + _this._psd_image$_readHeader$0(); + if (_this.signature !== 943870035) + return; + len = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); + A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(len); + len = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); + _this.__PsdImage__imageResourceData = A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(len); + len = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); + _this.__PsdImage__layerAndMaskData = A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(len); + t1 = A._lateReadCheck(_this.__PsdImage__input, _s6_); + t1.toString; + t2 = A._lateReadCheck(_this.__PsdImage__input, _s6_); + _this.__PsdImage__imageData = t1.readBytes$1(t2.end - t2.offset); + }, + decode$0(_) { + var _this = this; + if (_this.signature !== 943870035 || A._lateReadCheck(_this.__PsdImage__input, "_input") == null) + return false; + _this._readImageResources$0(); + _this._readLayerAndMaskData$0(); + _this._readMergeImageData$0(); + _this.__PsdImage__imageData = _this.__PsdImage__layerAndMaskData = _this.__PsdImage__imageResourceData = _this.__PsdImage__input = null; + return true; + }, + decodeImage$0() { + if (!this.decode$0(0)) + return null; + return this.renderImage$0(); + }, + renderImage$0() { + var pixels, li, layer, opacity, blendMode, srcP, t2, t3, sy, y, si, t4, t5, di, sx, x, si0, br, bg, bb, ba, ar, ag, ab, aa, da, a, b, g, r, di0, di1, _this = this, + t1 = _this.mergedImage; + if (t1 != null) + return t1; + t1 = A.Image$(_this.width, _this.height, B.Channels_1, null, null); + _this.mergedImage = t1; + t1 = t1.data; + B.NativeUint32List_methods.fillRange$3(t1, 0, t1.length, 0); + pixels = _this.mergedImage.getBytes$0(); + for (t1 = pixels.length, li = 0; li < J.get$length$asx(A._lateReadCheck(_this.__PsdImage_layers, "layers")); ++li) { + layer = J.$index$asx(A._lateReadCheck(_this.__PsdImage_layers, "layers"), li); + if ((A._lateReadCheck(layer.__PsdLayer_flags, "flags") & 2) !== 0) + continue; + opacity = A._lateReadCheck(layer.__PsdLayer_opacity, "opacity") / 255; + blendMode = layer.blendMode; + srcP = A._lateReadCheck(layer.__PsdLayer_layerImage, "layerImage").getBytes$0(); + t2 = layer.top; + t2.toString; + t3 = srcP.length; + sy = t2; + y = 0; + si = 0; + for (; y < A._lateReadCheck(layer.__PsdLayer_height, "height"); ++y, ++sy) { + t2 = layer.top; + t2.toString; + t4 = _this.width; + if (typeof t4 !== "number") + return A.iae(t4); + t5 = layer.left; + t5.toString; + di = (t2 + y) * t4 * 4 + t5 * 4; + for (t2 = sy >= 0, sx = t5, x = 0; x < A._lateReadCheck(layer.__PsdLayer_width, "width"); ++x, ++sx) { + si0 = si + 1; + if (!(si >= 0 && si < t3)) + return A.ioore(srcP, si); + br = srcP[si]; + si = si0 + 1; + if (!(si0 >= 0 && si0 < t3)) + return A.ioore(srcP, si0); + bg = srcP[si0]; + si0 = si + 1; + if (!(si >= 0 && si < t3)) + return A.ioore(srcP, si); + bb = srcP[si]; + si = si0 + 1; + if (!(si0 >= 0 && si0 < t3)) + return A.ioore(srcP, si0); + ba = srcP[si0]; + if (sx >= 0) { + t4 = _this.width; + if (typeof t4 !== "number") + return A.iae(t4); + if (sx < t4) + if (t2) { + t4 = _this.height; + if (typeof t4 !== "number") + return A.iae(t4); + t4 = sy < t4; + } else + t4 = false; + else + t4 = false; + } else + t4 = false; + if (t4) { + if (!(di >= 0 && di < t1)) + return A.ioore(pixels, di); + ar = pixels[di]; + t4 = di + 1; + if (!(t4 < t1)) + return A.ioore(pixels, t4); + ag = pixels[t4]; + t5 = di + 2; + if (!(t5 < t1)) + return A.ioore(pixels, t5); + ab = pixels[t5]; + t5 = di + 3; + if (!(t5 < t1)) + return A.ioore(pixels, t5); + aa = pixels[t5]; + da = ba / 255 * opacity; + switch (blendMode) { + case 1885434739: + a = aa; + b = ab; + g = ag; + r = ar; + break; + case 1852797549: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1684632435: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1684107883: + r = Math.min(ar, br); + g = Math.min(ag, bg); + b = Math.min(ab, bb); + a = ba; + break; + case 1836411936: + r = ar * br >>> 8; + g = ag * bg >>> 8; + b = ab * bb >>> 8; + a = ba; + break; + case 1768188278: + r = A.PsdImage__blendColorBurn(ar, br); + g = A.PsdImage__blendColorBurn(ag, bg); + b = A.PsdImage__blendColorBurn(ab, bb); + a = ba; + break; + case 1818391150: + r = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ar + br - 255, 0, 255)); + g = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ag + bg - 255, 0, 255)); + b = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ab + bb - 255, 0, 255)); + a = ba; + break; + case 1684751212: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1818850405: + r = Math.max(ar, br); + g = Math.max(ag, bg); + b = Math.max(ab, bb); + a = ba; + break; + case 1935897198: + r = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255 - (255 - br) * (255 - ar), 0, 255)); + g = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255 - (255 - bg) * (255 - ag), 0, 255)); + b = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255 - (255 - bb) * (255 - ab), 0, 255)); + a = ba; + break; + case 1684633120: + r = A.PsdImage__blendColorDodge(ar, br); + g = A.PsdImage__blendColorDodge(ag, bg); + b = A.PsdImage__blendColorDodge(ab, bb); + a = ba; + break; + case 1818518631: + r = br + ar > 255 ? 255 : ar + br; + g = bg + ag > 255 ? 255 : ag + bg; + b = bb + ab > 255 ? 255 : ab + bb; + a = ba; + break; + case 1818706796: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1870030194: + r = A.PsdImage__blendOverlay(ar, br, aa, ba); + g = A.PsdImage__blendOverlay(ag, bg, aa, ba); + b = A.PsdImage__blendOverlay(ab, bb, aa, ba); + a = ba; + break; + case 1934387572: + r = A.PsdImage__blendSoftLight(ar, br); + g = A.PsdImage__blendSoftLight(ag, bg); + b = A.PsdImage__blendSoftLight(ab, bb); + a = ba; + break; + case 1749838196: + r = A.PsdImage__blendHardLight(ar, br); + g = A.PsdImage__blendHardLight(ag, bg); + b = A.PsdImage__blendHardLight(ab, bb); + a = ba; + break; + case 1984719220: + r = A.PsdImage__blendVividLight(ar, br); + g = A.PsdImage__blendVividLight(ag, bg); + b = A.PsdImage__blendVividLight(ab, bb); + a = ba; + break; + case 1816947060: + r = A.PsdImage__blendLinearLight(ar, br); + g = A.PsdImage__blendLinearLight(ag, bg); + b = A.PsdImage__blendLinearLight(ab, bb); + a = ba; + break; + case 1884055924: + r = br < 128 ? Math.min(ar, 2 * br) : Math.max(ar, 2 * (br - 128)); + g = bg < 128 ? Math.min(ag, 2 * bg) : Math.max(ag, 2 * (bg - 128)); + b = bb < 128 ? Math.min(ab, 2 * bb) : Math.max(ab, 2 * (bb - 128)); + a = ba; + break; + case 1749903736: + r = br < 255 - ar ? 0 : 255; + g = bg < 255 - ag ? 0 : 255; + b = bb < 255 - ab ? 0 : 255; + a = ba; + break; + case 1684629094: + r = Math.abs(br - ar); + g = Math.abs(bg - ag); + b = Math.abs(bb - ab); + a = ba; + break; + case 1936553316: + r = B.JSNumber_methods.round$0(br + ar - 2 * br * ar / 255); + g = B.JSNumber_methods.round$0(bg + ag - 2 * bg * ag / 255); + b = B.JSNumber_methods.round$0(bb + ab - 2 * bb * ab / 255); + a = ba; + break; + case 1718842722: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1717856630: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1752524064: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1935766560: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1668246642: + a = ba; + b = bb; + g = bg; + r = br; + break; + case 1819634976: + a = ba; + b = bb; + g = bg; + r = br; + break; + default: + a = ba; + b = bb; + g = bg; + r = br; + } + t5 = 1 - da; + r = B.JSNumber_methods.toInt$0(ar * t5 + r * da); + g = B.JSNumber_methods.toInt$0(ag * t5 + g * da); + b = B.JSNumber_methods.toInt$0(ab * t5 + b * da); + a = B.JSNumber_methods.toInt$0(aa * t5 + a * da); + pixels[di] = r; + di0 = t4 + 1; + pixels[t4] = g; + di1 = di0 + 1; + if (!(di0 < t1)) + return A.ioore(pixels, di0); + pixels[di0] = b; + if (!(di1 < t1)) + return A.ioore(pixels, di1); + pixels[di1] = a; + } + di += 4; + } + } + } + t1 = _this.mergedImage; + t1.toString; + return t1; + }, + _psd_image$_readHeader$0() { + var t1, padding, t2, t3, i, t4, _this = this, _s6_ = "_input"; + _this.signature = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); + t1 = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); + _this.version = t1; + if (t1 !== 1) { + _this.signature = 0; + return; + } + padding = A._lateReadCheck(_this.__PsdImage__input, _s6_).readBytes$1(6); + for (t1 = padding.buffer, t2 = padding.offset, t3 = t1.length, i = 0; i < 6; ++i) { + t4 = t2 + i; + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + if (t1[t4] !== 0) { + _this.signature = 0; + return; + } + } + _this.__PsdImage_channels = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); + _this.height = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); + _this.width = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint32$0(); + _this.depth = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); + _this.colorMode = A._lateReadCheck(_this.__PsdImage__input, _s6_).readUint16$0(); + }, + _readImageResources$0() { + var t2, blockSignature, blockId, t3, len, bytes, _this = this, + _s18_ = "_imageResourceData", + t1 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_); + t1.offset = t1.start; + for (t1 = _this.imageResources; t2 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_), t2.offset < t2.end;) { + blockSignature = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readUint32$0(); + blockId = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readUint16$0(); + t2 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_); + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readString$1(t2); + if ((t2 & 1) === 0) + ++A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).offset; + len = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).readUint32$0(); + t2 = A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_); + bytes = t2.subset$1(len); + t2.offset = t2.offset + (bytes.end - bytes.offset); + if ((len & 1) === 1) + ++A._lateReadCheck(_this.__PsdImage__imageResourceData, _s18_).offset; + if (blockSignature === 943868237) + t1.$indexSet(0, blockId, new A.PsdImageResource()); + } + }, + _readLayerAndMaskData$0() { + var len, layerData, t2, count, t3, t4, i, layer, maskData, _this = this, + _s17_ = "_layerAndMaskData", + _s6_ = "layers", + t1 = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_); + t1.offset = t1.start; + len = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readUint32$0(); + if ((len & 1) !== 0) + ++len; + layerData = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readBytes$1(len); + t1 = type$.JSArray_PsdLayer; + _this.set$__PsdImage_layers(type$.List_PsdLayer._as(A._setArrayType([], t1))); + if (len > 0) { + t2 = layerData.readUint16$0(); + $.$get$__uint16()[0] = t2; + t2 = $.$get$__uint16ToInt16(); + if (0 >= t2.length) + return A.ioore(t2, 0); + count = t2[0]; + if (count < 0) + count = -count; + for (t2 = type$.String, t3 = type$.PsdLayerData, t4 = type$.JSArray_PsdEffect, i = 0; i < count; ++i) { + layer = new A.PsdLayer(A.LinkedHashMap_LinkedHashMap$_empty(t2, t3), A._setArrayType([], t1), A._setArrayType([], t4)); + layer.PsdLayer$1(layerData); + J.add$1$ax(A._lateReadCheck(_this.__PsdImage_layers, _s6_), layer); + } + } + for (i = 0; i < J.get$length$asx(A._lateReadCheck(_this.__PsdImage_layers, _s6_)); ++i) + J.$index$asx(A._lateReadCheck(_this.__PsdImage_layers, _s6_), i).readImageData$2(layerData, _this); + len = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readUint32$0(); + maskData = A._lateReadCheck(_this.__PsdImage__layerAndMaskData, _s17_).readBytes$1(len); + if (len > 0) { + maskData.readUint16$0(); + maskData.readUint16$0(); + maskData.readUint16$0(); + maskData.readUint16$0(); + maskData.readUint16$0(); + maskData.readUint16$0(); + maskData.readByte$0(); + } + }, + _readMergeImageData$0() { + var compression, t2, numLines, lineLengths, i, t3, _this = this, + _s10_ = "_imageData", + _s8_ = "channels", + _s18_ = "mergeImageChannels", + t1 = A._lateReadCheck(_this.__PsdImage__imageData, _s10_); + t1.offset = t1.start; + compression = A._lateReadCheck(_this.__PsdImage__imageData, _s10_).readUint16$0(); + if (compression === 1) { + t1 = _this.height; + t2 = A._lateReadCheck(_this.__PsdImage_channels, _s8_); + if (typeof t1 !== "number") + return t1.$mul(); + numLines = t1 * t2; + lineLengths = new Uint16Array(numLines); + for (i = 0; i < numLines; ++i) { + t1 = A._lateReadCheck(_this.__PsdImage__imageData, _s10_).readUint16$0(); + if (!(i < numLines)) + return A.ioore(lineLengths, i); + lineLengths[i] = t1; + } + } else + lineLengths = null; + _this.set$__PsdImage_mergeImageChannels(type$.List_PsdChannel._as(A._setArrayType([], type$.JSArray_PsdChannel))); + for (i = 0; i < A._lateReadCheck(_this.__PsdImage_channels, _s8_); ++i) { + t1 = A._lateReadCheck(_this.__PsdImage_mergeImageChannels, _s18_); + t2 = A._lateReadCheck(_this.__PsdImage__imageData, _s10_); + t2.toString; + t3 = i === 3 ? -1 : i; + t3 = new A.PsdChannel(t3); + t3.readPlane$7(t2, _this.width, _this.height, _this.depth, compression, lineLengths, i); + J.add$1$ax(t1, t3); + } + _this.mergedImage = A.PsdImage_createImageFromChannels(_this.colorMode, _this.depth, _this.width, _this.height, A._lateReadCheck(_this.__PsdImage_mergeImageChannels, _s18_)); + }, + set$__PsdImage_layers(__PsdImage_layers) { + this.__PsdImage_layers = type$.List_PsdLayer._as(__PsdImage_layers); + }, + set$__PsdImage_mergeImageChannels(__PsdImage_mergeImageChannels) { + this.__PsdImage_mergeImageChannels = type$.List_PsdChannel._as(__PsdImage_mergeImageChannels); + } + }; + A.PsdImageResource.prototype = {}; + A.PsdLayer.prototype = { + PsdLayer$1(input) { + var numChannels, i, id, sig, len, extra, maskData, padding, t3, t4, t5, tag, bytes, t6, data, numFx, j, fxTag, size, fx, t7, t8, t9, _this = this, + t1 = input.readUint32$0(), + t2 = $.$get$__uint32(); + t2[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + _this.top = t1[0]; + t2[0] = input.readUint32$0(); + _this.left = t1[0]; + t2[0] = input.readUint32$0(); + _this.__PsdLayer_bottom = t1[0]; + t2[0] = input.readUint32$0(); + t1 = t1[0]; + _this.__PsdLayer_right = t1; + t1 = A._lateReadCheck(t1, "right"); + t2 = _this.left; + t2.toString; + _this.__PsdLayer_width = t1 - t2; + t2 = A._lateReadCheck(_this.__PsdLayer_bottom, "bottom"); + t1 = _this.top; + t1.toString; + _this.__PsdLayer_height = t2 - t1; + _this.set$__PsdLayer_channels(type$.List_PsdChannel._as(A._setArrayType([], type$.JSArray_PsdChannel))); + numChannels = input.readUint16$0(); + for (i = 0; i < numChannels; ++i) { + t1 = input.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + id = t1[0]; + input.readUint32$0(); + J.add$1$ax(A._lateReadCheck(_this.__PsdLayer_channels, "channels"), new A.PsdChannel(id)); + } + sig = input.readUint32$0(); + if (sig !== 943868237) + throw A.wrapException(A.ImageException$("Invalid PSD layer signature: " + B.JSInt_methods.toRadixString$1(sig, 16))); + _this.blendMode = input.readUint32$0(); + _this.__PsdLayer_opacity = input.readByte$0(); + input.readByte$0(); + _this.__PsdLayer_flags = input.readByte$0(); + if (input.readByte$0() !== 0) + throw A.wrapException(A.ImageException$("Invalid PSD layer data")); + len = input.readUint32$0(); + extra = input.readBytes$1(len); + if (len > 0) { + len = extra.readUint32$0(); + if (len > 0) { + maskData = extra.readBytes$1(len); + t1 = maskData.offset; + maskData.readUint32$0(); + maskData.readUint32$0(); + maskData.readUint32$0(); + maskData.readUint32$0(); + maskData.readByte$0(); + maskData.readByte$0(); + if (maskData.end - t1 === 20) + maskData.offset += 2; + else { + maskData.readByte$0(); + maskData.readByte$0(); + maskData.readUint32$0(); + maskData.readUint32$0(); + maskData.readUint32$0(); + maskData.readUint32$0(); + } + } + len = extra.readUint32$0(); + if (len > 0) + new A.PsdBlendingRanges().PsdBlendingRanges$1(extra.readBytes$1(len)); + len = extra.readByte$0(); + extra.readString$1(len); + padding = 4 - B.JSInt_methods.$mod(len, 4) - 1; + if (padding > 0) + extra.offset += padding; + for (t1 = extra.end, t2 = _this.additionalData, t3 = _this.effects, t4 = type$.JSArray_int, t5 = type$.PsdLayerAdditionalData; extra.offset < t1;) { + sig = extra.readUint32$0(); + if (sig !== 943868237) + throw A.wrapException(A.ImageException$("PSD invalid signature for layer additional data: " + B.JSInt_methods.toRadixString$1(sig, 16))); + tag = extra.readString$1(4); + len = extra.readUint32$0(); + bytes = extra.subset$1(len); + t6 = extra.offset + (bytes.end - bytes.offset); + extra.offset = t6; + if ((len & 1) === 1) + extra.offset = t6 + 1; + t2.$indexSet(0, tag, A.PsdLayerData_PsdLayerData(tag, bytes)); + if (tag === "lrFX") { + data = A.InputBuffer$from(t5._as(t2.$index(0, "lrFX")).data, null, 0); + data.readUint16$0(); + numFx = data.readUint16$0(); + for (j = 0; j < numFx; ++j) { + data.readString$1(4); + fxTag = data.readString$1(4); + size = data.readUint32$0(); + if (fxTag === "dsdw") { + fx = new A.PsdDropShadowEffect(); + B.JSArray_methods.add$1(t3, fx); + fx.version = data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + data.readString$1(8); + t6 = data.buffer; + t7 = data.offset; + t8 = data.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t7 = data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + data.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + } else if (fxTag === "isdw") { + fx = new A.PsdInnerShadowEffect(); + B.JSArray_methods.add$1(t3, fx); + fx.version = data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + data.readString$1(8); + t6 = data.buffer; + t7 = data.offset; + t8 = data.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t7 = data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + data.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + } else if (fxTag === "oglw") { + fx = new A.PsdOuterGlowEffect(); + B.JSArray_methods.add$1(t3, fx); + fx.version = data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + data.readString$1(8); + t6 = data.buffer; + t7 = data.offset; + t8 = data.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + if (fx.version === 2) + fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + } else if (fxTag === "iglw") { + fx = new A.PsdInnerGlowEffect(); + B.JSArray_methods.add$1(t3, fx); + fx.version = data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + data.readString$1(8); + t6 = data.buffer; + t7 = data.offset; + t8 = data.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t7 = data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + if (fx.version === 2) { + data.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + } + } else if (fxTag === "bevl") { + fx = new A.PsdBevelEffect(); + B.JSArray_methods.add$1(t3, fx); + fx.version = data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + data.readUint32$0(); + data.readString$1(8); + data.readString$1(8); + fx.set$highlightColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + fx.set$shadowColor(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + t6 = data.buffer; + t7 = data.offset; + t8 = data.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t7 = data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + t8 = data.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + t7 = data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + t8 = data.offset = t7 + 1; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + if (fx.version === 2) { + fx.set$realHighlightColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + fx.set$realShadowColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + } + } else if (fxTag === "sofi") { + fx = new A.PsdSolidFillEffect(); + B.JSArray_methods.add$1(t3, fx); + fx.version = data.readUint32$0(); + data.readString$1(4); + fx.set$color(0, A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + t6 = data.buffer; + t7 = data.offset; + t8 = data.offset = t7 + 1; + t9 = t6.length; + if (!(t7 >= 0 && t7 < t9)) + return A.ioore(t6, t7); + data.offset = t8 + 1; + if (!(t8 >= 0 && t8 < t9)) + return A.ioore(t6, t8); + fx.set$nativeColor(A._setArrayType([data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0(), data.readUint16$0()], t4)); + } else + data.offset += size; + } + } + } + } + }, + readImageData$2(input, psd) { + var i, _this = this, + _s8_ = "channels"; + for (i = 0; i < J.get$length$asx(A._lateReadCheck(_this.__PsdLayer_channels, _s8_)); ++i) + J.$index$asx(A._lateReadCheck(_this.__PsdLayer_channels, _s8_), i).readPlane$4(input, A._lateReadCheck(_this.__PsdLayer_width, "width"), A._lateReadCheck(_this.__PsdLayer_height, "height"), psd.depth); + _this.__PsdLayer_layerImage = A.PsdImage_createImageFromChannels(psd.colorMode, psd.depth, A._lateReadCheck(_this.__PsdLayer_width, "width"), A._lateReadCheck(_this.__PsdLayer_height, "height"), A._lateReadCheck(_this.__PsdLayer_channels, _s8_)); + }, + set$__PsdLayer_channels(__PsdLayer_channels) { + this.__PsdLayer_channels = type$.List_PsdChannel._as(__PsdLayer_channels); + } + }; + A.PsdLayerData.prototype = {}; + A.PsdDecoder.prototype = { + decodeImage$1(bytes) { + this.info = A.PsdImage$(type$.List_int._as(bytes)); + return this.decodeFrame$1(0); + }, + decodeFrame$1(frame) { + var t1 = this.info; + if (t1 == null) + return null; + return t1.decodeImage$0(); + } + }; + A.TgaInfo.prototype = {}; + A.TgaDecoder.prototype = { + isValidFile$1(data) { + var header = A.InputBuffer$(type$.List_int._as(data), true, null, 0).readBytes$1(18), + t1 = header.buffer, + t2 = header.offset, + t3 = t2 + 2, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + if (t1[t3] !== 2) + return false; + t2 += 16; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (t2 !== 24 && t2 !== 32) + return false; + return true; + }, + startDecode$1(bytes) { + var t1, header, t2, t3, t4, t5, t6, _this = this; + type$.List_int._as(bytes); + _this.info = new A.TgaInfo(); + t1 = A.InputBuffer$(bytes, true, null, 0); + _this.__TgaDecoder_input = t1; + header = A._lateReadCheck(t1, "input").readBytes$1(18); + t1 = header.buffer; + t2 = header.offset; + t3 = t2 + 2; + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + if (t1[t3] !== 2) + return null; + t3 = t2 + 16; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (t3 !== 24 && t3 !== 32) + return null; + t3 = _this.info; + t3.toString; + t5 = t2 + 12; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + 13; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t3.width = t5 & 255 | (t1[t6] & 255) << 8; + t6 = t2 + 14; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t2 += 15; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t3.height = t6 & 255 | (t1[t2] & 255) << 8; + t3.imageOffset = A._lateReadCheck(_this.__TgaDecoder_input, "input").offset; + t3 = _this.info; + t3.toString; + t2 = header.buffer; + t1 = header.offset + 16; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t3.bpp = t2[t1]; + return t3; + }, + decodeFrame$1(frame) { + var t1, t2, t3, image, y, t4, x, t5, t6, t7, t8, t9, a, _this = this, _s5_ = "input"; + if (_this.info == null) + return null; + t1 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); + t2 = _this.info; + t3 = t2.imageOffset; + t3.toString; + t1.offset = t3; + image = A.Image$(t2.width, t2.height, B.Channels_0, null, null); + for (y = image.height - 1, t1 = image.width, t2 = image.data, t3 = t2.length; y >= 0; --y) + for (t4 = y * t1, x = 0; x < t1; ++x) { + t5 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); + t6 = t5.buffer; + t5 = t5.offset++; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t5 = t6[t5]; + t6 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); + t7 = t6.buffer; + t6 = t6.offset++; + if (!(t6 >= 0 && t6 < t7.length)) + return A.ioore(t7, t6); + t6 = t7[t6]; + t7 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); + t8 = t7.buffer; + t7 = t7.offset++; + if (!(t7 >= 0 && t7 < t8.length)) + return A.ioore(t8, t7); + t7 = t8[t7]; + if (_this.info.bpp === 32) { + t8 = A._lateReadCheck(_this.__TgaDecoder_input, _s5_); + t9 = t8.buffer; + t8 = t8.offset++; + if (!(t8 >= 0 && t8 < t9.length)) + return A.ioore(t9, t8); + a = t9[t8]; + } else + a = 255; + t8 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)); + t5 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t5, 0, 255)); + t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t6, 0, 255)); + t7 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t7, 0, 255)); + t9 = t4 + x; + if (!(t9 >= 0 && t9 < t3)) + return A.ioore(t2, t9); + t2[t9] = (t8 << 24 | t5 << 16 | t6 << 8 | t7) >>> 0; + } + return image; + }, + decodeImage$1(bytes) { + if (this.startDecode$1(type$.List_int._as(bytes)) == null) + return null; + return this.decodeFrame$1(0); + } + }; + A.TgaEncoder.prototype = { + encodeImage$1(image) { + var t1, t2, t3, y, t4, t5, x, t6, c, + out = A.OutputBuffer$(true, 8192), + header = A.List_List$filled(18, 0, false, type$.int); + B.JSArray_methods.$indexSet(header, 2, 2); + t1 = image.width; + B.JSArray_methods.$indexSet(header, 12, t1 & 255); + B.JSArray_methods.$indexSet(header, 13, B.JSInt_methods._shrOtherPositive$1(t1, 8) & 255); + t2 = image.height; + B.JSArray_methods.$indexSet(header, 14, t2 & 255); + B.JSArray_methods.$indexSet(header, 15, B.JSInt_methods._shrOtherPositive$1(t2, 8) & 255); + t3 = image.channels; + B.JSArray_methods.$indexSet(header, 16, t3 === B.Channels_0 ? 24 : 32); + out.writeBytes$1(header); + for (y = t2 - 1, t2 = t3 === B.Channels_1, t3 = image.data, t4 = t3.length; y >= 0; --y) + for (t5 = y * t1, x = 0; x < t1; ++x) { + t6 = t5 + x; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t3, t6); + c = t3[t6]; + out.writeByte$1(c >>> 16 & 255); + out.writeByte$1(c >>> 8 & 255); + out.writeByte$1(c & 255); + if (t2) + out.writeByte$1(c >>> 24 & 255); + } + return A.NativeUint8List_NativeUint8List$view(out._buffer.buffer, 0, out.length); + } + }; + A.TiffBitReader.prototype = { + readBits$1(numBits) { + var t1, value, t2, t3, t4, _this = this; + if (numBits === 0) + return 0; + if (_this._bitPos === 0) { + _this._bitPos = 8; + _this._tiff_bit_reader$_bitBuffer = _this.input.readByte$0(); + } + for (t1 = _this.input, value = 0; t2 = _this._bitPos, numBits > t2;) { + t3 = B.JSInt_methods.$shl(value, t2); + t4 = _this._tiff_bit_reader$_bitBuffer; + if (!(t2 >= 0 && t2 < 9)) + return A.ioore(B.List_knt, t2); + value = t3 + (t4 & B.List_knt[t2]); + numBits -= t2; + _this._bitPos = 8; + t2 = t1.buffer; + t4 = t1.offset++; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + _this._tiff_bit_reader$_bitBuffer = t2[t4]; + } + if (numBits > 0) { + if (t2 === 0) { + _this._bitPos = 8; + _this._tiff_bit_reader$_bitBuffer = t1.readByte$0(); + } + t1 = B.JSInt_methods.$shl(value, numBits); + t2 = _this._tiff_bit_reader$_bitBuffer; + t3 = _this._bitPos - numBits; + t2 = B.JSInt_methods.$shr(t2, t3); + if (!(numBits < 9)) + return A.ioore(B.List_knt, numBits); + value = t1 + (t2 & B.List_knt[numBits]); + _this._bitPos = t3; + } + return value; + } + }; + A.TiffEntry.prototype = { + toString$0(_) { + var _this = this, + t1 = _this.tag; + if (B.Map_6zffn.containsKey$1(0, t1)) + return A.S(B.Map_6zffn.$index(0, t1)) + ": " + _this.type + " " + _this.numValues; + return "<" + t1 + ">: " + _this.type + " " + _this.numValues; + }, + readValue$0(_) { + var t1 = this.valueOffset; + t1.toString; + this.p.offset = t1; + return this._readValue$0(); + }, + readValues$0() { + var values, i, _this = this, + t1 = _this.valueOffset; + t1.toString; + _this.p.offset = t1; + values = A._setArrayType([], type$.JSArray_int); + for (t1 = _this.numValues, i = 0; i < t1; ++i) + B.JSArray_methods.add$1(values, _this._readValue$0()); + return values; + }, + _readValue$0() { + var t1, num, den, _this = this; + switch (_this.type) { + case 1: + case 2: + return _this.p.readByte$0(); + case 3: + return _this.p.readUint16$0(); + case 4: + return _this.p.readUint32$0(); + case 5: + t1 = _this.p; + num = t1.readUint32$0(); + den = t1.readUint32$0(); + if (den === 0) + return 0; + return B.JSInt_methods.$tdiv(num, den); + case 6: + throw A.wrapException(A.ImageException$("Unhandled value type: SBYTE")); + case 7: + return _this.p.readByte$0(); + case 8: + throw A.wrapException(A.ImageException$("Unhandled value type: SSHORT")); + case 9: + throw A.wrapException(A.ImageException$("Unhandled value type: SLONG")); + case 10: + throw A.wrapException(A.ImageException$("Unhandled value type: SRATIONAL")); + case 11: + throw A.wrapException(A.ImageException$("Unhandled value type: FLOAT")); + case 12: + throw A.wrapException(A.ImageException$("Unhandled value type: DOUBLE")); + } + return 0; + } + }; + A.TiffFaxDecoder.prototype = { + decode1D$4(out, compData, startX, height) { + var scanlineStride, lineOffset, i, _this = this; + _this.__TiffFaxDecoder_data = compData; + _this.bytePointer = _this.bitPointer = 0; + scanlineStride = B.JSInt_methods._tdivFast$1(_this.width + 7, 8); + for (lineOffset = 0, i = 0; i < height; ++i) { + _this._decodeNextScanline$3(out, lineOffset, startX); + lineOffset += scanlineStride; + } + }, + _decodeNextScanline$3(buffer, lineOffset, bitOffset) { + var t1, isWhite, current, entry, bits, t2, code, _this = this; + _this.changingElemSize = 0; + for (t1 = _this.width, isWhite = true; bitOffset < t1;) { + for (; isWhite;) { + current = _this._nextNBits$1(10); + if (!(current < 1024)) + return A.ioore(B.List_VSP, current); + entry = B.List_VSP[current]; + bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; + if (bits === 12) { + current = (current << 2 & 12 | _this._nextLesserThan8Bits$1(2)) >>> 0; + if (!(current < 16)) + return A.ioore(B.List_MEg, current); + entry = B.List_MEg[current]; + t2 = B.JSInt_methods._shrOtherPositive$1(entry, 1); + bitOffset += B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; + _this._updatePointer$1(4 - (t2 & 7)); + } else if (bits === 0) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder0")); + else if (bits === 15) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder1")); + else { + bitOffset += B.JSInt_methods._shrOtherPositive$1(entry, 5) & 2047; + _this._updatePointer$1(10 - bits); + if ((entry & 1) === 0) { + B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); + isWhite = false; + } + } + } + if (bitOffset === t1) { + if (_this.compression === 2) + if (_this.bitPointer !== 0) { + t1 = _this.bytePointer; + t1.toString; + _this.bytePointer = t1 + 1; + _this.bitPointer = 0; + } + break; + } + for (; !isWhite;) { + current = _this._nextLesserThan8Bits$1(4); + if (!(current < 16)) + return A.ioore(B.List_89P, current); + entry = B.List_89P[current]; + code = entry >>> 5 & 2047; + if (code === 100) { + current = _this._nextNBits$1(9); + if (!(current < 512)) + return A.ioore(B.List_nLG, current); + entry = B.List_nLG[current]; + bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; + code = B.JSInt_methods._shrOtherPositive$1(entry, 5) & 2047; + if (bits === 12) { + _this._updatePointer$1(5); + current = _this._nextLesserThan8Bits$1(4); + if (!(current < 16)) + return A.ioore(B.List_MEg, current); + entry = B.List_MEg[current]; + t2 = B.JSInt_methods._shrOtherPositive$1(entry, 1); + code = B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; + _this._setToBlack$4(buffer, lineOffset, bitOffset, code); + bitOffset += code; + _this._updatePointer$1(4 - (t2 & 7)); + } else if (bits === 15) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder2")); + else { + _this._setToBlack$4(buffer, lineOffset, bitOffset, code); + bitOffset += code; + _this._updatePointer$1(9 - bits); + if ((entry & 1) === 0) { + B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); + isWhite = true; + } + } + } else { + if (code === 200) { + current = _this._nextLesserThan8Bits$1(2); + if (!(current < 4)) + return A.ioore(B.List_292_260_226_226, current); + entry = B.List_292_260_226_226[current]; + code = entry >>> 5 & 2047; + _this._setToBlack$4(buffer, lineOffset, bitOffset, code); + bitOffset += code; + _this._updatePointer$1(2 - (entry >>> 1 & 15)); + B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); + } else { + _this._setToBlack$4(buffer, lineOffset, bitOffset, code); + bitOffset += code; + _this._updatePointer$1(4 - (entry >>> 1 & 15)); + B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); + } + isWhite = true; + } + } + if (bitOffset === t1) { + if (_this.compression === 2) + if (_this.bitPointer !== 0) { + t1 = _this.bytePointer; + t1.toString; + _this.bytePointer = t1 + 1; + _this.bitPointer = 0; + } + break; + } + } + B.JSArray_methods.$indexSet(_this.currChangingElems, _this.changingElemSize++, bitOffset); + }, + decode2D$5(out, compData, startX, height, tiffT4Options) { + var t1, scanlineStride, b, lineOffset, lines, temp, bitOffset, a0, isWhite, currIndex, b1, b2, entry, code, bits, currIndex0, currIndex1, number, a1, _this = this; + _this.__TiffFaxDecoder_data = compData; + _this.compression = 3; + _this.bytePointer = _this.bitPointer = 0; + t1 = _this.width; + scanlineStride = B.JSInt_methods._tdivFast$1(t1 + 7, 8); + b = A.List_List$filled(2, null, false, type$.nullable_int); + _this.oneD = tiffT4Options & 1; + _this.fillBits = tiffT4Options >>> 2 & 1; + if (_this._readEOL$0() !== 1) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder3")); + _this._decodeNextScanline$3(out, 0, startX); + for (lineOffset = scanlineStride, lines = 1; lines < height; ++lines) { + if (_this._readEOL$0() === 0) { + temp = _this.prevChangingElems; + _this.set$prevChangingElems(_this.currChangingElems); + _this.set$currChangingElems(temp); + _this.lastChangingElement = 0; + bitOffset = startX; + a0 = -1; + isWhite = true; + currIndex = 0; + while (true) { + bitOffset.toString; + if (!(bitOffset < t1)) + break; + _this._getNextChangingElement$3(a0, isWhite, b); + b1 = b[0]; + b2 = b[1]; + entry = _this._nextLesserThan8Bits$1(7); + if (!(entry < 128)) + return A.ioore(B.List_8co, entry); + entry = B.List_8co[entry] & 255; + code = entry >>> 3 & 15; + bits = entry & 7; + if (code === 0) { + if (!isWhite) { + b2.toString; + _this._setToBlack$4(out, lineOffset, bitOffset, b2 - bitOffset); + } + _this._updatePointer$1(7 - bits); + bitOffset = b2; + a0 = bitOffset; + } else if (code === 1) { + _this._updatePointer$1(7 - bits); + currIndex0 = currIndex + 1; + currIndex1 = currIndex0 + 1; + if (isWhite) { + bitOffset += _this._decodeWhiteCodeWord$0(); + B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, bitOffset); + number = _this._decodeBlackCodeWord$0(); + _this._setToBlack$4(out, lineOffset, bitOffset, number); + bitOffset += number; + B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex0, bitOffset); + } else { + number = _this._decodeBlackCodeWord$0(); + _this._setToBlack$4(out, lineOffset, bitOffset, number); + bitOffset += number; + B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, bitOffset); + bitOffset += _this._decodeWhiteCodeWord$0(); + B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex0, bitOffset); + } + currIndex = currIndex1; + a0 = bitOffset; + } else { + if (code <= 8) { + b1.toString; + a1 = b1 + (code - 5); + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, a1); + isWhite = !isWhite; + if (isWhite) + _this._setToBlack$4(out, lineOffset, bitOffset, a1 - bitOffset); + _this._updatePointer$1(7 - bits); + } else + throw A.wrapException(A.ImageException$("TIFFFaxDecoder4")); + bitOffset = a1; + currIndex = currIndex0; + a0 = bitOffset; + } + } + B.JSArray_methods.$indexSet(_this.currChangingElems, currIndex, bitOffset); + _this.changingElemSize = currIndex + 1; + } else + _this._decodeNextScanline$3(out, lineOffset, startX); + lineOffset += scanlineStride; + } + }, + decodeT6$5(out, compData, startX, height, tiffT6Options) { + var t1, scanlineStride, b, cce, lineOffset, lines, temp, bitOffset, a0, isWhite, currIndex, b1, b2, entry, code, bits, currIndex0, currIndex1, number, a1, zeros, exit, _this = this; + _this.__TiffFaxDecoder_data = compData; + _this.compression = 4; + _this.bytePointer = _this.bitPointer = 0; + t1 = _this.width; + scanlineStride = B.JSInt_methods._tdivFast$1(t1 + 7, 8); + b = A.List_List$filled(2, null, false, type$.nullable_int); + cce = _this.currChangingElems; + _this.changingElemSize = 0; + _this.changingElemSize = 1; + B.JSArray_methods.$indexSet(cce, 0, t1); + B.JSArray_methods.$indexSet(cce, _this.changingElemSize++, t1); + for (lineOffset = 0, lines = 0; lines < height; ++lines) { + temp = _this.prevChangingElems; + _this.set$prevChangingElems(_this.currChangingElems); + _this.set$currChangingElems(temp); + _this.lastChangingElement = 0; + bitOffset = startX; + a0 = -1; + isWhite = true; + currIndex = 0; + while (true) { + bitOffset.toString; + if (!(bitOffset < t1)) + break; + _this._getNextChangingElement$3(a0, isWhite, b); + b1 = b[0]; + b2 = b[1]; + entry = _this._nextLesserThan8Bits$1(7); + if (!(entry < 128)) + return A.ioore(B.List_8co, entry); + entry = B.List_8co[entry] & 255; + code = entry >>> 3 & 15; + bits = entry & 7; + if (code === 0) { + if (!isWhite) { + b2.toString; + _this._setToBlack$4(out, lineOffset, bitOffset, b2 - bitOffset); + } + _this._updatePointer$1(7 - bits); + bitOffset = b2; + a0 = bitOffset; + } else if (code === 1) { + _this._updatePointer$1(7 - bits); + currIndex0 = currIndex + 1; + currIndex1 = currIndex0 + 1; + if (isWhite) { + bitOffset += _this._decodeWhiteCodeWord$0(); + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + number = _this._decodeBlackCodeWord$0(); + _this._setToBlack$4(out, lineOffset, bitOffset, number); + bitOffset += number; + B.JSArray_methods.$indexSet(temp, currIndex0, bitOffset); + } else { + number = _this._decodeBlackCodeWord$0(); + _this._setToBlack$4(out, lineOffset, bitOffset, number); + bitOffset += number; + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + bitOffset += _this._decodeWhiteCodeWord$0(); + B.JSArray_methods.$indexSet(temp, currIndex0, bitOffset); + } + currIndex = currIndex1; + a0 = bitOffset; + } else if (code <= 8) { + b1.toString; + a1 = b1 + (code - 5); + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(temp, currIndex, a1); + isWhite = !isWhite; + if (isWhite) + _this._setToBlack$4(out, lineOffset, bitOffset, a1 - bitOffset); + _this._updatePointer$1(7 - bits); + bitOffset = a1; + currIndex = currIndex0; + a0 = bitOffset; + } else if (code === 11) { + if (_this._nextLesserThan8Bits$1(3) !== 7) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder5")); + for (zeros = 0, exit = false; !exit;) { + for (; _this._nextLesserThan8Bits$1(1) !== 1;) + ++zeros; + if (zeros > 5) { + zeros -= 6; + if (!isWhite && zeros > 0) { + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + currIndex = currIndex0; + } + bitOffset += zeros; + if (zeros > 0) + isWhite = true; + if (_this._nextLesserThan8Bits$1(1) === 0) { + if (!isWhite) { + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + currIndex = currIndex0; + } + isWhite = true; + } else { + if (isWhite) { + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + currIndex = currIndex0; + } + isWhite = false; + } + exit = true; + } + if (zeros === 5) { + if (!isWhite) { + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + currIndex = currIndex0; + } + bitOffset += zeros; + isWhite = true; + } else { + bitOffset += zeros; + currIndex0 = currIndex + 1; + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + _this._setToBlack$4(out, lineOffset, bitOffset, 1); + ++bitOffset; + currIndex = currIndex0; + isWhite = false; + } + } + } else + throw A.wrapException(A.ImageException$("TIFFFaxDecoder5 " + code)); + } + B.JSArray_methods.$indexSet(temp, currIndex, bitOffset); + _this.changingElemSize = currIndex + 1; + lineOffset += scanlineStride; + } + }, + _decodeWhiteCodeWord$0() { + var runLength, isWhite, current, entry, bits, t1, _this = this; + for (runLength = 0, isWhite = true; isWhite;) { + current = _this._nextNBits$1(10); + if (!(current < 1024)) + return A.ioore(B.List_VSP, current); + entry = B.List_VSP[current]; + bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; + if (bits === 12) { + current = (current << 2 & 12 | _this._nextLesserThan8Bits$1(2)) >>> 0; + if (!(current < 16)) + return A.ioore(B.List_MEg, current); + entry = B.List_MEg[current]; + t1 = B.JSInt_methods._shrOtherPositive$1(entry, 1); + runLength += B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; + _this._updatePointer$1(4 - (t1 & 7)); + } else if (bits === 0) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder0")); + else if (bits === 15) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder1")); + else { + runLength += B.JSInt_methods._shrOtherPositive$1(entry, 5) & 2047; + _this._updatePointer$1(10 - bits); + if ((entry & 1) === 0) + isWhite = false; + } + } + return runLength; + }, + _decodeBlackCodeWord$0() { + var runLength, isWhite, current, entry, code, bits, t1, _this = this; + for (runLength = 0, isWhite = false; !isWhite;) { + current = _this._nextLesserThan8Bits$1(4); + if (!(current < 16)) + return A.ioore(B.List_89P, current); + entry = B.List_89P[current]; + code = entry >>> 5 & 2047; + if (code === 100) { + current = _this._nextNBits$1(9); + if (!(current < 512)) + return A.ioore(B.List_nLG, current); + entry = B.List_nLG[current]; + bits = B.JSInt_methods._shrOtherPositive$1(entry, 1) & 15; + t1 = B.JSInt_methods._shrOtherPositive$1(entry, 5); + if (bits === 12) { + _this._updatePointer$1(5); + current = _this._nextLesserThan8Bits$1(4); + if (!(current < 16)) + return A.ioore(B.List_MEg, current); + entry = B.List_MEg[current]; + t1 = B.JSInt_methods._shrOtherPositive$1(entry, 1); + runLength += B.JSInt_methods._shrOtherPositive$1(entry, 4) & 4095; + _this._updatePointer$1(4 - (t1 & 7)); + } else if (bits === 15) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder2")); + else { + runLength += t1 & 2047; + _this._updatePointer$1(9 - bits); + if ((entry & 1) === 0) + isWhite = true; + } + } else { + if (code === 200) { + current = _this._nextLesserThan8Bits$1(2); + if (!(current < 4)) + return A.ioore(B.List_292_260_226_226, current); + entry = B.List_292_260_226_226[current]; + runLength += entry >>> 5 & 2047; + _this._updatePointer$1(2 - (entry >>> 1 & 15)); + } else { + runLength += code; + _this._updatePointer$1(4 - (entry >>> 1 & 15)); + } + isWhite = true; + } + } + return runLength; + }, + _readEOL$0() { + var bitsLeft, n, _this = this, + _s15_ = "TIFFFaxDecoder8", + t1 = _this.fillBits; + if (t1 === 0) { + if (_this._nextNBits$1(12) !== 1) + throw A.wrapException(A.ImageException$("TIFFFaxDecoder6")); + } else if (t1 === 1) { + t1 = _this.bitPointer; + t1.toString; + bitsLeft = 8 - t1; + if (_this._nextNBits$1(bitsLeft) !== 0) + throw A.wrapException(A.ImageException$(_s15_)); + if (bitsLeft < 4) + if (_this._nextNBits$1(8) !== 0) + throw A.wrapException(A.ImageException$(_s15_)); + for (; n = _this._nextNBits$1(8), n !== 1;) + if (n !== 0) + throw A.wrapException(A.ImageException$(_s15_)); + } + if (_this.oneD === 0) + return 1; + else + return _this._nextLesserThan8Bits$1(1); + }, + _getNextChangingElement$3(a0, isWhite, ret) { + var pce, ces, t1, start, i, t2, _this = this; + type$.List_nullable_int._as(ret); + pce = _this.prevChangingElems; + ces = _this.changingElemSize; + t1 = _this.lastChangingElement; + start = t1 > 0 ? t1 - 1 : 0; + start = isWhite ? (start & 4294967294) >>> 0 : (start | 1) >>> 0; + for (t1 = pce.length, i = start; i < ces; i += 2) { + if (!(i < t1)) + return A.ioore(pce, i); + t2 = pce[i]; + t2.toString; + a0.toString; + if (t2 > a0) { + _this.lastChangingElement = i; + B.JSArray_methods.$indexSet(ret, 0, t2); + break; + } + } + t2 = i + 1; + if (t2 < ces) { + if (!(t2 < t1)) + return A.ioore(pce, t2); + B.JSArray_methods.$indexSet(ret, 1, pce[t2]); + } + }, + _setToBlack$4(buffer, lineOffset, bitOffset, numBits) { + var maskVal, t1, t2, val, byteNum0, + bitNum = 8 * lineOffset + A._asInt(bitOffset), + lastBit = bitNum + numBits, + byteNum = B.JSInt_methods._shrOtherPositive$1(bitNum, 3), + shift = bitNum & 7; + if (shift > 0) { + maskVal = B.JSInt_methods.$shl(1, 7 - shift); + t1 = buffer.buffer; + t2 = buffer.offset + byteNum; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + val = t1[t2]; + while (true) { + if (!(maskVal > 0 && bitNum < lastBit)) + break; + val = (val | maskVal) >>> 0; + maskVal = maskVal >>> 1; + ++bitNum; + } + buffer.$indexSet(0, byteNum, val); + } + byteNum = B.JSInt_methods._shrOtherPositive$1(bitNum, 3); + for (t1 = lastBit - 7; bitNum < t1; byteNum = byteNum0) { + byteNum0 = byteNum + 1; + J.$indexSet$ax(buffer.buffer, buffer.offset + byteNum, 255); + bitNum += 8; + } + for (; bitNum < lastBit;) { + byteNum = B.JSInt_methods._shrOtherPositive$1(bitNum, 3); + t1 = buffer.buffer; + t2 = buffer.offset + byteNum; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + J.$indexSet$ax(t1, t2, (t1[t2] | B.JSInt_methods.$shl(1, 7 - (bitNum & 7))) >>> 0); + ++bitNum; + } + }, + _nextNBits$1(bitsToGet) { + var t2, b, next, next2next, t3, bitsLeft, bitsFromNextByte, bitsFromNext2NextByte, bitsFromNextByte0, i1, i2, _this = this, _s4_ = "data", + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_), + l = t1.end - t1.offset - 1, + bp = _this.bytePointer; + t1 = _this.fillOrder; + if (t1 === 1) { + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + bp.toString; + t2 = t1.buffer; + t1 = t1.offset + bp; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + b = t2[t1]; + if (bp === l) { + next = 0; + next2next = 0; + } else { + t1 = bp + 1; + t2 = _this.__TiffFaxDecoder_data; + if (t1 === l) { + t2 = A._lateReadCheck(t2, _s4_); + t3 = t2.buffer; + t1 = t2.offset + t1; + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + next = t3[t1]; + next2next = 0; + } else { + t2 = A._lateReadCheck(t2, _s4_); + t3 = t2.buffer; + t1 = t2.offset + t1; + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + next = t3[t1]; + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + t3 = t1.buffer; + t1 = t1.offset + (bp + 2); + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + next2next = t3[t1]; + } + } + } else if (t1 === 2) { + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + bp.toString; + t2 = t1.buffer; + t1 = t1.offset + bp; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + b = B.List_VvJ[t2[t1] & 255]; + if (bp === l) { + next = 0; + next2next = 0; + } else { + t1 = bp + 1; + t2 = _this.__TiffFaxDecoder_data; + if (t1 === l) { + t2 = A._lateReadCheck(t2, _s4_); + t3 = t2.buffer; + t1 = t2.offset + t1; + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + next = B.List_VvJ[t3[t1] & 255]; + next2next = 0; + } else { + t2 = A._lateReadCheck(t2, _s4_); + t3 = t2.buffer; + t1 = t2.offset + t1; + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + next = B.List_VvJ[t3[t1] & 255]; + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + t3 = t1.buffer; + t1 = t1.offset + (bp + 2); + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + next2next = B.List_VvJ[t3[t1] & 255]; + } + } + } else + throw A.wrapException(A.ImageException$("TIFFFaxDecoder7")); + t1 = _this.bitPointer; + t1.toString; + bitsLeft = 8 - t1; + bitsFromNextByte = bitsToGet - bitsLeft; + if (bitsFromNextByte > 8) { + bitsFromNext2NextByte = bitsFromNextByte - 8; + bitsFromNextByte0 = 8; + } else { + bitsFromNextByte0 = bitsFromNextByte; + bitsFromNext2NextByte = 0; + } + t1 = _this.bytePointer; + t1.toString; + t1 = _this.bytePointer = t1 + 1; + if (!(bitsLeft >= 0 && bitsLeft < 9)) + return A.ioore(B.List_knt, bitsLeft); + i1 = B.JSInt_methods.$shl(b & B.List_knt[bitsLeft], bitsFromNextByte); + if (!(bitsFromNextByte0 >= 0)) + return A.ioore(B.List_knt0, bitsFromNextByte0); + i2 = B.JSInt_methods._shrReceiverPositive$1(next & B.List_knt0[bitsFromNextByte0], 8 - bitsFromNextByte0); + if (bitsFromNext2NextByte !== 0) { + i2 = B.JSInt_methods.$shl(i2, bitsFromNext2NextByte); + if (!(bitsFromNext2NextByte < 9)) + return A.ioore(B.List_knt0, bitsFromNext2NextByte); + i2 |= B.JSInt_methods._shrReceiverPositive$1(next2next & B.List_knt0[bitsFromNext2NextByte], 8 - bitsFromNext2NextByte); + _this.bytePointer = t1 + 1; + _this.bitPointer = bitsFromNext2NextByte; + } else if (bitsFromNextByte0 === 8) { + _this.bitPointer = 0; + _this.bytePointer = t1 + 1; + } else + _this.bitPointer = bitsFromNextByte0; + return (i1 | i2) >>> 0; + }, + _nextLesserThan8Bits$1(bitsToGet) { + var t2, b, next, bitsLeft, bitsFromNextByte, shift, i1, _this = this, _s4_ = "data", + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_), + l = t1.end - t1.offset - 1, + bp = _this.bytePointer; + t1 = _this.fillOrder; + if (t1 === 1) { + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + bp.toString; + t2 = t1.buffer; + t1 = t1.offset + bp; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + b = t2[t1]; + if (bp === l) + next = 0; + else { + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + t2 = t1.buffer; + t1 = t1.offset + (bp + 1); + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + next = t2[t1]; + } + } else if (t1 === 2) { + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + bp.toString; + t2 = t1.buffer; + t1 = t1.offset + bp; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + b = B.List_VvJ[t2[t1] & 255]; + if (bp === l) + next = 0; + else { + t1 = A._lateReadCheck(_this.__TiffFaxDecoder_data, _s4_); + t2 = t1.buffer; + t1 = t1.offset + (bp + 1); + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + next = B.List_VvJ[t2[t1] & 255]; + } + } else + throw A.wrapException(A.ImageException$("TIFFFaxDecoder7")); + t1 = _this.bitPointer; + t1.toString; + bitsLeft = 8 - t1; + bitsFromNextByte = bitsToGet - bitsLeft; + shift = bitsLeft - bitsToGet; + if (shift >= 0) { + if (!(bitsLeft >= 0 && bitsLeft < 9)) + return A.ioore(B.List_knt, bitsLeft); + i1 = B.JSInt_methods._shrReceiverPositive$1(b & B.List_knt[bitsLeft], shift); + t1 += bitsToGet; + _this.bitPointer = t1; + if (t1 === 8) { + _this.bitPointer = 0; + t1 = _this.bytePointer; + t1.toString; + _this.bytePointer = t1 + 1; + } + } else { + if (!(bitsLeft >= 0 && bitsLeft < 9)) + return A.ioore(B.List_knt, bitsLeft); + i1 = B.JSInt_methods.$shl(b & B.List_knt[bitsLeft], -shift); + if (!(bitsFromNextByte >= 0 && bitsFromNextByte < 9)) + return A.ioore(B.List_knt0, bitsFromNextByte); + i1 = (i1 | B.JSInt_methods._shrReceiverPositive$1(next & B.List_knt0[bitsFromNextByte], 8 - bitsFromNextByte)) >>> 0; + t1 = _this.bytePointer; + t1.toString; + _this.bytePointer = t1 + 1; + _this.bitPointer = bitsFromNextByte; + } + return i1; + }, + _updatePointer$1(bitsToMoveBack) { + var i, _this = this, + t1 = _this.bitPointer; + t1.toString; + i = t1 - bitsToMoveBack; + if (i < 0) { + t1 = _this.bytePointer; + t1.toString; + _this.bytePointer = t1 - 1; + _this.bitPointer = 8 + i; + } else + _this.bitPointer = i; + }, + set$prevChangingElems(prevChangingElems) { + this.prevChangingElems = type$.nullable_List_nullable_int._as(prevChangingElems); + }, + set$currChangingElems(currChangingElems) { + this.currChangingElems = type$.nullable_List_nullable_int._as(currChangingElems); + } + }; + A.TiffImage.prototype = { + TiffImage$1(p) { + var t1, i, tag, type, numValues, entry, t2, len, l, t3, v, _this = this, + p3 = A.InputBuffer$from(p, null, 0), + numDirEntries = p.readUint16$0(); + for (t1 = _this.tags, i = 0; i < numDirEntries; ++i) { + tag = p.readUint16$0(); + type = p.readUint16$0(); + numValues = p.readUint32$0(); + entry = new A.TiffEntry(tag, type, numValues, p3); + if (type < 13 && type > 0) { + if (!(type < 14)) + return A.ioore(B.List_yYQ, type); + t2 = B.List_yYQ[type]; + } else + t2 = 0; + if (numValues * t2 > 4) + entry.valueOffset = p.readUint32$0(); + else { + t2 = p.offset; + entry.valueOffset = t2; + p.offset = t2 + 4; + } + t1.$indexSet(0, tag, entry); + if (tag === 256) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.width = entry._readValue$0(); + } else if (tag === 257) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.height = entry._readValue$0(); + } else if (tag === 262) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.photometricType = entry._readValue$0(); + } else if (tag === 259) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.compression = entry._readValue$0(); + } else if (tag === 258) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.bitsPerSample = entry._readValue$0(); + } else if (tag === 277) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.samplesPerPixel = entry._readValue$0(); + } else if (tag === 317) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.predictor = entry._readValue$0(); + } else if (tag === 339) { + t2 = entry.valueOffset; + t2.toString; + p3.offset = t2; + _this.sampleFormat = entry._readValue$0(); + } else if (tag === 320) { + _this.set$colorMap(entry.readValues$0()); + _this.__TiffImage_colorMapRed = 0; + t2 = _this.colorMap.length / 3 | 0; + _this.__TiffImage_colorMapGreen = t2; + _this.__TiffImage_colorMapBlue = A._lateReadCheck(t2, "colorMapGreen") * 2; + } + } + if (_this.width === 0 || _this.height === 0) + return; + t2 = _this.colorMap; + if (t2 != null && _this.bitsPerSample === 8) + for (len = t2.length, i = 0; i < len; ++i) { + t2 = _this.colorMap; + if (!(i < t2.length)) + return A.ioore(t2, i); + B.JSArray_methods.$indexSet(t2, i, B.JSInt_methods._shrOtherPositive$1(t2[i], 8)); + } + if (_this.photometricType === 0) + _this.isWhiteZero = true; + if (t1.containsKey$1(0, 324)) { + _this.tileWidth = _this._readTag$1(322); + _this.tileHeight = _this._readTag$1(323); + _this.set$tileOffsets(_this._readTagList$1(324)); + _this.set$tileByteCounts(_this._readTagList$1(325)); + } else { + _this.tileWidth = _this._readTag$2(322, _this.width); + if (!t1.containsKey$1(0, 278)) + _this.tileHeight = _this._readTag$2(323, _this.height); + else { + l = _this._readTag$1(278); + if (l === -1) + _this.tileHeight = _this.height; + else + _this.tileHeight = l; + } + _this.set$tileOffsets(_this._readTagList$1(273)); + _this.set$tileByteCounts(_this._readTagList$1(279)); + } + t2 = _this.width; + t3 = _this.tileWidth; + _this.__TiffImage_tilesX = B.JSInt_methods.$tdiv(t2 + t3 - 1, t3); + t3 = _this.height; + t2 = _this.tileHeight; + _this.__TiffImage_tilesY = B.JSInt_methods.$tdiv(t3 + t2 - 1, t2); + _this.fillOrder = _this._readTag$2(266, 1); + _this.t4Options = _this._readTag$1(292); + _this.t6Options = _this._readTag$1(293); + _this._readTag$1(338); + switch (_this.photometricType) { + case 0: + case 1: + t1 = _this.bitsPerSample; + if (t1 === 1 && _this.samplesPerPixel === 1) + _this.imageType = 0; + else if (t1 === 4 && _this.samplesPerPixel === 1) + _this.imageType = 1; + else if (B.JSInt_methods.$mod(t1, 8) === 0) { + t1 = _this.samplesPerPixel; + if (t1 === 1) + _this.imageType = 2; + else if (t1 === 2) + _this.imageType = 3; + else + _this.imageType = 8; + } + break; + case 2: + if (B.JSInt_methods.$mod(_this.bitsPerSample, 8) === 0) { + t1 = _this.samplesPerPixel; + if (t1 === 3) + _this.imageType = 5; + else if (t1 === 4) + _this.imageType = 6; + else + _this.imageType = 8; + } + break; + case 3: + if (_this.samplesPerPixel === 1) { + t1 = _this.bitsPerSample; + t1 = t1 === 4 || t1 === 8 || t1 === 16; + } else + t1 = false; + if (t1) + _this.imageType = 4; + break; + case 4: + if (_this.bitsPerSample === 1 && _this.samplesPerPixel === 1) + _this.imageType = 0; + break; + case 6: + if (_this.compression === 7 && _this.bitsPerSample === 8 && _this.samplesPerPixel === 3) + _this.imageType = 5; + else { + if (t1.containsKey$1(0, 530)) { + v = t1.$index(0, 530).readValues$0(); + t1 = v.length; + if (0 >= t1) + return A.ioore(v, 0); + t2 = _this.__TiffImage_chromaSubH = v[0]; + if (1 >= t1) + return A.ioore(v, 1); + _this.__TiffImage_chromaSubV = v[1]; + t1 = t2; + } else + t1 = _this.__TiffImage_chromaSubV = _this.__TiffImage_chromaSubH = 2; + if (A._lateReadCheck(t1, "chromaSubH") * A._lateReadCheck(_this.__TiffImage_chromaSubV, "chromaSubV") === 1) + _this.imageType = 8; + else if (_this.bitsPerSample === 8 && _this.samplesPerPixel === 3) + _this.imageType = 7; + } + break; + default: + if (B.JSInt_methods.$mod(_this.bitsPerSample, 8) === 0) + _this.imageType = 8; + break; + } + }, + decode$1(_, p) { + var tileY, ti, tileX, t1, _this = this; + _this.image = A.Image$(_this.width, _this.height, B.Channels_1, null, null); + for (tileY = 0, ti = 0; tileY < A._lateReadCheck(_this.__TiffImage_tilesY, "tilesY"); ++tileY) + for (tileX = 0; tileX < A._lateReadCheck(_this.__TiffImage_tilesX, "tilesX"); ++tileX, ++ti) + _this._decodeTile$3(p, tileX, tileY); + t1 = _this.image; + t1.toString; + return t1; + }, + _decodeTile$3(p, tileX, tileY) { + var byteCount, bdata, decoder, e, tileIndex, t1, outX, t2, outY, t3, bytesInThisTile, exception, j, i, count, len, t4, t5, t6, tile, py, y, px, x, sample, gray, c, alpha, r, g, b, ri, gi, bi, a, _this = this, _null = null, + _s11_ = "colorMapRed", + _s13_ = "colorMapGreen", + _s12_ = "colorMapBlue"; + if (_this.imageType === 0) { + _this._decodeBilevelTile$3(p, tileX, tileY); + return; + } + tileIndex = tileY * A._lateReadCheck(_this.__TiffImage_tilesX, "tilesX") + tileX; + t1 = _this.tileOffsets; + if (!(tileIndex >= 0 && tileIndex < t1.length)) + return A.ioore(t1, tileIndex); + p.offset = t1[tileIndex]; + t1 = _this.tileWidth; + outX = tileX * t1; + t2 = _this.tileHeight; + outY = tileY * t2; + t3 = _this.tileByteCounts; + if (!(tileIndex < t3.length)) + return A.ioore(t3, tileIndex); + byteCount = t3[tileIndex]; + bytesInThisTile = t1 * t2 * _this.samplesPerPixel; + t1 = _this.bitsPerSample; + t2 = t1 === 16; + if (t2) + bytesInThisTile *= 2; + else if (t1 === 32) + bytesInThisTile *= 4; + bdata = null; + if (t1 === 8 || t2 || t1 === 32 || t1 === 64) { + t1 = _this.compression; + if (t1 === 1) + bdata = p; + else if (t1 === 5) { + bdata = A.InputBuffer$(new Uint8Array(bytesInThisTile), false, _null, 0); + decoder = A.LzwDecoder$(); + try { + J.decode$2$z(decoder, A.InputBuffer$from(p, byteCount, 0), bdata.buffer); + } catch (exception) { + e = A.unwrapException(exception); + A.print(e); + } + if (_this.predictor === 2) + for (j = 0; j < _this.tileHeight; ++j) { + i = _this.samplesPerPixel; + t1 = _this.tileWidth; + count = i * (j * t1 + 1); + for (len = t1 * i; i < len; ++i) { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset + count; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t3 = t2[t1]; + t4 = bdata; + t5 = _this.samplesPerPixel; + t6 = t4.buffer; + t5 = t4.offset + (count - t5); + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + J.$indexSet$ax(t2, t1, t3 + t6[t5]); + ++count; + } + } + } else if (t1 === 32773) { + bdata = A.InputBuffer$(new Uint8Array(bytesInThisTile), false, _null, 0); + _this._decodePackbits$3(p, bytesInThisTile, bdata.buffer); + } else if (t1 === 32946) { + t1 = A.Inflate$(p.toList$2(0, 0, byteCount)).output; + bdata = A.InputBuffer$(type$.List_int._as(A.NativeUint8List_NativeUint8List$view(t1._output_stream$_buffer.buffer, 0, t1.length)), false, _null, 0); + } else if (t1 === 8) + bdata = A.InputBuffer$(B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(p.toList$2(0, 0, byteCount)), 1, _null, 0), false), false, _null, 0); + else if (t1 === 6) { + if (_this.image == null) + _this.image = A.Image$(_this.width, _this.height, B.Channels_1, _null, _null); + tile = new A.JpegDecoder().decodeImage$1(p.toList$2(0, 0, byteCount)); + t1 = _this.image; + t1.toString; + _this._jpegToImage$6(tile, t1, outX, outY, _this.tileWidth, _this.tileHeight); + if (_this.hdrImage != null) { + t1 = _this.image; + t1.toString; + t2 = new A.HdrImage(A.LinkedHashMap_LinkedHashMap$_empty(type$.nullable_String, type$.HdrSlice)); + t2.HdrImage$fromImage$3$bitsPerSample$type(t1, 16, 3); + _this.hdrImage = t2; + } + return; + } else + throw A.wrapException(A.ImageException$("Unsupported Compression Type: " + t1)); + py = outY; + y = 0; + while (true) { + if (!(y < _this.tileHeight && py < _this.height)) + break; + px = outX; + x = 0; + while (true) { + if (!(x < _this.tileWidth && px < _this.width)) + break; + t1 = _this.samplesPerPixel; + if (t1 === 1) { + t1 = _this.sampleFormat; + if (t1 === 3) { + t1 = _this.bitsPerSample; + if (t1 === 32) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToFloat32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + sample = t1[0]; + } else if (t1 === 64) + sample = bdata.readFloat64$0(); + else if (t1 === 16) { + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + sample = t2[t1]; + } else + sample = 0; + t1 = _this.hdrImage; + if (t1 != null) + t1.setRed$3(px, py, sample); + if (_this.image != null) { + gray = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(sample * 255, 0, 255)); + if (_this.photometricType === 3 && _this.colorMap != null) { + t1 = _this.colorMap; + t1.toString; + t2 = A._lateReadCheck(_this.__TiffImage_colorMapRed, _s11_) + gray; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = _this.colorMap; + t1.toString; + t3 = A._lateReadCheck(_this.__TiffImage_colorMapGreen, _s13_) + gray; + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t1 = _this.colorMap; + t1.toString; + t4 = A._lateReadCheck(_this.__TiffImage_colorMapBlue, _s12_) + gray; + if (!(t4 >= 0 && t4 < t1.length)) + return A.ioore(t1, t4); + t4 = t1[t4]; + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t4, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t3, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t2, 0, 255))) >>> 0; + } else + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255))) >>> 0; + t1 = _this.image; + t2 = t1.data; + t1 = py * t1.width + px; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t2[t1] = c; + } + } else { + t2 = _this.bitsPerSample; + if (t2 === 8) + if (t1 === 2) { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1]; + $.$get$__uint8()[0] = t1; + t1 = $.$get$__uint8ToInt8(); + if (0 >= t1.length) + return A.ioore(t1, 0); + gray = t1[0]; + } else { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + gray = t2[t1]; + } + else if (t2 === 16) + if (t1 === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + gray = t1[0]; + } else + gray = bdata.readUint16$0(); + else if (t2 === 32) + if (t1 === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + gray = t1[0]; + } else + gray = bdata.readUint32$0(); + else + gray = 0; + t1 = _this.hdrImage; + if (t1 != null) + t1.setRed$3(px, py, gray); + if (_this.image != null) { + t1 = _this.bitsPerSample; + if (t1 === 16) + gray = B.JSInt_methods._shrOtherPositive$1(gray, 8); + else if (t1 === 32) + gray = B.JSInt_methods._shrOtherPositive$1(gray, 24); + t1 = _this.photometricType; + if (t1 === 0) + gray = 255 - gray; + if (t1 === 3 && _this.colorMap != null) { + t1 = _this.colorMap; + t1.toString; + t2 = A._lateReadCheck(_this.__TiffImage_colorMapRed, _s11_) + gray; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = _this.colorMap; + t1.toString; + t3 = A._lateReadCheck(_this.__TiffImage_colorMapGreen, _s13_) + gray; + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t1 = _this.colorMap; + t1.toString; + t4 = A._lateReadCheck(_this.__TiffImage_colorMapBlue, _s12_) + gray; + if (!(t4 >= 0 && t4 < t1.length)) + return A.ioore(t1, t4); + t4 = t1[t4]; + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t4, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t3, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t2, 0, 255))) >>> 0; + } else + c = (B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)) << 24 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 16 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)) << 8 | B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255))) >>> 0; + t1 = _this.image; + t2 = t1.data; + t1 = py * t1.width + px; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t2[t1] = c; + } + } + } else if (t1 === 2) { + t1 = _this.bitsPerSample; + if (t1 === 8) { + t1 = _this.sampleFormat === 2; + if (t1) { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + gray = t2[0]; + } else { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + gray = t3[t2]; + } + if (t1) { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1]; + $.$get$__uint8()[0] = t1; + t1 = $.$get$__uint8ToInt8(); + if (0 >= t1.length) + return A.ioore(t1, 0); + alpha = t1[0]; + } else { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + alpha = t2[t1]; + } + } else if (t1 === 16) { + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + gray = t1[0]; + } else + gray = bdata.readUint16$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + alpha = t1[0]; + } else + alpha = bdata.readUint16$0(); + } else if (t1 === 32) { + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + gray = t1[0]; + } else + gray = bdata.readUint32$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + alpha = t1[0]; + } else + alpha = bdata.readUint32$0(); + } else { + gray = 0; + alpha = 0; + } + t1 = _this.hdrImage; + if (t1 != null) { + t1.setRed$3(px, py, gray); + _this.hdrImage.setGreen$3(px, py, alpha); + } + if (_this.image != null) { + t1 = _this.bitsPerSample; + t2 = t1 === 16; + if (t2) + gray = B.JSInt_methods._shrOtherPositive$1(gray, 8); + else if (t1 === 32) + gray = B.JSInt_methods._shrOtherPositive$1(gray, 24); + if (t2) + alpha = B.JSInt_methods._shrOtherPositive$1(alpha, 8); + else if (t1 === 32) + alpha = B.JSInt_methods._shrOtherPositive$1(alpha, 24); + t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(alpha, 0, 255)); + t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)); + t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gray, 0, 255)); + t5 = _this.image; + t6 = t5.data; + t5 = py * t5.width + px; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; + } + } else if (t1 === 3) { + t1 = _this.sampleFormat; + if (t1 === 3) { + t1 = _this.bitsPerSample; + if (t1 === 32) { + t1 = bdata.readUint32$0(); + t2 = $.$get$__uint32(); + t2[0] = t1; + t1 = $.$get$__uint32ToFloat32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + r = t1[0]; + t2[0] = bdata.readUint32$0(); + g = t1[0]; + t2[0] = bdata.readUint32$0(); + b = t1[0]; + } else if (t1 === 64) { + r = bdata.readFloat64$0(); + g = 0; + b = 0; + } else if (t1 === 16) { + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + r = t2[t1]; + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + g = t2[t1]; + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + b = t2[t1]; + } else { + r = 0; + g = 0; + b = 0; + } + t1 = _this.hdrImage; + if (t1 != null) { + t1.setRed$3(px, py, r); + _this.hdrImage.setGreen$3(px, py, g); + _this.hdrImage.setBlue$3(px, py, b); + } + if (_this.image != null) { + ri = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(r * 255, 0, 255)); + gi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(g * 255, 0, 255)); + bi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(b * 255, 0, 255)); + t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)); + t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(bi, 0, 255)); + t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gi, 0, 255)); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ri, 0, 255)); + t5 = _this.image; + t6 = t5.data; + t5 = py * t5.width + px; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; + } + } else { + t2 = _this.bitsPerSample; + if (t2 === 8) { + t1 = t1 === 2; + if (t1) { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + r = t2[0]; + } else { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + r = t3[t2]; + } + if (t1) { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + g = t2[0]; + } else { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + g = t3[t2]; + } + if (t1) { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1]; + $.$get$__uint8()[0] = t1; + t1 = $.$get$__uint8ToInt8(); + if (0 >= t1.length) + return A.ioore(t1, 0); + b = t1[0]; + } else { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + b = t2[t1]; + } + } else if (t2 === 16) { + if (t1 === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + r = t1[0]; + } else + r = bdata.readUint16$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + g = t1[0]; + } else + g = bdata.readUint16$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + b = t1[0]; + } else + b = bdata.readUint16$0(); + } else if (t2 === 32) { + if (t1 === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + r = t1[0]; + } else + r = bdata.readUint32$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + g = t1[0]; + } else + g = bdata.readUint32$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + b = t1[0]; + } else + b = bdata.readUint32$0(); + } else { + r = 0; + g = 0; + b = 0; + } + t1 = _this.hdrImage; + if (t1 != null) { + t1.setRed$3(px, py, r); + _this.hdrImage.setGreen$3(px, py, g); + _this.hdrImage.setBlue$3(px, py, b); + } + if (_this.image != null) { + t1 = _this.bitsPerSample; + t2 = t1 === 16; + if (t2) + r = B.JSInt_methods._shrOtherPositive$1(r, 8); + else if (t1 === 32) + r = B.JSInt_methods._shrOtherPositive$1(r, 24); + if (t2) + g = B.JSInt_methods._shrOtherPositive$1(g, 8); + else if (t1 === 32) + g = B.JSInt_methods._shrOtherPositive$1(g, 24); + if (t2) + b = B.JSInt_methods._shrOtherPositive$1(b, 8); + else if (t1 === 32) + b = B.JSInt_methods._shrOtherPositive$1(b, 24); + t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(255, 0, 255)); + t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)); + t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255)); + t5 = _this.image; + t6 = t5.data; + t5 = py * t5.width + px; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; + } + } + } else if (t1 >= 4) { + t1 = _this.sampleFormat; + if (t1 === 3) { + t1 = _this.bitsPerSample; + if (t1 === 32) { + t1 = bdata.readUint32$0(); + t2 = $.$get$__uint32(); + t2[0] = t1; + t1 = $.$get$__uint32ToFloat32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + r = t1[0]; + t2[0] = bdata.readUint32$0(); + g = t1[0]; + t2[0] = bdata.readUint32$0(); + b = t1[0]; + t2[0] = bdata.readUint32$0(); + a = t1[0]; + } else if (t1 === 64) { + r = bdata.readFloat64$0(); + g = 0; + b = 0; + a = 0; + } else if (t1 === 16) { + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + r = t2[t1]; + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + g = t2[t1]; + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + b = t2[t1]; + t1 = bdata.readUint16$0(); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + a = t2[t1]; + } else { + r = 0; + g = 0; + b = 0; + a = 0; + } + t1 = _this.hdrImage; + if (t1 != null) { + t1.setRed$3(px, py, r); + _this.hdrImage.setGreen$3(px, py, g); + _this.hdrImage.setBlue$3(px, py, b); + _this.hdrImage.setAlpha$3(px, py, a); + } + if (_this.image != null) { + ri = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(r * 255, 0, 255)); + gi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(g * 255, 0, 255)); + bi = B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(b * 255, 0, 255)); + t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(B.JSNumber_methods.toInt$0(B.JSNumber_methods.clamp$2(a * 255, 0, 255)), 0, 255)); + t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(bi, 0, 255)); + t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(gi, 0, 255)); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(ri, 0, 255)); + t5 = _this.image; + t6 = t5.data; + t5 = py * t5.width + px; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; + } + } else { + t2 = _this.bitsPerSample; + if (t2 === 8) { + t1 = t1 === 2; + if (t1) { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + r = t2[0]; + } else { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + r = t3[t2]; + } + if (t1) { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + g = t2[0]; + } else { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + g = t3[t2]; + } + if (t1) { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + $.$get$__uint8()[0] = t2; + t2 = $.$get$__uint8ToInt8(); + if (0 >= t2.length) + return A.ioore(t2, 0); + b = t2[0]; + } else { + t2 = bdata; + t3 = t2.buffer; + t2 = t2.offset++; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + b = t3[t2]; + } + if (t1) { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1]; + $.$get$__uint8()[0] = t1; + t1 = $.$get$__uint8ToInt8(); + if (0 >= t1.length) + return A.ioore(t1, 0); + a = t1[0]; + } else { + t1 = bdata; + t2 = t1.buffer; + t1 = t1.offset++; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + a = t2[t1]; + } + } else if (t2 === 16) { + if (t1 === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + r = t1[0]; + } else + r = bdata.readUint16$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + g = t1[0]; + } else + g = bdata.readUint16$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + b = t1[0]; + } else + b = bdata.readUint16$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint16$0(); + $.$get$__uint16()[0] = t1; + t1 = $.$get$__uint16ToInt16(); + if (0 >= t1.length) + return A.ioore(t1, 0); + a = t1[0]; + } else + a = bdata.readUint16$0(); + } else if (t2 === 32) { + if (t1 === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + r = t1[0]; + } else + r = bdata.readUint32$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + g = t1[0]; + } else + g = bdata.readUint32$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + b = t1[0]; + } else + b = bdata.readUint32$0(); + if (_this.sampleFormat === 2) { + t1 = bdata.readUint32$0(); + $.$get$__uint32()[0] = t1; + t1 = $.$get$__uint32ToInt32(); + if (0 >= t1.length) + return A.ioore(t1, 0); + a = t1[0]; + } else + a = bdata.readUint32$0(); + } else { + r = 0; + g = 0; + b = 0; + a = 0; + } + t1 = _this.hdrImage; + if (t1 != null) { + t1.setRed$3(px, py, r); + _this.hdrImage.setGreen$3(px, py, g); + _this.hdrImage.setBlue$3(px, py, b); + _this.hdrImage.setAlpha$3(px, py, a); + } + if (_this.image != null) { + t1 = _this.bitsPerSample; + t2 = t1 === 16; + if (t2) + r = B.JSInt_methods._shrOtherPositive$1(r, 8); + else if (t1 === 32) + r = B.JSInt_methods._shrOtherPositive$1(r, 24); + if (t2) + g = B.JSInt_methods._shrOtherPositive$1(g, 8); + else if (t1 === 32) + g = B.JSInt_methods._shrOtherPositive$1(g, 24); + if (t2) + b = B.JSInt_methods._shrOtherPositive$1(b, 8); + else if (t1 === 32) + b = B.JSInt_methods._shrOtherPositive$1(b, 24); + if (t2) + a = B.JSInt_methods._shrOtherPositive$1(a, 8); + else if (t1 === 32) + a = B.JSInt_methods._shrOtherPositive$1(a, 24); + t1 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(a, 0, 255)); + t2 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(b, 0, 255)); + t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(g, 0, 255)); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(r, 0, 255)); + t5 = _this.image; + t6 = t5.data; + t5 = py * t5.width + px; + if (!(t5 >= 0 && t5 < t6.length)) + return A.ioore(t6, t5); + t6[t5] = (t1 << 24 | t2 << 16 | t3 << 8 | t4) >>> 0; + } + } + } + ++x; + ++px; + } + ++y; + ++py; + } + } else + throw A.wrapException(A.ImageException$("Unsupported bitsPerSample: " + t1)); + }, + _jpegToImage$6(tile, image, outX, outY, tileWidth, tileHeight) { + var t1, t2, t3, t4, t5, t6, y, t7, t8, x, t9, t10; + for (t1 = tile.data, t2 = tile.width, t3 = t1.length, t4 = image.data, t5 = image.width, t6 = t4.length, y = 0; y < tileHeight; ++y) + for (t7 = y * t2, t8 = (y + outY) * t5, x = 0; x < tileWidth; ++x) { + t9 = t7 + x; + if (!(t9 >= 0 && t9 < t3)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t8 + (x + outX); + if (!(t10 >= 0 && t10 < t6)) + return A.ioore(t4, t10); + t4[t10] = t9; + } + }, + _decodeBilevelTile$3(p, tileX, tileY) { + var bdata, outX, t2, outY, t3, byteCount, bytesInThisTile, j, i, count, t4, t5, t6, exception, br, white, black, img, py, y, px, x, t7, _this = this, _null = null, _4278190080 = 4278190080, _4294967295 = 4294967295, + tileIndex = tileY * A._lateReadCheck(_this.__TiffImage_tilesX, "tilesX") + tileX, + t1 = _this.tileOffsets; + if (!(tileIndex >= 0 && tileIndex < t1.length)) + return A.ioore(t1, tileIndex); + p.offset = t1[tileIndex]; + t1 = _this.tileWidth; + outX = tileX * t1; + t2 = _this.tileHeight; + outY = tileY * t2; + t3 = _this.tileByteCounts; + if (!(tileIndex < t3.length)) + return A.ioore(t3, tileIndex); + byteCount = t3[tileIndex]; + bdata = null; + t3 = _this.compression; + if (t3 === 32773) { + bytesInThisTile = B.JSInt_methods.$mod(t1, 8) === 0 ? B.JSInt_methods._tdivFast$1(t1, 8) * t2 : (B.JSInt_methods._tdivFast$1(t1, 8) + 1) * t2; + bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); + _this._decodePackbits$3(p, bytesInThisTile, bdata.buffer); + } else if (t3 === 5) { + bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); + A.LzwDecoder$().decode$2(0, A.InputBuffer$from(p, byteCount, 0), bdata.buffer); + if (_this.predictor === 2) + for (j = 0; j < _this.height; ++j) { + i = _this.samplesPerPixel; + count = i * (j * _this.width + 1); + for (; t1 = _this.width, t2 = _this.samplesPerPixel, i < t1 * t2; ++i) { + t1 = bdata; + t3 = t1.buffer; + t1 = t1.offset + count; + if (!(t1 >= 0 && t1 < t3.length)) + return A.ioore(t3, t1); + t4 = t3[t1]; + t5 = bdata; + t6 = t5.buffer; + t2 = t5.offset + (count - t2); + if (!(t2 >= 0 && t2 < t6.length)) + return A.ioore(t6, t2); + J.$indexSet$ax(t3, t1, t4 + t6[t2]); + ++count; + } + } + } else if (t3 === 2) { + bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); + try { + A.TiffFaxDecoder$(_this.fillOrder, t1, t2).decode1D$4(bdata, p, 0, _this.tileHeight); + } catch (exception) { + } + } else if (t3 === 3) { + bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); + try { + A.TiffFaxDecoder$(_this.fillOrder, t1, t2).decode2D$5(bdata, p, 0, _this.tileHeight, _this.t4Options); + } catch (exception) { + } + } else if (t3 === 4) { + bdata = A.InputBuffer$(new Uint8Array(t1 * t2), false, _null, 0); + try { + A.TiffFaxDecoder$(_this.fillOrder, t1, t2).decodeT6$5(bdata, p, 0, _this.tileHeight, _this.t6Options); + } catch (exception) { + } + } else if (t3 === 8) + bdata = A.InputBuffer$(B.C__ZLibDecoder.decodeBuffer$2$verify(A.InputStream$(type$.List_int._as(p.toList$2(0, 0, byteCount)), 1, _null, 0), false), false, _null, 0); + else if (t3 === 32946) { + t1 = A.Inflate$(p.toList$2(0, 0, byteCount)).output; + bdata = A.InputBuffer$(type$.List_int._as(A.NativeUint8List_NativeUint8List$view(t1._output_stream$_buffer.buffer, 0, t1.length)), false, _null, 0); + } else if (t3 === 1) + bdata = p; + else + throw A.wrapException(A.ImageException$("Unsupported Compression Type: " + t3)); + br = new A.TiffBitReader(bdata); + t1 = _this.isWhiteZero; + white = t1 ? _4278190080 : _4294967295; + black = t1 ? _4294967295 : _4278190080; + img = _this.image; + for (t1 = img.data, t2 = img.width, t3 = t1.length, t4 = img.height, py = outY, y = 0; y < _this.tileHeight; ++y, ++py) { + for (t5 = py * t2, t6 = py < t4, px = outX, x = 0; x < _this.tileWidth; ++x, ++px) { + if (!t6 || px >= t2) + break; + t7 = t5 + px; + if (br.readBits$1(1) === 0) { + if (!(t7 >= 0 && t7 < t3)) + return A.ioore(t1, t7); + t1[t7] = black; + } else { + if (!(t7 >= 0 && t7 < t3)) + return A.ioore(t1, t7); + t1[t7] = white; + } + } + br._bitPos = 0; + } + }, + _decodePackbits$3(data, arraySize, dst) { + var t1, srcCount, dstCount, srcCount0, t2, t3, t4, t5, b, i, dstCount0; + type$.List_int._as(dst); + for (t1 = J.getInterceptor$ax(dst), srcCount = 0, dstCount = 0; dstCount < arraySize;) { + srcCount0 = srcCount + 1; + t2 = data.buffer; + t3 = data.offset; + t4 = t3 + srcCount; + t5 = t2.length; + if (!(t4 >= 0 && t4 < t5)) + return A.ioore(t2, t4); + t4 = t2[t4]; + $.$get$__uint8()[0] = t4; + t4 = $.$get$__uint8ToInt8(); + if (0 >= t4.length) + return A.ioore(t4, 0); + b = t4[0]; + if (b >= 0 && b <= 127) + for (t2 = b + 1, srcCount = srcCount0, i = 0; i < t2; ++i, dstCount = dstCount0, srcCount = srcCount0) { + dstCount0 = dstCount + 1; + srcCount0 = srcCount + 1; + t3 = data.buffer; + t4 = data.offset + srcCount; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t1.$indexSet(dst, dstCount, t3[t4]); + } + else { + t4 = b <= -1 && b >= -127; + srcCount = srcCount0 + 1; + if (t4) { + t3 += srcCount0; + if (!(t3 >= 0 && t3 < t5)) + return A.ioore(t2, t3); + t3 = t2[t3]; + for (t2 = -b + 1, i = 0; i < t2; ++i, dstCount = dstCount0) { + dstCount0 = dstCount + 1; + t1.$indexSet(dst, dstCount, t3); + } + } + } + } + }, + _readTag$2(type, defaultValue) { + var t1 = this.tags; + if (!t1.containsKey$1(0, type)) + return defaultValue; + return t1.$index(0, type).readValue$0(0); + }, + _readTag$1(type) { + return this._readTag$2(type, 0); + }, + _readTagList$1(type) { + var t1 = this.tags; + if (!t1.containsKey$1(0, type)) + return null; + return t1.$index(0, type).readValues$0(); + }, + set$tileOffsets(tileOffsets) { + this.tileOffsets = type$.nullable_List_int._as(tileOffsets); + }, + set$tileByteCounts(tileByteCounts) { + this.tileByteCounts = type$.nullable_List_int._as(tileByteCounts); + }, + set$colorMap(colorMap) { + this.colorMap = type$.nullable_List_int._as(colorMap); + } + }; + A.TiffInfo.prototype = {}; + A.LzwDecoder.prototype = { + decode$2(_, p, out) { + var outLen, t1, code, oldCode, t2, t3, i, t4, _this = this, _s5_ = "_data", + _s11_ = "_outPointer", + _s4_ = "_out", + _s13_ = "_bufferLength"; + type$.List_int._as(out); + _this.set$__LzwDecoder__out(out); + outLen = out.length; + _this.__LzwDecoder__outPointer = 0; + t1 = type$.Uint8List._as(p.buffer); + _this.__LzwDecoder__data = t1; + _this.__LzwDecoder__dataLength = A._lateReadCheck(t1, _s5_).length; + _this._bytePointer = p.offset; + t1 = A._lateReadCheck(_this.__LzwDecoder__data, _s5_); + if (0 >= t1.length) + return A.ioore(t1, 0); + if (t1[0] === 0) { + t1 = A._lateReadCheck(_this.__LzwDecoder__data, _s5_); + if (1 >= t1.length) + return A.ioore(t1, 1); + t1 = t1[1] === 1; + } else + t1 = false; + if (t1) + throw A.wrapException(A.ImageException$("Invalid LZW Data")); + _this._initializeStringTable$0(); + _this._nextBits = _this._nextData = 0; + code = _this._getNextCode$0(); + t1 = _this._tiff_lzw_decoder$_buffer; + oldCode = 0; + while (true) { + if (!(code !== 257 && A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_) < outLen)) + break; + if (code === 256) { + _this._initializeStringTable$0(); + code = _this._getNextCode$0(); + _this.__LzwDecoder__bufferLength = 0; + if (code === 257) + break; + t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); + t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); + _this.__LzwDecoder__outPointer = t3 + 1; + J.$indexSet$ax(t2, t3, code); + oldCode = code; + } else { + t2 = _this._tableIndex; + t2.toString; + if (code < t2) { + _this._getString$1(code); + for (i = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; i >= 0; --i) { + t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); + t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); + _this.__LzwDecoder__outPointer = t3 + 1; + if (!(i < 4096)) + return A.ioore(t1, i); + J.$indexSet$ax(t2, t3, t1[i]); + } + t2 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; + if (!(t2 >= 0 && t2 < 4096)) + return A.ioore(t1, t2); + _this._addString$2(oldCode, t1[t2]); + } else { + _this._getString$1(oldCode); + for (i = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; i >= 0; --i) { + t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); + t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); + _this.__LzwDecoder__outPointer = t3 + 1; + if (!(i < 4096)) + return A.ioore(t1, i); + J.$indexSet$ax(t2, t3, t1[i]); + } + t2 = A._lateReadCheck(_this.__LzwDecoder__out, _s4_); + t3 = A._lateReadCheck(_this.__LzwDecoder__outPointer, _s11_); + _this.__LzwDecoder__outPointer = t3 + 1; + t4 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; + if (!(t4 >= 0 && t4 < 4096)) + return A.ioore(t1, t4); + J.$indexSet$ax(t2, t3, t1[t4]); + t4 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_) - 1; + if (!(t4 >= 0 && t4 < 4096)) + return A.ioore(t1, t4); + _this._addString$2(oldCode, t1[t4]); + } + oldCode = code; + } + code = _this._getNextCode$0(); + } + }, + _addString$2(string, newString) { + var _this = this, + t1 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"), + t2 = _this._tableIndex; + t2.toString; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = newString; + t2 = A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix"); + t1 = _this._tableIndex; + t1.toString; + if (!(t1 < t2.length)) + return A.ioore(t2, t1); + t2[t1] = string; + t1 = _this._tableIndex = t1 + 1; + if (t1 === 511) + _this._bitsToGet = 10; + else if (t1 === 1023) + _this._bitsToGet = 11; + else if (t1 === 2047) + _this._bitsToGet = 12; + }, + _getString$1(code) { + var t1, t2, t3, c, _this = this, + _s13_ = "_bufferLength"; + _this.__LzwDecoder__bufferLength = 0; + t1 = _this._tiff_lzw_decoder$_buffer; + t2 = A._lateReadCheck(0, _s13_); + _this.__LzwDecoder__bufferLength = t2 + 1; + t3 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"); + if (!(code < t3.length)) + return A.ioore(t3, code); + t3 = t3[code]; + if (t2 >>> 0 !== t2 || t2 >= 4096) + return A.ioore(t1, t2); + t1[t2] = t3; + t3 = A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix"); + if (!(code < t3.length)) + return A.ioore(t3, code); + c = t3[code]; + for (; c !== 4098;) { + t2 = A._lateReadCheck(_this.__LzwDecoder__bufferLength, _s13_); + _this.__LzwDecoder__bufferLength = t2 + 1; + t3 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"); + if (!(c >= 0 && c < t3.length)) + return A.ioore(t3, c); + t3 = t3[c]; + if (t2 >>> 0 !== t2 || t2 >= 4096) + return A.ioore(t1, t2); + t1[t2] = t3; + t3 = A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix"); + if (!(c < t3.length)) + return A.ioore(t3, c); + c = t3[c]; + } + }, + _getNextCode$0() { + var t1, t2, t3, _this = this, + _s11_ = "_dataLength"; + if (_this._bytePointer >= A._lateReadCheck(_this.__LzwDecoder__dataLength, _s11_)) + return 257; + for (; t1 = _this._nextBits, t2 = _this._bitsToGet, t1 < t2;) { + if (_this._bytePointer >= A._lateReadCheck(_this.__LzwDecoder__dataLength, _s11_)) + return 257; + t1 = _this._nextData; + t2 = A._lateReadCheck(_this.__LzwDecoder__data, "_data"); + t3 = _this._bytePointer++; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + _this._nextData = (t1 << 8 >>> 0) + t2[t3] >>> 0; + _this._nextBits += 8; + } + t1 -= t2; + _this._nextBits = t1; + t1 = B.JSInt_methods._shrReceiverPositive$1(_this._nextData, t1); + t2 -= 9; + if (!(t2 >= 0 && t2 < 4)) + return A.ioore(B.List_511_1023_2047_4095, t2); + return t1 & B.List_511_1023_2047_4095[t2]; + }, + _initializeStringTable$0() { + var t1, i, _this = this; + _this.__LzwDecoder__table = new Uint8Array(4096); + t1 = new Uint32Array(4096); + _this.__LzwDecoder__prefix = t1; + B.NativeUint32List_methods.fillRange$3(A._lateReadCheck(t1, "_prefix"), 0, A._lateReadCheck(_this.__LzwDecoder__prefix, "_prefix").length, 4098); + for (i = 0; i < 256; ++i) { + t1 = A._lateReadCheck(_this.__LzwDecoder__table, "_table"); + if (!(i < t1.length)) + return A.ioore(t1, i); + t1[i] = i; + } + _this._bitsToGet = 9; + _this._tableIndex = 258; + }, + set$__LzwDecoder__out(__LzwDecoder__out) { + this.__LzwDecoder__out = type$.List_int._as(__LzwDecoder__out); + } + }; + A.TiffDecoder.prototype = { + decodeImage$1(bytes) { + var _this = this, + t1 = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); + _this.__TiffDecoder__input = t1; + t1 = _this.info = _this._readHeader$1(A._lateReadCheck(t1, "_input")); + if (t1 == null) + return null; + t1 = t1.images; + if (0 >= t1.length) + return A.ioore(t1, 0); + return t1[0].decode$1(0, A._lateReadCheck(_this.__TiffDecoder__input, "_input")); + }, + _readHeader$1(p) { + var p2, img, t2, offset, t3, img0, t4, exception, t5, _null = null, + t1 = A._setArrayType([], type$.JSArray_TiffImage), + info = new A.TiffInfo(t1), + byteOrder = p.readUint16$0(); + if (byteOrder !== 18761 && byteOrder !== 19789) + return _null; + if (byteOrder === 19789) + p.bigEndian = true; + else + p.bigEndian = false; + t2 = p.readUint16$0(); + info.signature = t2; + if (t2 !== 42) + return _null; + offset = p.readUint32$0(); + p2 = A.InputBuffer$from(p, _null, 0); + p2.offset = offset; + for (t2 = type$.int, t3 = type$.TiffEntry; offset !== 0;) { + img = null; + try { + img0 = new A.TiffImage(A.LinkedHashMap_LinkedHashMap$_empty(t2, t3)); + img0.TiffImage$1(p2); + img = img0; + t4 = img; + if (!(t4.width !== 0 && t4.height !== 0)) + break; + } catch (exception) { + break; + } + B.JSArray_methods.add$1(t1, img); + t4 = t1.length; + if (t4 === 1) { + if (0 >= t4) + return A.ioore(t1, 0); + t5 = t1[0]; + info.width = t5.width; + if (0 >= t4) + return A.ioore(t1, 0); + info.height = t5.height; + } + offset = p2.readUint32$0(); + if (offset !== 0) + p2.offset = offset; + } + return t1.length !== 0 ? info : _null; + } + }; + A.VP8.prototype = { + decodeHeader$0() { + var t2, + t1 = this.input, + bits = t1.readUint24$0(); + if ((bits & 1) !== 0) + return false; + if ((bits >>> 1 & 7) > 3) + return false; + if ((bits >>> 4 & 1) === 0) + return false; + this._frameHeader.__VP8FrameHeader_partitionLength = bits >>> 5; + if (t1.readUint24$0() !== 2752925) + return false; + t2 = this._webp; + t2.width = t1.readUint16$0(); + t2.height = t1.readUint16$0(); + return true; + }, + decode$0(_) { + var t1, _this = this, _null = null; + if (!_this._getHeaders$0()) + return _null; + t1 = _this._webp; + _this.output = A.Image$(t1.width, t1.height, B.Channels_1, _null, _null); + _this._initFrame$0(); + if (!_this._parseFrame$0()) + return _null; + return _this.output; + }, + _getHeaders$0() { + var t1, i, t2, t3, _this = this, + _s15_ = "partitionLength"; + if (!_this.decodeHeader$0()) + return false; + _this._proba = A.VP8Proba$(); + for (t1 = _this._dqm, i = 0; i < 4; ++i) { + t2 = new Int32Array(2); + t3 = new Int32Array(2); + B.JSArray_methods.$indexSet(t1, i, new A.VP8QuantMatrix(t2, t3, new Int32Array(2))); + } + t1 = _this._webp; + t2 = t1.width; + if (typeof t2 !== "number") + return t2.$shr(); + B.JSInt_methods._shrOtherPositive$1(t2, 8); + t1 = t1.height; + if (typeof t1 !== "number") + return t1.$shr(); + B.JSInt_methods._shrOtherPositive$1(t1, 8); + _this.__VP8__cropLeft = _this._cropTop = 0; + _this.__VP8__cropRight = t2; + _this._cropBottom = t1; + _this._mbWidth = B.JSInt_methods._shrOtherPositive$1(t2 + 15, 4); + _this._mbHeight = B.JSInt_methods._shrOtherPositive$1(t1 + 15, 4); + _this.__VP8__segment = 0; + t1 = _this.input; + t2 = _this._frameHeader; + _this.__VP8_br = A.VP8BitReader$(t1.subset$1(A._lateReadCheck(t2.__VP8FrameHeader_partitionLength, _s15_))); + t1.offset += A._lateReadCheck(t2.__VP8FrameHeader_partitionLength, _s15_); + A._lateReadCheck(_this.__VP8_br, "br").getValue$1(1); + A._lateReadCheck(_this.__VP8_br, "br").getValue$1(1); + _this._parseSegmentHeader$2(_this._segmentHeader, _this._proba); + _this._parseFilterHeader$0(); + if (!_this._parsePartitions$1(t1)) + return false; + _this._parseQuant$0(); + A._lateReadCheck(_this.__VP8_br, "br").getValue$1(1); + _this._parseProba$0(); + return true; + }, + _parseSegmentHeader$2(hdr, proba) { + var s, t2, value, _this = this, _s2_ = "br", + t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; + hdr.useSegment = t1; + if (t1) { + hdr.updateMap = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; + if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { + hdr.absoluteDelta = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; + for (t1 = hdr.quantizer, s = 0; s < 4; ++s) { + if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { + t2 = A._lateReadCheck(_this.__VP8_br, _s2_); + value = t2.getValue$1(7); + t2 = t2.getValue$1(1) === 1 ? -value : value; + } else + t2 = 0; + t1[s] = t2; + } + for (t1 = hdr.filterStrength, s = 0; s < 4; ++s) { + if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { + t2 = A._lateReadCheck(_this.__VP8_br, _s2_); + value = t2.getValue$1(6); + t2 = t2.getValue$1(1) === 1 ? -value : value; + } else + t2 = 0; + t1[s] = t2; + } + } + if (hdr.updateMap) + for (s = 0; s < 3; ++s) { + t1 = proba.segments; + t1[s] = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(8) : 255; + } + } else + hdr.updateMap = false; + return true; + }, + _parseFilterHeader$0() { + var t1, i, t2, value, _this = this, _s2_ = "br", + hdr = _this._filterHeader; + hdr.__VP8FilterHeader_simple = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; + hdr.level = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(6); + hdr.__VP8FilterHeader_sharpness = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(3); + t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; + hdr.__VP8FilterHeader_useLfDelta = t1; + if (A._lateReadCheck(t1, "useLfDelta")) + if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { + for (t1 = hdr.refLfDelta, i = 0; i < 4; ++i) + if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { + t2 = A._lateReadCheck(_this.__VP8_br, _s2_); + value = t2.getValue$1(6); + t1[i] = t2.getValue$1(1) === 1 ? -value : value; + } + for (t1 = hdr.modeLfDelta, i = 0; i < 4; ++i) + if (A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0) { + t2 = A._lateReadCheck(_this.__VP8_br, _s2_); + value = t2.getValue$1(6); + t1[i] = t2.getValue$1(1) === 1 ? -value : value; + } + } + if (hdr.level === 0) + t1 = 0; + else + t1 = A._lateReadCheck(hdr.__VP8FilterHeader_simple, "simple") ? 1 : 2; + _this._filterType = t1; + return true; + }, + _parsePartitions$1(input) { + var lastPart, partStart, sz, p, szb, t2, t3, t4, t5, t6, partEnd, + bufEnd = input.end - input.offset, + t1 = B.JSInt_methods._shlPositive$1(1, A._lateReadCheck(this.__VP8_br, "br").getValue$1(2)); + this.__VP8__numPartitions = t1; + lastPart = A._lateReadCheck(t1, "_numPartitions") - 1; + partStart = lastPart * 3; + if (bufEnd < partStart) + return false; + for (t1 = this._partitions, sz = 0, p = 0; p < lastPart; ++p, partStart = partEnd) { + szb = input.subset$2$offset(3, sz); + t2 = szb.buffer; + t3 = szb.offset; + t4 = t2.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t2, t3); + t5 = t2[t3]; + t6 = t3 + 1; + if (!(t6 < t4)) + return A.ioore(t2, t6); + t6 = t2[t6]; + t3 += 2; + if (!(t3 < t4)) + return A.ioore(t2, t3); + partEnd = partStart + ((t5 | t6 << 8 | t2[t3] << 16) >>> 0); + if (partEnd > bufEnd) + partEnd = bufEnd; + t2 = new A.VP8BitReader(input.subset$2$position(partEnd - partStart, partStart)); + t2.__VP8BitReader__range = 254; + t2.__VP8BitReader__value = 0; + t2.__VP8BitReader__bits = -8; + B.JSArray_methods.$indexSet(t1, p, t2); + sz += 3; + } + B.JSArray_methods.$indexSet(t1, lastPart, A.VP8BitReader$(input.subset$2$position(bufEnd - partStart, input.offset - input.start + partStart))); + return partStart < bufEnd; + }, + _parseQuant$0() { + var t1, t2, i, q, t3, m, t4, _this = this, _s2_ = "br", + base_q0 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(7), + dqy1_dc = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, + dqy2_dc = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, + dqy2_ac = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, + dquv_dc = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, + dquv_ac = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getSignedValue$1(4) : 0, + hdr = _this._segmentHeader; + for (t1 = _this._dqm, t2 = hdr.quantizer, i = 0; i < 4; ++i) { + if (hdr.useSegment) { + q = t2[i]; + if (!hdr.absoluteDelta) + q += base_q0; + } else { + if (i > 0) { + t3 = t1[0]; + if (!(i >= 0 && i < 4)) + return A.ioore(t1, i); + t1[i] = t3; + continue; + } + q = base_q0; + } + m = t1[i]; + t3 = m.y1Mat; + t4 = q + dqy1_dc; + if (t4 < 0) + t4 = 0; + else if (t4 > 127) + t4 = 127; + t3[0] = B.List_8co1[t4]; + if (q < 0) + t4 = 0; + else + t4 = q > 127 ? 127 : q; + t3[1] = B.List_AiM[t4]; + t4 = m.y2Mat; + t3 = q + dqy2_dc; + if (t3 < 0) + t3 = 0; + else if (t3 > 127) + t3 = 127; + t4[0] = B.List_8co1[t3] * 2; + t3 = q + dqy2_ac; + if (t3 < 0) + t3 = 0; + else if (t3 > 127) + t3 = 127; + t4[1] = B.List_AiM[t3] * 101581 >>> 16; + if (t4[1] < 8) + t4[1] = 8; + t3 = m.uvMat; + t4 = q + dquv_dc; + if (t4 < 0) + t4 = 0; + else if (t4 > 117) + t4 = 117; + t3[0] = B.List_8co1[t4]; + t4 = q + dquv_ac; + if (t4 < 0) + t4 = 0; + else if (t4 > 127) + t4 = 127; + t3[1] = B.List_AiM[t4]; + } + }, + _parseProba$0() { + var t, b, c, p, v, t1, _this = this, _s2_ = "br", + proba = _this._proba; + for (t = 0; t < 4; ++t) + for (b = 0; b < 8; ++b) + for (c = 0; c < 3; ++c) + for (p = 0; p < 11; ++p) { + v = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(B.List_MIe[t][b][c][p]) !== 0 ? A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(8) : B.List_S8N[t][b][c][p]; + t1 = proba.bands; + if (!(t < t1.length)) + return A.ioore(t1, t); + t1 = t1[t]; + if (!(b < t1.length)) + return A.ioore(t1, b); + t1 = t1[b].probas; + if (!(c < t1.length)) + return A.ioore(t1, c); + t1[c][p] = v; + } + t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(1) !== 0; + _this.__VP8__useSkipProba = t1; + if (A._lateReadCheck(t1, "_useSkipProba")) + _this.__VP8__skipP = A._lateReadCheck(_this.__VP8_br, _s2_).getValue$1(8); + }, + _precomputeFilterStrengths$0() { + var hdr, t2, t3, t4, s, baseLevel, t5, i4x4, info, level, ilevel, _this = this, + _s9_ = "sharpness", + t1 = _this._filterType; + t1.toString; + if (t1 > 0) { + hdr = _this._filterHeader; + for (t1 = hdr.refLfDelta, t2 = hdr.modeLfDelta, t3 = _this._segmentHeader, t4 = t3.filterStrength, s = 0; s < 4; ++s) { + if (t3.useSegment) { + baseLevel = t4[s]; + if (!t3.absoluteDelta) { + t5 = hdr.level; + t5.toString; + baseLevel += t5; + } + } else + baseLevel = hdr.level; + for (i4x4 = 0; i4x4 <= 1; ++i4x4) { + info = J.$index$asx(J.$index$asx(A._lateReadCheck(_this.__VP8__fStrengths, "_fStrengths"), s), i4x4); + if (A._lateReadCheck(hdr.__VP8FilterHeader_useLfDelta, "useLfDelta")) { + baseLevel.toString; + level = baseLevel + t1[0]; + if (i4x4 !== 0) + level += t2[0]; + } else + level = baseLevel; + level.toString; + if (level < 0) + level = 0; + else if (level > 63) + level = 63; + if (level > 0) { + if (A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_) > 0) { + ilevel = A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_) > 4 ? B.JSInt_methods._shrOtherPositive$1(level, 2) : B.JSInt_methods._shrOtherPositive$1(level, 1); + if (ilevel > 9 - A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_)) + ilevel = 9 - A._lateReadCheck(hdr.__VP8FilterHeader_sharpness, _s9_); + } else + ilevel = level; + if (ilevel < 1) + ilevel = 1; + info.fInnerLevel = ilevel; + info.fLimit = 2 * level + ilevel; + if (level >= 40) + t5 = 2; + else + t5 = level >= 15 ? 1 : 0; + info.hevThresh = t5; + } else + info.fLimit = 0; + info.fInner = i4x4 !== 0; + } + } + } + }, + _initFrame$0() { + var _list, i, _i, t3, t4, extra_rows, extra_y, extra_uv, uvWidth, _length, _this = this, _null = null, + t1 = _this._webp, + t2 = t1._webp_info$_alphaData; + if (t2 != null) + _this._alphaData = t2; + _list = J.JSArray_JSArray$allocateFixed(4, type$.List_VP8FInfo); + for (t2 = type$.JSArray_VP8FInfo, i = 0; i < 4; ++i) + _list[i] = A._setArrayType([new A.VP8FInfo(), new A.VP8FInfo()], t2); + _this.set$__VP8__fStrengths(type$.List_List_VP8FInfo._as(_list)); + t2 = _this._mbWidth; + t2.toString; + _list = J.JSArray_JSArray$allocateFixed(t2, type$.VP8TopSamples); + for (_i = 0; _i < t2; ++_i) { + t3 = new Uint8Array(16); + t4 = new Uint8Array(8); + _list[_i] = new A.VP8TopSamples(t3, t4, new Uint8Array(8)); + } + _this.set$__VP8__yuvT(type$.List_VP8TopSamples._as(_list)); + _this.__VP8__yuvBlock = new Uint8Array(832); + t2 = _this._mbWidth; + t2.toString; + _this._intraT = new Uint8Array(4 * t2); + t3 = _this._cacheYStride = 16 * t2; + t2 = _this._cacheUVStride = 8 * t2; + t4 = _this._filterType; + t4.toString; + if (!(t4 < 3)) + return A.ioore(B.List_0_2_8, t4); + extra_rows = B.List_0_2_8[t4]; + extra_y = extra_rows * t3; + extra_uv = (extra_rows / 2 | 0) * t2; + _this.__VP8__cacheY = A.InputBuffer$(new Uint8Array(16 * t3 + extra_y), false, _null, extra_y); + t2 = 8 * t2 + extra_uv; + _this.__VP8__cacheU = A.InputBuffer$(new Uint8Array(t2), false, _null, extra_uv); + _this.__VP8__cacheV = A.InputBuffer$(new Uint8Array(t2), false, _null, extra_uv); + t1 = t1.width; + _this.__VP8__tmpY = A.InputBuffer$(new Uint8Array(t1), false, _null, 0); + uvWidth = B.JSInt_methods._shrOtherPositive$1(t1 + 1, 1); + _this.__VP8__tmpU = A.InputBuffer$(new Uint8Array(uvWidth), false, _null, 0); + _this.__VP8__tmpV = A.InputBuffer$(new Uint8Array(uvWidth), false, _null, 0); + if (t4 === 2) + _this.__VP8__tlMbY = _this.__VP8__tlMbX = 0; + else { + t1 = B.JSInt_methods._tdivFast$1(A._lateReadCheck(_this.__VP8__cropLeft, "_cropLeft") - extra_rows, 16); + _this.__VP8__tlMbX = t1; + t2 = _this._cropTop; + t2.toString; + _this.__VP8__tlMbY = B.JSInt_methods._tdivFast$1(t2 - extra_rows, 16); + if (A._lateReadCheck(t1, "_tlMbX") < 0) + _this.__VP8__tlMbX = 0; + if (A._lateReadCheck(_this.__VP8__tlMbY, "_tlMbY") < 0) + _this.__VP8__tlMbY = 0; + } + t1 = _this._cropBottom; + t1.toString; + _this._brMbY = B.JSInt_methods._tdivFast$1(t1 + 15 + extra_rows, 16); + t1 = B.JSInt_methods._tdivFast$1(A._lateReadCheck(_this.__VP8__cropRight, "_cropRight") + 15 + extra_rows, 16); + _this._brMbX = t1; + t2 = _this._mbWidth; + t2.toString; + if (t1 > t2) + _this._brMbX = t2; + t1 = _this._brMbY; + t1.toString; + t3 = _this._mbHeight; + t3.toString; + if (t1 > t3) + _this._brMbY = t3; + _length = t2 + 1; + _list = J.JSArray_JSArray$allocateFixed(_length, type$.VP8MB); + for (_i = 0; _i < _length; ++_i) + _list[_i] = new A.VP8MB(); + _this.set$__VP8__mbInfo(type$.List_VP8MB._as(_list)); + t1 = _this._mbWidth; + t1.toString; + _list = J.JSArray_JSArray$allocateFixed(t1, type$.VP8MBData); + for (_i = 0; _i < t1; ++_i) { + t2 = new Int16Array(384); + _list[_i] = new A.VP8MBData(t2, new Uint8Array(16)); + } + _this.set$__VP8__mbData(type$.List_VP8MBData._as(_list)); + t1 = _this._mbWidth; + t1.toString; + _this.set$__VP8__fInfo(type$.List_nullable_VP8FInfo._as(A.List_List$filled(t1, _null, false, type$.nullable_VP8FInfo))); + _this._precomputeFilterStrengths$0(); + A.VP8Filter__initTables(); + _this.__VP8__dsp = new A.VP8Filter(); + return true; + }, + _parseFrame$0() { + var t1, t2, t3, t4, t5, tokenBr, left, mb, block, skip, t6, useFilter, _this = this, + _s7_ = "_mbInfo", + _s2_ = "br", + _s10_ = "isIntra4x4"; + _this._mbY = 0; + t1 = _this._intraL; + t2 = _this._segmentHeader; + t3 = _this._partitions; + t4 = 0; + while (true) { + t5 = _this._brMbY; + t5.toString; + if (!(t4 < t5)) + break; + t4 = (t4 & A._lateReadCheck(_this.__VP8__numPartitions, "_numPartitions") - 1) >>> 0; + if (!(t4 >= 0 && t4 < 8)) + return A.ioore(t3, t4); + tokenBr = t3[t4]; + while (true) { + t4 = _this._mbX; + t5 = _this._mbWidth; + t5.toString; + if (!(t4 < t5)) + break; + left = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, _s7_), 0); + mb = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, _s7_), 1 + _this._mbX); + block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), _this._mbX); + if (t2.updateMap) { + t4 = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(_this._proba.segments[0]); + t5 = _this.__VP8_br; + _this.__VP8__segment = t4 === 0 ? A._lateReadCheck(t5, _s2_).getBit$1(_this._proba.segments[1]) : 2 + A._lateReadCheck(t5, _s2_).getBit$1(_this._proba.segments[2]); + } + skip = A._lateReadCheck(_this.__VP8__useSkipProba, "_useSkipProba") && A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(A._lateReadCheck(_this.__VP8__skipP, "_skipP")) !== 0; + _this._parseIntraMode$0(); + if (!skip) + skip = _this._parseResiduals$2(mb, tokenBr); + else { + left.nz = mb.nz = 0; + if (!A._lateReadCheck(block.__VP8MBData_isIntra4x4, _s10_)) + left.nzDc = mb.nzDc = 0; + block.__VP8MBData_nonZeroUV = block.nonZeroY = 0; + } + t4 = _this._filterType; + t4.toString; + if (t4 > 0) { + t4 = A._lateReadCheck(_this.__VP8__fInfo, "_fInfo"); + t5 = _this._mbX; + t6 = J.$index$asx(A._lateReadCheck(_this.__VP8__fStrengths, "_fStrengths"), A._lateReadCheck(_this.__VP8__segment, "_segment")); + J.$indexSet$ax(t4, t5, J.$index$asx(t6, A._lateReadCheck(block.__VP8MBData_isIntra4x4, _s10_) ? 1 : 0)); + t4 = J.$index$asx(A._lateReadCheck(_this.__VP8__fInfo, "_fInfo"), _this._mbX); + t4.toString; + t4.fInner = t4.fInner || !skip; + } + ++_this._mbX; + } + left = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, _s7_), 0); + left.nzDc = left.nz = 0; + B.NativeUint8List_methods.fillRange$3(t1, 0, 4, 0); + _this._mbX = 0; + _this._reconstructRow$0(); + t4 = _this._filterType; + t4.toString; + if (t4 > 0) + if (_this._mbY >= A._lateReadCheck(_this.__VP8__tlMbY, "_tlMbY")) { + t4 = _this._mbY; + t5 = _this._brMbY; + t5.toString; + t5 = t4 <= t5; + useFilter = t5; + } else + useFilter = false; + else + useFilter = false; + if (!_this._finishRow$1(useFilter)) + return false; + t4 = ++_this._mbY; + } + return true; + }, + _reconstructRow$0() { + var t2, block, j, t3, top_yuv, coeffs, bits, topRight, topRight32, t4, p, n, dst, c1, t5, c2, y_out, u_out, _this = this, _null = null, + _s9_ = "_yuvBlock", + _s4_ = "_dsp", + mb_y = _this._mbY, + y_dst = A.InputBuffer$(A._lateReadCheck(_this.__VP8__yuvBlock, _s9_), false, _null, 40), + u_dst = A.InputBuffer$(A._lateReadCheck(_this.__VP8__yuvBlock, _s9_), false, _null, 584), + v_dst = A.InputBuffer$(A._lateReadCheck(_this.__VP8__yuvBlock, _s9_), false, _null, 600), + t1 = mb_y > 0, + mb_x = 0; + while (true) { + t2 = _this._mbWidth; + t2.toString; + if (!(mb_x < t2)) + break; + block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), mb_x); + if (mb_x > 0) { + for (j = -1; j < 16; ++j) { + t2 = j * 32; + y_dst.memcpy$4(t2 - 4, 4, y_dst, t2 + 12); + } + for (j = -1; j < 8; ++j) { + t2 = j * 32; + t3 = t2 - 4; + t2 += 4; + u_dst.memcpy$4(t3, 4, u_dst, t2); + v_dst.memcpy$4(t3, 4, v_dst, t2); + } + } else { + for (j = 0; j < 16; ++j) + J.$indexSet$ax(y_dst.buffer, y_dst.offset + (j * 32 - 1), 129); + for (j = 0; j < 8; ++j) { + t2 = j * 32 - 1; + J.$indexSet$ax(u_dst.buffer, u_dst.offset + t2, 129); + J.$indexSet$ax(v_dst.buffer, v_dst.offset + t2, 129); + } + if (t1) { + J.$indexSet$ax(v_dst.buffer, v_dst.offset + -33, 129); + J.$indexSet$ax(u_dst.buffer, u_dst.offset + -33, 129); + J.$indexSet$ax(y_dst.buffer, y_dst.offset + -33, 129); + } + } + top_yuv = J.$index$asx(A._lateReadCheck(_this.__VP8__yuvT, "_yuvT"), mb_x); + coeffs = block.coeffs; + bits = block.nonZeroY; + if (t1) { + y_dst.memcpy$3(-32, 16, top_yuv.y); + u_dst.memcpy$3(-32, 8, top_yuv.u); + v_dst.memcpy$3(-32, 8, top_yuv.v); + } else if (mb_x === 0) { + t2 = y_dst.buffer; + t3 = y_dst.offset + -33; + J.fillRange$3$ax(t2, t3, t3 + 21, 127); + t3 = u_dst.buffer; + t2 = u_dst.offset + -33; + J.fillRange$3$ax(t3, t2, t2 + 9, 127); + t2 = v_dst.buffer; + t3 = v_dst.offset + -33; + J.fillRange$3$ax(t2, t3, t3 + 9, 127); + } + if (A._lateReadCheck(block.__VP8MBData_isIntra4x4, "isIntra4x4")) { + topRight = A.InputBuffer$from(y_dst, _null, -16); + topRight32 = topRight.toUint32List$0(); + if (t1) { + t2 = _this._mbWidth; + t2.toString; + if (mb_x >= t2 - 1) { + t2 = top_yuv.y[15]; + t3 = topRight.buffer; + t4 = topRight.offset; + J.fillRange$3$ax(t3, t4, t4 + 4, t2); + } else + topRight.memcpy$3(0, 4, J.$index$asx(A._lateReadCheck(_this.__VP8__yuvT, "_yuvT"), mb_x + 1).y); + } + t2 = topRight32.length; + if (0 >= t2) + return A.ioore(topRight32, 0); + p = topRight32[0]; + if (96 >= t2) + return A.ioore(topRight32, 96); + topRight32[96] = p; + topRight32[64] = p; + topRight32[32] = p; + for (t2 = block.imodes, n = 0; n < 16; ++n, bits = bits << 2 >>> 0) { + dst = A.InputBuffer$from(y_dst, _null, B.List_cGl0[n]); + t3 = t2[n]; + if (!(t3 < 10)) + return A.ioore(B.List_sty, t3); + B.List_sty[t3].call$1(dst); + bits.toString; + t3 = n * 16; + _this._doTransform$3(bits, new A.InputBuffer(coeffs, t3, 384, t3, false), dst); + } + } else { + t2 = A.VP8__checkMode(mb_x, mb_y, block.imodes[0]); + t2.toString; + if (!(t2 < 7)) + return A.ioore(B.List_8aB, t2); + B.List_8aB[t2].call$1(y_dst); + if (bits !== 0) + for (n = 0; n < 16; ++n, bits = bits << 2 >>> 0) { + dst = A.InputBuffer$from(y_dst, _null, B.List_cGl0[n]); + bits.toString; + t2 = n * 16; + _this._doTransform$3(bits, new A.InputBuffer(coeffs, t2, 384, t2, false), dst); + } + } + t2 = A._lateReadCheck(block.__VP8MBData_nonZeroUV, "nonZeroUV"); + t3 = A.VP8__checkMode(mb_x, mb_y, block.uvmode); + t3.toString; + if (!(t3 < 7)) + return A.ioore(B.List_0W6, t3); + B.List_0W6[t3].call$1(u_dst); + B.List_0W6[t3].call$1(v_dst); + c1 = new A.InputBuffer(coeffs, 256, 384, 256, false); + if ((t2 & 255) !== 0) { + t3 = _this.__VP8__dsp; + if ((t2 & 170) !== 0) { + t3 = A._lateReadCheck(t3, _s4_); + t3.transformOne$2(c1, u_dst); + t3.transformOne$2(A.InputBuffer$from(c1, _null, 16), A.InputBuffer$from(u_dst, _null, 4)); + t4 = A.InputBuffer$from(c1, _null, 32); + t5 = A.InputBuffer$from(u_dst, _null, 128); + t3.transformOne$2(t4, t5); + t3.transformOne$2(A.InputBuffer$from(t4, _null, 16), A.InputBuffer$from(t5, _null, 4)); + } else + A._lateReadCheck(t3, _s4_).transformDCUV$2(c1, u_dst); + } + c2 = new A.InputBuffer(coeffs, 320, 384, 320, false); + t2 = B.JSInt_methods._shrOtherPositive$1(t2, 8); + if ((t2 & 255) !== 0) { + t3 = _this.__VP8__dsp; + if ((t2 & 170) !== 0) { + t2 = A._lateReadCheck(t3, _s4_); + t2.transformOne$2(c2, v_dst); + t2.transformOne$2(A.InputBuffer$from(c2, _null, 16), A.InputBuffer$from(v_dst, _null, 4)); + t3 = A.InputBuffer$from(c2, _null, 32); + t4 = A.InputBuffer$from(v_dst, _null, 128); + t2.transformOne$2(t3, t4); + t2.transformOne$2(A.InputBuffer$from(t3, _null, 16), A.InputBuffer$from(t4, _null, 4)); + } else + A._lateReadCheck(t3, _s4_).transformDCUV$2(c2, v_dst); + } + t2 = _this._mbHeight; + t2.toString; + if (mb_y < t2 - 1) { + B.NativeUint8List_methods.setRange$4(top_yuv.y, 0, 16, y_dst.toUint8List$0(), 480); + B.NativeUint8List_methods.setRange$4(top_yuv.u, 0, 8, u_dst.toUint8List$0(), 224); + B.NativeUint8List_methods.setRange$4(top_yuv.v, 0, 8, v_dst.toUint8List$0(), 224); + } + y_out = mb_x * 16; + u_out = mb_x * 8; + for (j = 0; j < 16; ++j) { + t2 = _this._cacheYStride; + t2.toString; + A._lateReadCheck(_this.__VP8__cacheY, "_cacheY").memcpy$4(y_out + j * t2, 16, y_dst, j * 32); + } + for (j = 0; j < 8; ++j) { + t2 = _this._cacheUVStride; + t2.toString; + t3 = j * 32; + A._lateReadCheck(_this.__VP8__cacheU, "_cacheU").memcpy$4(u_out + j * t2, 8, u_dst, t3); + t2 = _this._cacheUVStride; + t2.toString; + A._lateReadCheck(_this.__VP8__cacheV, "_cacheV").memcpy$4(u_out + j * t2, 8, v_dst, t3); + } + ++mb_x; + } + }, + _doTransform$3(bits, src, dst) { + var t1, t2, t3, a, c4, d4, c1, d1, _s4_ = "_dsp"; + switch (bits >>> 30) { + case 3: + A._lateReadCheck(this.__VP8__dsp, _s4_).transform$3(0, src, dst, false); + break; + case 2: + A._lateReadCheck(this.__VP8__dsp, _s4_); + t1 = src.buffer; + t2 = src.offset; + t3 = t1.length; + if (!(t2 >= 0 && t2 < t3)) + return A.ioore(t1, t2); + a = t1[t2] + 4; + t2 += 4; + if (!(t2 < t3)) + return A.ioore(t1, t2); + c4 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t1[t2] * 35468, 16), 32); + t2 = src.buffer; + t1 = src.offset + 4; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + d4 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t2[t1] * 85627, 16), 32); + t1 = src.buffer; + t2 = src.offset + 1; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + c1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t1[t2] * 35468, 16), 32); + t2 = src.buffer; + t1 = src.offset + 1; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + d1 = B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(t2[t1] * 85627, 16), 32); + A.VP8Filter__store2(dst, 0, a + d4, d1, c1); + A.VP8Filter__store2(dst, 1, a + c4, d1, c1); + A.VP8Filter__store2(dst, 2, a - c4, d1, c1); + A.VP8Filter__store2(dst, 3, a - d4, d1, c1); + break; + case 1: + A._lateReadCheck(this.__VP8__dsp, _s4_).transformDC$2(src, dst); + break; + default: + break; + } + }, + _doFilter$2(mbX, mbY) { + var yDst, ilevel, limit, t2, uvBps, uDst, vDst, hevThresh, t3, u2, v2, _this = this, _null = null, _s4_ = "_dsp", + yBps = _this._cacheYStride, + t1 = J.$index$asx(A._lateReadCheck(_this.__VP8__fInfo, "_fInfo"), mbX); + t1.toString; + yDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheY, "_cacheY"), _null, mbX * 16); + ilevel = t1.fInnerLevel; + limit = t1.fLimit; + if (limit === 0) + return; + if (_this._filterType === 1) { + if (mbX > 0) { + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t2.simpleHFilter16$3(yDst, yBps, limit + 4); + } + if (t1.fInner) { + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t2.simpleHFilter16i$3(yDst, yBps, limit); + } + if (mbY > 0) { + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t2.simpleVFilter16$3(yDst, yBps, limit + 4); + } + if (t1.fInner) { + t1 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t1.simpleVFilter16i$3(yDst, yBps, limit); + } + } else { + uvBps = _this._cacheUVStride; + t2 = mbX * 8; + uDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheU, "_cacheU"), _null, t2); + vDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheV, "_cacheV"), _null, t2); + hevThresh = t1.hevThresh; + if (mbX > 0) { + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t3 = limit + 4; + t2._filterLoop26$7(yDst, 1, yBps, 16, t3, ilevel, hevThresh); + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + uvBps.toString; + t2._filterLoop26$7(uDst, 1, uvBps, 8, t3, ilevel, hevThresh); + t2._filterLoop26$7(vDst, 1, uvBps, 8, t3, ilevel, hevThresh); + } + if (t1.fInner) { + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t2.hFilter16i$5(yDst, yBps, limit, ilevel, hevThresh); + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + uvBps.toString; + u2 = A.InputBuffer$from(uDst, _null, 4); + v2 = A.InputBuffer$from(vDst, _null, 4); + t2._filterLoop24$7(u2, 1, uvBps, 8, limit, ilevel, hevThresh); + t2._filterLoop24$7(v2, 1, uvBps, 8, limit, ilevel, hevThresh); + } + if (mbY > 0) { + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t3 = limit + 4; + t2._filterLoop26$7(yDst, yBps, 1, 16, t3, ilevel, hevThresh); + t2 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + uvBps.toString; + t2._filterLoop26$7(uDst, uvBps, 1, 8, t3, ilevel, hevThresh); + t2._filterLoop26$7(vDst, uvBps, 1, 8, t3, ilevel, hevThresh); + } + if (t1.fInner) { + t1 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + yBps.toString; + t1.vFilter16i$5(yDst, yBps, limit, ilevel, hevThresh); + t1 = A._lateReadCheck(_this.__VP8__dsp, _s4_); + uvBps.toString; + t2 = 4 * uvBps; + u2 = A.InputBuffer$from(uDst, _null, t2); + v2 = A.InputBuffer$from(vDst, _null, t2); + t1._filterLoop24$7(u2, uvBps, 1, 8, limit, ilevel, hevThresh); + t1._filterLoop24$7(v2, uvBps, 1, 8, limit, ilevel, hevThresh); + } + } + }, + _filterRow$0() { + var t1, _this = this, + mbX = A._lateReadCheck(_this.__VP8__tlMbX, "_tlMbX"); + while (true) { + t1 = _this._brMbX; + t1.toString; + if (!(mbX < t1)) + break; + _this._doFilter$2(mbX, _this._mbY); + ++mbX; + } + }, + _finishRow$1(useFilter) { + var extraYRows, ySize, uvSize, yDst, t2, uDst, vDst, mbY, t3, yStart, yEnd, t4, deltaY, t5, t6, t7, t8, _this = this, _null = null, + _s7_ = "_cacheY", + _s7_0 = "_cacheU", + _s7_1 = "_cacheV", + _s9_ = "_cropLeft", + t1 = _this._filterType; + t1.toString; + if (!(t1 < 3)) + return A.ioore(B.List_0_2_8, t1); + extraYRows = B.List_0_2_8[t1]; + t1 = _this._cacheYStride; + t1.toString; + ySize = extraYRows * t1; + t1 = _this._cacheUVStride; + t1.toString; + uvSize = (extraYRows / 2 | 0) * t1; + t1 = -ySize; + yDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheY, _s7_), _null, t1); + t2 = -uvSize; + uDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheU, _s7_0), _null, t2); + vDst = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheV, _s7_1), _null, t2); + mbY = _this._mbY; + t3 = _this._brMbY; + t3.toString; + yStart = mbY * 16; + yEnd = (mbY + 1) * 16; + if (useFilter) + _this._filterRow$0(); + if (mbY !== 0) { + yStart -= extraYRows; + _this.__VP8__y = A.InputBuffer$from(yDst, _null, 0); + _this.__VP8__u = A.InputBuffer$from(uDst, _null, 0); + _this.__VP8__v = A.InputBuffer$from(vDst, _null, 0); + } else { + _this.__VP8__y = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheY, _s7_), _null, 0); + _this.__VP8__u = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheU, _s7_0), _null, 0); + _this.__VP8__v = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__cacheV, _s7_1), _null, 0); + } + t3 = mbY < t3 - 1; + if (t3) + yEnd -= extraYRows; + t4 = _this._cropBottom; + t4.toString; + if (yEnd > t4) + yEnd = t4; + _this._a = null; + if (_this._alphaData != null && yStart < yEnd) { + t4 = _this._decompressAlphaRows$2(yStart, yEnd - yStart); + _this._a = t4; + if (t4 == null) + return false; + } + t4 = _this._cropTop; + t4.toString; + if (yStart < t4) { + deltaY = t4 - yStart; + t5 = A._lateReadCheck(_this.__VP8__y, "_y"); + t6 = t5.offset; + t7 = _this._cacheYStride; + t7.toString; + t5.offset = t6 + t7 * deltaY; + t7 = A._lateReadCheck(_this.__VP8__u, "_u"); + t6 = t7.offset; + t5 = _this._cacheUVStride; + t5.toString; + t8 = B.JSInt_methods._shrOtherPositive$1(deltaY, 1); + t7.offset = t6 + t5 * t8; + t5 = A._lateReadCheck(_this.__VP8__v, "_v"); + t6 = t5.offset; + t7 = _this._cacheUVStride; + t7.toString; + t5.offset = t6 + t7 * t8; + t5 = _this._a; + if (t5 != null) { + t6 = t5.offset; + t7 = _this._webp.width; + if (typeof t7 !== "number") + return t7.$mul(); + t5.offset = t6 + t7 * deltaY; + } + yStart = t4; + } + if (yStart < yEnd) { + t4 = A._lateReadCheck(_this.__VP8__y, "_y"); + t4.offset = t4.offset + A._lateReadCheck(_this.__VP8__cropLeft, _s9_); + t4 = A._lateReadCheck(_this.__VP8__u, "_u"); + t4.offset = t4.offset + B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(_this.__VP8__cropLeft, _s9_), 1); + t4 = A._lateReadCheck(_this.__VP8__v, "_v"); + t4.offset = t4.offset + B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(_this.__VP8__cropLeft, _s9_), 1); + t4 = _this._a; + if (t4 != null) + t4.offset = t4.offset + A._lateReadCheck(_this.__VP8__cropLeft, _s9_); + t4 = _this._cropTop; + t4.toString; + _this._put$3(0, yStart - t4, A._lateReadCheck(_this.__VP8__cropRight, "_cropRight") - A._lateReadCheck(_this.__VP8__cropLeft, _s9_), yEnd - yStart); + } + if (t3) { + t3 = A._lateReadCheck(_this.__VP8__cacheY, _s7_); + t4 = _this._cacheYStride; + t4.toString; + t3.memcpy$4(t1, ySize, yDst, 16 * t4); + t4 = A._lateReadCheck(_this.__VP8__cacheU, _s7_0); + t1 = _this._cacheUVStride; + t1.toString; + t4.memcpy$4(t2, uvSize, uDst, 8 * t1); + t1 = A._lateReadCheck(_this.__VP8__cacheV, _s7_1); + t4 = _this._cacheUVStride; + t4.toString; + t1.memcpy$4(t2, uvSize, vDst, 8 * t4); + } + return true; + }, + _put$3(_, mbY, mbW, mbH) { + if (mbW <= 0 || mbH <= 0) + return false; + this._emitFancyRGB$3(mbY, mbW, mbH); + this._emitAlphaRGB$3(mbY, mbW, mbH); + return true; + }, + _clip8$1(v) { + var d; + if ((v & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(v, 14); + else + d = v < 0 ? 0 : 255; + return d; + }, + _yuvToRgb$4(y, u, v, rgb) { + var t1 = 19077 * y; + rgb.$indexSet(0, 0, this._clip8$1(t1 + 26149 * v + -3644112)); + rgb.$indexSet(0, 1, this._clip8$1(t1 - 6419 * u - 13320 * v + 2229552)); + rgb.$indexSet(0, 2, this._clip8$1(t1 + 33050 * u + -4527440)); + }, + _upsample$9(topY, bottomY, topU, topV, curU, curV, topDst, bottomDst, len) { + var t4, tl_uv, l_uv, uv0, x, t5, t_uv, uv, avg, diag_12, diag_03, uv1, t6, t7, t8, t9, t10, d, _this = this, _null = null, + LOAD_UV = new A.VP8__upsample_LOAD_UV(), + t1 = len - 1, + lastPixelPair = B.JSInt_methods._shrOtherPositive$1(t1, 1), + t2 = topU.buffer, + t3 = topU.offset; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t3 = t2[t3]; + t2 = topV.buffer; + t4 = topV.offset; + if (!(t4 >= 0 && t4 < t2.length)) + return A.ioore(t2, t4); + tl_uv = LOAD_UV.call$2(t3, t2[t4]); + t4 = curU.buffer; + t2 = curU.offset; + if (!(t2 >= 0 && t2 < t4.length)) + return A.ioore(t4, t2); + t2 = t4[t2]; + t4 = curV.buffer; + t3 = curV.offset; + if (!(t3 >= 0 && t3 < t4.length)) + return A.ioore(t4, t3); + l_uv = LOAD_UV.call$2(t2, t4[t3]); + uv0 = B.JSInt_methods._shrOtherPositive$1(3 * tl_uv + l_uv + 131074, 2); + t3 = topY.buffer; + t4 = topY.offset; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + _this._yuvToRgb$4(t3[t4], uv0 & 255, uv0 >>> 16, topDst); + topDst.$indexSet(0, 3, 255); + t2 = bottomY != null; + if (t2) { + uv0 = B.JSInt_methods._shrOtherPositive$1(3 * l_uv + tl_uv + 131074, 2); + t3 = bottomY.buffer; + t4 = bottomY.offset; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t4 = t3[t4]; + bottomDst.toString; + _this._yuvToRgb$4(t4, uv0 & 255, uv0 >>> 16, bottomDst); + bottomDst.$indexSet(0, 3, 255); + } + for (x = 1; x <= lastPixelPair; ++x, l_uv = uv, tl_uv = t_uv) { + t3 = topU.buffer; + t4 = topU.offset + x; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t4 = t3[t4]; + t3 = topV.buffer; + t5 = topV.offset + x; + if (!(t5 >= 0 && t5 < t3.length)) + return A.ioore(t3, t5); + t_uv = LOAD_UV.call$2(t4, t3[t5]); + t5 = curU.buffer; + t3 = curU.offset + x; + if (!(t3 >= 0 && t3 < t5.length)) + return A.ioore(t5, t3); + t3 = t5[t3]; + t5 = curV.buffer; + t4 = curV.offset + x; + if (!(t4 >= 0 && t4 < t5.length)) + return A.ioore(t5, t4); + uv = LOAD_UV.call$2(t3, t5[t4]); + avg = tl_uv + t_uv + l_uv + uv + 524296; + diag_12 = B.JSInt_methods._shrOtherPositive$1(avg + 2 * (t_uv + l_uv), 3); + diag_03 = B.JSInt_methods._shrOtherPositive$1(avg + 2 * (tl_uv + uv), 3); + uv0 = B.JSInt_methods._shrOtherPositive$1(diag_12 + tl_uv, 1); + uv1 = B.JSInt_methods._shrOtherPositive$1(diag_03 + t_uv, 1); + t4 = 2 * x; + t5 = t4 - 1; + t3 = topY.buffer; + t6 = topY.offset + t5; + if (!(t6 >= 0 && t6 < t3.length)) + return A.ioore(t3, t6); + t6 = t3[t6]; + t3 = uv0 & 255; + t7 = uv0 >>> 16; + t8 = t5 * 4; + t9 = A.InputBuffer$from(topDst, _null, t8); + t6 = 19077 * t6; + t10 = t6 + 26149 * t7 + -3644112; + if ((t10 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t10, 14); + else + d = t10 < 0 ? 0 : 255; + J.$indexSet$ax(t9.buffer, t9.offset, d); + t7 = t6 - 6419 * t3 - 13320 * t7 + 2229552; + if ((t7 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t7, 14); + else + d = t7 < 0 ? 0 : 255; + J.$indexSet$ax(t9.buffer, t9.offset + 1, d); + t3 = t6 + 33050 * t3 + -4527440; + if ((t3 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t3, 14); + else + d = t3 < 0 ? 0 : 255; + J.$indexSet$ax(t9.buffer, t9.offset + 2, d); + J.$indexSet$ax(t9.buffer, t9.offset + 3, 255); + t3 = t4 - 0; + t6 = topY.buffer; + t7 = topY.offset + t3; + if (!(t7 >= 0 && t7 < t6.length)) + return A.ioore(t6, t7); + t7 = t6[t7]; + t6 = uv1 & 255; + t9 = uv1 >>> 16; + t3 = A.InputBuffer$from(topDst, _null, t3 * 4); + t7 = 19077 * t7; + t10 = t7 + 26149 * t9 + -3644112; + if ((t10 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t10, 14); + else + d = t10 < 0 ? 0 : 255; + J.$indexSet$ax(t3.buffer, t3.offset, d); + t9 = t7 - 6419 * t6 - 13320 * t9 + 2229552; + if ((t9 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t9, 14); + else + d = t9 < 0 ? 0 : 255; + J.$indexSet$ax(t3.buffer, t3.offset + 1, d); + t6 = t7 + 33050 * t6 + -4527440; + if ((t6 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t6, 14); + else + d = t6 < 0 ? 0 : 255; + J.$indexSet$ax(t3.buffer, t3.offset + 2, d); + J.$indexSet$ax(t3.buffer, t3.offset + 3, 255); + if (t2) { + uv0 = B.JSInt_methods._shrOtherPositive$1(diag_03 + l_uv, 1); + uv1 = B.JSInt_methods._shrOtherPositive$1(diag_12 + uv, 1); + t3 = bottomY.buffer; + t5 = bottomY.offset + t5; + if (!(t5 >= 0 && t5 < t3.length)) + return A.ioore(t3, t5); + t5 = t3[t5]; + t3 = uv0 & 255; + t6 = uv0 >>> 16; + bottomDst.toString; + t8 = A.InputBuffer$from(bottomDst, _null, t8); + t5 = 19077 * t5; + t7 = t5 + 26149 * t6 + -3644112; + if ((t7 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t7, 14); + else + d = t7 < 0 ? 0 : 255; + J.$indexSet$ax(t8.buffer, t8.offset, d); + t6 = t5 - 6419 * t3 - 13320 * t6 + 2229552; + if ((t6 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t6, 14); + else + d = t6 < 0 ? 0 : 255; + J.$indexSet$ax(t8.buffer, t8.offset + 1, d); + t3 = t5 + 33050 * t3 + -4527440; + if ((t3 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t3, 14); + else + d = t3 < 0 ? 0 : 255; + J.$indexSet$ax(t8.buffer, t8.offset + 2, d); + J.$indexSet$ax(t8.buffer, t8.offset + 3, 255); + t3 = bottomY.buffer; + t5 = bottomY.offset + t4; + if (!(t5 >= 0 && t5 < t3.length)) + return A.ioore(t3, t5); + t5 = t3[t5]; + t3 = uv1 & 255; + t6 = uv1 >>> 16; + t4 = A.InputBuffer$from(bottomDst, _null, t4 * 4); + t5 = 19077 * t5; + t7 = t5 + 26149 * t6 + -3644112; + if ((t7 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t7, 14); + else + d = t7 < 0 ? 0 : 255; + J.$indexSet$ax(t4.buffer, t4.offset, d); + t6 = t5 - 6419 * t3 - 13320 * t6 + 2229552; + if ((t6 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t6, 14); + else + d = t6 < 0 ? 0 : 255; + J.$indexSet$ax(t4.buffer, t4.offset + 1, d); + t3 = t5 + 33050 * t3 + -4527440; + if ((t3 & -4194304) >>> 0 === 0) + d = B.JSInt_methods._shrOtherPositive$1(t3, 14); + else + d = t3 < 0 ? 0 : 255; + J.$indexSet$ax(t4.buffer, t4.offset + 2, d); + J.$indexSet$ax(t4.buffer, t4.offset + 3, 255); + } + } + if ((len & 1) === 0) { + uv0 = B.JSInt_methods._shrOtherPositive$1(3 * tl_uv + l_uv + 131074, 2); + t3 = topY.buffer; + t4 = topY.offset + t1; + if (!(t4 >= 0 && t4 < t3.length)) + return A.ioore(t3, t4); + t4 = t3[t4]; + t3 = t1 * 4; + t5 = A.InputBuffer$from(topDst, _null, t3); + _this._yuvToRgb$4(t4, uv0 & 255, uv0 >>> 16, t5); + t5.$indexSet(0, 3, 255); + if (t2) { + uv0 = B.JSInt_methods._shrOtherPositive$1(3 * l_uv + tl_uv + 131074, 2); + t2 = bottomY.buffer; + t1 = bottomY.offset + t1; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + t1 = t2[t1]; + bottomDst.toString; + t3 = A.InputBuffer$from(bottomDst, _null, t3); + _this._yuvToRgb$4(t1, uv0 & 255, uv0 >>> 16, t3); + t3.$indexSet(0, 3, 255); + } + } + }, + _emitAlphaRGB$3(mbY, mbW, mbH) { + var t2, t3, stride, alpha, numRows, startY, dst, y, x, _this = this, + t1 = _this._a; + if (t1 == null) + return; + t2 = _this._webp; + t3 = t2.width; + if (typeof t3 !== "number") + return t3.$mul(); + stride = t3 * 4; + alpha = A.InputBuffer$from(t1, null, 0); + if (mbY === 0) { + numRows = mbH - 1; + startY = mbY; + } else { + startY = mbY - 1; + alpha.offset -= t3; + numRows = mbH; + } + dst = A.InputBuffer$(_this.output.getBytes$0(), false, null, startY * stride + 3); + t1 = _this._cropTop; + t1.toString; + t3 = _this._cropBottom; + if (t1 + mbY + mbH === t3) { + t3.toString; + numRows = t3 - t1 - startY; + } + for (y = 0; y < numRows; ++y) { + for (x = 0; x < mbW; ++x) { + t1 = alpha.buffer; + t3 = alpha.offset + x; + if (!(t3 >= 0 && t3 < t1.length)) + return A.ioore(t1, t3); + t3 = t1[t3]; + J.$indexSet$ax(dst.buffer, dst.offset + 4 * x, t3 & 255); + } + t1 = alpha.offset; + t3 = t2.width; + if (typeof t3 !== "number") + return A.iae(t3); + alpha.offset = t1 + t3; + dst.offset += stride; + } + }, + _emitFancyRGB$3(mbY, mbW, mbH) { + var dst, curY, curU, curV, yEnd, uvW, stride, topU, topV, numLinesOut, y, t4, _this = this, _null = null, + t1 = _this.output.getBytes$0(), + t2 = _this._webp, + t3 = t2.width; + if (typeof t3 !== "number") + return A.iae(t3); + dst = A.InputBuffer$(t1, false, _null, mbY * t3 * 4); + curY = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__y, "_y"), _null, 0); + curU = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__u, "_u"), _null, 0); + curV = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__v, "_v"), _null, 0); + yEnd = mbY + mbH; + uvW = B.JSInt_methods._shrOtherPositive$1(mbW + 1, 1); + t2 = t2.width; + if (typeof t2 !== "number") + return t2.$mul(); + stride = t2 * 4; + topU = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__tmpU, "_tmpU"), _null, 0); + topV = A.InputBuffer$from(A._lateReadCheck(_this.__VP8__tmpV, "_tmpV"), _null, 0); + if (mbY === 0) { + _this._upsample$9(curY, _null, curU, curV, curU, curV, dst, _null, mbW); + numLinesOut = mbH; + } else { + _this._upsample$9(A._lateReadCheck(_this.__VP8__tmpY, "_tmpY"), curY, topU, topV, curU, curV, A.InputBuffer$from(dst, _null, -stride), dst, mbW); + numLinesOut = mbH + 1; + } + topU.set$buffer(0, curU.buffer); + topV.set$buffer(0, curV.buffer); + for (t1 = 2 * stride, t2 = -stride, y = mbY; y += 2, y < yEnd;) { + topU.offset = curU.offset; + topV.offset = curV.offset; + t3 = curU.offset; + t4 = _this._cacheUVStride; + t4.toString; + curU.offset = t3 + t4; + curV.offset += t4; + dst.offset += t1; + t4 = curY.offset; + t3 = _this._cacheYStride; + t3.toString; + curY.offset = t4 + 2 * t3; + _this._upsample$9(A.InputBuffer$from(curY, _null, -t3), curY, topU, topV, curU, curV, A.InputBuffer$from(dst, _null, t2), dst, mbW); + } + t1 = curY.offset; + t2 = _this._cacheYStride; + t2.toString; + curY.offset = t1 + t2; + t1 = _this._cropTop; + t1.toString; + t2 = _this._cropBottom; + t2.toString; + if (t1 + yEnd < t2) { + A._lateReadCheck(_this.__VP8__tmpY, "_tmpY").memcpy$3(0, mbW, curY); + A._lateReadCheck(_this.__VP8__tmpU, "_tmpU").memcpy$3(0, uvW, curU); + A._lateReadCheck(_this.__VP8__tmpV, "_tmpV").memcpy$3(0, uvW, curV); + --numLinesOut; + } else if ((yEnd & 1) === 0) + _this._upsample$9(curY, _null, curU, curV, curU, curV, A.InputBuffer$from(dst, _null, stride), _null, mbW); + return numLinesOut; + }, + _decompressAlphaRows$2(row, numRows) { + var t2, t3, b, t4, webp, t5, t6, t7, t8, totalNumPixels, _this = this, _null = null, + _s8_ = "_buffer8", + _s5_ = "_vp8l", + _s11_ = "_alphaPlane", + t1 = _this._webp, + width = t1.width, + height = t1.height; + if (row < 0 || numRows <= 0 || row + numRows > height) + return _null; + if (row === 0) { + t1 = width * height; + _this.__VP8__alphaPlane = new Uint8Array(t1); + t2 = _this._alphaData; + t3 = new A.WebPAlpha(t2, width, height); + b = t2.readByte$0(); + t3.method = b & 3; + t3.filter = B.JSInt_methods._shrOtherPositive$1(b, 2) & 3; + t3.preProcessing = B.JSInt_methods._shrOtherPositive$1(b, 4) & 3; + t3.rsrv = B.JSInt_methods._shrOtherPositive$1(b, 6) & 3; + if (t3.get$isValid()) { + t4 = t3.method; + if (t4 === 0) { + if (t2.end - t2.offset < t1) + t3.rsrv = 1; + } else if (t4 === 1) { + webp = new A.WebPInfo(A._setArrayType([], type$.JSArray_WebPFrame)); + webp.width = width; + webp.height = height; + t1 = A._setArrayType([], type$.JSArray_HTreeGroup); + t4 = A._setArrayType([], type$.JSArray_VP8LTransform); + t5 = new Uint32Array(2); + t6 = new A.VP8LBitReader(t2, t5); + t5 = t6.__VP8LBitReader__buffer8 = A.NativeUint8List_NativeUint8List$view(t5.buffer, 0, _null); + t7 = A._lateReadCheck(t5, _s8_); + t8 = t2.readByte$0(); + if (0 >= t7.length) + return A.ioore(t7, 0); + t7[0] = t8; + t8 = A._lateReadCheck(t5, _s8_); + t7 = t2.readByte$0(); + if (1 >= t8.length) + return A.ioore(t8, 1); + t8[1] = t7; + t7 = A._lateReadCheck(t5, _s8_); + t8 = t2.readByte$0(); + if (2 >= t7.length) + return A.ioore(t7, 2); + t7[2] = t8; + t8 = A._lateReadCheck(t5, _s8_); + t7 = t2.readByte$0(); + if (3 >= t8.length) + return A.ioore(t8, 3); + t8[3] = t7; + t7 = A._lateReadCheck(t5, _s8_); + t8 = t2.readByte$0(); + if (4 >= t7.length) + return A.ioore(t7, 4); + t7[4] = t8; + t8 = A._lateReadCheck(t5, _s8_); + t7 = t2.readByte$0(); + if (5 >= t8.length) + return A.ioore(t8, 5); + t8[5] = t7; + t7 = A._lateReadCheck(t5, _s8_); + t8 = t2.readByte$0(); + if (6 >= t7.length) + return A.ioore(t7, 6); + t7[6] = t8; + t5 = A._lateReadCheck(t5, _s8_); + t2 = t2.readByte$0(); + if (7 >= t5.length) + return A.ioore(t5, 7); + t5[7] = t2; + t4 = new A.InternalVP8L(t6, webp, t1, t4); + t3.__WebPAlpha__vp8l = t4; + A._lateReadCheck(t4, _s5_)._ioWidth = width; + A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_); + t4 = A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_); + t1 = webp.width; + t6 = webp.height; + t4._decodeImageStream$3(A._asInt(t1), A._asInt(t6), true); + if (A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._transforms.length === 1) { + t1 = A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._transforms; + if (0 >= t1.length) + return A.ioore(t1, 0); + t1 = t1[0].type === 3 && A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._is8bOptimizable$0(); + } else + t1 = false; + if (t1) { + t3._use8bDecode = true; + t1 = A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_); + t2 = t1.webp; + t4 = t2.width; + t2 = t2.height; + if (typeof t4 !== "number") + return t4.$mul(); + if (typeof t2 !== "number") + return A.iae(t2); + totalNumPixels = t4 * t2; + t1._argbCache = 0; + t2 = B.JSInt_methods.$mod(totalNumPixels, 4); + t2 = new Uint8Array(totalNumPixels + (4 - t2)); + t1.__VP8L__pixels8 = t2; + t1._pixels = A.NativeUint32List_NativeUint32List$view(A._lateReadCheck(t2, "_pixels8").buffer, 0, _null); + } else { + t3._use8bDecode = false; + A._lateReadCheck(t3.__WebPAlpha__vp8l, _s5_)._allocateInternalBuffers32b$0(); + } + } else + t3.rsrv = 1; + } + _this.__VP8__alpha = t3; + } + if (!A._lateReadCheck(_this.__VP8__alpha, "_alpha").isAlphaDecoded) + if (!A._lateReadCheck(_this.__VP8__alpha, "_alpha").decode$3(0, row, numRows, A._lateReadCheck(_this.__VP8__alphaPlane, _s11_))) + return _null; + return A.InputBuffer$(A._lateReadCheck(_this.__VP8__alphaPlane, _s11_), false, _null, row * width); + }, + _parseResiduals$2(mb, tokenBr) { + var q, block, dst, leftMb, dc, nz, dc0, i, acProba, first, tnz, lnz, nonZeroY, y, l, nzCoeffs, x, nz_coeffs, outLeftNz, outTopNz, nonZeroUV, ch, t3, _this = this, + bands = _this._proba.bands, + t1 = _this._dqm, + t2 = A._lateReadCheck(_this.__VP8__segment, "_segment"); + if (t2 >>> 0 !== t2 || t2 >= 4) + return A.ioore(t1, t2); + q = t1[t2]; + block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), _this._mbX); + dst = A.InputBuffer$(block.coeffs, false, null, 0); + leftMb = J.$index$asx(A._lateReadCheck(_this.__VP8__mbInfo, "_mbInfo"), 0); + dst.memset$3(0, dst.end - dst.offset, 0); + if (!A._lateReadCheck(block.__VP8MBData_isIntra4x4, "isIntra4x4")) { + dc = A.InputBuffer$(new Int16Array(16), false, null, 0); + t1 = mb.nzDc; + t2 = leftMb.nzDc; + if (1 >= bands.length) + return A.ioore(bands, 1); + nz = _this._getCoeffs$6(tokenBr, bands[1], t1 + t2, q.y2Mat, 0, dc); + mb.nzDc = leftMb.nzDc = nz > 0 ? 1 : 0; + if (nz > 1) + _this._transformWHT$2(dc, dst); + else { + t1 = dc.buffer; + t2 = dc.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + dc0 = B.JSInt_methods._shrOtherPositive$1(t1[t2] + 3, 3); + for (i = 0; i < 256; i += 16) + J.$indexSet$ax(dst.buffer, dst.offset + i, dc0); + } + acProba = bands[0]; + first = 1; + } else { + if (3 >= bands.length) + return A.ioore(bands, 3); + acProba = bands[3]; + first = 0; + } + tnz = mb.nz & 15; + lnz = leftMb.nz & 15; + for (nonZeroY = 0, y = 0; y < 4; ++y) { + l = lnz & 1; + for (nzCoeffs = 0, x = 0; x < 4; ++x, nzCoeffs = nz_coeffs) { + nz = _this._getCoeffs$6(tokenBr, acProba, l + (tnz & 1), q.y1Mat, first, dst); + l = nz > first ? 1 : 0; + tnz = tnz >>> 1 | l << 7; + t1 = dst.buffer; + t2 = dst.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1 = t1[t2] !== 0 ? 1 : 0; + if (nz > 3) + t1 = 3; + else if (nz > 1) + t1 = 2; + nz_coeffs = nzCoeffs << 2 | t1; + dst.offset = t2 + 16; + } + tnz = tnz >>> 4; + lnz = lnz >>> 1 | l << 7; + nonZeroY = (nonZeroY << 8 | nzCoeffs) >>> 0; + } + outLeftNz = lnz >>> 4; + for (t1 = bands.length, outTopNz = tnz, nonZeroUV = 0, ch = 0; ch < 4; ch += 2) { + t2 = 4 + ch; + tnz = B.JSInt_methods._shrBothPositive$1(mb.nz, t2); + lnz = B.JSInt_methods._shrBothPositive$1(leftMb.nz, t2); + for (nzCoeffs = 0, y = 0; y < 2; ++y) { + l = lnz & 1; + for (x = 0; x < 2; ++x, nzCoeffs = nz_coeffs) { + if (2 >= t1) + return A.ioore(bands, 2); + nz = _this._getCoeffs$6(tokenBr, bands[2], l + (tnz & 1), q.uvMat, 0, dst); + l = nz > 0 ? 1 : 0; + tnz = tnz >>> 1 | l << 3; + t2 = dst.buffer; + t3 = dst.offset; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t2 = t2[t3] !== 0 ? 1 : 0; + if (nz > 3) + t2 = 3; + else if (nz > 1) + t2 = 2; + nz_coeffs = (nzCoeffs << 2 | t2) >>> 0; + dst.offset = t3 + 16; + } + tnz = tnz >>> 2; + lnz = lnz >>> 1 | l << 5; + } + nonZeroUV = (nonZeroUV | B.JSInt_methods._shlPositive$1(nzCoeffs, 4 * ch)) >>> 0; + outTopNz = (outTopNz | B.JSInt_methods._shlPositive$1(tnz << 4 >>> 0, ch)) >>> 0; + outLeftNz = (outLeftNz | B.JSInt_methods._shlPositive$1(lnz & 240, ch)) >>> 0; + } + mb.nz = outTopNz; + leftMb.nz = outLeftNz; + block.nonZeroY = nonZeroY; + block.__VP8MBData_nonZeroUV = nonZeroUV; + if ((nonZeroUV & 43690) === 0) + q.toString; + return (nonZeroY | nonZeroUV) >>> 0 === 0; + }, + _transformWHT$2(src, out) { + var t1, t2, t3, i, t4, t5, t6, a0, t7, t8, t9, t10, a1, a2, a3, oi, dc, + tmp = new Int32Array(16); + for (t1 = src.buffer, t2 = src.offset, t3 = t1.length, i = 0; i < 4; ++i) { + t4 = t2 + i; + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + t4 = t1[t4]; + t5 = 12 + i; + t6 = t2 + t5; + if (!(t6 >= 0 && t6 < t3)) + return A.ioore(t1, t6); + t6 = t1[t6]; + a0 = t4 + t6; + t7 = 4 + i; + t8 = t2 + t7; + if (!(t8 >= 0 && t8 < t3)) + return A.ioore(t1, t8); + t8 = t1[t8]; + t9 = 8 + i; + t10 = t2 + t9; + if (!(t10 >= 0 && t10 < t3)) + return A.ioore(t1, t10); + t10 = t1[t10]; + a1 = t8 + t10; + a2 = t8 - t10; + a3 = t4 - t6; + if (!(i < 16)) + return A.ioore(tmp, i); + tmp[i] = a0 + a1; + if (!(t9 < 16)) + return A.ioore(tmp, t9); + tmp[t9] = a0 - a1; + tmp[t7] = a3 + a2; + if (!(t5 < 16)) + return A.ioore(tmp, t5); + tmp[t5] = a3 - a2; + } + for (oi = 0, i = 0; i < 4; ++i) { + t1 = i * 4; + if (!(t1 < 16)) + return A.ioore(tmp, t1); + dc = tmp[t1] + 3; + t2 = 3 + t1; + if (!(t2 < 16)) + return A.ioore(tmp, t2); + t2 = tmp[t2]; + a0 = dc + t2; + t3 = 1 + t1; + if (!(t3 < 16)) + return A.ioore(tmp, t3); + t3 = tmp[t3]; + t1 = 2 + t1; + if (!(t1 < 16)) + return A.ioore(tmp, t1); + t1 = tmp[t1]; + a1 = t3 + t1; + a2 = t3 - t1; + a3 = dc - t2; + t2 = B.JSInt_methods._shrOtherPositive$1(a0 + a1, 3); + J.$indexSet$ax(out.buffer, out.offset + oi, t2); + t2 = B.JSInt_methods._shrOtherPositive$1(a3 + a2, 3); + J.$indexSet$ax(out.buffer, out.offset + (oi + 16), t2); + t2 = B.JSInt_methods._shrOtherPositive$1(a0 - a1, 3); + J.$indexSet$ax(out.buffer, out.offset + (oi + 32), t2); + t2 = B.JSInt_methods._shrOtherPositive$1(a3 - a2, 3); + J.$indexSet$ax(out.buffer, out.offset + (oi + 48), t2); + oi += 64; + } + }, + _getLargeValue$2(br, p) { + var v, bit1, t1, cat, tab, len, i; + type$.List_int._as(p); + if (br.getBit$1(p[3]) === 0) + v = br.getBit$1(p[4]) === 0 ? 2 : 3 + br.getBit$1(p[5]); + else if (br.getBit$1(p[6]) === 0) + v = br.getBit$1(p[7]) === 0 ? 5 + br.getBit$1(159) : 7 + 2 * br.getBit$1(165) + br.getBit$1(145); + else { + bit1 = br.getBit$1(p[8]); + t1 = 9 + bit1; + if (!(t1 < 11)) + return A.ioore(p, t1); + cat = 2 * bit1 + br.getBit$1(p[t1]); + if (!(cat < 4)) + return A.ioore(B.List_sao, cat); + tab = B.List_sao[cat]; + for (len = tab.length, v = 0, i = 0; i < len; ++i) + v += v + br.getBit$1(tab[i]); + v += 3 + B.JSInt_methods._shlPositive$1(8, cat); + } + return v; + }, + _getCoeffs$6(br, prob, ctx, dq, n, out) { + var t1, t2, p, n0, p_ctx, v, bit, t3, shift, t4, _s6_ = "_range"; + type$.List_VP8BandProbas._as(prob); + type$.List_int._as(dq); + t1 = prob.length; + if (!(n < t1)) + return A.ioore(prob, n); + t2 = prob[n].probas; + if (!(ctx < t2.length)) + return A.ioore(t2, ctx); + p = t2[ctx]; + for (; n < 16; n = n0) { + if (br.getBit$1(p[0]) === 0) + return n; + for (; br.getBit$1(p[1]) === 0;) { + ++n; + if (!(n >= 0 && n < 17)) + return A.ioore(B.List_F1L, n); + t2 = B.List_F1L[n]; + if (!(t2 < t1)) + return A.ioore(prob, t2); + t2 = prob[t2].probas; + if (0 >= t2.length) + return A.ioore(t2, 0); + p = t2[0]; + if (n === 16) + return 16; + } + n0 = n + 1; + if (!(n0 >= 0 && n0 < 17)) + return A.ioore(B.List_F1L, n0); + t2 = B.List_F1L[n0]; + if (!(t2 < t1)) + return A.ioore(prob, t2); + p_ctx = prob[t2].probas; + t2 = p_ctx.length; + if (br.getBit$1(p[2]) === 0) { + if (1 >= t2) + return A.ioore(p_ctx, 1); + p = p_ctx[1]; + v = 1; + } else { + v = this._getLargeValue$2(br, p); + if (2 >= t2) + return A.ioore(p_ctx, 2); + p = p_ctx[2]; + } + if (!(n >= 0 && n < 16)) + return A.ioore(B.List_cGl1, n); + t2 = B.List_cGl1[n]; + bit = br._bitUpdate$1(B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(br.__VP8BitReader__range, _s6_), 1)); + t3 = A._lateReadCheck(br.__VP8BitReader__range, _s6_); + if (t3 >>> 0 !== t3 || t3 >= 128) + return A.ioore(B.List_8co0, t3); + shift = B.List_8co0[t3]; + t3 = A._lateReadCheck(br.__VP8BitReader__range, _s6_); + if (t3 >>> 0 !== t3 || t3 >= 128) + return A.ioore(B.List_wmc, t3); + br.__VP8BitReader__range = B.List_wmc[t3]; + br.__VP8BitReader__bits = A._lateReadCheck(br.__VP8BitReader__bits, "_bits") - shift; + t3 = bit !== 0 ? -v : v; + t4 = dq[n > 0 ? 1 : 0]; + J.$indexSet$ax(out.buffer, out.offset + t2, t3 * t4); + } + return 16; + }, + _parseIntraMode$0() { + var ymode, modes, mi, y, x, t2, prob, b, i, mi0, _this = this, _s2_ = "br", + ti = 4 * _this._mbX, + $top = _this._intraT, + left = _this._intraL, + block = J.$index$asx(A._lateReadCheck(_this.__VP8__mbData, "_mbData"), _this._mbX), + t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(145) === 0; + block.__VP8MBData_isIntra4x4 = t1; + if (!A._lateReadCheck(t1, "isIntra4x4")) { + if (A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(156) !== 0) + ymode = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(128) !== 0 ? 1 : 3; + else + ymode = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(163) !== 0 ? 2 : 0; + block.imodes[0] = ymode; + $top.toString; + B.NativeUint8List_methods.fillRange$3($top, ti, ti + 4, ymode); + B.NativeUint8List_methods.fillRange$3(left, 0, 4, ymode); + } else { + modes = block.imodes; + for (mi = 0, y = 0; y < 4; ++y, mi = mi0) { + ymode = left[y]; + for (x = 0; x < 4; ++x) { + t1 = ti + x; + if (!(t1 < $top.length)) + return A.ioore($top, t1); + t2 = $top[t1]; + if (!(t2 < 10)) + return A.ioore(B.List_799, t2); + t2 = B.List_799[t2]; + if (!(ymode >= 0 && ymode < 10)) + return A.ioore(t2, ymode); + prob = t2[ymode]; + b = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(prob[0]); + if (!(b < 18)) + return A.ioore(B.List_Y3m, b); + i = B.List_Y3m[b]; + for (; i > 0;) { + t2 = A._lateReadCheck(_this.__VP8_br, _s2_); + if (!(i < 9)) + return A.ioore(prob, i); + t2 = 2 * i + t2.getBit$1(prob[i]); + if (!(t2 >= 0 && t2 < 18)) + return A.ioore(B.List_Y3m, t2); + i = B.List_Y3m[t2]; + } + ymode = -i; + $top[t1] = ymode; + } + mi0 = mi + 4; + $top.toString; + B.NativeUint8List_methods.setRange$4(modes, mi, mi0, $top, ti); + if (!(y < 4)) + return A.ioore(left, y); + left[y] = ymode; + } + } + if (A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(142) === 0) + t1 = 0; + else if (A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(114) === 0) + t1 = 2; + else + t1 = A._lateReadCheck(_this.__VP8_br, _s2_).getBit$1(183) !== 0 ? 1 : 3; + block.uvmode = t1; + }, + set$__VP8__yuvT(__VP8__yuvT) { + this.__VP8__yuvT = type$.List_VP8TopSamples._as(__VP8__yuvT); + }, + set$__VP8__mbInfo(__VP8__mbInfo) { + this.__VP8__mbInfo = type$.List_VP8MB._as(__VP8__mbInfo); + }, + set$__VP8__fInfo(__VP8__fInfo) { + this.__VP8__fInfo = type$.List_nullable_VP8FInfo._as(__VP8__fInfo); + }, + set$__VP8__mbData(__VP8__mbData) { + this.__VP8__mbData = type$.List_VP8MBData._as(__VP8__mbData); + }, + set$__VP8__fStrengths(__VP8__fStrengths) { + this.__VP8__fStrengths = type$.List_List_VP8FInfo._as(__VP8__fStrengths); + } + }; + A.VP8__upsample_LOAD_UV.prototype = { + call$2(u, v) { + return (u | v << 16) >>> 0; + }, + $signature: 33 + }; + A.VP8BitReader.prototype = { + getValue$1(bits) { + var v, bits0; + for (v = 0; bits0 = bits - 1, bits > 0; bits = bits0) + v = (v | B.JSInt_methods.$shl(this.getBit$1(128), bits0)) >>> 0; + return v; + }, + getSignedValue$1(bits) { + var value = this.getValue$1(bits); + return this.getValue$1(1) === 1 ? -value : value; + }, + getBit$1(prob) { + var _this = this, + bit = _this._bitUpdate$1(B.JSInt_methods._shrOtherPositive$1(A._lateReadCheck(_this.__VP8BitReader__range, "_range") * prob, 8)); + if (A._lateReadCheck(_this.__VP8BitReader__range, "_range") <= 126) + _this._shift$0(); + return bit; + }, + _bitUpdate$1(split) { + var t1, t2, t3, _this = this, _s5_ = "_bits", _s6_ = "_value"; + if (A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) < 0) { + t1 = _this.input; + t2 = t1.end; + t3 = t1.offset; + if (t2 - t3 >= 1) { + _this.__VP8BitReader__value = (t1.readByte$0() | A._lateReadCheck(_this.__VP8BitReader__value, _s6_) << 8) >>> 0; + _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) + 8; + } else if (t3 < t2) { + _this.__VP8BitReader__value = (t1.readByte$0() | A._lateReadCheck(_this.__VP8BitReader__value, _s6_) << 8) >>> 0; + _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) + 8; + } else if (!_this._eof) { + _this.__VP8BitReader__value = A._lateReadCheck(_this.__VP8BitReader__value, _s6_) << 8 >>> 0; + _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_) + 8; + _this._eof = true; + } + } + t1 = A._lateReadCheck(_this.__VP8BitReader__bits, _s5_); + if (B.JSInt_methods.$shr(A._lateReadCheck(_this.__VP8BitReader__value, _s6_), t1) > split) { + t2 = split + 1; + _this.__VP8BitReader__range = A._lateReadCheck(_this.__VP8BitReader__range, "_range") - t2; + _this.__VP8BitReader__value = A._lateReadCheck(_this.__VP8BitReader__value, _s6_) - B.JSInt_methods.$shl(t2, t1); + return 1; + } else { + _this.__VP8BitReader__range = split; + return 0; + } + }, + _shift$0() { + var shift, _this = this, + t1 = A._lateReadCheck(_this.__VP8BitReader__range, "_range"); + if (t1 >>> 0 !== t1 || t1 >= 128) + return A.ioore(B.List_8co0, t1); + shift = B.List_8co0[t1]; + t1 = A._lateReadCheck(_this.__VP8BitReader__range, "_range"); + if (t1 >>> 0 !== t1 || t1 >= 128) + return A.ioore(B.List_wmc, t1); + _this.__VP8BitReader__range = B.List_wmc[t1]; + _this.__VP8BitReader__bits = A._lateReadCheck(_this.__VP8BitReader__bits, "_bits") - shift; + } + }; + A.VP8Filter.prototype = { + simpleVFilter16$3(p, stride, thresh) { + var i, + p2 = A.InputBuffer$from(p, null, 0); + for (i = 0; i < 16; ++i) { + p2.offset = p.offset + i; + if (this._needsFilter$3(p2, stride, thresh)) + this._doFilter2$2(p2, stride); + } + }, + simpleHFilter16$3(p, stride, thresh) { + var i, + p2 = A.InputBuffer$from(p, null, 0); + for (i = 0; i < 16; ++i) { + p2.offset = p.offset + i * stride; + if (this._needsFilter$3(p2, 1, thresh)) + this._doFilter2$2(p2, 1); + } + }, + simpleVFilter16i$3(p, stride, thresh) { + var t1, k, + p2 = A.InputBuffer$from(p, null, 0); + for (t1 = 4 * stride, k = 3; k > 0; --k) { + p2.offset += t1; + this.simpleVFilter16$3(p2, stride, thresh); + } + }, + simpleHFilter16i$3(p, stride, thresh) { + var k, + p2 = A.InputBuffer$from(p, null, 0); + for (k = 3; k > 0; --k) { + p2.offset += 4; + this.simpleHFilter16$3(p2, stride, thresh); + } + }, + vFilter16i$5(p, stride, thresh, ithresh, hev_thresh) { + var t1, k, + p2 = A.InputBuffer$from(p, null, 0); + for (t1 = 4 * stride, k = 3; k > 0; --k) { + p2.offset += t1; + this._filterLoop24$7(p2, stride, 1, 16, thresh, ithresh, hev_thresh); + } + }, + hFilter16i$5(p, stride, thresh, ithresh, hev_thresh) { + var k, + p2 = A.InputBuffer$from(p, null, 0); + for (k = 3; k > 0; --k) { + p2.offset += 4; + this._filterLoop24$7(p2, 1, stride, 16, thresh, ithresh, hev_thresh); + } + }, + _filterLoop26$7(p, hstride, vstride, size, thresh, ithresh, hev_thresh) { + var t1, t2, t3, t4, size0, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, a, a1, a2, a3, + p2 = A.InputBuffer$from(p, null, 0); + for (t1 = -3 * hstride, t2 = -2 * hstride, t3 = -hstride, t4 = 2 * hstride; size0 = size - 1, size > 0; size = size0) { + if (this._needsFilter2$4(p2, hstride, thresh, ithresh)) + if (this._hev$3(p2, hstride, hev_thresh)) + this._doFilter2$2(p2, hstride); + else { + t5 = p2.buffer; + t6 = p2.offset; + t7 = t6 + t1; + t8 = t5.length; + if (!(t7 >= 0 && t7 < t8)) + return A.ioore(t5, t7); + t9 = t5[t7]; + t10 = t6 + t2; + if (!(t10 >= 0 && t10 < t8)) + return A.ioore(t5, t10); + t10 = t5[t10]; + t11 = t6 + t3; + if (!(t11 >= 0 && t11 < t8)) + return A.ioore(t5, t11); + t11 = t5[t11]; + if (!(t6 >= 0 && t6 < t8)) + return A.ioore(t5, t6); + t12 = t5[t6]; + t13 = t6 + hstride; + if (!(t13 < t8)) + return A.ioore(t5, t13); + t13 = t5[t13]; + t6 += t4; + if (!(t6 < t8)) + return A.ioore(t5, t6); + t6 = t5[t6]; + t8 = $.$get$VP8Filter_sclip1(); + t14 = 1020 + t10 - t13; + t8.toString; + if (!(t14 >= 0 && t14 < 2041)) + return A.ioore(t8, t14); + t14 = 1020 + 3 * (t12 - t11) + t8[t14]; + if (!(t14 >= 0 && t14 < 2041)) + return A.ioore(t8, t14); + a = t8[t14]; + t14 = B.JSInt_methods._shrOtherPositive$1(27 * a + 63, 7); + a1 = (t14 & 2147483647) - ((t14 & 2147483648) >>> 0); + t14 = B.JSInt_methods._shrOtherPositive$1(18 * a + 63, 7); + a2 = (t14 & 2147483647) - ((t14 & 2147483648) >>> 0); + t14 = B.JSInt_methods._shrOtherPositive$1(9 * a + 63, 7); + a3 = (t14 & 2147483647) - ((t14 & 2147483648) >>> 0); + t14 = $.$get$VP8Filter_clip1(); + t9 = 255 + t9 + a3; + t14.toString; + if (!(t9 >= 0 && t9 < 766)) + return A.ioore(t14, t9); + J.$indexSet$ax(t5, t7, t14[t9]); + t9 = $.$get$VP8Filter_clip1(); + t10 = 255 + t10 + a2; + t9.toString; + if (!(t10 >= 0 && t10 < 766)) + return A.ioore(t9, t10); + t10 = t9[t10]; + J.$indexSet$ax(p2.buffer, p2.offset + t2, t10); + t10 = $.$get$VP8Filter_clip1(); + t11 = 255 + t11 + a1; + t10.toString; + if (!(t11 >= 0 && t11 < 766)) + return A.ioore(t10, t11); + t11 = t10[t11]; + J.$indexSet$ax(p2.buffer, p2.offset + t3, t11); + t11 = $.$get$VP8Filter_clip1(); + t12 = 255 + t12 - a1; + t11.toString; + if (!(t12 >= 0 && t12 < 766)) + return A.ioore(t11, t12); + t12 = t11[t12]; + J.$indexSet$ax(p2.buffer, p2.offset, t12); + t12 = $.$get$VP8Filter_clip1(); + t13 = 255 + t13 - a2; + t12.toString; + if (!(t13 >= 0 && t13 < 766)) + return A.ioore(t12, t13); + t13 = t12[t13]; + J.$indexSet$ax(p2.buffer, p2.offset + hstride, t13); + t13 = $.$get$VP8Filter_clip1(); + t6 = 255 + t6 - a3; + t13.toString; + if (!(t6 >= 0 && t6 < 766)) + return A.ioore(t13, t6); + t6 = t13[t6]; + J.$indexSet$ax(p2.buffer, p2.offset + t4, t6); + } + p2.offset += vstride; + } + }, + _filterLoop24$7(p, hstride, vstride, size, thresh, ithresh, hev_thresh) { + var t1, t2, size0, t3, t4, t5, t6, t7, t8, t9, a, t10, a1, a2, a3, + p2 = A.InputBuffer$from(p, null, 0); + for (t1 = -2 * hstride, t2 = -hstride; size0 = size - 1, size > 0; size = size0) { + if (this._needsFilter2$4(p2, hstride, thresh, ithresh)) + if (this._hev$3(p2, hstride, hev_thresh)) + this._doFilter2$2(p2, hstride); + else { + t3 = p2.buffer; + t4 = p2.offset; + t5 = t4 + t1; + t6 = t3.length; + if (!(t5 >= 0 && t5 < t6)) + return A.ioore(t3, t5); + t7 = t3[t5]; + t8 = t4 + t2; + if (!(t8 >= 0 && t8 < t6)) + return A.ioore(t3, t8); + t8 = t3[t8]; + if (!(t4 >= 0 && t4 < t6)) + return A.ioore(t3, t4); + t9 = t3[t4]; + t4 += hstride; + if (!(t4 < t6)) + return A.ioore(t3, t4); + t4 = t3[t4]; + a = 3 * (t9 - t8); + t6 = $.$get$VP8Filter_sclip2(); + t10 = B.JSInt_methods._shrOtherPositive$1(a + 4, 3); + t10 = 112 + ((t10 & 2147483647) - ((t10 & 2147483648) >>> 0)); + t6.toString; + if (!(t10 >= 0 && t10 < 225)) + return A.ioore(t6, t10); + a1 = t6[t10]; + t10 = B.JSInt_methods._shrOtherPositive$1(a + 3, 3); + t10 = 112 + ((t10 & 2147483647) - ((t10 & 2147483648) >>> 0)); + if (!(t10 >= 0 && t10 < 225)) + return A.ioore(t6, t10); + a2 = t6[t10]; + t10 = B.JSInt_methods._shrOtherPositive$1(a1 + 1, 1); + a3 = (t10 & 2147483647) - ((t10 & 2147483648) >>> 0); + t10 = $.$get$VP8Filter_clip1(); + t7 = 255 + t7 + a3; + t10.toString; + if (!(t7 >= 0 && t7 < 766)) + return A.ioore(t10, t7); + J.$indexSet$ax(t3, t5, t10[t7]); + t7 = $.$get$VP8Filter_clip1(); + t8 = 255 + t8 + a2; + t7.toString; + if (!(t8 >= 0 && t8 < 766)) + return A.ioore(t7, t8); + t8 = t7[t8]; + J.$indexSet$ax(p2.buffer, p2.offset + t2, t8); + t8 = $.$get$VP8Filter_clip1(); + t9 = 255 + t9 - a1; + t8.toString; + if (!(t9 >= 0 && t9 < 766)) + return A.ioore(t8, t9); + t9 = t8[t9]; + J.$indexSet$ax(p2.buffer, p2.offset, t9); + t9 = $.$get$VP8Filter_clip1(); + t4 = 255 + t4 - a3; + t9.toString; + if (!(t4 >= 0 && t4 < 766)) + return A.ioore(t9, t4); + t4 = t9[t4]; + J.$indexSet$ax(p2.buffer, p2.offset + hstride, t4); + } + p2.offset += vstride; + } + }, + _doFilter2$2(p, step) { + var t5, t6, t7, a, a1, a2, + t1 = p.buffer, + t2 = p.offset, + t3 = t2 + -2 * step, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = -step; + t6 = t2 + t5; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t7 = t1[t2]; + t2 += step; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = $.$get$VP8Filter_sclip1(); + t2 = 1020 + t3 - t2; + t1.toString; + if (!(t2 >= 0 && t2 < 2041)) + return A.ioore(t1, t2); + a = 3 * (t7 - t6) + t1[t2]; + t2 = $.$get$VP8Filter_sclip2(); + t1 = 112 + B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(a + 4, 3), 32); + t2.toString; + if (!(t1 >= 0 && t1 < 225)) + return A.ioore(t2, t1); + a1 = t2[t1]; + t1 = $.$get$VP8Filter_sclip2(); + t2 = 112 + B.JSInt_methods.toSigned$1(B.JSInt_methods._shrOtherPositive$1(a + 3, 3), 32); + t1.toString; + if (!(t2 >= 0 && t2 < 225)) + return A.ioore(t1, t2); + a2 = t1[t2]; + t2 = $.$get$VP8Filter_clip1(); + t6 = 255 + t6 + a2; + t2.toString; + if (!(t6 >= 0 && t6 < 766)) + return A.ioore(t2, t6); + p.$indexSet(0, t5, t2[t6]); + t6 = $.$get$VP8Filter_clip1(); + t7 = 255 + t7 - a1; + t6.toString; + if (!(t7 >= 0 && t7 < 766)) + return A.ioore(t6, t7); + p.$indexSet(0, 0, t6[t7]); + }, + _hev$3(p, step, thresh) { + var t5, t6, + t1 = p.buffer, + t2 = p.offset, + t3 = t2 + -2 * step, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -step; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t6 = t1[t2]; + t2 += step; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = $.$get$VP8Filter_abs0(); + t5 = 255 + t3 - t5; + t1.toString; + if (!(t5 >= 0 && t5 < 511)) + return A.ioore(t1, t5); + if (t1[t5] <= thresh) { + t2 = 255 + t2 - t6; + if (!(t2 >= 0 && t2 < 511)) + return A.ioore(t1, t2); + t2 = t1[t2] > thresh; + t1 = t2; + } else + t1 = true; + return t1; + }, + _needsFilter$3(p, step, thresh) { + var t5, t6, + t1 = p.buffer, + t2 = p.offset, + t3 = t2 + -2 * step, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -step; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t6 = t1[t2]; + t2 += step; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = $.$get$VP8Filter_abs0(); + t6 = 255 + t5 - t6; + t1.toString; + if (!(t6 >= 0 && t6 < 511)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t1 = $.$get$VP8Filter_abs1(); + t2 = 255 + t3 - t2; + t1.toString; + if (!(t2 >= 0 && t2 < 511)) + return A.ioore(t1, t2); + return 2 * t6 + t1[t2] <= thresh; + }, + _needsFilter2$4(p, step, t, it) { + var t5, t6, t7, t8, t9, t10, t11, t12, t13, + t1 = p.buffer, + t2 = p.offset, + t3 = t2 + -4 * step, + t4 = t1.length; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + t5 = t2 + -3 * step; + if (!(t5 >= 0 && t5 < t4)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t6 = t2 + -2 * step; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = t2 + -step; + if (!(t7 >= 0 && t7 < t4)) + return A.ioore(t1, t7); + t7 = t1[t7]; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t8 = t1[t2]; + t9 = t2 + step; + if (!(t9 < t4)) + return A.ioore(t1, t9); + t9 = t1[t9]; + t10 = t2 + 2 * step; + if (!(t10 < t4)) + return A.ioore(t1, t10); + t10 = t1[t10]; + t2 += 3 * step; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = $.$get$VP8Filter_abs0(); + t4 = 255 + t7 - t8; + t1.toString; + if (!(t4 >= 0 && t4 < 511)) + return A.ioore(t1, t4); + t4 = t1[t4]; + t11 = $.$get$VP8Filter_abs1(); + t12 = 255 + t6; + t13 = t12 - t9; + t11.toString; + if (!(t13 >= 0 && t13 < 511)) + return A.ioore(t11, t13); + if (2 * t4 + t11[t13] > t) + return false; + t3 = 255 + t3 - t5; + if (!(t3 >= 0 && t3 < 511)) + return A.ioore(t1, t3); + if (t1[t3] <= it) { + t3 = 255 + t5 - t6; + if (!(t3 >= 0 && t3 < 511)) + return A.ioore(t1, t3); + if (t1[t3] <= it) { + t3 = t12 - t7; + if (!(t3 >= 0 && t3 < 511)) + return A.ioore(t1, t3); + if (t1[t3] <= it) { + t2 = 255 + t2 - t10; + if (!(t2 >= 0 && t2 < 511)) + return A.ioore(t1, t2); + if (t1[t2] <= it) { + t2 = 255 + t10 - t9; + if (!(t2 >= 0 && t2 < 511)) + return A.ioore(t1, t2); + if (t1[t2] <= it) { + t2 = 255 + t9 - t8; + if (!(t2 >= 0 && t2 < 511)) + return A.ioore(t1, t2); + t2 = t1[t2] <= it; + t1 = t2; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + } else + t1 = false; + return t1; + }, + transformOne$2(src, dst) { + var t1, t2, t3, si, tmp, i, t4, t5, a, b, t6, t7, c, d, tmp0, di, dc, + $C = new Int32Array(16); + for (t1 = src.buffer, t2 = src.offset, t3 = t1.length, si = 0, tmp = 0, i = 0; i < 4; ++i) { + t4 = t2 + si; + if (!(t4 >= 0 && t4 < t3)) + return A.ioore(t1, t4); + t4 = t1[t4]; + t5 = t2 + (si + 8); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(t1, t5); + t5 = t1[t5]; + a = t4 + t5; + b = t4 - t5; + t5 = t2 + (si + 4); + if (!(t5 >= 0 && t5 < t3)) + return A.ioore(t1, t5); + t5 = t1[t5]; + t4 = B.JSInt_methods._shrOtherPositive$1(t5 * 35468, 16); + t6 = t2 + (si + 12); + if (!(t6 >= 0 && t6 < t3)) + return A.ioore(t1, t6); + t6 = t1[t6]; + t7 = B.JSInt_methods._shrOtherPositive$1(t6 * 85627, 16); + c = (t4 & 2147483647) - ((t4 & 2147483648) >>> 0) - ((t7 & 2147483647) - ((t7 & 2147483648) >>> 0)); + t5 = B.JSInt_methods._shrOtherPositive$1(t5 * 85627, 16); + t6 = B.JSInt_methods._shrOtherPositive$1(t6 * 35468, 16); + d = (t5 & 2147483647) - ((t5 & 2147483648) >>> 0) + ((t6 & 2147483647) - ((t6 & 2147483648) >>> 0)); + tmp0 = tmp + 1; + if (!(tmp < 16)) + return A.ioore($C, tmp); + $C[tmp] = a + d; + tmp = tmp0 + 1; + if (!(tmp0 < 16)) + return A.ioore($C, tmp0); + $C[tmp0] = b + c; + tmp0 = tmp + 1; + if (!(tmp < 16)) + return A.ioore($C, tmp); + $C[tmp] = b - c; + tmp = tmp0 + 1; + if (!(tmp0 < 16)) + return A.ioore($C, tmp0); + $C[tmp0] = a - d; + ++si; + } + for (di = 0, tmp = 0, i = 0; i < 4; ++i) { + if (!(tmp < 16)) + return A.ioore($C, tmp); + dc = $C[tmp] + 4; + t1 = tmp + 8; + if (!(t1 < 16)) + return A.ioore($C, t1); + t1 = $C[t1]; + a = dc + t1; + b = dc - t1; + t1 = tmp + 4; + if (!(t1 < 16)) + return A.ioore($C, t1); + t1 = $C[t1]; + t2 = B.JSInt_methods._shrOtherPositive$1(t1 * 35468, 16); + t3 = tmp + 12; + if (!(t3 < 16)) + return A.ioore($C, t3); + t3 = $C[t3]; + t4 = B.JSInt_methods._shrOtherPositive$1(t3 * 85627, 16); + c = (t2 & 2147483647) - ((t2 & 2147483648) >>> 0) - ((t4 & 2147483647) - ((t4 & 2147483648) >>> 0)); + t1 = B.JSInt_methods._shrOtherPositive$1(t1 * 85627, 16); + t3 = B.JSInt_methods._shrOtherPositive$1(t3 * 35468, 16); + d = (t1 & 2147483647) - ((t1 & 2147483648) >>> 0) + ((t3 & 2147483647) - ((t3 & 2147483648) >>> 0)); + A.VP8Filter__store(dst, di, 0, 0, a + d); + A.VP8Filter__store(dst, di, 1, 0, b + c); + A.VP8Filter__store(dst, di, 2, 0, b - c); + A.VP8Filter__store(dst, di, 3, 0, a - d); + ++tmp; + di += 32; + } + }, + transform$3(_, src, dst, doTwo) { + this.transformOne$2(src, dst); + if (doTwo) + this.transformOne$2(A.InputBuffer$from(src, null, 16), A.InputBuffer$from(dst, null, 4)); + }, + transformDC$2(src, dst) { + var DC, j, i, + t1 = src.buffer, + t2 = src.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + DC = t1[t2] + 4; + for (j = 0; j < 4; ++j) + for (i = 0; i < 4; ++i) + A.VP8Filter__store(dst, 0, i, j, DC); + }, + transformDCUV$2(src, dst) { + var _this = this, _null = null, + t1 = src.buffer, + t2 = src.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + if (t1[t2] !== 0) + _this.transformDC$2(src, dst); + t1 = src.buffer; + t2 = src.offset + 16; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + if (t1[t2] !== 0) + _this.transformDC$2(A.InputBuffer$from(src, _null, 16), A.InputBuffer$from(dst, _null, 4)); + t1 = src.buffer; + t2 = src.offset + 32; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + if (t1[t2] !== 0) + _this.transformDC$2(A.InputBuffer$from(src, _null, 32), A.InputBuffer$from(dst, _null, 128)); + t1 = src.buffer; + t2 = src.offset + 48; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + if (t1[t2] !== 0) + _this.transformDC$2(A.InputBuffer$from(src, _null, 48), A.InputBuffer$from(dst, _null, 132)); + } + }; + A.VP8FrameHeader.prototype = {}; + A.VP8PictureHeader.prototype = {}; + A.VP8SegmentHeader.prototype = {}; + A.VP8BandProbas.prototype = {}; + A.VP8Proba.prototype = {}; + A.VP8FilterHeader.prototype = {}; + A.VP8FInfo.prototype = {}; + A.VP8MB.prototype = {}; + A.VP8QuantMatrix.prototype = {}; + A.VP8MBData.prototype = {}; + A.VP8TopSamples.prototype = {}; + A.VP8L.prototype = { + decodeHeader$0() { + var t2, + t1 = this.br; + if (t1.readBits$1(8) !== 47) + return false; + t2 = this.webp; + t2.format = 2; + t2.width = t1.readBits$1(14) + 1; + t2.height = t1.readBits$1(14) + 1; + t2.hasAlpha = t1.readBits$1(1) !== 0; + if (t1.readBits$1(3) !== 0) + return false; + return true; + }, + decode$0(_) { + var t1, t2, t3, _this = this, _null = null; + _this._lastPixel = 0; + if (!_this.decodeHeader$0()) + return _null; + t1 = _this.webp; + _this._decodeImageStream$3(t1.width, t1.height, true); + _this._allocateInternalBuffers32b$0(); + _this.image = A.Image$(t1.width, t1.height, B.Channels_1, _null, _null); + t2 = _this._pixels; + t2.toString; + t3 = t1.width; + t1 = t1.height; + if (!_this._decodeImageData$5(t2, t3, t1, t1, _this.get$_processRows())) + return _null; + return _this.image; + }, + _allocateInternalBuffers32b$0() { + var pixels32, _this = this, + t1 = _this.webp, + t2 = t1.width; + t1 = t1.height; + if (typeof t2 !== "number") + return t2.$mul(); + if (typeof t1 !== "number") + return A.iae(t1); + t1 = t2 * t1 + t2; + pixels32 = new Uint32Array(t1 + t2 * 16); + _this._pixels = pixels32; + _this.__VP8L__pixels8 = A.NativeUint8List_NativeUint8List$view(pixels32.buffer, 0, null); + _this._argbCache = t1; + return true; + }, + _readTransform$1(transformSize) { + var t1, type, t2, t3, transform, numColors, bits, _this = this; + type$.List_int._as(transformSize); + t1 = _this.br; + type = t1.readBits$1(2); + t2 = _this._transformsSeen; + t3 = B.JSInt_methods._shlPositive$1(1, type); + if ((t2 & t3) >>> 0 !== 0) + return false; + _this._transformsSeen = (t2 | t3) >>> 0; + transform = new A.VP8LTransform(); + B.JSArray_methods.add$1(_this._transforms, transform); + transform.type = type; + transform.xsize = transformSize[0]; + transform.ysize = transformSize[1]; + switch (type) { + case 0: + case 1: + t1 = transform.bits = t1.readBits$1(3) + 2; + transform.data = _this._decodeImageStream$3(A.VP8L__subSampleSize(transform.xsize, t1), A.VP8L__subSampleSize(transform.ysize, t1), false); + break; + case 3: + numColors = t1.readBits$1(8) + 1; + if (numColors > 16) + bits = 0; + else if (numColors > 4) + bits = 1; + else { + t1 = numColors > 2 ? 2 : 3; + bits = t1; + } + B.JSArray_methods.$indexSet(transformSize, 0, A.VP8L__subSampleSize(transform.xsize, bits)); + transform.bits = bits; + transform.data = _this._decodeImageStream$3(numColors, 1, false); + _this._expandColorMap$2(numColors, transform); + break; + case 2: + break; + default: + throw A.wrapException(A.ImageException$("Invalid WebP transform type: " + type)); + } + return true; + }, + _decodeImageStream$3(xsize, ysize, isLevel0) { + var t1, t2, transformYsize, transformXsize, sizes, colorCacheBits, numBits, data, _this = this; + A._asInt(xsize); + A._asInt(ysize); + if (isLevel0) { + for (t1 = _this.br, t2 = type$.JSArray_int, transformYsize = ysize, transformXsize = xsize; t1.readBits$1(1) !== 0;) { + sizes = A._setArrayType([transformXsize, transformYsize], t2); + if (!_this._readTransform$1(sizes)) + throw A.wrapException(A.ImageException$("Invalid Transform")); + transformXsize = sizes[0]; + transformYsize = sizes[1]; + } + isLevel0 = true; + } else { + transformYsize = ysize; + transformXsize = xsize; + } + t1 = _this.br; + if (t1.readBits$1(1) !== 0) { + colorCacheBits = t1.readBits$1(4); + if (!(colorCacheBits >= 1 && colorCacheBits <= 11)) + throw A.wrapException(A.ImageException$("Invalid Color Cache")); + } else + colorCacheBits = 0; + if (!_this._readHuffmanCodes$4(transformXsize, transformYsize, colorCacheBits, isLevel0)) + throw A.wrapException(A.ImageException$("Invalid Huffman Codes")); + if (colorCacheBits > 0) { + t1 = B.JSInt_methods._shlPositive$1(1, colorCacheBits); + _this._colorCacheSize = t1; + _this._colorCache = new A.VP8LColorCache(new Uint32Array(t1), 32 - colorCacheBits); + } else + _this._colorCacheSize = 0; + t1 = _this.webp; + t1.width = transformXsize; + t1.height = transformYsize; + numBits = _this._huffmanSubsampleBits; + _this._huffmanXsize = A.VP8L__subSampleSize(transformXsize, numBits); + _this._huffmanMask = numBits === 0 ? 4294967295 : B.JSInt_methods._shlPositive$1(1, numBits) - 1; + if (isLevel0) { + _this._lastPixel = 0; + return null; + } + data = new Uint32Array(transformXsize * transformYsize); + if (!_this._decodeImageData$5(data, transformXsize, transformYsize, transformYsize, null)) + throw A.wrapException(A.ImageException$("Failed to decode image data.")); + _this._lastPixel = 0; + return data; + }, + _decodeImageData$5(data, width, height, lastRow, processFunc) { + var t1, row, col, htreeGroup, src, srcEnd, srcLast, colorCacheLimit, colorCache, mask, t2, t3, lastCached, t4, t5, metaIndex, code, red, blue, t6, t7, key, $length, distSymbol, dist, dst, i, key0, _this = this; + A._asInt(width); + A._asInt(height); + A._asInt(lastRow); + type$.nullable_void_Function_int._as(processFunc); + t1 = _this._lastPixel; + row = B.JSInt_methods.$tdiv(t1, width); + col = B.JSInt_methods.$mod(t1, width); + htreeGroup = _this._getHtreeGroupForPos$2(col, row); + src = _this._lastPixel; + srcEnd = width * height; + srcLast = width * lastRow; + t1 = _this._colorCacheSize; + colorCacheLimit = 280 + t1; + colorCache = t1 > 0 ? _this._colorCache : null; + mask = _this._huffmanMask; + t1 = data.length; + t2 = _this.br; + t3 = processFunc != null; + lastCached = src; + while (true) { + t4 = t2._vp8l_bit_reader$_input; + t5 = t4.end; + if (!(!(t4.offset >= t5 && t2.bitPos >= 64) && src < srcLast)) + break; + if ((col & mask) >>> 0 === 0) { + metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); + t4 = _this._htreeGroups; + if (!(metaIndex < t4.length)) + return A.ioore(t4, metaIndex); + htreeGroup = t4[metaIndex]; + } + if (t2.bitPos >= 32) + t2._shiftBytes$0(); + t4 = htreeGroup.htrees; + t5 = t4.length; + if (0 >= t5) + return A.ioore(t4, 0); + code = t4[0].readSymbol$1(t2); + if (code < 256) { + if (1 >= t5) + return A.ioore(t4, 1); + red = t4[1].readSymbol$1(t2); + if (t2.bitPos >= 32) + t2._shiftBytes$0(); + if (2 >= t5) + return A.ioore(t4, 2); + blue = t4[2].readSymbol$1(t2); + if (3 >= t5) + return A.ioore(t4, 3); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(t4[3].readSymbol$1(t2), 0, 255)); + t5 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(red, 0, 255)); + t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(code, 0, 255)); + t7 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(blue, 0, 255)); + if (!(src >= 0 && src < t1)) + return A.ioore(data, src); + data[src] = (t4 << 24 | t5 << 16 | t6 << 8 | t7) >>> 0; + ++src; + ++col; + if (col >= width) { + ++row; + if (B.JSInt_methods.$mod(row, 16) === 0 && t3) + processFunc.call$1(row); + if (colorCache != null) + for (t4 = colorCache.hashShift, t5 = colorCache.colors, t6 = t5.length; lastCached < src;) { + if (!(lastCached >= 0)) + return A.ioore(data, lastCached); + t7 = data[lastCached]; + key = B.JSInt_methods._shrReceiverPositive$1(t7 * 506832829 >>> 0, t4); + if (!(key < t6)) + return A.ioore(t5, key); + t5[key] = t7; + ++lastCached; + } + col = 0; + } + } else if (code < 280) { + $length = _this._getCopyDistance$1(code - 256); + if (4 >= t5) + return A.ioore(t4, 4); + distSymbol = t4[4].readSymbol$1(t2); + if (t2.bitPos >= 32) + t2._shiftBytes$0(); + dist = _this._planeCodeToDistance$2(width, _this._getCopyDistance$1(distSymbol)); + if (src < dist || srcEnd - src < $length) + return false; + else { + dst = src - dist; + for (i = 0; i < $length; ++i) { + t4 = src + i; + t5 = dst + i; + if (!(t5 >= 0 && t5 < t1)) + return A.ioore(data, t5); + t5 = data[t5]; + if (!(t4 >= 0 && t4 < t1)) + return A.ioore(data, t4); + data[t4] = t5; + } + src += $length; + } + col += $length; + for (; col >= width;) { + col -= width; + ++row; + if (B.JSInt_methods.$mod(row, 16) === 0 && t3) + processFunc.call$1(row); + } + if (src < srcLast) { + if ((col & mask) >>> 0 !== 0) { + metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); + t4 = _this._htreeGroups; + if (!(metaIndex < t4.length)) + return A.ioore(t4, metaIndex); + htreeGroup = t4[metaIndex]; + } + if (colorCache != null) + for (t4 = colorCache.hashShift, t5 = colorCache.colors, t6 = t5.length; lastCached < src;) { + if (!(lastCached >= 0 && lastCached < t1)) + return A.ioore(data, lastCached); + t7 = data[lastCached]; + key = B.JSInt_methods._shrReceiverPositive$1(t7 * 506832829 >>> 0, t4); + if (!(key < t6)) + return A.ioore(t5, key); + t5[key] = t7; + ++lastCached; + } + } + } else if (code < colorCacheLimit) { + key = code - 280; + for (; lastCached < src;) { + colorCache.toString; + if (!(lastCached >= 0 && lastCached < t1)) + return A.ioore(data, lastCached); + t4 = data[lastCached]; + key0 = B.JSInt_methods._shrReceiverPositive$1(t4 * 506832829 >>> 0, colorCache.hashShift); + t5 = colorCache.colors; + if (!(key0 < t5.length)) + return A.ioore(t5, key0); + t5[key0] = t4; + ++lastCached; + } + t4 = colorCache.colors; + t5 = t4.length; + if (!(key < t5)) + return A.ioore(t4, key); + t6 = t4[key]; + if (!(src >= 0 && src < t1)) + return A.ioore(data, src); + data[src] = t6; + ++src; + ++col; + if (col >= width) { + ++row; + if (B.JSInt_methods.$mod(row, 16) === 0 && t3) + processFunc.call$1(row); + for (t6 = colorCache.hashShift; lastCached < src;) { + if (!(lastCached >= 0)) + return A.ioore(data, lastCached); + t7 = data[lastCached]; + key = B.JSInt_methods._shrReceiverPositive$1(t7 * 506832829 >>> 0, t6); + if (!(key < t5)) + return A.ioore(t4, key); + t4[key] = t7; + ++lastCached; + } + col = 0; + } + } else + return false; + } + if (t3) + processFunc.call$1(row); + if (t4.offset >= t5 && t2.bitPos >= 64 && src < srcEnd) + return false; + _this._lastPixel = src; + return true; + }, + _is8bOptimizable$0() { + var t1, t2, t3, i, htrees, t4; + if (this._colorCacheSize > 0) + return false; + for (t1 = this._numHtreeGroups, t2 = this._htreeGroups, t3 = t2.length, i = 0; i < t1; ++i) { + if (!(i < t3)) + return A.ioore(t2, i); + htrees = t2[i].htrees; + t4 = htrees.length; + if (1 >= t4) + return A.ioore(htrees, 1); + if (htrees[1].numNodes > 1) + return false; + if (2 >= t4) + return A.ioore(htrees, 2); + if (htrees[2].numNodes > 1) + return false; + if (3 >= t4) + return A.ioore(htrees, 3); + if (htrees[3].numNodes > 1) + return false; + } + return true; + }, + _extractAlphaRows$1(row) { + var t2, t3, width, cachePixs, di, src, t4, i, t5, t6, _this = this, + t1 = _this._lastRow, + numRows = row - t1; + if (numRows <= 0) + return; + t2 = _this.webp; + t3 = t2.width; + if (typeof t3 !== "number") + return t3.$mul(); + _this._applyInverseTransforms$2(numRows, t3 * t1); + width = t2.width; + cachePixs = width * numRows; + di = width * _this._lastRow; + t2 = _this._pixels; + t2.toString; + t1 = _this._argbCache; + t1.toString; + src = A.InputBuffer$(t2, false, null, t1); + for (t1 = _this._opaque, t2 = src.buffer, t3 = src.offset, t4 = t2.length, i = 0; i < cachePixs; ++i) { + t1.toString; + t5 = di + i; + t6 = t3 + i; + if (!(t6 >= 0 && t6 < t4)) + return A.ioore(t2, t6); + t6 = B.JSInt_methods._shrOtherPositive$1(t2[t6], 8); + if (!(t5 >= 0 && t5 < t1.length)) + return A.ioore(t1, t5); + t1[t5] = t6 & 255; + } + _this._lastRow = row; + }, + _decodeAlphaData$3(width, height, lastRow) { + var t2, metaIndex, t3, code, $length, distSymbol, dist, i, t4, t5, _this = this, + _s8_ = "_pixels8", + t1 = _this._lastPixel, + row = B.JSInt_methods.$tdiv(t1, width), + col = B.JSInt_methods.$mod(t1, width), + htreeGroup = _this._getHtreeGroupForPos$2(col, row), + pos = _this._lastPixel, + end = width * height, + last = width * lastRow, + mask = _this._huffmanMask; + t1 = _this.br; + while (true) { + t2 = t1._vp8l_bit_reader$_input; + if (!(!(t2.offset >= t2.end && t1.bitPos >= 64) && pos < last)) + break; + if ((col & mask) >>> 0 === 0) { + metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); + t2 = _this._htreeGroups; + if (!(metaIndex < t2.length)) + return A.ioore(t2, metaIndex); + htreeGroup = t2[metaIndex]; + } + if (t1.bitPos >= 32) + t1._shiftBytes$0(); + t2 = htreeGroup.htrees; + t3 = t2.length; + if (0 >= t3) + return A.ioore(t2, 0); + code = t2[0].readSymbol$1(t1); + if (code < 256) { + t2 = A._lateReadCheck(_this.__VP8L__pixels8, _s8_); + if (!(pos >= 0 && pos < t2.length)) + return A.ioore(t2, pos); + t2[pos] = code; + ++pos; + ++col; + if (col >= width) { + ++row; + if (B.JSInt_methods.$mod(row, 16) === 0) + _this._extractPalettedAlphaRows$1(row); + col = 0; + } + } else if (code < 280) { + $length = _this._getCopyDistance$1(code - 256); + if (4 >= t3) + return A.ioore(t2, 4); + distSymbol = t2[4].readSymbol$1(t1); + if (t1.bitPos >= 32) + t1._shiftBytes$0(); + dist = _this._planeCodeToDistance$2(width, _this._getCopyDistance$1(distSymbol)); + if (pos >= dist && end - pos >= $length) + for (i = 0; i < $length; ++i) { + t2 = A._lateReadCheck(_this.__VP8L__pixels8, _s8_); + t3 = pos + i; + t4 = A._lateReadCheck(_this.__VP8L__pixels8, _s8_); + t5 = t3 - dist; + if (!(t5 >= 0 && t5 < t4.length)) + return A.ioore(t4, t5); + t5 = t4[t5]; + if (!(t3 >= 0 && t3 < t2.length)) + return A.ioore(t2, t3); + t2[t3] = t5; + } + else { + _this._lastPixel = pos; + return true; + } + pos += $length; + col += $length; + for (; col >= width;) { + col -= width; + ++row; + if (B.JSInt_methods.$mod(row, 16) === 0) + _this._extractPalettedAlphaRows$1(row); + } + if (pos < last && (col & mask) >>> 0 !== 0) { + metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, col, row); + t2 = _this._htreeGroups; + if (!(metaIndex < t2.length)) + return A.ioore(t2, metaIndex); + htreeGroup = t2[metaIndex]; + } + } else + return false; + } + _this._extractPalettedAlphaRows$1(row); + _this._lastPixel = pos; + return true; + }, + _extractPalettedAlphaRows$1(row) { + var pIn, rowsOut, _this = this, + numRows = row - _this._lastRow, + t1 = A._lateReadCheck(_this.__VP8L__pixels8, "_pixels8"), + t2 = _this.webp.width, + t3 = _this._lastRow; + if (typeof t2 !== "number") + return t2.$mul(); + pIn = A.InputBuffer$(t1, false, null, t2 * t3); + if (numRows > 0) { + t1 = _this._opaque; + t1.toString; + t2 = _this._ioWidth; + t2.toString; + rowsOut = A.InputBuffer$(t1, false, null, t2 * t3); + t2 = _this._transforms; + if (0 >= t2.length) + return A.ioore(t2, 0); + t2[0].colorIndexInverseTransformAlpha$4(t3, t3 + numRows, pIn, rowsOut); + } + _this._lastRow = row; + }, + _processRows$1(row) { + var numRows, dy, pi, y, x, c, t4, t5, t6, t7, _this = this, + t1 = _this.webp, + t2 = t1.width, + t3 = _this._lastRow; + if (typeof t2 !== "number") + return t2.$mul(); + numRows = row - t3; + if (numRows <= 0) + return; + _this._applyInverseTransforms$2(numRows, t2 * t3); + t2 = _this._argbCache; + t2.toString; + dy = _this._lastRow; + pi = t2; + y = 0; + for (; y < numRows; ++y, ++dy) { + x = 0; + while (true) { + t2 = t1.width; + if (typeof t2 !== "number") + return A.iae(t2); + if (!(x < t2)) + break; + t2 = _this._pixels; + if (!(pi >= 0 && pi < t2.length)) + return A.ioore(t2, pi); + c = t2[pi]; + t2 = _this.image; + t2.toString; + t3 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 24 & 255, 0, 255)); + t4 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c & 255, 0, 255)); + t5 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 8 & 255, 0, 255)); + t6 = B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 16 & 255, 0, 255)); + t7 = t2.data; + t2 = dy * t2.width + x; + if (!(t2 >= 0 && t2 < t7.length)) + return A.ioore(t7, t2); + t7[t2] = (t3 << 24 | t4 << 16 | t5 << 8 | t6) >>> 0; + ++x; + ++pi; + } + } + _this._lastRow = row; + }, + _applyInverseTransforms$2(numRows, rows) { + var startRow, endRow, t3, t4, rowsIn, n0, transform, t5, width, start, t6, inStride, src, _this = this, + t1 = _this._transforms, + n = t1.length, + t2 = _this.webp.width; + if (typeof t2 !== "number") + return t2.$mul(); + startRow = _this._lastRow; + endRow = startRow + numRows; + t3 = _this._argbCache; + t3.toString; + t4 = _this._pixels; + t4.toString; + B.NativeUint32List_methods.setRange$4(t4, t3, t3 + t2 * numRows, t4, rows); + for (t2 = endRow - startRow, t4 = t2 - 1, rowsIn = rows; n0 = n - 1, n > 0; rowsIn = t3, n = n0) { + if (!(n0 >= 0 && n0 < t1.length)) + return A.ioore(t1, n0); + transform = t1[n0]; + t5 = _this._pixels; + t5.toString; + width = transform.xsize; + switch (transform.type) { + case 2: + transform.addGreenToBlueAndRed$3(t5, t3, t3 + t2 * width); + break; + case 0: + transform.predictorInverseTransform$4(startRow, endRow, t5, t3); + if (endRow !== transform.ysize) { + start = t3 - width; + B.NativeUint32List_methods.setRange$4(t5, start, start + width, t5, t3 + t4 * width); + } + break; + case 1: + transform.colorSpaceInverseTransform$4(startRow, endRow, t5, t3); + break; + case 3: + if (rowsIn === t3 && transform.bits > 0) { + t6 = transform.bits; + inStride = t2 * B.JSInt_methods._shrOtherPositive$1(width + B.JSInt_methods._shlPositive$1(1, t6) - 1, t6); + src = t3 + t2 * width - inStride; + B.NativeUint32List_methods.setRange$4(t5, src, src + inStride, t5, t3); + transform.colorIndexInverseTransform$6(startRow, endRow, t5, src, t5, t3); + } else + transform.colorIndexInverseTransform$6(startRow, endRow, t5, rowsIn, t5, t3); + break; + } + } + }, + _readHuffmanCodes$4(xsize, ysize, colorCacheBits, allowRecursion) { + var huffmanPrecision, huffmanXsize, huffmanYsize, huffmanPixs, huffmanImage, numHtreeGroups, i, group, htreeGroups, _i, t1, j, alphabetSize, t2, _this = this; + if (allowRecursion && _this.br.readBits$1(1) !== 0) { + huffmanPrecision = _this.br.readBits$1(3) + 2; + huffmanXsize = A.VP8L__subSampleSize(xsize, huffmanPrecision); + huffmanYsize = A.VP8L__subSampleSize(ysize, huffmanPrecision); + huffmanPixs = huffmanXsize * huffmanYsize; + huffmanImage = _this._decodeImageStream$3(huffmanXsize, huffmanYsize, false); + _this._huffmanSubsampleBits = huffmanPrecision; + for (numHtreeGroups = 1, i = 0; i < huffmanPixs; ++i) { + if (!(i < huffmanImage.length)) + return A.ioore(huffmanImage, i); + group = huffmanImage[i] >>> 8 & 65535; + huffmanImage[i] = group; + if (group >= numHtreeGroups) + numHtreeGroups = group + 1; + } + } else { + huffmanImage = null; + numHtreeGroups = 1; + } + htreeGroups = J.JSArray_JSArray$allocateFixed(numHtreeGroups, type$.HTreeGroup); + for (_i = 0; _i < numHtreeGroups; ++_i) + htreeGroups[_i] = A.HTreeGroup$(); + for (t1 = colorCacheBits > 0, i = 0; i < numHtreeGroups; ++i) + for (j = 0; j < 5; ++j) { + alphabetSize = B.List_yTu[j]; + if (j === 0 && t1) + alphabetSize += B.JSInt_methods._shlPositive$1(1, colorCacheBits); + if (!(i < numHtreeGroups)) + return A.ioore(htreeGroups, i); + t2 = htreeGroups[i].htrees; + if (!(j < t2.length)) + return A.ioore(t2, j); + if (!_this._readHuffmanCode$2(alphabetSize, t2[j])) + return false; + } + _this._huffmanImage = huffmanImage; + _this._numHtreeGroups = numHtreeGroups; + _this.set$_htreeGroups(htreeGroups); + return true; + }, + _readHuffmanCode$2(alphabetSize, tree) { + var t2, symbols, codes, codeLengths, numSymbols, ok, codeLengthCodeLengths, numCodes, i, t3, + t1 = this.br; + if (t1.readBits$1(1) !== 0) { + t2 = type$.JSArray_int; + symbols = A._setArrayType([0, 0], t2); + codes = A._setArrayType([0, 0], t2); + codeLengths = A._setArrayType([0, 0], t2); + numSymbols = t1.readBits$1(1) + 1; + B.JSArray_methods.$indexSet(symbols, 0, t1.readBits$1(t1.readBits$1(1) === 0 ? 1 : 8)); + B.JSArray_methods.$indexSet(codes, 0, 0); + t2 = numSymbols - 1; + B.JSArray_methods.$indexSet(codeLengths, 0, t2); + if (numSymbols === 2) { + B.JSArray_methods.$indexSet(symbols, 1, t1.readBits$1(8)); + B.JSArray_methods.$indexSet(codes, 1, 1); + B.JSArray_methods.$indexSet(codeLengths, 1, t2); + } + ok = tree.buildExplicit$5(codeLengths, codes, symbols, alphabetSize, numSymbols); + } else { + codeLengthCodeLengths = new Int32Array(19); + numCodes = t1.readBits$1(4) + 4; + if (numCodes > 19) + return false; + codeLengths = new Int32Array(alphabetSize); + for (i = 0; i < numCodes; ++i) { + t2 = B.List_uSC0[i]; + t3 = t1.readBits$1(3); + if (!(t2 < 19)) + return A.ioore(codeLengthCodeLengths, t2); + codeLengthCodeLengths[t2] = t3; + } + ok = this._readHuffmanCodeLengths$3(codeLengthCodeLengths, alphabetSize, codeLengths); + if (ok) + ok = tree.buildImplicit$2(codeLengths, alphabetSize); + } + return ok; + }, + _readHuffmanCodeLengths$3(codeLengthCodeLengths, numSymbols, codeLengths) { + var tree, max_symbol, t2, symbol, prev_code_len, max_symbol0, code_len, symbol0, slot, extra_bits, repeat_offset, repeat, $length, repeat0, + t1 = type$.List_int; + t1._as(codeLengthCodeLengths); + t1._as(codeLengths); + tree = A.HuffmanTree$(); + if (!tree.buildImplicit$2(codeLengthCodeLengths, 19)) + return false; + t1 = this.br; + if (t1.readBits$1(1) !== 0) { + max_symbol = 2 + t1.readBits$1(2 + 2 * t1.readBits$1(3)); + if (max_symbol > numSymbols) + return false; + } else + max_symbol = numSymbols; + for (t2 = codeLengths.length, symbol = 0, prev_code_len = 8; symbol < numSymbols; max_symbol = max_symbol0) { + max_symbol0 = max_symbol - 1; + if (max_symbol === 0) + break; + if (t1.bitPos >= 32) + t1._shiftBytes$0(); + code_len = tree.readSymbol$1(t1); + if (code_len < 16) { + symbol0 = symbol + 1; + if (!(symbol >= 0 && symbol < t2)) + return A.ioore(codeLengths, symbol); + codeLengths[symbol] = code_len; + if (code_len !== 0) + prev_code_len = code_len; + symbol = symbol0; + } else { + slot = code_len - 16; + if (!(slot < 3)) + return A.ioore(B.List_2_3_7, slot); + extra_bits = B.List_2_3_7[slot]; + repeat_offset = B.List_3_3_11[slot]; + repeat = t1.readBits$1(extra_bits) + repeat_offset; + if (symbol + repeat > numSymbols) + return false; + else { + $length = code_len === 16 ? prev_code_len : 0; + for (; repeat0 = repeat - 1, repeat > 0; repeat = repeat0, symbol = symbol0) { + symbol0 = symbol + 1; + if (!(symbol >= 0 && symbol < t2)) + return A.ioore(codeLengths, symbol); + codeLengths[symbol] = $length; + } + } + } + } + return true; + }, + _getCopyDistance$1(distanceSymbol) { + var extraBits; + if (distanceSymbol < 4) + return distanceSymbol + 1; + extraBits = B.JSInt_methods._shrOtherPositive$1(distanceSymbol - 2, 1); + return B.JSInt_methods._shlPositive$1(2 + (distanceSymbol & 1), extraBits) + this.br.readBits$1(extraBits) + 1; + }, + _planeCodeToDistance$2(xsize, planeCode) { + var t1, distCode, dist; + if (planeCode > 120) + return planeCode - 120; + else { + t1 = planeCode - 1; + if (!(t1 >= 0)) + return A.ioore(B.List_AYZ, t1); + distCode = B.List_AYZ[t1]; + dist = (distCode >>> 4) * xsize + (8 - (distCode & 15)); + return dist >= 1 ? dist : 1; + } + }, + _expandColorMap$2(numColors, transform) { + var len, t2, i, t3, t4, + finalNumColors = B.JSInt_methods._shlPositive$1(1, B.JSInt_methods._shrBothPositive$1(8, transform.bits)), + newColorMap = new Uint32Array(finalNumColors), + data = A.NativeUint8List_NativeUint8List$view(transform.data.buffer, 0, null), + newData = A.NativeUint8List_NativeUint8List$view(newColorMap.buffer, 0, null), + t1 = transform.data; + if (0 >= t1.length) + return A.ioore(t1, 0); + t1 = t1[0]; + if (0 >= finalNumColors) + return A.ioore(newColorMap, 0); + newColorMap[0] = t1; + len = 4 * numColors; + for (t1 = data.length, t2 = newData.length, i = 4; i < len; ++i) { + if (!(i < t1)) + return A.ioore(data, i); + t3 = data[i]; + t4 = i - 4; + if (!(t4 < t2)) + return A.ioore(newData, t4); + t4 = newData[t4]; + if (!(i < t2)) + return A.ioore(newData, i); + newData[i] = t3 + t4 & 255; + } + for (len = 4 * finalNumColors; i < len; ++i) { + if (!(i < t2)) + return A.ioore(newData, i); + newData[i] = 0; + } + transform.data = newColorMap; + return true; + }, + _getMetaIndex$5(image, xsize, bits, x, y) { + var t1; + if (bits === 0) + return 0; + image.toString; + t1 = xsize * B.JSInt_methods._shrOtherPositive$1(y, bits) + B.JSInt_methods._shrOtherPositive$1(x, bits); + if (!(t1 < image.length)) + return A.ioore(image, t1); + return image[t1]; + }, + _getHtreeGroupForPos$2(x, y) { + var _this = this, + metaIndex = _this._getMetaIndex$5(_this._huffmanImage, _this._huffmanXsize, _this._huffmanSubsampleBits, x, y), + t1 = _this._htreeGroups; + if (!(metaIndex < t1.length)) + return A.ioore(t1, metaIndex); + return t1[metaIndex]; + }, + set$_htreeGroups(_htreeGroups) { + this._htreeGroups = type$.List_HTreeGroup._as(_htreeGroups); + } + }; + A.InternalVP8L.prototype = { + extractAlphaRows$1(row) { + return this._extractAlphaRows$1(row); + } + }; + A.VP8LBitReader.prototype = { + prefetchBits$0() { + var t2, t3, b2, + t1 = this.bitPos; + if (t1 < 32) { + t2 = this._vp8l_bit_reader$_buffer; + t3 = B.JSInt_methods._shrReceiverPositive$1(t2[0], t1); + t2 = t2[1]; + if (!(t1 >= 0)) + return A.ioore(B.List_DKo, t1); + b2 = t3 + ((t2 & B.List_DKo[t1]) >>> 0) * (B.List_DKo[32 - t1] + 1); + } else { + t2 = this._vp8l_bit_reader$_buffer; + b2 = t1 === 32 ? t2[1] : B.JSInt_methods._shrReceiverPositive$1(t2[1], t1 - 32); + } + return b2; + }, + readBits$1(numBits) { + var t2, _this = this, + t1 = _this._vp8l_bit_reader$_input; + if (!(t1.offset >= t1.end && _this.bitPos >= 64) && numBits < 25) { + t1 = _this.prefetchBits$0(); + if (!(numBits < 33)) + return A.ioore(B.List_DKo, numBits); + t2 = B.List_DKo[numBits]; + _this.bitPos += numBits; + _this._shiftBytes$0(); + return (t1 & t2) >>> 0; + } else + throw A.wrapException(A.ImageException$("Not enough data in input.")); + }, + _shiftBytes$0() { + var t4, t5, t6, t7, _this = this, + t1 = _this._vp8l_bit_reader$_input, + t2 = _this._vp8l_bit_reader$_buffer, + t3 = t1.end; + while (true) { + t4 = _this.bitPos; + if (!(t4 >= 8 && t1.offset < t3)) + break; + t5 = t1.buffer; + t6 = t1.offset++; + if (!(t6 >= 0 && t6 < t5.length)) + return A.ioore(t5, t6); + t6 = t5[t6]; + t5 = t2[0]; + t7 = t2[1]; + t2[0] = (t5 >>> 8) + (t7 & 255) * 16777216; + t2[1] = t7 >>> 8; + t2[1] = (t2[1] | t6 * 16777216) >>> 0; + _this.bitPos = t4 - 8; + } + } + }; + A.VP8LColorCache.prototype = {}; + A.VP8LTransform.prototype = { + colorIndexInverseTransformAlpha$4(yStart, yEnd, src, dst) { + var countMask, bit_mask, y, packed_pixels, x, t2, + t1 = this.bits, + bitsPerPixel = B.JSInt_methods._shrBothPositive$1(8, t1), + width = this.xsize, + colorMap = this.data; + if (bitsPerPixel < 8) { + countMask = B.JSInt_methods._shlPositive$1(1, t1) - 1; + bit_mask = B.JSInt_methods._shlPositive$1(1, bitsPerPixel) - 1; + for (y = yStart; y < yEnd; ++y) + for (packed_pixels = 0, x = 0; x < width; ++x) { + if ((x & countMask) >>> 0 === 0) { + t1 = src.buffer; + t2 = src.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + packed_pixels = t1[t2]; + src.offset = t2 + 1; + } + t1 = (packed_pixels & bit_mask) >>> 0; + if (!(t1 >= 0 && t1 < colorMap.length)) + return A.ioore(colorMap, t1); + t1 = colorMap[t1]; + J.$indexSet$ax(dst.buffer, dst.offset, t1 >>> 8 & 255); + ++dst.offset; + packed_pixels = B.JSInt_methods._shrOtherPositive$1(packed_pixels, bitsPerPixel); + } + } else + for (y = yStart; y < yEnd; ++y) + for (x = 0; x < width; ++x) { + t1 = src.buffer; + t2 = src.offset; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1 = t1[t2]; + src.offset = t2 + 1; + if (t1 >>> 0 !== t1 || t1 >= colorMap.length) + return A.ioore(colorMap, t1); + t1 = colorMap[t1]; + J.$indexSet$ax(dst.buffer, dst.offset, t1 >>> 8 & 255); + ++dst.offset; + } + }, + colorIndexInverseTransform$6(yStart, yEnd, inData, src, outData, dst) { + var countMask, bit_mask, t2, y, packed_pixels, x, src0, dst0, t3, + t1 = this.bits, + bitsPerPixel = B.JSInt_methods._shrBothPositive$1(8, t1), + width = this.xsize, + colorMap = this.data; + if (bitsPerPixel < 8) { + countMask = B.JSInt_methods._shlPositive$1(1, t1) - 1; + bit_mask = B.JSInt_methods._shlPositive$1(1, bitsPerPixel) - 1; + for (t1 = outData.length, t2 = inData.length, y = yStart; y < yEnd; ++y) + for (packed_pixels = 0, x = 0; x < width; ++x, dst = dst0) { + if ((x & countMask) >>> 0 === 0) { + src0 = src + 1; + if (!(src >= 0 && src < t2)) + return A.ioore(inData, src); + packed_pixels = inData[src] >>> 8 & 255; + src = src0; + } + dst0 = dst + 1; + t3 = packed_pixels & bit_mask; + if (!(t3 >= 0 && t3 < colorMap.length)) + return A.ioore(colorMap, t3); + t3 = colorMap[t3]; + if (!(dst >= 0 && dst < t1)) + return A.ioore(outData, dst); + outData[dst] = t3; + packed_pixels = B.JSInt_methods._shrBothPositive$1(packed_pixels, bitsPerPixel); + } + } else + for (t1 = inData.length, t2 = outData.length, y = yStart; y < yEnd; ++y) + for (x = 0; x < width; ++x, dst = dst0, src = src0) { + dst0 = dst + 1; + colorMap.toString; + src0 = src + 1; + if (!(src >= 0 && src < t1)) + return A.ioore(inData, src); + t3 = inData[src] >>> 8 & 255; + if (!(t3 < colorMap.length)) + return A.ioore(colorMap, t3); + t3 = colorMap[t3]; + if (!(dst >= 0 && dst < t2)) + return A.ioore(outData, dst); + outData[dst] = t3; + } + }, + colorSpaceInverseTransform$4(yStart, yEnd, outData, data) { + var y, t2, pred, x, t3, pred0, t4, green, t5, t6, t7, a, b, t8, t9, t10, newRed, d, d0, + width = this.xsize, + t1 = this.bits, + mask = B.JSInt_methods._shlPositive$1(1, t1) - 1, + tilesPerRow = A.VP8L__subSampleSize(width, t1), + predRow = B.JSInt_methods._shrOtherPositive$1(yStart, t1) * tilesPerRow; + for (t1 = outData.length, y = yStart; y < yEnd;) { + t2 = new Uint8Array(3); + for (pred = predRow, x = 0; x < width; ++x) { + if ((x & mask) >>> 0 === 0) { + t3 = this.data; + pred0 = pred + 1; + if (!(pred < t3.length)) + return A.ioore(t3, pred); + t3 = t3[pred]; + t2[0] = t3 & 255; + t2[1] = t3 >>> 8 & 255; + t2[2] = t3 >>> 16 & 255; + pred = pred0; + } + t3 = data + x; + if (!(t3 >= 0 && t3 < t1)) + return A.ioore(outData, t3); + t4 = outData[t3]; + green = t4 >>> 8 & 255; + t5 = t2[0]; + t6 = $.$get$__uint8(); + t6[0] = t5; + t5 = $.$get$__uint8ToInt8(); + t7 = t5.length; + if (0 >= t7) + return A.ioore(t5, 0); + a = t5[0]; + t6[0] = green; + if (0 >= t7) + return A.ioore(t5, 0); + b = t5[0]; + t8 = $.$get$__int32(); + t8[0] = a * b; + t9 = $.$get$__int32ToUint32(); + t10 = t9.length; + if (0 >= t10) + return A.ioore(t9, 0); + newRed = (t4 >>> 16 & 255) + (t9[0] >>> 5) >>> 0 & 255; + t6[0] = t2[1]; + if (0 >= t7) + return A.ioore(t5, 0); + a = t5[0]; + t6[0] = green; + if (0 >= t7) + return A.ioore(t5, 0); + t8[0] = a * t5[0]; + if (0 >= t10) + return A.ioore(t9, 0); + d = t9[0]; + t6[0] = t2[2]; + if (0 >= t7) + return A.ioore(t5, 0); + a = t5[0]; + t6[0] = newRed; + if (0 >= t7) + return A.ioore(t5, 0); + t8[0] = a * t5[0]; + if (0 >= t10) + return A.ioore(t9, 0); + d0 = t9[0]; + outData[t3] = (t4 & 4278255360 | newRed << 16 | ((t4 & 255) + (d >>> 5) >>> 0) + (d0 >>> 5) >>> 0 & 255) >>> 0; + } + data += width; + ++y; + if ((y & mask) >>> 0 === 0) + predRow += tilesPerRow; + } + }, + predictorInverseTransform$4(yStart, yEnd, outData, data) { + var t1, t2, x, t3, mask, tilesPerRow, predModeBase, y, predModeSrc, predFunc, predModeSrc0, _this = this, + width = _this.xsize; + if (yStart === 0) { + t1 = data - 1; + t2 = outData.length; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(outData, t1); + A.VP8LTransform__addPixelsEq(outData, data, 4278190080); + for (x = 1; x < width; ++x) { + t1 = data + x; + t3 = t1 - 1; + if (!(t3 >= 0 && t3 < t2)) + return A.ioore(outData, t3); + A.VP8LTransform__addPixelsEq(outData, t1, outData[t3]); + } + data += width; + ++yStart; + } + t1 = _this.bits; + mask = B.JSInt_methods._shlPositive$1(1, t1) - 1; + tilesPerRow = A.VP8L__subSampleSize(width, t1); + predModeBase = B.JSInt_methods._shrOtherPositive$1(yStart, t1) * tilesPerRow; + for (t1 = outData.length, y = yStart; y < yEnd;) { + t2 = data - 1; + if (!(t2 >= 0 && t2 < t1)) + return A.ioore(outData, t2); + t2 = data - width; + if (!(t2 >= 0 && t2 < t1)) + return A.ioore(outData, t2); + A.VP8LTransform__addPixelsEq(outData, data, outData[t2]); + t2 = _this.data; + predModeSrc = predModeBase + 1; + if (!(predModeBase < t2.length)) + return A.ioore(t2, predModeBase); + predFunc = $.VP8LTransform_PREDICTORS[t2[predModeBase] >>> 8 & 15]; + for (x = 1; x < width; ++x) { + if ((x & mask) >>> 0 === 0) { + t2 = _this.data; + predModeSrc0 = predModeSrc + 1; + if (!(predModeSrc < t2.length)) + return A.ioore(t2, predModeSrc); + predFunc = $.VP8LTransform_PREDICTORS[t2[predModeSrc] >>> 8 & 15]; + predModeSrc = predModeSrc0; + } + t2 = data + x; + t3 = t2 - 1; + if (!(t3 >= 0 && t3 < t1)) + return A.ioore(outData, t3); + A.VP8LTransform__addPixelsEq(outData, t2, predFunc.call$3(outData, outData[t3], t2 - width)); + } + data += width; + ++y; + if ((y & mask) >>> 0 === 0) + predModeBase += tilesPerRow; + } + }, + addGreenToBlueAndRed$3(pixels, data, dataEnd) { + var t1, argb, green, data0; + for (t1 = pixels.length; data < dataEnd; data = data0) { + if (!(data >= 0 && data < t1)) + return A.ioore(pixels, data); + argb = pixels[data]; + green = argb >>> 8 & 255; + data0 = data + 1; + pixels[data] = (argb & 4278255360 | (argb & 16711935) + (green << 16 | green) & 16711935) >>> 0; + } + } + }; + A.WebPAlpha.prototype = { + get$isValid() { + var _this = this, + t1 = _this.method; + t1 = t1 > 1 || _this.filter >= 4 || _this.preProcessing > 1 || _this.rsrv !== 0; + if (t1) + return false; + return true; + }, + decode$3(_, row, numRows, output) { + var t1, unfilterFunc, offset, t2, t3, t4, t5, t6, _this = this, _s5_ = "_vp8l"; + if (!_this.get$isValid()) + return false; + t1 = _this.filter; + if (!(t1 < 4)) + return A.ioore(B.List_HHa, t1); + unfilterFunc = B.List_HHa[t1]; + if (_this.method === 0) { + t1 = _this.width; + offset = row * t1; + t2 = _this.input; + B.NativeUint8List_methods.setRange$4(output, offset, numRows * t1, t2.buffer, t2.offset - t2.start + offset); + } else { + t1 = row + numRows; + A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_)._opaque = output; + t2 = _this._use8bDecode; + t3 = _this.__WebPAlpha__vp8l; + if (t2) { + t2 = A._lateReadCheck(t3, _s5_); + t3 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.width; + t4 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.height; + t1 = t2._decodeAlphaData$3(A._asInt(t3), A._asInt(t4), t1); + } else { + t2 = A._lateReadCheck(t3, _s5_); + t3 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_)._pixels; + t3.toString; + t4 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.width; + t5 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).webp.height; + t6 = A._lateReadCheck(_this.__WebPAlpha__vp8l, _s5_).get$extractAlphaRows(); + t6 = t2._decodeImageData$5(t3, A._asInt(t4), A._asInt(t5), t1, type$.void_Function_int._as(t6)); + t1 = t6; + } + if (!t1) + return false; + } + if (unfilterFunc != null) { + t1 = _this.width; + unfilterFunc.call$6(t1, _this.height, t1, row, numRows, output); + } + if (_this.preProcessing === 1) + if (!_this._dequantizeLevels$5(output, _this.width, _this.height, row, numRows)) + return false; + if (row + numRows === _this.height) + _this.isAlphaDecoded = true; + return true; + }, + _dequantizeLevels$5(data, width, height, row, num_rows) { + if (width <= 0 || height <= 0 || row < 0 || num_rows < 0 || row + num_rows > height) + return false; + return true; + } + }; + A.WebPFrame.prototype = { + WebPFrame$2(input, size) { + input.readByte$0(); + this._reserved = 0; + this.__WebPFrame__framePosition = input.offset - input.start; + this.__WebPFrame__frameSize = size - 16; + } + }; + A.InternalWebPFrame.prototype = {}; + A.HuffmanTree.prototype = { + _init$1(numLeaves) { + var t1, _this = this; + if (numLeaves === 0) + return false; + t1 = (numLeaves << 1 >>> 0) - 1; + _this.maxNodes = t1; + t1 = new Int32Array(t1 << 1 >>> 0); + _this.__HuffmanTree_tree = t1; + t1 = A._lateReadCheck(t1, "tree"); + if (1 >= t1.length) + return A.ioore(t1, 1); + t1[1] = -1; + _this.numNodes = 1; + B.NativeUint8List_methods.fillRange$3(_this.lutBits, 0, 128, 255); + return true; + }, + buildImplicit$2(codeLengths, codeLengthsSize) { + var t1, numSymbols, rootSymbol, symbol, codes, t2, _this = this; + type$.List_int._as(codeLengths); + for (t1 = codeLengths.length, numSymbols = 0, rootSymbol = 0, symbol = 0; symbol < codeLengthsSize; ++symbol) { + if (!(symbol < t1)) + return A.ioore(codeLengths, symbol); + if (codeLengths[symbol] > 0) { + ++numSymbols; + rootSymbol = symbol; + } + } + if (!_this._init$1(numSymbols)) + return false; + if (numSymbols === 1) { + if (rootSymbol < 0 || rootSymbol >= codeLengthsSize) + return false; + return _this._addSymbol$3(rootSymbol, 0, 0); + } + codes = new Int32Array(codeLengthsSize); + if (!_this._huffmanCodeLengthsToCodes$3(codeLengths, codeLengthsSize, codes)) + return false; + for (symbol = 0; symbol < codeLengthsSize; ++symbol) { + if (!(symbol < t1)) + return A.ioore(codeLengths, symbol); + t2 = codeLengths[symbol]; + if (t2 > 0) + if (!_this._addSymbol$3(symbol, codes[symbol], t2)) + return false; + } + return _this.numNodes === _this.maxNodes; + }, + buildExplicit$5(codeLengths, codes, symbols, maxSymbol, numSymbols) { + var i, t2, _this = this, + t1 = type$.List_int; + t1._as(codeLengths); + t1._as(codes); + t1._as(symbols); + if (!_this._init$1(numSymbols)) + return false; + for (i = 0; i < numSymbols; ++i) { + if (!(i < 2)) + return A.ioore(codes, i); + t1 = codes[i]; + if (t1 !== -1) { + t2 = symbols[i]; + if (t2 >= maxSymbol) + return _this.numNodes === _this.maxNodes; + if (!_this._addSymbol$3(t2, t1, codeLengths[i])) + return _this.numNodes === _this.maxNodes; + } + } + return _this.numNodes === _this.maxNodes; + }, + readSymbol$1(br) { + var node, t1, t2, _this = this, + bits = br.prefetchBits$0(), + newBitPos = br.bitPos, + lut_ix = bits & 127, + lut_bits = _this.lutBits[lut_ix]; + if (lut_bits <= 7) { + br.bitPos = newBitPos + lut_bits; + return _this.lutSymbol[lut_ix]; + } + node = _this.lutJump[lut_ix]; + newBitPos += 7; + bits = bits >>> 7; + do { + t1 = A._lateReadCheck(_this.__HuffmanTree_tree, "tree"); + t2 = (node << 1 >>> 0) + 1; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + node = node + t1[t2] + (bits & 1); + bits = bits >>> 1; + ++newBitPos; + } while (_this._nodeIsNotLeaf$1(node)); + br.bitPos = newBitPos; + t1 = A._lateReadCheck(_this.__HuffmanTree_tree, "tree"); + t2 = node << 1 >>> 0; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + return t1[t2]; + }, + _addSymbol$3(symbol, code, codeLength) { + var baseCode, t1, t2, t3, i, idx, step, node, codeLength0, t4, t5, _this = this, _s4_ = "tree"; + if (codeLength <= 7) { + baseCode = _this._reverseBitsShort$2(code, codeLength); + for (t1 = B.JSInt_methods.$shl(1, 7 - codeLength), t2 = _this.lutSymbol, t3 = _this.lutBits, i = 0; i < t1; ++i) { + idx = (baseCode | B.JSInt_methods.$shl(i, codeLength)) >>> 0; + if (!(idx < 128)) + return A.ioore(t2, idx); + t2[idx] = symbol; + t3[idx] = codeLength; + } + } else + baseCode = _this._reverseBitsShort$2(B.JSInt_methods.$shr(code, codeLength - 7), 7); + for (t1 = _this.lutJump, step = 7, node = 0; codeLength0 = codeLength - 1, codeLength > 0; codeLength = codeLength0) { + if (node >= _this.maxNodes) + return false; + t2 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + t3 = (node << 1 >>> 0) + 1; + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + if (t2[t3] < 0) { + t2 = _this.numNodes; + if (t2 === _this.maxNodes) + return false; + t4 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + if (!(t3 < t4.length)) + return A.ioore(t4, t3); + t4[t3] = t2 - node; + _this.numNodes += 2; + t4 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + t5 = (t2 << 1 >>> 0) + 1; + if (!(t5 < t4.length)) + return A.ioore(t4, t5); + t4[t5] = -1; + t5 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + t2 = (t2 + 1 << 1 >>> 0) + 1; + if (!(t2 < t5.length)) + return A.ioore(t5, t2); + t5[t2] = -1; + } else { + t2 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + if (t2[t3] === 0) + return false; + } + t2 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + node += t2[t3] + (B.JSInt_methods.$shr(code, codeLength0) & 1); + --step; + if (step === 0) { + if (!(baseCode < 128)) + return A.ioore(t1, baseCode); + t1[baseCode] = node; + } + } + if (_this._nodeIsEmpty$1(node)) + _this._nodeSetChildren$2(node, 0); + else if (_this._nodeIsNotLeaf$1(node)) + return false; + t1 = A._lateReadCheck(_this.__HuffmanTree_tree, _s4_); + t2 = node << 1 >>> 0; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = symbol; + return true; + }, + _reverseBitsShort$2(bits, numBits) { + var t1 = B.List_cGl[bits & 15], + t2 = B.JSInt_methods._shrOtherPositive$1(bits, 4); + if (!(t2 < 16)) + return A.ioore(B.List_cGl, t2); + return B.JSInt_methods._shrReceiverPositive$1((t1 << 4 | B.List_cGl[t2]) >>> 0, 8 - numBits); + }, + _nodeSetChildren$2(node, children) { + var t1 = A._lateReadCheck(this.__HuffmanTree_tree, "tree"), + t2 = (node << 1 >>> 0) + 1; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = children; + }, + _nodeIsNotLeaf$1(node) { + var t1 = A._lateReadCheck(this.__HuffmanTree_tree, "tree"), + t2 = (node << 1 >>> 0) + 1; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + return t1[t2] !== 0; + }, + _nodeIsEmpty$1(node) { + var t1 = A._lateReadCheck(this.__HuffmanTree_tree, "tree"), + t2 = (node << 1 >>> 0) + 1; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + return t1[t2] < 0; + }, + _huffmanCodeLengthsToCodes$3(codeLengths, codeLengthsSize, huffCodes) { + var codeLengthHist, nextCodes, symbol, maxCodeLength, maxCodeLength0, t2, t3, codeLen, currCode, t4, + t1 = type$.List_int; + t1._as(codeLengths); + t1._as(huffCodes); + codeLengthHist = new Int32Array(16); + nextCodes = new Int32Array(16); + for (t1 = codeLengths.length, symbol = 0, maxCodeLength = 0; symbol < codeLengthsSize; ++symbol) { + if (!(symbol < t1)) + return A.ioore(codeLengths, symbol); + maxCodeLength0 = codeLengths[symbol]; + if (maxCodeLength0 > maxCodeLength) + maxCodeLength = maxCodeLength0; + } + if (maxCodeLength > 15) + return false; + for (symbol = 0; symbol < codeLengthsSize; ++symbol) { + if (!(symbol < t1)) + return A.ioore(codeLengths, symbol); + t2 = codeLengths[symbol]; + if (!(t2 >= 0 && t2 < 16)) + return A.ioore(codeLengthHist, t2); + t3 = codeLengthHist[t2]; + if (!(t2 < 16)) + return A.ioore(codeLengthHist, t2); + codeLengthHist[t2] = t3 + 1; + } + if (0 >= 16) + return A.ioore(codeLengthHist, 0); + codeLengthHist[0] = 0; + if (0 >= 16) + return A.ioore(nextCodes, 0); + nextCodes[0] = -1; + for (codeLen = 1, currCode = 0; codeLen <= maxCodeLength; ++codeLen) { + currCode = currCode + codeLengthHist[codeLen - 1] << 1 >>> 0; + if (!(codeLen < 16)) + return A.ioore(nextCodes, codeLen); + nextCodes[codeLen] = currCode; + } + for (t2 = huffCodes.length, symbol = 0; symbol < codeLengthsSize; ++symbol) { + if (!(symbol < t1)) + return A.ioore(codeLengths, symbol); + t3 = codeLengths[symbol]; + if (t3 > 0) { + if (!(t3 < 16)) + return A.ioore(nextCodes, t3); + t4 = nextCodes[t3]; + if (!(t3 < 16)) + return A.ioore(nextCodes, t3); + nextCodes[t3] = t4 + 1; + if (!(symbol < t2)) + return A.ioore(huffCodes, symbol); + huffCodes[symbol] = t4; + } else { + if (!(symbol < t2)) + return A.ioore(huffCodes, symbol); + huffCodes[symbol] = -1; + } + } + return true; + } + }; + A.HTreeGroup.prototype = { + $index(_, index) { + return B.JSArray_methods.$index(this.htrees, A._asInt(index)); + } + }; + A.WebPInfo.prototype = {}; + A.InternalWebPInfo.prototype = {}; + A.WebPDecoder.prototype = { + isValidFile$1(bytes) { + var t1 = A.InputBuffer$(type$.List_int._as(bytes), false, null, 0); + this._webp_decoder$_input = t1; + if (!this._getHeader$1(t1)) + return false; + return true; + }, + startDecode$1(bytes) { + var t2, _this = this, _null = null, + t1 = A.InputBuffer$(type$.List_int._as(bytes), false, _null, 0); + _this._webp_decoder$_input = t1; + if (!_this._getHeader$1(t1)) + return _null; + t1 = new A.InternalWebPInfo(A._setArrayType([], type$.JSArray_WebPFrame)); + _this._info = t1; + t2 = _this._webp_decoder$_input; + t2.toString; + if (!_this._webp_decoder$_getInfo$2(t2, t1)) + return _null; + t1 = _this._info; + switch (t1.format) { + case 3: + t1._numFrames = t1.frames.length; + return t1; + case 2: + t2 = _this._webp_decoder$_input; + t2.toString; + t2.offset = t1._vp8Position; + if (!A.VP8L$(t2, t1).decodeHeader$0()) + return _null; + t1 = _this._info; + t1._numFrames = t1.frames.length; + return t1; + case 1: + t2 = _this._webp_decoder$_input; + t2.toString; + t2.offset = t1._vp8Position; + if (!A.VP8$(t2, t1).decodeHeader$0()) + return _null; + t1 = _this._info; + t1._numFrames = t1.frames.length; + return t1; + } + return _null; + }, + decodeFrame$1(frame) { + var t2, t3, f, data, _this = this, + t1 = _this._webp_decoder$_input; + if (t1 == null || _this._info == null) + return null; + t2 = _this._info; + if (t2.hasAnimation) { + t2 = t2.frames; + t3 = t2.length; + if (frame >= t3 || false) + return null; + if (!(frame < t3)) + return A.ioore(t2, frame); + f = t2[frame]; + t1.toString; + return _this._decodeFrame$2$frame(t1.subset$2$position(A._lateReadCheck(f.__WebPFrame__frameSize, "_frameSize"), A._lateReadCheck(f.__WebPFrame__framePosition, "_framePosition")), frame); + } + t3 = t2.format; + if (t3 === 2) { + t1.toString; + data = t1.subset$2$position(t2._vp8Size, t2._vp8Position); + t1 = _this._info; + t1.toString; + return A.VP8L$(data, t1).decode$0(0); + } else if (t3 === 1) { + t1.toString; + data = t1.subset$2$position(t2._vp8Size, t2._vp8Position); + t1 = _this._info; + t1.toString; + return A.VP8$(data, t1).decode$0(0); + } + return null; + }, + decodeImage$1(bytes) { + var t1; + this.startDecode$1(type$.List_int._as(bytes)); + t1 = this._info; + t1._frame = 0; + t1._numFrames = 1; + return this.decodeFrame$1(0); + }, + _decodeFrame$2$frame(input, frame) { + var t2, f, data, _null = null, + t1 = A._setArrayType([], type$.JSArray_WebPFrame), + webp = new A.InternalWebPInfo(t1); + if (!this._webp_decoder$_getInfo$2(input, webp)) + return _null; + if (webp.format === 0) + return _null; + t2 = this._info; + webp._frame = t2._frame; + webp._numFrames = t2._numFrames; + if (webp.hasAnimation) { + t2 = t1.length; + if (frame >= t2 || false) + return _null; + if (!(frame < t2)) + return A.ioore(t1, frame); + f = t1[frame]; + return this._decodeFrame$2$frame(input.subset$2$position(A._lateReadCheck(f.__WebPFrame__frameSize, "_frameSize"), A._lateReadCheck(f.__WebPFrame__framePosition, "_framePosition")), frame); + } else { + data = input.subset$2$position(webp._vp8Size, webp._vp8Position); + t1 = webp.format; + if (t1 === 2) + return A.VP8L$(data, webp).decode$0(0); + else if (t1 === 1) + return A.VP8$(data, webp).decode$0(0); + } + return _null; + }, + _getHeader$1(input) { + if (input.readString$1(4) !== "RIFF") + return false; + input.readUint32$0(); + if (input.readString$1(4) !== "WEBP") + return false; + return true; + }, + _webp_decoder$_getInfo$2(input, webp) { + var tag, size, diskSize, t3, p, t4, t5, t6, c, bytes, remainder, + t1 = input.start, + t2 = input.end, + found = false; + while (true) { + if (!(input.offset < t2 && !found)) + break; + tag = input.readString$1(4); + size = input.readUint32$0(); + diskSize = size + 1 >>> 1 << 1 >>> 0; + t3 = input.offset; + p = t3 - t1; + switch (tag) { + case "VP8X": + if (!this._getVp8xInfo$2(input, webp)) + return false; + break; + case "VP8 ": + webp._vp8Position = p; + webp._vp8Size = size; + webp.format = 1; + found = true; + break; + case "VP8L": + webp._vp8Position = p; + webp._vp8Size = size; + webp.format = 2; + found = true; + break; + case "ALPH": + t4 = input.buffer; + t5 = input.bigEndian; + t6 = t4.length; + t4 = new A.InputBuffer(t4, 0, t6, 0, t5); + webp._webp_info$_alphaData = t4; + t4.offset = t3; + input.offset += diskSize; + break; + case "ANIM": + webp.format = 3; + c = input.readUint32$0(); + input.readUint16$0(); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c & 255, 0, 255)); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 24 & 255, 0, 255)); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 16 & 255, 0, 255)); + B.JSNumber_methods.toInt$0(B.JSInt_methods.clamp$2(c >>> 8 & 255, 0, 255)); + break; + case "ANMF": + if (!this._getAnimFrameInfo$3(input, webp, size)) + return false; + break; + case "ICCP": + webp.toString; + bytes = input.subset$1(size); + input.offset = input.offset + (bytes.end - bytes.offset); + bytes.toUint8List$0(); + break; + case "EXIF": + webp.toString; + input.readString$1(size); + break; + case "XMP ": + webp.toString; + input.readString$1(size); + break; + default: + A.printString("UNKNOWN WEBP TAG: " + tag); + input.offset += diskSize; + break; + } + t3 = input.offset; + remainder = diskSize - (t3 - t1 - p); + if (remainder > 0) + input.offset = t3 + remainder; + } + if (!webp.hasAlpha) + webp.hasAlpha = webp._webp_info$_alphaData != null; + return webp.format !== 0; + }, + _getVp8xInfo$2(input, webp) { + var t1, t2, t3, t4, + b = input.readByte$0(); + if ((b & 192) !== 0) + return false; + t1 = B.JSInt_methods._shrOtherPositive$1(b, 4); + t2 = B.JSInt_methods._shrOtherPositive$1(b, 1); + if ((b & 1) !== 0) + return false; + if (input.readUint24$0() !== 0) + return false; + t3 = input.readUint24$0(); + t4 = input.readUint24$0(); + webp.width = t3 + 1; + webp.height = t4 + 1; + webp.hasAnimation = (t2 & 1) !== 0; + webp.hasAlpha = (t1 & 1) !== 0; + return true; + }, + _getAnimFrameInfo$3(input, webp, size) { + var frame; + input.readUint24$0(); + input.readUint24$0(); + input.readUint24$0(); + input.readUint24$0(); + input.readUint24$0(); + frame = new A.InternalWebPFrame(); + frame.WebPFrame$2(input, size); + if (frame._reserved !== 0) + return false; + B.JSArray_methods.add$1(webp.frames, frame); + return true; + } + }; + A.HdrImage.prototype = { + HdrImage$fromImage$3$bitsPerSample$type(other, bitsPerSample, type) { + var rgb, t3, y, si, x, t4, si0, _this = this, + t1 = other.width, + t2 = other.height; + _this.addSlice$1(A.HdrSlice$("R", t1, t2, type, bitsPerSample)); + _this.addSlice$1(A.HdrSlice$("G", t1, t2, type, bitsPerSample)); + _this.addSlice$1(A.HdrSlice$("B", t1, t2, type, bitsPerSample)); + if (other.channels === B.Channels_1) + _this.addSlice$1(A.HdrSlice$("A", t1, t2, type, bitsPerSample)); + rgb = other.getBytes$0(); + for (t3 = rgb.length, y = 0, si = 0; y < t2; ++y) + for (x = 0; x < t1; ++x) { + t4 = _this.red; + t4.toString; + si0 = si + 1; + if (!(si >= 0 && si < t3)) + return A.ioore(rgb, si); + t4.setFloat$3(x, y, rgb[si] / 255); + t4 = _this.green; + t4.toString; + si = si0 + 1; + if (!(si0 >= 0 && si0 < t3)) + return A.ioore(rgb, si0); + t4.setFloat$3(x, y, rgb[si0] / 255); + t4 = _this.blue; + t4.toString; + si0 = si + 1; + if (!(si >= 0 && si < t3)) + return A.ioore(rgb, si); + t4.setFloat$3(x, y, rgb[si] / 255); + t4 = _this.alpha; + if (t4 != null) { + si = si0 + 1; + if (!(si0 >= 0 && si0 < t3)) + return A.ioore(rgb, si0); + t4.setFloat$3(x, y, rgb[si0] / 255); + } else + si = si0; + } + }, + get$width(_) { + var t1 = this.slices; + if (t1._length === 0) + t1 = 0; + else { + t1 = t1.get$values(t1); + t1 = t1._f.call$1(J.get$first$ax(t1.__internal$_iterable)).width; + } + return t1; + }, + get$height(_) { + var t1 = this.slices; + if (t1._length === 0) + t1 = 0; + else { + t1 = t1.get$values(t1); + t1 = t1._f.call$1(J.get$first$ax(t1.__internal$_iterable)).height; + } + return t1; + }, + setRed$3(x, y, c) { + var t1 = this.red; + if (t1 != null) + if (t1.type === 3) + t1.setFloat$3(x, y, c); + else + t1.setInt$3(x, y, A._asInt(c)); + }, + setGreen$3(x, y, c) { + var t1 = this.green; + if (t1 != null) + if (this.red.type === 3) + t1.setFloat$3(x, y, c); + else + t1.setInt$3(x, y, A._asInt(c)); + }, + setBlue$3(x, y, c) { + var t1; + if (this.green != null) { + t1 = this.blue; + if (t1.type === 3) + t1.setFloat$3(x, y, c); + else + t1.setInt$3(x, y, A._asInt(c)); + } + }, + setAlpha$3(x, y, c) { + var t1 = this.alpha; + if (t1 != null) + if (t1.type === 3) + t1.setFloat$3(x, y, c); + else + t1.setInt$3(x, y, A._asInt(c)); + }, + $index(_, ch) { + return this.slices.$index(0, ch); + }, + addSlice$1(slice) { + var _this = this, + ch = slice.name; + _this.slices.$indexSet(0, ch, slice); + switch (ch) { + case "R": + _this.red = slice; + break; + case "G": + _this.green = slice; + break; + case "B": + _this.blue = slice; + break; + case "A": + _this.alpha = slice; + break; + case "Z": + break; + } + } + }; + A.HdrSlice.prototype = { + getFloat$2(x, y) { + var t3, v, s, _this = this, + pi = y * _this.width + x, + t1 = _this.type, + t2 = t1 === 1; + if (t2 || t1 === 0) { + t1 = _this.data; + if (!(pi >= 0 && pi < t1.length)) + return A.ioore(t1, pi); + t1 = A._asInt(t1[pi]); + t3 = _this.bitsPerSample; + if (t3 === 8) + v = 255; + else + v = t3 === 16 ? 65535 : 4294967295; + return t1 / (t2 ? v - 1 : v); + } + t1 = t1 === 3 && _this.bitsPerSample === 16; + t2 = _this.data; + t3 = t2.length; + if (t1) { + if (!(pi >= 0 && pi < t3)) + return A.ioore(t2, pi); + t1 = A._asInt(t2[pi]); + if ($.Half__toFloatFloat32 == null) + A.Half__initialize(); + t2 = $.Half__toFloatFloat32; + if (!(t1 >= 0 && t1 < t2.length)) + return A.ioore(t2, t1); + s = t2[t1]; + } else { + if (!(pi >= 0 && pi < t3)) + return A.ioore(t2, pi); + s = t2[pi]; + } + return s; + }, + setFloat$3(x, y, v) { + var pi, t1, t2, _this = this; + if (_this.type !== 3) + return; + pi = y * _this.width + x; + t1 = _this.data; + t2 = J.getInterceptor$ax(t1); + if (_this.bitsPerSample === 16) + t2.$indexSet(t1, pi, A.Half_DoubleToHalf(v)); + else + t2.$indexSet(t1, pi, v); + }, + setInt$3(x, y, v) { + J.$indexSet$ax(this.data, y * this.width + x, v); + } + }; + A.hdrToImage__knee.prototype = { + call$2(x, f) { + return Math.log(x * f + 1) / f; + }, + $signature: 16 + }; + A.hdrToImage__gamma.prototype = { + call$2(h, m) { + var t1, + x = Math.max(0, h * m); + if (x > 1) { + t1 = this._knee.call$2(x - 1, 0.184874); + if (typeof t1 !== "number") + return A.iae(t1); + x = 1 + t1; + } + return Math.pow(x, 0.4545) * 84.66; + }, + $signature: 16 + }; + A.ICCPCompression.prototype = { + toString$0(_) { + return "ICCPCompression." + this._core$_name; + } + }; + A.ICCProfileData.prototype = { + compressed$0() { + var t1, _this = this; + if (_this.compression === B.ICCPCompression_1) + return _this.data; + t1 = type$.Uint8List._as(B.C_ZLibEncoder.encode$1(_this.data)); + _this.data = t1; + _this.compression = B.ICCPCompression_1; + return t1; + } + }; + A.Format.prototype = { + toString$0(_) { + return "Format." + this._core$_name; + } + }; + A.Channels.prototype = { + toString$0(_) { + return "Channels." + this._core$_name; + } + }; + A.BlendMode.prototype = { + toString$0(_) { + return "BlendMode." + this._core$_name; + } + }; + A.DisposeMode.prototype = { + toString$0(_) { + return "DisposeMode." + this._core$_name; + } + }; + A.Image.prototype = { + getBytes$1$format(format) { + var len, bytes, i, t2, t3, t4, t5, j, _this = this, + t1 = _this.data, + rgba = A.NativeUint8List_NativeUint8List$view(t1.buffer, 0, null); + switch (format.index) { + case 2: + return rgba; + case 3: + len = _this.width * _this.height * 4; + bytes = new Uint8Array(len); + for (t1 = rgba.length, i = 0; i < len; i += 4) { + t2 = i + 2; + if (!(t2 < t1)) + return A.ioore(rgba, t2); + t3 = rgba[t2]; + if (!(i < len)) + return A.ioore(bytes, i); + bytes[i] = t3; + t3 = i + 1; + if (!(t3 < t1)) + return A.ioore(rgba, t3); + t4 = rgba[t3]; + if (!(t3 < len)) + return A.ioore(bytes, t3); + bytes[t3] = t4; + if (!(i < t1)) + return A.ioore(rgba, i); + t4 = rgba[i]; + if (!(t2 < len)) + return A.ioore(bytes, t2); + bytes[t2] = t4; + t4 = i + 3; + if (!(t4 < t1)) + return A.ioore(rgba, t4); + t2 = rgba[t4]; + if (!(t4 < len)) + return A.ioore(bytes, t4); + bytes[t4] = t2; + } + return bytes; + case 1: + len = _this.width * _this.height * 4; + bytes = new Uint8Array(len); + for (t1 = rgba.length, i = 0; i < len; i += 4) { + t2 = i + 3; + if (!(t2 < t1)) + return A.ioore(rgba, t2); + t3 = rgba[t2]; + if (!(i < len)) + return A.ioore(bytes, i); + bytes[i] = t3; + t3 = i + 1; + t4 = i + 2; + if (!(t4 < t1)) + return A.ioore(rgba, t4); + t5 = rgba[t4]; + if (!(t3 < len)) + return A.ioore(bytes, t3); + bytes[t3] = t5; + if (!(t3 < t1)) + return A.ioore(rgba, t3); + t3 = rgba[t3]; + if (!(t4 < len)) + return A.ioore(bytes, t4); + bytes[t4] = t3; + if (!(i < t1)) + return A.ioore(rgba, i); + t3 = rgba[i]; + if (!(t2 < len)) + return A.ioore(bytes, t2); + bytes[t2] = t3; + } + return bytes; + case 0: + len = _this.width * _this.height * 4; + bytes = new Uint8Array(len); + for (t1 = rgba.length, i = 0; i < len; i += 4) { + t2 = i + 3; + if (!(t2 < t1)) + return A.ioore(rgba, t2); + t3 = rgba[t2]; + if (!(i < len)) + return A.ioore(bytes, i); + bytes[i] = t3; + t3 = i + 1; + if (!(i < t1)) + return A.ioore(rgba, i); + t4 = rgba[i]; + if (!(t3 < len)) + return A.ioore(bytes, t3); + bytes[t3] = t4; + t4 = i + 2; + if (!(t3 < t1)) + return A.ioore(rgba, t3); + t3 = rgba[t3]; + if (!(t4 < len)) + return A.ioore(bytes, t4); + bytes[t4] = t3; + if (!(t4 < t1)) + return A.ioore(rgba, t4); + t4 = rgba[t4]; + if (!(t2 < len)) + return A.ioore(bytes, t2); + bytes[t2] = t4; + } + return bytes; + case 4: + len = _this.width * _this.height * 3; + bytes = new Uint8Array(len); + for (t1 = rgba.length, i = 0, j = 0; j < len; i += 4, j += 3) { + if (!(i < t1)) + return A.ioore(rgba, i); + t2 = rgba[i]; + if (!(j < len)) + return A.ioore(bytes, j); + bytes[j] = t2; + t2 = j + 1; + t3 = i + 1; + if (!(t3 < t1)) + return A.ioore(rgba, t3); + t3 = rgba[t3]; + if (!(t2 < len)) + return A.ioore(bytes, t2); + bytes[t2] = t3; + t3 = j + 2; + t2 = i + 2; + if (!(t2 < t1)) + return A.ioore(rgba, t2); + t2 = rgba[t2]; + if (!(t3 < len)) + return A.ioore(bytes, t3); + bytes[t3] = t2; + } + return bytes; + case 5: + len = _this.width * _this.height * 3; + bytes = new Uint8Array(len); + for (t1 = rgba.length, i = 0, j = 0; j < len; i += 4, j += 3) { + t2 = i + 2; + if (!(t2 < t1)) + return A.ioore(rgba, t2); + t2 = rgba[t2]; + if (!(j < len)) + return A.ioore(bytes, j); + bytes[j] = t2; + t2 = j + 1; + t3 = i + 1; + if (!(t3 < t1)) + return A.ioore(rgba, t3); + t3 = rgba[t3]; + if (!(t2 < len)) + return A.ioore(bytes, t2); + bytes[t2] = t3; + t3 = j + 2; + if (!(i < t1)) + return A.ioore(rgba, i); + t2 = rgba[i]; + if (!(t3 < len)) + return A.ioore(bytes, t3); + bytes[t3] = t2; + } + return bytes; + case 6: + t2 = _this.width * _this.height; + bytes = new Uint8Array(t2); + for (len = t1.length, i = 0; i < len; ++i) { + t3 = t1[i]; + t3 = B.JSNumber_methods.round$0(0.299 * (t3 & 255) + 0.587 * (t3 >>> 8 & 255) + 0.114 * (t3 >>> 16 & 255)); + if (!(i < t2)) + return A.ioore(bytes, i); + bytes[i] = t3; + } + return bytes; + } + }, + getBytes$0() { + return this.getBytes$1$format(B.Format_2); + }, + get$length(_) { + return this.data.length; + }, + $index(_, index) { + var t1; + A._asInt(index); + t1 = this.data; + if (!(index >= 0 && index < t1.length)) + return A.ioore(t1, index); + return t1[index]; + }, + boundsSafe$2(x, y) { + return x >= 0 && x < this.width && y >= 0 && y < this.height; + }, + getPixelSafe$2(x, y) { + var t1, t2; + if (this.boundsSafe$2(x, y)) { + t1 = this.data; + t2 = y * this.width + x; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t2 = t1[t2]; + t1 = t2; + } else + t1 = 0; + return t1; + }, + getPixelInterpolate$3(fx, fy, interpolation) { + if (interpolation === B.Interpolation_2) + return this.getPixelCubic$2(fx, fy); + else if (interpolation === B.Interpolation_1) + return this.getPixelLinear$2(fx, fy); + return this.getPixelSafe$2(B.JSNumber_methods.toInt$0(fx), B.JSNumber_methods.toInt$0(fy)); + }, + getPixelLinear$2(fx, fy) { + var y, ny, Icc, t2, Icn, t3, Inc, Inn, _this = this, + t1 = B.JSNumber_methods.toInt$0(fx), + x = t1 - (fx >= 0 ? 0 : 1), + nx = x + 1; + t1 = B.JSNumber_methods.toInt$0(fy); + y = t1 - (fy >= 0 ? 0 : 1); + ny = y + 1; + t1 = new A.Image_getPixelLinear__linear(fx - x, fy - y); + Icc = _this.getPixelSafe$2(x, y); + t2 = ny >= _this.height; + Icn = t2 ? Icc : _this.getPixelSafe$2(x, ny); + t3 = nx >= _this.width; + Inc = t3 ? Icc : _this.getPixelSafe$2(nx, y); + Inn = t3 || t2 ? Icc : _this.getPixelSafe$2(nx, ny); + return A.getColor(t1.call$4(Icc & 255, Inc & 255, Icn & 255, Inn & 255), t1.call$4(Icc >>> 8 & 255, Inc >>> 8 & 255, Icn >>> 8 & 255, Inn >>> 8 & 255), t1.call$4(Icc >>> 16 & 255, Inc >>> 16 & 255, Icn >>> 16 & 255, Inn >>> 16 & 255), t1.call$4(Icc >>> 24 & 255, Inc >>> 24 & 255, Icn >>> 24 & 255, Inn >>> 24 & 255)); + }, + getPixelCubic$2(fx, fy) { + var y, py, ny, ay, dx, dy, Icc, t2, t3, Ipp, Icp, t4, Inp, t5, t6, t7, Iap, Ip0, Ip1, Ip2, Ip3, Ipc, Inc, Iac, Ic0, Ic1, Ic2, Ic3, Ipn, Icn, Inn, Ian, In0, In1, In2, In3, Ipa, Ica, Ina, Iaa, Ia0, Ia1, Ia2, Ia3, c0, c1, c2, c3, _this = this, + t1 = B.JSNumber_methods.toInt$0(fx), + x = t1 - (fx >= 0 ? 0 : 1), + px = x - 1, + nx = x + 1, + ax = x + 2; + t1 = B.JSNumber_methods.toInt$0(fy); + y = t1 - (fy >= 0 ? 0 : 1); + py = y - 1; + ny = y + 1; + ay = y + 2; + dx = fx - x; + dy = fy - y; + t1 = new A.Image_getPixelCubic__cubic(); + Icc = _this.getPixelSafe$2(x, y); + t2 = px < 0; + t3 = !t2; + Ipp = !t3 || py < 0 ? Icc : _this.getPixelSafe$2(px, py); + Icp = t2 ? Icc : _this.getPixelSafe$2(x, py); + t4 = py < 0; + Inp = t4 || nx >= _this.width ? Icc : _this.getPixelSafe$2(nx, py); + t5 = _this.width; + t6 = ax >= t5; + t7 = !t6; + Iap = !t7 || t4 ? Icc : _this.getPixelSafe$2(ax, py); + Ip0 = t1.call$5(dx, Ipp & 255, Icp & 255, Inp & 255, Iap & 255); + Ip1 = t1.call$5(dx, Ipp >>> 8 & 255, Icp >>> 8 & 255, Inp >>> 8 & 255, Iap >>> 8 & 255); + Ip2 = t1.call$5(dx, Ipp >>> 16 & 255, Icp >>> 16 & 255, Inp >>> 16 & 255, Iap >>> 16 & 255); + Ip3 = t1.call$5(dx, Ipp >>> 24 & 255, Icp >>> 24 & 255, Inp >>> 24 & 255, Iap >>> 24 & 255); + Ipc = t2 ? Icc : _this.getPixelSafe$2(px, y); + t2 = nx >= t5; + Inc = t2 ? Icc : _this.getPixelSafe$2(nx, y); + Iac = t6 ? Icc : _this.getPixelSafe$2(ax, y); + Ic0 = t1.call$5(dx, Ipc & 255, Icc & 255, Inc & 255, Iac & 255); + Ic1 = t1.call$5(dx, Ipc >>> 8 & 255, Icc >>> 8 & 255, Inc >>> 8 & 255, Iac >>> 8 & 255); + Ic2 = t1.call$5(dx, Ipc >>> 16 & 255, Icc >>> 16 & 255, Inc >>> 16 & 255, Iac >>> 16 & 255); + Ic3 = t1.call$5(dx, Ipc >>> 24 & 255, Icc >>> 24 & 255, Inc >>> 24 & 255, Iac >>> 24 & 255); + Ipn = !t3 || ny >= _this.height ? Icc : _this.getPixelSafe$2(px, ny); + t4 = _this.height; + t5 = ny >= t4; + Icn = t5 ? Icc : _this.getPixelSafe$2(x, ny); + t2 = !t2; + Inn = !t2 || t5 ? Icc : _this.getPixelSafe$2(nx, ny); + Ian = !t7 || t5 ? Icc : _this.getPixelSafe$2(ax, ny); + In0 = t1.call$5(dx, Ipn & 255, Icn & 255, Inn & 255, Ian & 255); + In1 = t1.call$5(dx, Ipn >>> 8 & 255, Icn >>> 8 & 255, Inn >>> 8 & 255, Ian >>> 8 & 255); + In2 = t1.call$5(dx, Ipn >>> 16 & 255, Icn >>> 16 & 255, Inn >>> 16 & 255, Ian >>> 16 & 255); + In3 = t1.call$5(dx, Ipn >>> 24 & 255, Icn >>> 24 & 255, Inn >>> 24 & 255, Ian >>> 24 & 255); + Ipa = !t3 || ay >= t4 ? Icc : _this.getPixelSafe$2(px, ay); + t3 = ay >= t4; + Ica = t3 ? Icc : _this.getPixelSafe$2(x, ay); + Ina = !t2 || t3 ? Icc : _this.getPixelSafe$2(nx, ay); + Iaa = !t7 || t3 ? Icc : _this.getPixelSafe$2(ax, ay); + Ia0 = t1.call$5(dx, Ipa & 255, Ica & 255, Ina & 255, Iaa & 255); + Ia1 = t1.call$5(dx, Ipa >>> 8 & 255, Ica >>> 8 & 255, Ina >>> 8 & 255, Iaa >>> 8 & 255); + Ia2 = t1.call$5(dx, Ipa >>> 16 & 255, Ica >>> 16 & 255, Ina >>> 16 & 255, Iaa >>> 16 & 255); + Ia3 = t1.call$5(dx, Ipa >>> 24 & 255, Ica >>> 24 & 255, Ina >>> 24 & 255, Iaa >>> 24 & 255); + c0 = t1.call$5(dy, Ip0, Ic0, In0, Ia0); + c1 = t1.call$5(dy, Ip1, Ic1, In1, Ia1); + c2 = t1.call$5(dy, Ip2, Ic2, In2, Ia2); + c3 = t1.call$5(dy, Ip3, Ic3, In3, Ia3); + return A.getColor(B.JSNumber_methods.toInt$0(c0), B.JSNumber_methods.toInt$0(c1), B.JSNumber_methods.toInt$0(c2), B.JSNumber_methods.toInt$0(c3)); + }, + setPixel$3(x, y, color) { + var t1 = this.data, + t2 = y * this.width + x; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = color; + }, + addTextData$1(data) { + var t1, t2, t3, t4; + type$.Map_String_String._as(data); + if (this.textData == null) { + t1 = type$.String; + this.set$textData(A.LinkedHashMap_LinkedHashMap$_empty(t1, t1)); + } + for (t1 = A.LinkedHashMapKeyIterator$(data, data._modifications, A._instanceType(data)._precomputed1); t1.moveNext$0();) { + t2 = t1.__js_helper$_current; + t3 = this.textData; + t3.toString; + t4 = data.$index(0, t2); + t4.toString; + t3.$indexSet(0, t2, t4); + } + }, + set$textData(textData) { + this.textData = type$.nullable_Map_String_String._as(textData); + } + }; + A.Image_getPixelLinear__linear.prototype = { + call$4(Icc, Inc, Icn, Inn) { + var t1 = this.dy; + return B.JSNumber_methods.toInt$0(Icc + this.dx * (Inc - Icc + t1 * (Icc + Inn - Icn - Inc)) + t1 * (Icn - Icc)); + }, + $signature: 35 + }; + A.Image_getPixelCubic__cubic.prototype = { + call$5(dx, Ipp, Icp, Inp, Iap) { + var t1 = -Ipp, + t2 = dx * dx; + return Icp + 0.5 * (dx * (t1 + Inp) + t2 * (2 * Ipp - 5 * Icp + 4 * Inp - Iap) + t2 * dx * (t1 + 3 * Icp - 3 * Inp + Iap)); + }, + $signature: 45 + }; + A.ImageException.prototype = { + toString$0(_) { + return "ImageException: " + this.message; + } + }; + A.DitherKernel.prototype = { + toString$0(_) { + return "DitherKernel." + this._core$_name; + } + }; + A.InputBuffer.prototype = { + get$length(_) { + return this.end - this.offset; + }, + $index(_, index) { + var t1, t2; + A._asInt(index); + t1 = this.buffer; + t2 = this.offset + index; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + return t1[t2]; + }, + $indexSet(_, index, value) { + J.$indexSet$ax(this.buffer, this.offset + index, value); + return value; + }, + memcpy$4(start, $length, other, offset) { + var t1 = this.buffer, + t2 = J.getInterceptor$ax(t1), + t3 = this.offset + start; + if (other instanceof A.InputBuffer) + t2.setRange$4(t1, t3, t3 + $length, other.buffer, other.offset + offset); + else + t2.setRange$4(t1, t3, t3 + $length, type$.List_int._as(other), offset); + }, + memcpy$3(start, $length, other) { + return this.memcpy$4(start, $length, other, 0); + }, + memset$3(start, $length, value) { + var t1 = this.buffer, + t2 = this.offset + start; + J.fillRange$3$ax(t1, t2, t2 + $length, value); + }, + subset$3$offset$position(count, offset, position) { + var _this = this, + pos = position != null ? _this.start + position : _this.offset; + return A.InputBuffer$(_this.buffer, _this.bigEndian, count, pos + offset); + }, + subset$1(count) { + return this.subset$3$offset$position(count, 0, null); + }, + subset$2$position(count, position) { + return this.subset$3$offset$position(count, 0, position); + }, + subset$2$offset(count, offset) { + return this.subset$3$offset$position(count, offset, null); + }, + readByte$0() { + var t1 = this.buffer, + t2 = this.offset++; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + return t1[t2]; + }, + readBytes$1(count) { + var bytes = this.subset$1(count); + this.offset = this.offset + (bytes.end - bytes.offset); + return bytes; + }, + readString$1(len) { + var codes, t1, t2, t3, _this = this; + if (len == null) { + codes = A._setArrayType([], type$.JSArray_int); + for (t1 = _this.end; t2 = _this.offset, t2 < t1;) { + t3 = _this.buffer; + _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + if (t2 === 0) + return A.String_String$fromCharCodes(codes, 0, null); + B.JSArray_methods.add$1(codes, t2); + } + throw A.wrapException(A.ImageException$(string$.EOF_re)); + } + return A.String_String$fromCharCodes(_this.readBytes$1(len).toUint8List$0(), 0, null); + }, + readString$0() { + return this.readString$1(null); + }, + readStringUtf8$0() { + var t1, t2, t3, _this = this, + codes = A._setArrayType([], type$.JSArray_int); + for (t1 = _this.end; t2 = _this.offset, t2 < t1;) { + t3 = _this.buffer; + _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t3.length)) + return A.ioore(t3, t2); + t2 = t3[t2]; + if (t2 === 0) { + type$.List_int._as(codes); + return B.Utf8Decoder_true.convert$1(codes); + } + B.JSArray_methods.add$1(codes, t2); + } + throw A.wrapException(A.ImageException$(string$.EOF_re)); + }, + readUint16$0() { + var b1, b2, _this = this, + t1 = _this.buffer, + t2 = _this.offset, + t3 = _this.offset = t2 + 1, + t4 = t1.length; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b1 = t2 & 255; + _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b2 = t3 & 255; + if (_this.bigEndian) + return b1 << 8 | b2; + return b2 << 8 | b1; + }, + readUint24$0() { + var b1, b2, b3, _this = this, + t1 = _this.buffer, + t2 = _this.offset, + t3 = _this.offset = t2 + 1, + t4 = t1.length; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b1 = t2 & 255; + t2 = _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b2 = t3 & 255; + _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b3 = t2 & 255; + if (_this.bigEndian) + return b3 | b2 << 8 | b1 << 16; + return b1 | b2 << 8 | b3 << 16; + }, + readUint32$0() { + var b1, b2, b3, b4, _this = this, + t1 = _this.buffer, + t2 = _this.offset, + t3 = _this.offset = t2 + 1, + t4 = t1.length; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b1 = t2 & 255; + t2 = _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b2 = t3 & 255; + t3 = _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b3 = t2 & 255; + _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b4 = t3 & 255; + if (_this.bigEndian) + return (b1 << 24 | b2 << 16 | b3 << 8 | b4) >>> 0; + return (b4 << 24 | b3 << 16 | b2 << 8 | b1) >>> 0; + }, + readFloat64$0() { + return A.uint64ToFloat64(this.readUint64$0()); + }, + readUint64$0() { + var b1, b2, b3, b4, b5, b6, b7, b8, _this = this, + t1 = _this.buffer, + t2 = _this.offset, + t3 = _this.offset = t2 + 1, + t4 = t1.length; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b1 = t2 & 255; + t2 = _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b2 = t3 & 255; + t3 = _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b3 = t2 & 255; + t2 = _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b4 = t3 & 255; + t3 = _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b5 = t2 & 255; + t2 = _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b6 = t3 & 255; + t3 = _this.offset = t2 + 1; + if (!(t2 >= 0 && t2 < t4)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (typeof t2 !== "number") + return t2.$and(); + b7 = t2 & 255; + _this.offset = t3 + 1; + if (!(t3 >= 0 && t3 < t4)) + return A.ioore(t1, t3); + t3 = t1[t3]; + if (typeof t3 !== "number") + return t3.$and(); + b8 = t3 & 255; + if (_this.bigEndian) + return (B.JSInt_methods._shlPositive$1(b1, 56) | B.JSInt_methods._shlPositive$1(b2, 48) | B.JSInt_methods._shlPositive$1(b3, 40) | B.JSInt_methods._shlPositive$1(b4, 32) | b5 << 24 | b6 << 16 | b7 << 8 | b8) >>> 0; + return (B.JSInt_methods._shlPositive$1(b8, 56) | B.JSInt_methods._shlPositive$1(b7, 48) | B.JSInt_methods._shlPositive$1(b6, 40) | B.JSInt_methods._shlPositive$1(b5, 32) | b4 << 24 | b3 << 16 | b2 << 8 | b1) >>> 0; + }, + toList$2(_, offset, $length) { + var s, _this = this, + t1 = _this.buffer; + if (type$.Uint8List._is(t1)) + return _this.toUint8List$2(offset, $length); + s = _this.start + offset + offset; + return J.sublist$2$ax(t1, s, $length <= 0 ? _this.end : s + $length); + }, + toUint8List$2(offset, $length) { + var t2, _this = this, + len = $length == null ? _this.end - _this.offset - offset : $length, + t1 = _this.buffer; + if (type$.Uint8List._is(t1)) + return A.NativeUint8List_NativeUint8List$view(t1.buffer, t1.byteOffset + _this.offset + offset, len); + t2 = _this.offset + offset; + t2 = J.sublist$2$ax(t1, t2, t2 + len); + return new Uint8Array(A._ensureNativeList(t2)); + }, + toUint8List$0() { + return this.toUint8List$2(0, null); + }, + toUint32List$0() { + var t1 = this.buffer; + if (type$.Uint8List._is(t1)) + return A.NativeUint32List_NativeUint32List$view(t1.buffer, t1.byteOffset + this.offset, null); + return A.NativeUint32List_NativeUint32List$view(this.toUint8List$0().buffer, 0, null); + }, + set$buffer(_, buffer) { + this.buffer = type$.List_int._as(buffer); + } + }; + A.Interpolation.prototype = { + toString$0(_) { + return "Interpolation." + this._core$_name; + } + }; + A.NeuralQuantizer.prototype = { + getIndexMap$1(image) { + var t2, len, i, t3, + t1 = image.width * image.height, + map = new Uint8Array(t1); + for (t2 = image.data, len = t2.length, i = 0; i < len; ++i) { + t3 = t2[i]; + t3 = this._inxSearch$3(t3 >>> 16 & 255, t3 >>> 8 & 255, t3 & 255); + if (!(i < t1)) + return A.ioore(map, i); + map[i] = t3; + } + return map; + }, + _initialize$1(numberOfColors) { + var t1, t2, t3, f, i, i0, p, p0, _this = this, + _s8_ = "_network", + _s10_ = "cutNetSize"; + _this.set$netSize(Math.max(numberOfColors, 4)); + t1 = _this.netSize; + _this.__NeuralQuantizer_cutNetSize = t1 - _this.specials; + _this.maxNetPos = t1 - 1; + t1 = B.JSInt_methods._tdivFast$1(t1, 8); + _this.__NeuralQuantizer_initRadius = t1; + _this.__NeuralQuantizer_initBiasRadius = A._lateReadCheck(t1, "initRadius") * 256; + t1 = _this.netSize; + _this.__NeuralQuantizer__colorMap = new Int32Array(t1 * 4); + t2 = t1 * 3; + _this.__NeuralQuantizer_colorMap = new Uint8Array(t2); + _this.specials = 3; + _this.__NeuralQuantizer_bgColor = 2; + t1 = B.JSInt_methods._shrOtherPositive$1(t1, 3); + _this.__NeuralQuantizer__radiusPower = new Int32Array(t1); + t1 = type$.double; + t3 = type$.List_double; + _this.set$__NeuralQuantizer__network(t3._as(A.List_List$filled(t2, 0, false, t1))); + _this.set$__NeuralQuantizer__bias(t3._as(A.List_List$filled(_this.netSize, 0, false, t1))); + _this.set$__NeuralQuantizer__freq(t3._as(A.List_List$filled(_this.netSize, 0, false, t1))); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 0, 0); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 1, 0); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 2, 0); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 3, 255); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 4, 255); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), 5, 255); + f = 1 / _this.netSize; + for (i = 0; i0 = _this.specials, i < i0; ++i) { + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__freq, "_freq"), i, f); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__bias, "_bias"), i, 0); + } + for (p = i0 * 3, i = i0; i < _this.netSize; ++i, p = p0) { + p0 = p + 1; + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p, 255 * (i - _this.specials) / A._lateReadCheck(_this.__NeuralQuantizer_cutNetSize, _s10_)); + p = p0 + 1; + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p0, 255 * (i - _this.specials) / A._lateReadCheck(_this.__NeuralQuantizer_cutNetSize, _s10_)); + p0 = p + 1; + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p, 255 * (i - _this.specials) / A._lateReadCheck(_this.__NeuralQuantizer_cutNetSize, _s10_)); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__freq, "_freq"), i, f); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__bias, "_bias"), i, 0); + } + }, + _copyColorMap$0() { + var i, p, q, t1, p0, t2, t3, _this = this, + _s8_ = "colorMap", + _s9_ = "_colorMap"; + for (i = 0, p = 0, q = 0; i < _this.netSize; ++i, p = p0) { + t1 = A._lateReadCheck(_this.__NeuralQuantizer_colorMap, _s8_); + p0 = p + 1; + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t3 = q + 2; + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + t3 = t2[t3]; + if (!(p < t1.length)) + return A.ioore(t1, p); + t1[p] = Math.abs(t3) & 255; + t3 = A._lateReadCheck(_this.__NeuralQuantizer_colorMap, _s8_); + p = p0 + 1; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = q + 1; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t2 = t1[t2]; + if (!(p0 < t3.length)) + return A.ioore(t3, p0); + t3[p0] = Math.abs(t2) & 255; + t2 = A._lateReadCheck(_this.__NeuralQuantizer_colorMap, _s8_); + p0 = p + 1; + t3 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(q < t3.length)) + return A.ioore(t3, q); + t3 = t3[q]; + if (!(p < t2.length)) + return A.ioore(t2, p); + t2[p] = Math.abs(t3) & 255; + q += 4; + } + }, + _inxSearch$3(b, g, r) { + var i, j, bestd, best, p, t2, dist, a, _this = this, + _s9_ = "_colorMap", + t1 = _this._netIndex; + if (!(g < 256)) + return A.ioore(t1, g); + i = t1[g]; + j = i - 1; + bestd = 1000; + best = -1; + while (true) { + t1 = i < _this.netSize; + if (!(t1 || j >= 0)) + break; + if (t1) { + p = i * 4; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = p + 1; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + dist = t1[t2] - g; + if (dist >= bestd) + i = _this.netSize; + else { + if (dist < 0) + dist = -dist; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(p >= 0 && p < t1.length)) + return A.ioore(t1, p); + a = t1[p] - b; + dist += a < 0 ? -a : a; + if (dist < bestd) { + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = p + 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + a = t1[t2] - r; + dist += a < 0 ? -a : a; + if (dist < bestd) { + best = i; + bestd = dist; + } + } + ++i; + } + } + if (j >= 0) { + p = j * 4; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = p + 1; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + dist = g - t1[t2]; + if (dist >= bestd) + j = -1; + else { + if (dist < 0) + dist = -dist; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(p >= 0 && p < t1.length)) + return A.ioore(t1, p); + a = t1[p] - b; + dist += a < 0 ? -a : a; + if (dist < bestd) { + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = p + 2; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + a = t1[t2] - r; + dist += a < 0 ? -a : a; + if (dist < bestd) { + best = j; + bestd = dist; + } + } + --j; + } + } + } + return best; + }, + _fix$0() { + var i, p, q, j, t1, x, t2, _this = this, + _s9_ = "_colorMap"; + for (i = 0, p = 0, q = 0; i < _this.netSize; ++i, q += 4) { + for (j = 0; j < 3; ++j, ++p) { + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, "_network"), p); + if (typeof t1 !== "number") + return A.iae(t1); + x = B.JSNumber_methods.toInt$0(0.5 + t1); + if (x < 0) + x = 0; + if (x > 255) + x = 255; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = q + j; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = x; + } + t1 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = q + 3; + if (!(t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = i; + } + }, + _inxBuild$0() { + var t1, previousColor, startPos, i, p, t2, t3, smallval, j, q, q0, j0, smallpos, t4, t5, _this = this, + _s9_ = "_colorMap"; + for (t1 = _this._netIndex, previousColor = 0, startPos = 0, i = 0, p = 0; i < _this.netSize; p = q, i = j) { + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t3 = p + 1; + if (!(t3 < t2.length)) + return A.ioore(t2, t3); + smallval = t2[t3]; + for (j = i + 1, q = p + 4, q0 = q, j0 = j, smallpos = i; j0 < _this.netSize; ++j0, q0 += 4) { + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t4 = q0 + 1; + if (!(t4 < t2.length)) + return A.ioore(t2, t4); + if (t2[t4] < smallval) { + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(t4 < t2.length)) + return A.ioore(t2, t4); + smallval = t2[t4]; + smallpos = j0; + } + } + q0 = smallpos * 4; + if (i !== smallpos) { + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(q0 < t2.length)) + return A.ioore(t2, q0); + j0 = t2[q0]; + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(p < t4.length)) + return A.ioore(t4, p); + t4 = t4[p]; + if (!(q0 < t2.length)) + return A.ioore(t2, q0); + t2[q0] = t4; + t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(p < t4.length)) + return A.ioore(t4, p); + t4[p] = j0; + t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = q0 + 1; + if (!(t2 < t4.length)) + return A.ioore(t4, t2); + j0 = t4[t2]; + t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(t3 < t5.length)) + return A.ioore(t5, t3); + t5 = t5[t3]; + if (!(t2 < t4.length)) + return A.ioore(t4, t2); + t4[t2] = t5; + t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(t3 < t5.length)) + return A.ioore(t5, t3); + t5[t3] = j0; + t3 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t5 = q0 + 2; + if (!(t5 < t3.length)) + return A.ioore(t3, t5); + j0 = t3[t5]; + t3 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t4 = p + 2; + if (!(t4 < t2.length)) + return A.ioore(t2, t4); + t2 = t2[t4]; + if (!(t5 < t3.length)) + return A.ioore(t3, t5); + t3[t5] = t2; + t2 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(t4 < t2.length)) + return A.ioore(t2, t4); + t2[t4] = j0; + t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t2 = q0 + 3; + if (!(t2 < t4.length)) + return A.ioore(t4, t2); + j0 = t4[t2]; + t4 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + t3 = p + 3; + if (!(t3 < t5.length)) + return A.ioore(t5, t3); + t5 = t5[t3]; + if (!(t2 < t4.length)) + return A.ioore(t4, t2); + t4[t2] = t5; + t5 = A._lateReadCheck(_this.__NeuralQuantizer__colorMap, _s9_); + if (!(t3 < t5.length)) + return A.ioore(t5, t3); + t5[t3] = j0; + } + if (smallval !== previousColor) { + if (!(previousColor >= 0 && previousColor < 256)) + return A.ioore(t1, previousColor); + t1[previousColor] = startPos + i >>> 1; + for (j0 = previousColor + 1; j0 < smallval; ++j0) { + if (!(j0 < 256)) + return A.ioore(t1, j0); + t1[j0] = i; + } + startPos = i; + previousColor = smallval; + } + } + t2 = _this.maxNetPos; + t2.toString; + t3 = B.JSInt_methods._shrOtherPositive$1(startPos + t2, 1); + if (!(previousColor >= 0 && previousColor < 256)) + return A.ioore(t1, previousColor); + t1[previousColor] = t3; + for (j = previousColor + 1; j < 256; ++j) + t1[j] = t2; + }, + _updateRadiusPower$2(rad, alpha) { + var t1, i, t2, t3; + for (t1 = rad * rad, i = 0; i < rad; ++i) { + t2 = A._lateReadCheck(this.__NeuralQuantizer__radiusPower, "_radiusPower"); + t3 = B.JSNumber_methods.toInt$0(alpha * ((t1 - i * i) * 256 / t1)); + if (!(i < t2.length)) + return A.ioore(t2, i); + t2[i] = t3; + } + }, + _learn$1(image) { + var rad, step, alpha, pos, i, p, red, green, blue, j, a, t3, t4, t5, t6, _this = this, + _s8_ = "_network", + _s7_ = "bgColor", + biasRadius = A._lateReadCheck(_this.__NeuralQuantizer_initBiasRadius, "initBiasRadius"), + t1 = _this.samplingFactor, + alphaDec = 30 + B.JSInt_methods._tdivFast$1(t1 - 1, 3), + t2 = image.data, + lengthCount = t2.length, + samplePixels = B.JSInt_methods.$tdiv(lengthCount, t1), + delta = Math.max(B.JSInt_methods._tdivFast$1(samplePixels, 100), 1); + if (delta === 0) + delta = 1; + rad = B.JSInt_methods._shrOtherPositive$1(biasRadius, 8); + if (rad <= 1) + rad = 0; + _this._updateRadiusPower$2(rad, 1024); + if (lengthCount < 1509) + step = _this.samplingFactor = 1; + else if (B.JSInt_methods.$mod(lengthCount, 499) !== 0) + step = 499; + else if (B.JSInt_methods.$mod(lengthCount, 491) !== 0) + step = 491; + else + step = B.JSInt_methods.$mod(lengthCount, 487) !== 0 ? 487 : 503; + for (alpha = 1024, pos = 0, i = 0; i < samplePixels;) { + if (!(pos >= 0 && pos < lengthCount)) + return A.ioore(t2, pos); + p = t2[pos]; + red = p & 255; + green = p >>> 8 & 255; + blue = p >>> 16 & 255; + if (i === 0) { + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), A._lateReadCheck(_this.__NeuralQuantizer_bgColor, _s7_) * 3, blue); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), A._lateReadCheck(_this.__NeuralQuantizer_bgColor, _s7_) * 3 + 1, green); + J.$indexSet$ax(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), A._lateReadCheck(_this.__NeuralQuantizer_bgColor, _s7_) * 3 + 2, red); + } + j = _this._specialFind$3(blue, green, red); + if (j < 0) + j = _this._contest$3(blue, green, red); + if (j >= _this.specials) { + a = alpha / 1024; + p = j * 3; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t3 = J.getInterceptor$asx(t1); + t4 = t3.$index(t1, p); + t5 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); + if (typeof t5 !== "number") + return t5.$sub(); + if (typeof t4 !== "number") + return t4.$sub(); + t3.$indexSet(t1, p, t4 - a * (t5 - blue)); + t5 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t4 = p + 1; + t1 = J.getInterceptor$asx(t5); + t3 = t1.$index(t5, t4); + t6 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t4); + if (typeof t6 !== "number") + return t6.$sub(); + if (typeof t3 !== "number") + return t3.$sub(); + t1.$indexSet(t5, t4, t3 - a * (t6 - green)); + t6 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t3 = p + 2; + t4 = J.getInterceptor$asx(t6); + t5 = t4.$index(t6, t3); + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t3); + if (typeof t1 !== "number") + return t1.$sub(); + if (typeof t5 !== "number") + return t5.$sub(); + t4.$indexSet(t6, t3, t5 - a * (t1 - red)); + if (rad > 0) + _this._alterNeighbors$6(a, rad, j, blue, green, red); + } + pos += step; + for (; pos >= lengthCount;) + pos -= lengthCount; + ++i; + if (B.JSInt_methods.$mod(i, delta) === 0) { + alpha -= B.JSInt_methods.$tdiv(alpha, alphaDec); + biasRadius -= B.JSInt_methods._tdivFast$1(biasRadius, 30); + rad = B.JSInt_methods._shrOtherPositive$1(biasRadius, 8); + if (rad <= 1) + rad = 0; + _this._updateRadiusPower$2(rad, alpha); + } + } + }, + _alterNeighbors$6(alpha, rad, i, b, g, r) { + var hi, hi0, j, k, m, t1, t2, m0, a, p, t3, t4, t5, _this = this, + _s8_ = "_network", + lo = i - rad, + lo0 = _this.specials - 1; + if (lo < lo0) + lo = lo0; + hi = i + rad; + hi0 = _this.netSize; + if (hi > hi0) + hi = hi0; + j = i + 1; + k = i - 1; + m = 1; + while (true) { + t1 = j < hi; + if (!(t1 || k > lo)) + break; + t2 = A._lateReadCheck(_this.__NeuralQuantizer__radiusPower, "_radiusPower"); + m0 = m + 1; + if (!(m < t2.length)) + return A.ioore(t2, m); + a = t2[m]; + if (t1) { + p = j * 3; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t2 = J.getInterceptor$asx(t1); + t3 = t2.$index(t1, p); + t4 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); + if (typeof t4 !== "number") + return t4.$sub(); + if (typeof t3 !== "number") + return t3.$sub(); + t2.$indexSet(t1, p, t3 - a * (t4 - b) / 262144); + t4 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t3 = p + 1; + t1 = J.getInterceptor$asx(t4); + t2 = t1.$index(t4, t3); + t5 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t3); + if (typeof t5 !== "number") + return t5.$sub(); + if (typeof t2 !== "number") + return t2.$sub(); + t1.$indexSet(t4, t3, t2 - a * (t5 - g) / 262144); + t5 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t2 = p + 2; + t3 = J.getInterceptor$asx(t5); + t4 = t3.$index(t5, t2); + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t2); + if (typeof t1 !== "number") + return t1.$sub(); + if (typeof t4 !== "number") + return t4.$sub(); + t3.$indexSet(t5, t2, t4 - a * (t1 - r) / 262144); + ++j; + } + if (k > lo) { + p = k * 3; + t1 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t2 = J.getInterceptor$asx(t1); + t3 = t2.$index(t1, p); + t4 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); + if (typeof t4 !== "number") + return t4.$sub(); + if (typeof t3 !== "number") + return t3.$sub(); + t2.$indexSet(t1, p, t3 - a * (t4 - b) / 262144); + t4 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t3 = p + 1; + t1 = J.getInterceptor$asx(t4); + t2 = t1.$index(t4, t3); + t5 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t3); + if (typeof t5 !== "number") + return t5.$sub(); + if (typeof t2 !== "number") + return t2.$sub(); + t1.$indexSet(t4, t3, t2 - a * (t5 - g) / 262144); + t5 = A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_); + t2 = p + 2; + t3 = J.getInterceptor$asx(t5); + t4 = t3.$index(t5, t2); + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), t2); + if (typeof t1 !== "number") + return t1.$sub(); + if (typeof t4 !== "number") + return t4.$sub(); + t3.$indexSet(t5, t2, t4 - a * (t1 - r) / 262144); + --k; + } + m = m0; + } + }, + _contest$3(b, g, r) { + var i, p, bestBiasDist, bestd, bestpos, bestbiaspos, p0, t1, dist, a, a0, biasDist, t2, t3, t4, _this = this, _1000000000000000019884624838656 = 1e30, + _s8_ = "_network", + _s5_ = "_bias", _s5_0 = "_freq"; + for (i = _this.specials, p = i * 3, bestBiasDist = _1000000000000000019884624838656, bestd = bestBiasDist, bestpos = -1, bestbiaspos = -1; i < _this.netSize; ++i, p = p0) { + p0 = p + 1; + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); + if (typeof t1 !== "number") + return t1.$sub(); + dist = t1 - b; + if (dist < 0) + dist = -dist; + p = p0 + 1; + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p0); + if (typeof t1 !== "number") + return t1.$sub(); + a = t1 - g; + if (a < 0) + a = -a; + p0 = p + 1; + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p); + if (typeof t1 !== "number") + return t1.$sub(); + a0 = t1 - r; + if (a0 < 0) + a0 = -a0; + dist = dist + a + a0; + if (dist < bestd) { + bestpos = i; + bestd = dist; + } + t1 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__bias, _s5_), i); + if (typeof t1 !== "number") + return A.iae(t1); + biasDist = dist - t1; + if (biasDist < bestBiasDist) { + bestbiaspos = i; + bestBiasDist = biasDist; + } + t1 = A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0); + t2 = J.getInterceptor$asx(t1); + t3 = t2.$index(t1, i); + t4 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0), i); + if (typeof t4 !== "number") + return A.iae(t4); + if (typeof t3 !== "number") + return t3.$sub(); + t2.$indexSet(t1, i, t3 - 0.0009765625 * t4); + t4 = A._lateReadCheck(_this.__NeuralQuantizer__bias, _s5_); + t3 = J.getInterceptor$asx(t4); + t1 = t3.$index(t4, i); + t2 = J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0), i); + if (typeof t2 !== "number") + return A.iae(t2); + if (typeof t1 !== "number") + return t1.$add(); + t3.$indexSet(t4, i, t1 + t2); + } + t1 = A._lateReadCheck(_this.__NeuralQuantizer__freq, _s5_0); + t2 = J.getInterceptor$asx(t1); + t3 = t2.$index(t1, bestpos); + if (typeof t3 !== "number") + return t3.$add(); + t2.$indexSet(t1, bestpos, t3 + 0.0009765625); + t3 = A._lateReadCheck(_this.__NeuralQuantizer__bias, _s5_); + t1 = J.getInterceptor$asx(t3); + t2 = t1.$index(t3, bestpos); + if (typeof t2 !== "number") + return t2.$sub(); + t1.$indexSet(t3, bestpos, t2 - 1); + return bestbiaspos; + }, + _specialFind$3(b, g, r) { + var i, p, p0, t1, _this = this, + _s8_ = "_network"; + for (i = 0, p = 0; i < _this.specials; ++i) { + p0 = p + 1; + if (J.$eq$(J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p), b)) { + p = p0 + 1; + if (J.$eq$(J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p0), g)) { + p0 = p + 1; + t1 = J.$eq$(J.$index$asx(A._lateReadCheck(_this.__NeuralQuantizer__network, _s8_), p), r); + p = p0; + } else + t1 = false; + } else { + p = p0; + t1 = false; + } + if (t1) + return i; + } + return -1; + }, + set$netSize(netSize) { + this.netSize = A._asInt(netSize); + }, + set$__NeuralQuantizer__network(__NeuralQuantizer__network) { + this.__NeuralQuantizer__network = type$.List_double._as(__NeuralQuantizer__network); + }, + set$__NeuralQuantizer__bias(__NeuralQuantizer__bias) { + this.__NeuralQuantizer__bias = type$.List_double._as(__NeuralQuantizer__bias); + }, + set$__NeuralQuantizer__freq(__NeuralQuantizer__freq) { + this.__NeuralQuantizer__freq = type$.List_double._as(__NeuralQuantizer__freq); + } + }; + A.OutputBuffer.prototype = { + writeByte$1(value) { + var t1, t2, _this = this; + if (_this.length === _this._buffer.length) + _this._expandBuffer$0(); + t1 = _this._buffer; + t2 = _this.length++; + if (!(t2 >= 0 && t2 < t1.length)) + return A.ioore(t1, t2); + t1[t2] = value & 255; + }, + writeBytes$2(bytes, len) { + var t1, t2, t3, t4, _this = this; + type$.List_int._as(bytes); + if (len == null) + len = J.get$length$asx(bytes); + for (; t1 = _this.length, t2 = t1 + len, t3 = _this._buffer, t4 = t3.length, t2 > t4;) + _this._expandBuffer$1(t2 - t4); + B.NativeUint8List_methods.setRange$3(t3, t1, t2, bytes); + _this.length += len; + }, + writeBytes$1(bytes) { + return this.writeBytes$2(bytes, null); + }, + writeUint16$1(value) { + var _this = this; + if (_this.bigEndian) { + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); + _this.writeByte$1(value & 255); + return; + } + _this.writeByte$1(value & 255); + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); + }, + writeUint32$1(value) { + var _this = this; + if (_this.bigEndian) { + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 24) & 255); + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 16) & 255); + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); + _this.writeByte$1(value & 255); + return; + } + _this.writeByte$1(value & 255); + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 8) & 255); + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 16) & 255); + _this.writeByte$1(B.JSInt_methods._shrOtherPositive$1(value, 24) & 255); + }, + _expandBuffer$1(required) { + var blockSize, t1, t2, newBuffer; + if (required != null) + blockSize = required; + else { + t1 = this._buffer.length; + blockSize = t1 === 0 ? 8192 : t1 * 2; + } + t1 = this._buffer; + t2 = t1.length; + newBuffer = new Uint8Array(t2 + blockSize); + B.NativeUint8List_methods.setRange$3(newBuffer, 0, t2, t1); + this._buffer = newBuffer; + }, + _expandBuffer$0() { + return this._expandBuffer$1(null); + }, + get$length(receiver) { + return this.length; + } + }; + A.Quantizer.prototype = {}; + A._DbInboundGroupSessionBundle.prototype = { + toJson$0() { + return A.LinkedHashMap_LinkedHashMap$_literal(["dbSession", this.dbSession.toJson$0(), "verified", this.verified], type$.String, type$.Object); + } + }; + A.GenerateUploadKeysArgs.prototype = { + toJson$0() { + var t1 = this.dbSessions, + t2 = A._arrayInstanceType(t1), + t3 = t2._eval$1("MappedListIterable<1,Map>"); + return A.LinkedHashMap_LinkedHashMap$_literal(["pubkey", this.pubkey, "dbSessions", A.List_List$of(new A.MappedListIterable(t1, t2._eval$1("Map(1)")._as(new A.GenerateUploadKeysArgs_toJson_closure()), t3), true, t3._eval$1("ListIterable.E")), "userId", this.userId], type$.String, type$.Object); + } + }; + A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure.prototype = { + call$1(e) { + var t2, + t1 = type$.Map_dynamic_dynamic; + t1._as(e); + t2 = J.getInterceptor$asx(e); + t1 = A.LinkedHashMap_LinkedHashMap$from(t1._as(t2.$index(e, "dbSession")), type$.String, type$.dynamic); + return new A._DbInboundGroupSessionBundle(new A.StoredInboundGroupSession(A._asString(t1.$index(0, "room_id")), A._asString(t1.$index(0, "session_id")), A._asString(t1.$index(0, "pickle")), A._asString(t1.$index(0, "content")), A._asString(t1.$index(0, "indexes")), A._asString(t1.$index(0, "allowed_at_index")), A._asBool(t1.$index(0, "uploaded")), A._asString(t1.$index(0, "sender_key")), A._asString(t1.$index(0, "sender_claimed_keys"))), A._asBool(t2.$index(e, "verified"))); + }, + $signature: 37 + }; + A.GenerateUploadKeysArgs_toJson_closure.prototype = { + call$1(e) { + return type$._DbInboundGroupSessionBundle._as(e).toJson$0(); + }, + $signature: 38 + }; + A.SessionKey.prototype = { + get$forwardingCurve25519KeyChain() { + var _s31_ = "forwarding_curve25519_key_chain", + t1 = this.content, + t2 = J.getInterceptor$asx(t1); + t1 = t2.$index(t1, _s31_) != null ? A.List_List$from(type$.Iterable_dynamic._as(t2.$index(t1, _s31_)), type$.String) : null; + return t1 == null ? A._setArrayType([], type$.JSArray_String) : t1; + }, + SessionKey$fromDb$2(dbEntry, key) { + var e, s, t2, t3, exception, _this = this, + _s19_ = "sender_claimed_keys", + _s26_ = "sender_claimed_ed25519_key", + t1 = type$.String, + parsedSenderClaimedKeys = A.FilterMap_catchMap(A.Event_getMapFromPayload(dbEntry.senderClaimedKeys), new A.SessionKey$fromDb_closure1(), t1, type$.dynamic, t1, t1); + if (parsedSenderClaimedKeys._length !== 0) + t1 = parsedSenderClaimedKeys; + else { + t2 = _this.content; + t3 = J.getInterceptor$asx(t2); + if (type$.Map_dynamic_dynamic._is(t3.$index(t2, _s19_))) + t1 = t3.$index(t2, _s19_).catchMap$1(new A.SessionKey$fromDb_closure2()); + else + t1 = typeof t3.$index(t2, _s26_) == "string" ? A.LinkedHashMap_LinkedHashMap$_literal(["ed25519", A._asString(t3.$index(t2, _s26_))], t1, t1) : A.LinkedHashMap_LinkedHashMap$_empty(t1, t1); + } + _this.set$__SessionKey_senderClaimedKeys(type$.Map_String_String._as(t1)); + try { + t1 = _this.inboundGroupSession; + t1.toString; + J.unpickle$2$x(t1, key, dbEntry.pickle); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = _this.inboundGroupSession; + if (t1 != null) + J.free$0$x(t1); + _this.inboundGroupSession = null; + $.$get$Logs__singleton().addLogEvent$1(new A.LogEvent("[LibOlm] Unable to unpickle inboundGroupSession", e, type$.nullable_StackTrace._as(s), B.Level_1)); + } + }, + set$__SessionKey_senderClaimedKeys(__SessionKey_senderClaimedKeys) { + this.__SessionKey_senderClaimedKeys = type$.Map_String_String._as(__SessionKey_senderClaimedKeys); + } + }; + A.SessionKey$fromDb_closure.prototype = { + call$2(k, v) { + return new A.MapEntry(A._asString(k), A._asString(v), type$.MapEntry_String_String); + }, + $signature: 17 + }; + A.SessionKey$fromDb_closure0.prototype = { + call$2(k, v) { + return new A.MapEntry(A._asString(k), A.LinkedHashMap_LinkedHashMap$from(type$.Map_dynamic_dynamic._as(v), type$.String, type$.int), type$.MapEntry_of_String_and_Map_String_int); + }, + $signature: 40 + }; + A.SessionKey$fromDb_closure1.prototype = { + call$2(k, v) { + return new A.MapEntry(A._asString(k), A._asString(v), type$.MapEntry_String_String); + }, + $signature: 17 + }; + A.SessionKey$fromDb_closure2.prototype = { + call$2(k, v) { + return new A.MapEntry(k, v, type$.MapEntry_String_String); + }, + $signature: 41 + }; + A.StoredInboundGroupSession.prototype = { + toJson$0() { + var _this = this; + return A.LinkedHashMap_LinkedHashMap$_literal(["room_id", _this.roomId, "session_id", _this.sessionId, "pickle", _this.pickle, "content", _this.content, "indexes", _this.indexes, "allowed_at_index", _this.allowedAtIndex, "uploaded", _this.uploaded, "sender_key", _this.senderKey, "sender_claimed_keys", _this.senderClaimedKeys], type$.String, type$.dynamic); + } + }; + A.Pbkdf2Params.prototype = {}; + A.AesCtrParams.prototype = {}; + A.MatrixImageFileResizedResponse.prototype = { + toJson$0() { + var t2, _this = this, + t1 = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); + t1.$indexSet(0, "bytes", _this.bytes); + t1.$indexSet(0, "width", _this.width); + t1.$indexSet(0, "height", _this.height); + t2 = _this.blurhash; + if (t2 != null) + t1.$indexSet(0, "blurhash", t2); + t2 = _this.originalHeight; + if (t2 != null) + t1.$indexSet(0, "originalHeight", t2); + t2 = _this.originalWidth; + if (t2 != null) + t1.$indexSet(0, "originalWidth", t2); + return t1; + } + }; + A.MatrixImageFileResizeArguments.prototype = { + toJson$0() { + var _this = this; + return A.LinkedHashMap_LinkedHashMap$_literal(["bytes", _this.bytes, "maxDimension", _this.maxDimension, "fileName", _this.fileName, "calcBlurhash", _this.calcBlurhash], type$.String, type$.Object); + } + }; + A.WebWorkerData.prototype = { + toJson$0() { + var t2, + t1 = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.nullable_Object); + t1.$indexSet(0, "label", this.label); + t2 = this.name; + if (t2 != null) + t1.$indexSet(0, "name", t2.index); + t1.$indexSet(0, "data", this.data); + return t1; + } + }; + A.WebWorkerOperations.prototype = { + toString$0(_) { + return "WebWorkerOperations." + this._core$_name; + } + }; + A.startWebWorker_closure.prototype = { + call$1($event) { + return this.$call$body$startWebWorker_closure(type$.MessageEvent._as($event)); + }, + $call$body$startWebWorker_closure($event) { + var $async$goto = 0, + $async$completer = A._makeAsyncAwaitCompleter(type$.Null), + $async$returnValue, $async$next = [], data, operation, result, result0, result1, e, s, e0, s0, t3, exception, t1, t2; + var $async$call$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { + if ($async$errorCode === 1) + return A._asyncRethrow($async$result, $async$completer); + while (true) + switch ($async$goto) { + case 0: + // Function start + t1 = $event.data; + t2 = new A._AcceptStructuredCloneDart2Js([], []); + t2.mustCopy = true; + data = t2.walk$1(t1); + try { + t1 = type$.LinkedHashMap_dynamic_dynamic._as(data); + t2 = t1.$index(0, "label"); + if (t1.containsKey$1(0, "name")) { + t3 = A._asInt(t1.$index(0, "name")); + if (!(t3 >= 0 && t3 < 3)) { + $async$returnValue = A.ioore(B.List_JmU, t3); + // goto return + $async$goto = 1; + break; + } + t3 = B.List_JmU[t3]; + } else + t3 = null; + operation = new A.WebWorkerData(t2, t3, t1.$index(0, "data")); + switch (operation.name) { + case B.WebWorkerOperations_0: + t1 = A.LinkedHashMap_LinkedHashMap$from(type$.Map_dynamic_dynamic._as(operation.data), type$.String, type$.dynamic); + result = A.MatrixImageFile_resizeImplementation(new A.MatrixImageFileResizeArguments(type$.Uint8List._as(t1.$index(0, "bytes")), A._asInt(t1.$index(0, "maxDimension")), A._asString(t1.$index(0, "fileName")), A._asBool(t1.$index(0, "calcBlurhash")))); + t1 = A._asDouble(operation.label); + t2 = result; + A.sendResponse(t1, t2 == null ? null : t2.toJson$0()); + break; + case B.WebWorkerOperations_1: + t1 = type$.WhereTypeIterable_int; + result0 = A.MatrixImageFile_calcMetadataImplementation(new Uint8Array(A._ensureNativeList(A.List_List$of(new A.WhereTypeIterable(type$.JsArray_dynamic._as(operation.data), t1), true, t1._eval$1("Iterable.E"))))); + t1 = A._asDouble(operation.label); + result0 = result0; + A.sendResponse(t1, result0 == null ? null : result0.toJson$0()); + break; + case B.WebWorkerOperations_2: + t1 = type$.dynamic; + result1 = A.generateUploadKeysImplementation(A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson(A.LinkedHashMap_LinkedHashMap$from(type$.Map_dynamic_dynamic._as(operation.data), t1, t1))); + A.sendResponse(A._asDouble(operation.label), result1.toJson$0()); + break; + default: + throw A.wrapException(new A.NullThrownError()); + } + } catch (exception) { + t1 = A.unwrapException(exception); + if (type$.Event._is(t1)) { + e = t1; + s = A.getTraceFromException(exception); + A.allowInterop(A.web_worker___replyError$closure(), type$.void_Function_3_nullable_Object_and_StackTrace_and_double).call$3(type$.Request._as(J.get$target$x(e)).error, s, A._asDouble(J.$index$asx(data, "label"))); + } else { + e0 = t1; + s0 = A.getTraceFromException(exception); + A.allowInterop(A.web_worker___replyError$closure(), type$.void_Function_3_nullable_Object_and_StackTrace_and_double).call$3(e0, s0, A._asDouble(J.$index$asx(data, "label"))); + } + } + case 1: + // return + return A._asyncReturn($async$returnValue, $async$completer); + } + }); + return A._asyncStartSync($async$call$1, $async$completer); + }, + $signature: 42 + }; + A.KeyBackupData.prototype = { + toJson$0() { + var _this = this; + return A.LinkedHashMap_LinkedHashMap$_literal(["first_message_index", _this.firstMessageIndex, "forwarded_count", _this.forwardedCount, "is_verified", _this.isVerified, "session_data", _this.sessionData], type$.String, type$.dynamic); + } + }; + A.RoomKeyBackup.prototype = { + toJson$0() { + var t1 = this.sessions, + t2 = type$.String; + return A.LinkedHashMap_LinkedHashMap$_literal(["sessions", t1.map$2$1(t1, new A.RoomKeyBackup_toJson_closure(), t2, type$.Map_String_dynamic)], t2, type$.dynamic); + } + }; + A.RoomKeyBackup_toJson_closure.prototype = { + call$2(k, v) { + return new A.MapEntry(A._asString(k), type$.KeyBackupData._as(v).toJson$0(), type$.MapEntry_of_String_and_Map_String_dynamic); + }, + $signature: 43 + }; + A.RoomKeys.prototype = { + toJson$0() { + var t1 = this.rooms, + t2 = type$.String; + return A.LinkedHashMap_LinkedHashMap$_literal(["rooms", t1.map$2$1(t1, new A.RoomKeys_toJson_closure(), t2, type$.Map_String_dynamic)], t2, type$.dynamic); + } + }; + A.RoomKeys_toJson_closure.prototype = { + call$2(k, v) { + return new A.MapEntry(A._asString(k), type$.RoomKeyBackup._as(v).toJson$0(), type$.MapEntry_of_String_and_Map_String_dynamic); + }, + $signature: 44 + }; + A.FilterMap_filterMap_closure.prototype = { + call$1(e) { + this.K._eval$1("@<0>")._bind$1(this.V)._eval$1("MapEntry<1,2>")._as(e); + return this.f.call$2(e.key, e.value); + }, + $signature() { + var _this = this; + return _this.K2._eval$1("@<0>")._bind$1(_this.V2)._bind$1(_this.K)._bind$1(_this.V)._eval$1("MapEntry<1,2>?(MapEntry<3,4>)"); + } + }; + A.FilterMap_catchMap_closure.prototype = { + call$2(k, v) { + var t1, exception; + this.K._as(k); + this.V._as(v); + try { + t1 = this.f.call$2(k, v); + return t1; + } catch (exception) { + return null; + } + }, + $signature() { + var _this = this; + return _this.K2._eval$1("@<0>")._bind$1(_this.V2)._bind$1(_this.K)._bind$1(_this.V)._eval$1("MapEntry<1,2>?(3,4)"); + } + }; + A.Level.prototype = { + toString$0(_) { + return "Level." + this._core$_name; + } + }; + A.Logs.prototype = { + addLogEvent$1(logEvent) { + var t1, logsStr, t2; + B.JSArray_methods.add$1(this.outputEvents, logEvent); + t1 = logEvent.level.index; + if (t1 <= 3) { + logsStr = "[Matrix] " + logEvent.title + B.JSString_methods.$add(" - ", J.toString$0$(logEvent.exception)); + t2 = logEvent.stackTrace; + if (t2 != null) + logsStr += "\n" + t2.toString$0(0); + switch (t1) { + case 0: + window; + if (typeof console != "undefined") + window.console.error("!!!CRITICAL!!! " + logsStr); + break; + case 1: + window; + if (typeof console != "undefined") + window.console.error(logsStr); + break; + case 2: + window; + if (typeof console != "undefined") + window.console.warn(logsStr); + break; + case 3: + window; + if (typeof console != "undefined") + window.console.info(logsStr); + break; + case 4: + window; + if (typeof console != "undefined") + window.console.debug(logsStr); + break; + case 5: + window; + if (typeof console != "undefined") + window.console.log(logsStr); + break; + } + } + } + }; + A.LogEvent.prototype = {}; + A.EncryptResult.prototype = {}; + A.DecryptResult.prototype = {}; + A.Account.prototype = {}; + A.Session.prototype = {}; + A.Utility.prototype = {}; + A.InboundGroupSession.prototype = {}; + A.OutboundGroupSession.prototype = {}; + A.SAS.prototype = {}; + A.PkEncryptResult.prototype = {}; + A.PkEncryption.prototype = {}; + A.PkDecryption.prototype = {}; + A.PkSigning.prototype = {}; + (function aliases() { + var _ = J.Interceptor.prototype; + _.super$Interceptor$toString = _.toString$0; + _ = J.LegacyJavaScriptObject.prototype; + _.super$LegacyJavaScriptObject$toString = _.toString$0; + _ = A.JsLinkedHashMap.prototype; + _.super$JsLinkedHashMap$internalContainsKey = _.internalContainsKey$1; + _.super$JsLinkedHashMap$internalGet = _.internalGet$1; + _.super$JsLinkedHashMap$internalSet = _.internalSet$2; + _ = A.ListMixin.prototype; + _.super$ListMixin$setRange = _.setRange$4; + _ = A.Object.prototype; + _.super$Object$toString = _.toString$0; + _ = A.JsObject.prototype; + _.super$JsObject$$index = _.$index; + _.super$JsObject$$indexSet = _.$indexSet; + _ = A._JsArray_JsObject_ListMixin.prototype; + _.super$_JsArray_JsObject_ListMixin$$indexSet = _.$indexSet; + })(); + (function installTearOffs() { + var _static_1 = hunkHelpers._static_1, + _static_0 = hunkHelpers._static_0, + _static_2 = hunkHelpers._static_2, + _instance_2_u = hunkHelpers._instance_2u, + _instance_1_u = hunkHelpers._instance_1u, + _static = hunkHelpers.installStaticTearOff; + _static_1(A, "_js_helper_GeneralConstantMap__constantMapHashCode$closure", "GeneralConstantMap__constantMapHashCode", 11); + _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 10); + _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 10); + _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 10); + _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 2); + _static_2(A, "collection___defaultEquals$closure", "_defaultEquals", 47); + _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 11); + _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 4); + _static_1(A, "js___convertToDart$closure", "_convertToDart", 48); + _static_1(A, "blurhash___maxChannelAbs$closure", "_maxChannelAbs", 49); + var _; + _instance_2_u(_ = A.JpegScan.prototype, "get$_decodeBaseline", "_decodeBaseline$2", 8); + _instance_2_u(_, "get$_decodeDCFirst", "_decodeDCFirst$2", 8); + _instance_2_u(_, "get$_decodeDCSuccessive", "_decodeDCSuccessive$2", 12); + _instance_2_u(_, "get$_decodeACFirst", "_decodeACFirst$2", 8); + _instance_2_u(_, "get$_decodeACSuccessive", "_decodeACSuccessive$2", 12); + _static_1(A, "vp8_filter_VP8Filter_VE4$closure", "VP8Filter_VE4", 0); + _static_1(A, "vp8_filter_VP8Filter_HE4$closure", "VP8Filter_HE4", 0); + _static_1(A, "vp8_filter_VP8Filter_DC4$closure", "VP8Filter_DC4", 0); + _static_1(A, "vp8_filter_VP8Filter_TM4$closure", "VP8Filter_TM4", 0); + _static_1(A, "vp8_filter_VP8Filter_TM8uv$closure", "VP8Filter_TM8uv", 0); + _static_1(A, "vp8_filter_VP8Filter_TM16$closure", "VP8Filter_TM16", 0); + _static_1(A, "vp8_filter_VP8Filter_RD4$closure", "VP8Filter_RD4", 0); + _static_1(A, "vp8_filter_VP8Filter_LD4$closure", "VP8Filter_LD4", 0); + _static_1(A, "vp8_filter_VP8Filter_VR4$closure", "VP8Filter_VR4", 0); + _static_1(A, "vp8_filter_VP8Filter_VL4$closure", "VP8Filter_VL4", 0); + _static_1(A, "vp8_filter_VP8Filter_HU4$closure", "VP8Filter_HU4", 0); + _static_1(A, "vp8_filter_VP8Filter_HD4$closure", "VP8Filter_HD4", 0); + _static_1(A, "vp8_filter_VP8Filter_VE16$closure", "VP8Filter_VE16", 0); + _static_1(A, "vp8_filter_VP8Filter_HE16$closure", "VP8Filter_HE16", 0); + _static_1(A, "vp8_filter_VP8Filter_DC16$closure", "VP8Filter_DC16", 0); + _static_1(A, "vp8_filter_VP8Filter_DC16NoTop$closure", "VP8Filter_DC16NoTop", 0); + _static_1(A, "vp8_filter_VP8Filter_DC16NoLeft$closure", "VP8Filter_DC16NoLeft", 0); + _static_1(A, "vp8_filter_VP8Filter_DC16NoTopLeft$closure", "VP8Filter_DC16NoTopLeft", 0); + _static_1(A, "vp8_filter_VP8Filter_VE8uv$closure", "VP8Filter_VE8uv", 0); + _static_1(A, "vp8_filter_VP8Filter_HE8uv$closure", "VP8Filter_HE8uv", 0); + _static_1(A, "vp8_filter_VP8Filter_DC8uv$closure", "VP8Filter_DC8uv", 0); + _static_1(A, "vp8_filter_VP8Filter_DC8uvNoLeft$closure", "VP8Filter_DC8uvNoLeft", 0); + _static_1(A, "vp8_filter_VP8Filter_DC8uvNoTop$closure", "VP8Filter_DC8uvNoTop", 0); + _static_1(A, "vp8_filter_VP8Filter_DC8uvNoTopLeft$closure", "VP8Filter_DC8uvNoTopLeft", 0); + _instance_1_u(A.VP8L.prototype, "get$_processRows", "_processRows$1", 7); + _instance_1_u(A.InternalVP8L.prototype, "get$extractAlphaRows", "extractAlphaRows$1", 7); + _static(A, "vp8l_transform_VP8LTransform__predictor0$closure", 3, null, ["call$3"], ["VP8LTransform__predictor0"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor1$closure", 3, null, ["call$3"], ["VP8LTransform__predictor1"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor2$closure", 3, null, ["call$3"], ["VP8LTransform__predictor2"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor3$closure", 3, null, ["call$3"], ["VP8LTransform__predictor3"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor4$closure", 3, null, ["call$3"], ["VP8LTransform__predictor4"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor5$closure", 3, null, ["call$3"], ["VP8LTransform__predictor5"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor6$closure", 3, null, ["call$3"], ["VP8LTransform__predictor6"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor7$closure", 3, null, ["call$3"], ["VP8LTransform__predictor7"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor8$closure", 3, null, ["call$3"], ["VP8LTransform__predictor8"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor9$closure", 3, null, ["call$3"], ["VP8LTransform__predictor9"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor10$closure", 3, null, ["call$3"], ["VP8LTransform__predictor10"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor11$closure", 3, null, ["call$3"], ["VP8LTransform__predictor11"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor12$closure", 3, null, ["call$3"], ["VP8LTransform__predictor12"], 1, 0); + _static(A, "vp8l_transform_VP8LTransform__predictor13$closure", 3, null, ["call$3"], ["VP8LTransform__predictor13"], 1, 0); + _static(A, "web_worker___replyError$closure", 3, null, ["call$3"], ["_replyError"], 52, 0); + _static(A, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) { + return A.max(a, b, type$.num); + }], 39, 1); + _static(A, "webp_filters_WebPFilters_horizontalUnfilter$closure", 6, null, ["call$6"], ["WebPFilters_horizontalUnfilter"], 9, 0); + _static(A, "webp_filters_WebPFilters_verticalUnfilter$closure", 6, null, ["call$6"], ["WebPFilters_verticalUnfilter"], 9, 0); + _static(A, "webp_filters_WebPFilters_gradientUnfilter$closure", 6, null, ["call$6"], ["WebPFilters_gradientUnfilter"], 9, 0); + })(); + (function inheritance() { + var _mixin = hunkHelpers.mixin, + _mixinHard = hunkHelpers.mixinHard, + _inherit = hunkHelpers.inherit, + _inheritMany = hunkHelpers.inheritMany; + _inherit(A.Object, null); + _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Error, A._ListBase_Object_ListMixin, A.SentinelValue, A.Iterable, A.ListIterator, A.Iterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.Symbol, A.MapView, A.ConstantMap, A.Closure, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.MapMixin, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A._IterationMarker, A._SyncStarIterator, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.StreamTransformerBase, A._StreamIterator, A._Zone, A._HashMapKeyIterator, A.ListMixin, A._UnmodifiableMapMixin, A.Codec, A._JsonStringifier, A._JsonPrettyPrintMixin, A._Utf8Decoder, A.DateTime, A._Enum, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.MapEntry, A.Null, A._StringStackTrace, A.StringBuffer, A.CssStyleDeclarationBase, A.ImmutableListMixin, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A.InputStreamBase, A.OutputStreamBase, A.ZLibDecoderBase, A.Deflate, A._DeflaterConfig, A._HuffmanTree, A._StaticTree, A.HuffmanTable, A.Inflate, A.ZLibDecoder, A.ZLibEncoder, A.BlurHash, A.BlurHashEncodeException, A.ColorTriplet, A.ExifData, A.BitmapFileHeader, A.DecodeInfo, A.Decoder, A.Encoder, A.ExrAttribute, A.ExrCompressor, A.ExrChannel, A.ExrHufDec, A.ExrPart, A._PizChannelData, A.GifColorMap, A.GifImageDesc, A.IcoInfoImage, A.ComponentData, A.JpegAdobe, A.JpegComponent, A.JpegData, A._JpegHuffman, A.JpegFrame, A.JpegJfif, A.JpegScan, A.PngFrame, A.PsdEffect, A.PsdLayerData, A.PsdBlendingRanges, A.PsdChannel, A.PsdImageResource, A.PsdLayer, A.TiffBitReader, A.TiffEntry, A.TiffFaxDecoder, A.TiffImage, A.LzwDecoder, A.VP8, A.VP8BitReader, A.VP8Filter, A.VP8FrameHeader, A.VP8PictureHeader, A.VP8SegmentHeader, A.VP8BandProbas, A.VP8Proba, A.VP8FilterHeader, A.VP8FInfo, A.VP8MB, A.VP8QuantMatrix, A.VP8MBData, A.VP8TopSamples, A.VP8L, A.VP8LBitReader, A.VP8LColorCache, A.VP8LTransform, A.WebPAlpha, A.WebPFrame, A.HuffmanTree, A.HTreeGroup, A.HdrImage, A.HdrSlice, A.ICCProfileData, A.Image, A.ImageException, A.InputBuffer, A.Quantizer, A.OutputBuffer, A._DbInboundGroupSessionBundle, A.GenerateUploadKeysArgs, A.SessionKey, A.StoredInboundGroupSession, A.MatrixImageFileResizedResponse, A.MatrixImageFileResizeArguments, A.WebWorkerData, A.KeyBackupData, A.RoomKeyBackup, A.RoomKeys, A.Logs, A.LogEvent]); + _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JSArray, J.JSNumber, J.JSString, A.NativeTypedData]); + _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A.Event, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); + _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction, A.Pbkdf2Params, A.AesCtrParams, A.EncryptResult, A.DecryptResult, A.Account, A.Session, A.Utility, A.InboundGroupSession, A.OutboundGroupSession, A.SAS, A.PkEncryptResult, A.PkEncryption, A.PkDecryption, A.PkSigning]); + _inherit(J.JSUnmodifiableArray, J.JSArray); + _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]); + _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A.RuntimeError, A.AssertionError, A._Error, A.JsonUnsupportedObjectError, A.NullThrownError, A.ArgumentError, A.NoSuchMethodError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError, A.CyclicInitializationError]); + _inherit(A.ListBase, A._ListBase_Object_ListMixin); + _inherit(A.UnmodifiableListBase, A.ListBase); + _inherit(A.CodeUnits, A.UnmodifiableListBase); + _inheritMany(A.Iterable, [A.EfficientLengthIterable, A.MappedIterable, A.WhereTypeIterable, A._ConstantMapKeyIterable, A.IterableBase]); + _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeyIterable, A._HashMapKeyIterable]); + _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A._JsonMapKeyIterable, A._GeneratorIterable]); + _inherit(A.EfficientLengthMappedIterable, A.MappedIterable); + _inherit(A.MappedIterator, A.Iterator); + _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView); + _inherit(A.UnmodifiableMapView, A._UnmodifiableMapView_MapView__UnmodifiableMapMixin); + _inherit(A.ConstantMapView, A.UnmodifiableMapView); + _inheritMany(A.ConstantMap, [A.ConstantStringMap, A.GeneralConstantMap]); + _inheritMany(A.Closure, [A.GeneralConstantMap__typeTest_closure, A.Instantiation, A.Closure2Args, A.Closure0Args, A.TearOffClosure, A.JsLinkedHashMap_values_closure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__chainForeignFuture_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._LinkedCustomHashMap_closure, A.MapMixin_entries_closure, A._convertToJS_closure, A._convertToJS_closure0, A._wrapToDart_closure, A._wrapToDart_closure0, A._wrapToDart_closure1, A._convertDataTree__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.BmpInfo_readPalette_closure, A.BmpDecoder_decodeFrame_closure, A.ExrPart_closure, A.IcoInfo__read_closure, A.JpegData__readSOS_closure, A.PngDecoder_decodeFrame_closure, A.Image_getPixelLinear__linear, A.Image_getPixelCubic__cubic, A.GenerateUploadKeysArgs_GenerateUploadKeysArgs$fromJson_closure, A.GenerateUploadKeysArgs_toJson_closure, A.startWebWorker_closure, A.FilterMap_filterMap_closure]); + _inherit(A.Instantiation1, A.Instantiation); + _inheritMany(A.Closure2Args, [A.Primitives_functionNoSuchMethod_closure, A.initHooks_closure0, A._awaitOnObject_closure0, A._wrapJsFunctionForAsync_closure, A._Future__chainForeignFuture_closure0, A.LinkedHashMap_LinkedHashMap$from_closure, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A._JsonPrettyPrintMixin_writeMap_closure, A.NoSuchMethodError_toString_closure, A.MidiInputMap_keys_closure, A.MidiOutputMap_keys_closure, A.RtcStatsReport_keys_closure, A.Storage_keys_closure, A._AcceptStructuredClone_walk_closure, A.AudioParamMap_keys_closure, A.VP8__upsample_LOAD_UV, A.hdrToImage__knee, A.hdrToImage__gamma, A.SessionKey$fromDb_closure, A.SessionKey$fromDb_closure0, A.SessionKey$fromDb_closure1, A.SessionKey$fromDb_closure2, A.RoomKeyBackup_toJson_closure, A.RoomKeys_toJson_closure, A.FilterMap_catchMap_closure]); + _inherit(A.NullError, A.TypeError); + _inheritMany(A.TearOffClosure, [A.StaticClosure, A.BoundClosure]); + _inherit(A._AssertionError, A.AssertionError); + _inherit(A.MapBase, A.MapMixin); + _inheritMany(A.MapBase, [A.JsLinkedHashMap, A._HashMap, A._JsonMap]); + _inherit(A.NativeTypedArray, A.NativeTypedData); + _inheritMany(A.NativeTypedArray, [A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin]); + _inherit(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin); + _inherit(A.NativeTypedArrayOfDouble, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin); + _inherit(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin); + _inherit(A.NativeTypedArrayOfInt, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin); + _inheritMany(A.NativeTypedArrayOfDouble, [A.NativeFloat32List, A.NativeFloat64List]); + _inheritMany(A.NativeTypedArrayOfInt, [A.NativeInt16List, A.NativeInt32List, A.NativeInt8List, A.NativeUint16List, A.NativeUint32List, A.NativeUint8ClampedList, A.NativeUint8List]); + _inherit(A._TypeError, A._Error); + _inheritMany(A.Closure0Args, [A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainForeignFuture_closure1, A._Future__asyncCompleteWithValue_closure, A._Future__chainFuture_closure, A._Future__asyncCompleteError_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._rootHandleError_closure, A._RootZone_bindCallbackGuarded_closure, A.Utf8Decoder__decoder_closure, A.Utf8Decoder__decoderNonfatal_closure, A.GifEncoder__encodeLZW__nextPixel]); + _inherit(A._SyncStarIterable, A.IterableBase); + _inherit(A._AsyncCompleter, A._Completer); + _inherit(A._RootZone, A._Zone); + _inherit(A._IdentityHashMap, A._HashMap); + _inherit(A._LinkedCustomHashMap, A.JsLinkedHashMap); + _inherit(A.Converter, A.StreamTransformerBase); + _inheritMany(A.Converter, [A._UnicodeSubsetEncoder, A._UnicodeSubsetDecoder, A.JsonEncoder, A.JsonDecoder, A.Utf8Decoder]); + _inheritMany(A.Codec, [A.Encoding, A.JsonCodec]); + _inherit(A.JsonCyclicError, A.JsonUnsupportedObjectError); + _inherit(A._JsonStringStringifier, A._JsonStringifier); + _inherit(A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin, A._JsonStringStringifier); + _inherit(A._JsonStringStringifierPretty, A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin); + _inherit(A.Latin1Codec, A.Encoding); + _inherit(A.Latin1Encoder, A._UnicodeSubsetEncoder); + _inherit(A.Latin1Decoder, A._UnicodeSubsetDecoder); + _inheritMany(A.ArgumentError, [A.RangeError, A.IndexError]); + _inheritMany(A.EventTarget, [A.Node, A.FileWriter, A.SourceBuffer, A._SourceBufferList_EventTarget_ListMixin, A.TextTrack, A.TextTrackCue, A._TextTrackList_EventTarget_ListMixin, A.VideoTrackList, A.Window, A.WorkerGlobalScope, A.Request, A.AudioTrackList, A.BaseAudioContext]); + _inheritMany(A.Node, [A.Element, A.CharacterData]); + _inherit(A.HtmlElement, A.Element); + _inheritMany(A.HtmlElement, [A.AnchorElement, A.AreaElement, A.FormElement, A.SelectElement]); + _inherit(A.CssPerspective, A.CssTransformComponent); + _inherit(A.CssStyleDeclaration, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase); + _inheritMany(A.CssStyleValue, [A.CssTransformValue, A.CssUnparsedValue]); + _inherit(A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin, A._DomRectList_JavaScriptObject_ListMixin); + _inherit(A.DomRectList, A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin, A._DomStringList_JavaScriptObject_ListMixin); + _inherit(A.DomStringList, A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.File, A.Blob); + _inherit(A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin, A._FileList_JavaScriptObject_ListMixin); + _inherit(A.FileList, A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin, A._HtmlCollection_JavaScriptObject_ListMixin); + _inherit(A.HtmlCollection, A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin); + _inheritMany(A.Event, [A.MessageEvent, A.VersionChangeEvent]); + _inherit(A.MidiInputMap, A._MidiInputMap_JavaScriptObject_MapMixin); + _inherit(A.MidiOutputMap, A._MidiOutputMap_JavaScriptObject_MapMixin); + _inherit(A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin, A._MimeTypeArray_JavaScriptObject_ListMixin); + _inherit(A.MimeTypeArray, A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin, A._NodeList_JavaScriptObject_ListMixin); + _inherit(A.NodeList, A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin, A._PluginArray_JavaScriptObject_ListMixin); + _inherit(A.PluginArray, A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.RtcStatsReport, A._RtcStatsReport_JavaScriptObject_MapMixin); + _inherit(A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin, A._SourceBufferList_EventTarget_ListMixin); + _inherit(A.SourceBufferList, A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin); + _inherit(A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin, A._SpeechGrammarList_JavaScriptObject_ListMixin); + _inherit(A.SpeechGrammarList, A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.Storage, A._Storage_JavaScriptObject_MapMixin); + _inherit(A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin, A._TextTrackCueList_JavaScriptObject_ListMixin); + _inherit(A.TextTrackCueList, A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin, A._TextTrackList_EventTarget_ListMixin); + _inherit(A.TextTrackList, A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin); + _inherit(A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin, A._TouchList_JavaScriptObject_ListMixin); + _inherit(A.TouchList, A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__CssRuleList_JavaScriptObject_ListMixin); + _inherit(A._CssRuleList, A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._DomRect, A.DomRectReadOnly); + _inherit(A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__GamepadList_JavaScriptObject_ListMixin); + _inherit(A._GamepadList, A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin); + _inherit(A._NamedNodeMap, A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin); + _inherit(A._SpeechRecognitionResultList, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin); + _inherit(A._StyleSheetList, A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._AcceptStructuredCloneDart2Js, A._AcceptStructuredClone); + _inheritMany(A.JsObject, [A.JsFunction, A._JsArray_JsObject_ListMixin]); + _inherit(A.JsArray, A._JsArray_JsObject_ListMixin); + _inherit(A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin, A._LengthList_JavaScriptObject_ListMixin); + _inherit(A.LengthList, A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin, A._NumberList_JavaScriptObject_ListMixin); + _inherit(A.NumberList, A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin, A._StringList_JavaScriptObject_ListMixin); + _inherit(A.StringList, A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin, A._TransformList_JavaScriptObject_ListMixin); + _inherit(A.TransformList, A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin); + _inherit(A.AudioParamMap, A._AudioParamMap_JavaScriptObject_MapMixin); + _inherit(A.OfflineAudioContext, A.BaseAudioContext); + _inherit(A.ArchiveException, A.FormatException); + _inherit(A.InputStream, A.InputStreamBase); + _inherit(A.OutputStream, A.OutputStreamBase); + _inherit(A._ZLibDecoder, A.ZLibDecoderBase); + _inheritMany(A._Enum, [A.BitmapCompression, A.ICCPCompression, A.Format, A.Channels, A.BlendMode, A.DisposeMode, A.DitherKernel, A.Interpolation, A.WebWorkerOperations, A.Level]); + _inheritMany(A.DecodeInfo, [A.BmpInfo, A.ExrImage, A.GifInfo, A.IcoInfo, A.PngInfo, A.PsdImage, A.TgaInfo, A.TiffInfo, A.WebPInfo]); + _inheritMany(A.Decoder, [A.BmpDecoder, A.ExrDecoder, A.GifDecoder, A.IcoDecoder, A.JpegDecoder, A.PngDecoder, A.PsdDecoder, A.TgaDecoder, A.TiffDecoder, A.WebPDecoder]); + _inherit(A.DibDecoder, A.BmpDecoder); + _inheritMany(A.Encoder, [A.BmpEncoder, A.WinEncoder, A.GifEncoder, A.JpegEncoder, A.PngEncoder, A.TgaEncoder]); + _inheritMany(A.WinEncoder, [A.CurEncoder, A.IcoEncoder]); + _inherit(A.InternalExrCompressor, A.ExrCompressor); + _inheritMany(A.InternalExrCompressor, [A.InternalExrB44Compressor, A.InternalExrPizCompressor, A.InternalExrPxr24Compressor, A.InternalExrRleCompressor, A.InternalExrZipCompressor]); + _inherit(A.InternalExrPart, A.ExrPart); + _inherit(A.InternalGifImageDesc, A.GifImageDesc); + _inherit(A.IcoBmpInfo, A.BmpInfo); + _inherit(A.InternalPngFrame, A.PngFrame); + _inherit(A.InternalPngInfo, A.PngInfo); + _inheritMany(A.PsdEffect, [A.PsdBevelEffect, A.PsdDropShadowEffect, A.PsdInnerGlowEffect, A.PsdInnerShadowEffect, A.PsdOuterGlowEffect, A.PsdSolidFillEffect]); + _inheritMany(A.PsdLayerData, [A.PsdLayerAdditionalData, A.PsdLayerSectionDivider]); + _inherit(A.InternalVP8L, A.VP8L); + _inherit(A.InternalWebPFrame, A.WebPFrame); + _inherit(A.InternalWebPInfo, A.WebPInfo); + _inherit(A.NeuralQuantizer, A.Quantizer); + _mixin(A.UnmodifiableListBase, A.UnmodifiableListMixin); + _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A.ListMixin); + _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin); + _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin, A.ListMixin); + _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin); + _mixin(A._ListBase_Object_ListMixin, A.ListMixin); + _mixin(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A._UnmodifiableMapMixin); + _mixin(A.__JsonStringStringifierPretty__JsonStringStringifier__JsonPrettyPrintMixin, A._JsonPrettyPrintMixin); + _mixin(A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleDeclarationBase); + _mixin(A._DomRectList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._DomRectList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._DomStringList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._DomStringList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._FileList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._FileList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._HtmlCollection_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._MidiInputMap_JavaScriptObject_MapMixin, A.MapMixin); + _mixin(A._MidiOutputMap_JavaScriptObject_MapMixin, A.MapMixin); + _mixin(A._MimeTypeArray_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._NodeList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._NodeList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._PluginArray_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._PluginArray_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._RtcStatsReport_JavaScriptObject_MapMixin, A.MapMixin); + _mixin(A._SourceBufferList_EventTarget_ListMixin, A.ListMixin); + _mixin(A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._SpeechGrammarList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._SpeechGrammarList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._Storage_JavaScriptObject_MapMixin, A.MapMixin); + _mixin(A._TextTrackCueList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._TextTrackCueList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._TextTrackList_EventTarget_ListMixin, A.ListMixin); + _mixin(A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._TouchList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._TouchList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A.__CssRuleList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A.__CssRuleList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A.__GamepadList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A.__GamepadList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A.__NamedNodeMap_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A.__NamedNodeMap_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A.__StyleSheetList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixinHard(A._JsArray_JsObject_ListMixin, A.ListMixin); + _mixin(A._LengthList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._LengthList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._NumberList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._NumberList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._StringList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._StringList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._TransformList_JavaScriptObject_ListMixin, A.ListMixin); + _mixin(A._TransformList_JavaScriptObject_ListMixin_ImmutableListMixin, A.ImmutableListMixin); + _mixin(A._AudioParamMap_JavaScriptObject_MapMixin, A.MapMixin); + })(); + var init = { + typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []}, + mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List"}, + mangledNames: {}, + types: ["~(InputBuffer)", "int(Uint32List,int,int)", "~()", "~(String,@)", "@(@)", "~(@)", "~(Object?,Object?)", "~(int)", "~(JpegComponent,List<@>)", "~(int,int,int,int,int,Uint8List)", "~(~())", "int(Object?)", "~(JpegComponent,List)", "Null(@)", "@()", "Null()", "num(num,num)", "MapEntry(String,@)", "int(int)", "bool(Object?)", "@(@,@)", "JsFunction(@)", "JsArray<@>(@)", "JsObject(@)", "Object?(Object?)", "Null(Object,StackTrace)", "Null(~())", "~(Symbol0,@)", "int()", "IcoInfoImage(int)", "JpegComponent(int)", "~(@,@)", "bool(@)", "int(int,int)", "_Future<@>(@)", "int(int,int,int,int)", "@(@,String)", "_DbInboundGroupSessionBundle(@)", "Map(_DbInboundGroupSessionBundle)", "0^(0^,0^)", "MapEntry>(String,@)", "MapEntry(@,@)", "Future(MessageEvent)", "MapEntry>(String,KeyBackupData)", "MapEntry>(String,RoomKeyBackup)", "num(num,num,num,num,num)", "@(String)", "bool(Object?,Object?)", "Object?(@)", "double(ColorTriplet)", "Null(@,StackTrace)", "~(int,@)", "~(Object?,StackTrace,double)", "~(String,String)", "Uint32List(int)"], + interceptorsByTag: null, + leafTags: null, + arrayRti: Symbol("$ti") + }; + A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","Pbkdf2Params":"LegacyJavaScriptObject","AesCtrParams":"LegacyJavaScriptObject","EncryptResult":"LegacyJavaScriptObject","DecryptResult":"LegacyJavaScriptObject","Account":"LegacyJavaScriptObject","Session":"LegacyJavaScriptObject","Utility":"LegacyJavaScriptObject","InboundGroupSession":"LegacyJavaScriptObject","OutboundGroupSession":"LegacyJavaScriptObject","SAS":"LegacyJavaScriptObject","PkEncryptResult":"LegacyJavaScriptObject","PkEncryption":"LegacyJavaScriptObject","PkDecryption":"LegacyJavaScriptObject","PkSigning":"LegacyJavaScriptObject","AbortPaymentEvent":"Event","ExtendableEvent":"Event","AudioContext":"BaseAudioContext","AbsoluteOrientationSensor":"EventTarget","OrientationSensor":"EventTarget","Sensor":"EventTarget","AElement":"Element","GraphicsElement":"Element","SvgElement":"Element","OpenDBRequest":"Request","AudioElement":"HtmlElement","MediaElement":"HtmlElement","HtmlDocument":"Node","Document":"Node","VttCue":"TextTrackCue","DedicatedWorkerGlobalScope":"WorkerGlobalScope","CDataSection":"CharacterData","Text":"CharacterData","HtmlFormControlsCollection":"HtmlCollection","CssCharsetRule":"CssRule","CssStyleSheet":"StyleSheet","NativeByteData":"NativeTypedData","JSBool":{"bool":[]},"JSNull":{"Null":[]},"LegacyJavaScriptObject":{"InboundGroupSession":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[]},"JSInt":{"double":[],"int":[],"num":[]},"JSNumNotInt":{"double":[],"num":[]},"JSString":{"String":[]},"LateError":{"Error":[]},"CodeUnits":{"ListMixin":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListMixin.E":"int","UnmodifiableListMixin.E":"int"},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1","ListIterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2","ListIterable.E":"2"},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"],"_UnmodifiableMapMixin.K":"1","_UnmodifiableMapMixin.V":"2"},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_ConstantMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"GeneralConstantMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"NativeTypedData":{"TypedData":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"TypedData":[]},"NativeTypedArrayOfDouble":{"NativeTypedArray":["double"],"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"NativeTypedArray":["int"],"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"NativeTypedArrayOfDouble":[],"NativeTypedArray":["double"],"ListMixin":["double"],"Float32List":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeFloat64List":{"NativeTypedArrayOfDouble":[],"NativeTypedArray":["double"],"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Int16List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Int32List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Int8List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Uint16List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Uint32List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"NativeTypedArray":["int"],"ListMixin":["int"],"Uint8List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"_Future":{"Future":["1"]},"_SyncStarIterator":{"Iterator":["1"]},"_SyncStarIterable":{"Iterable":["1"],"Iterable.E":"1"},"AsyncError":{"Error":[]},"_AsyncCompleter":{"_Completer":["1"]},"_Zone":{"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_HashMap":{"MapMixin":["1","2"],"Map":["1","2"]},"_IdentityHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"IterableBase":{"Iterable":["1"]},"ListBase":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"],"Map":["1","2"]},"MapMixin":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"_JsonMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"Iterable.E":"String","ListIterable.E":"String"},"_UnicodeSubsetEncoder":{"Converter":["String","List"]},"_UnicodeSubsetDecoder":{"Converter":["List","String"]},"Encoding":{"Codec":["String","List"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"]},"JsonEncoder":{"Converter":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"]},"Latin1Codec":{"Codec":["String","List"]},"Latin1Encoder":{"Converter":["String","List"]},"Latin1Decoder":{"Converter":["List","String"]},"Utf8Decoder":{"Converter":["List","String"]},"double":{"num":[]},"int":{"num":[]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"NullThrownError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"CyclicInitializationError":{"Error":[]},"_GeneratorIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1","ListIterable.E":"1"},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"File":{"Blob":[]},"MessageEvent":{"Event":[]},"Node":{"EventTarget":[]},"SourceBuffer":{"EventTarget":[]},"TextTrack":{"EventTarget":[]},"TextTrackCue":{"EventTarget":[]},"HtmlElement":{"Node":[],"EventTarget":[]},"AnchorElement":{"Node":[],"EventTarget":[]},"AreaElement":{"Node":[],"EventTarget":[]},"CharacterData":{"Node":[],"EventTarget":[]},"DomRectList":{"ListMixin":["Rectangle"],"ImmutableListMixin":["Rectangle"],"List":["Rectangle"],"JavaScriptIndexingBehavior":["Rectangle"],"EfficientLengthIterable":["Rectangle"],"Iterable":["Rectangle"],"ImmutableListMixin.E":"Rectangle","ListMixin.E":"Rectangle"},"DomRectReadOnly":{"Rectangle":["num"]},"DomStringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"Element":{"Node":[],"EventTarget":[]},"FileList":{"ListMixin":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"Iterable":["File"],"ImmutableListMixin.E":"File","ListMixin.E":"File"},"FileWriter":{"EventTarget":[]},"FormElement":{"Node":[],"EventTarget":[]},"HtmlCollection":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"MidiInputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MidiOutputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MimeTypeArray":{"ListMixin":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListMixin.E":"MimeType"},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"PluginArray":{"ListMixin":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListMixin.E":"Plugin"},"RtcStatsReport":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"SelectElement":{"Node":[],"EventTarget":[]},"SourceBufferList":{"ListMixin":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"EventTarget":[],"List":["SourceBuffer"],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListMixin.E":"SourceBuffer"},"SpeechGrammarList":{"ListMixin":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListMixin.E":"SpeechGrammar"},"Storage":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"TextTrackCueList":{"ListMixin":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListMixin.E":"TextTrackCue"},"TextTrackList":{"ListMixin":["TextTrack"],"ImmutableListMixin":["TextTrack"],"EventTarget":[],"List":["TextTrack"],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListMixin.E":"TextTrack"},"TouchList":{"ListMixin":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListMixin.E":"Touch"},"VideoTrackList":{"EventTarget":[]},"Window":{"WindowBase":[],"EventTarget":[]},"WorkerGlobalScope":{"EventTarget":[]},"_CssRuleList":{"ListMixin":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListMixin.E":"CssRule"},"_DomRect":{"Rectangle":["num"]},"_GamepadList":{"ListMixin":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListMixin.E":"Gamepad?"},"_NamedNodeMap":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"_SpeechRecognitionResultList":{"ListMixin":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListMixin.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListMixin":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListMixin.E":"StyleSheet"},"FixedSizeListIterator":{"Iterator":["1"]},"_DOMWindowCrossFrame":{"WindowBase":[],"EventTarget":[]},"Request":{"EventTarget":[]},"VersionChangeEvent":{"Event":[]},"JsArray":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1"},"LengthList":{"ListMixin":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListMixin.E":"Length"},"NumberList":{"ListMixin":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListMixin.E":"Number"},"StringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"TransformList":{"ListMixin":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListMixin.E":"Transform"},"AudioParamMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"AudioTrackList":{"EventTarget":[]},"BaseAudioContext":{"EventTarget":[]},"OfflineAudioContext":{"EventTarget":[]},"InputStream":{"InputStreamBase":[]},"InternalExrB44Compressor":{"ExrCompressor":[]},"InternalExrCompressor":{"ExrCompressor":[]},"InternalExrPart":{"ExrPart":[]},"InternalExrPizCompressor":{"ExrCompressor":[]},"InternalExrPxr24Compressor":{"ExrCompressor":[]},"InternalExrRleCompressor":{"ExrCompressor":[]},"InternalExrZipCompressor":{"ExrCompressor":[]},"InternalGifImageDesc":{"GifImageDesc":[]},"IcoBmpInfo":{"BmpInfo":[]},"InternalPngFrame":{"PngFrame":[]},"PsdBevelEffect":{"PsdEffect":[]},"PsdDropShadowEffect":{"PsdEffect":[]},"PsdInnerGlowEffect":{"PsdEffect":[]},"PsdInnerShadowEffect":{"PsdEffect":[]},"PsdOuterGlowEffect":{"PsdEffect":[]},"PsdSolidFillEffect":{"PsdEffect":[]},"PsdLayerAdditionalData":{"PsdLayerData":[]},"PsdLayerSectionDivider":{"PsdLayerData":[]},"InternalWebPFrame":{"WebPFrame":[]},"InternalWebPInfo":{"WebPInfo":[]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]}}')); + A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"EfficientLengthIterable":1,"UnmodifiableListBase":1,"NativeTypedArray":1,"StreamTransformerBase":2,"IterableBase":1,"ListBase":1,"MapBase":2,"_ListBase_Object_ListMixin":1,"_JsArray_JsObject_ListMixin":1}')); + var string$ = { + EOF_re: "EOF reached without finding string terminator", + Error_: "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type", + _nativ: "[native implementations worker] Error responding: " + }; + var type$ = (function rtii() { + var findType = A.findType; + return { + AsyncError: findType("AsyncError"), + BitmapCompression: findType("BitmapCompression"), + Blob: findType("Blob"), + ColorTriplet: findType("ColorTriplet"), + ConstantMapView_Symbol_dynamic: findType("ConstantMapView"), + CssRule: findType("CssRule"), + EfficientLengthIterable_dynamic: findType("EfficientLengthIterable<@>"), + Error: findType("Error"), + Event: findType("Event"), + ExrAttribute: findType("ExrAttribute"), + ExrHufDec: findType("ExrHufDec"), + File: findType("File"), + Function: findType("Function"), + Future_Null_Function_MessageEvent: findType("Future(MessageEvent)"), + Future_dynamic: findType("Future<@>"), + HTreeGroup: findType("HTreeGroup"), + HdrSlice: findType("HdrSlice"), + HuffmanTree: findType("HuffmanTree"), + IcoInfoImage: findType("IcoInfoImage"), + ImageData: findType("ImageData"), + Int32List: findType("Int32List"), + Invocation: findType("Invocation"), + Iterable_double: findType("Iterable"), + Iterable_dynamic: findType("Iterable<@>"), + Iterable_int: findType("Iterable"), + JSArray_ComponentData: findType("JSArray"), + JSArray_ExrChannel: findType("JSArray"), + JSArray_GifImageDesc: findType("JSArray"), + JSArray_HTreeGroup: findType("JSArray"), + JSArray_Image: findType("JSArray"), + JSArray_InternalExrPart: findType("JSArray"), + JSArray_List_List_List_int: findType("JSArray>>>"), + JSArray_List_List_int: findType("JSArray>>"), + JSArray_List_int: findType("JSArray>"), + JSArray_List_num: findType("JSArray>"), + JSArray_PngFrame: findType("JSArray"), + JSArray_PsdChannel: findType("JSArray"), + JSArray_PsdEffect: findType("JSArray"), + JSArray_PsdLayer: findType("JSArray"), + JSArray_String: findType("JSArray"), + JSArray_TiffImage: findType("JSArray"), + JSArray_Uint8List: findType("JSArray"), + JSArray_VP8FInfo: findType("JSArray"), + JSArray_VP8LTransform: findType("JSArray"), + JSArray_WebPFrame: findType("JSArray"), + JSArray__JpegHuffman: findType("JSArray<_JpegHuffman>"), + JSArray_dynamic: findType("JSArray<@>"), + JSArray_int: findType("JSArray"), + JSArray_nullable_JpegFrame: findType("JSArray"), + JSArray_nullable_List_dynamic: findType("JSArray?>"), + JSArray_nullable_List_int: findType("JSArray?>"), + JSArray_nullable_Uint32List: findType("JSArray"), + JSArray_num: findType("JSArray"), + JSArray_of_void_Function_InputBuffer: findType("JSArray<~(InputBuffer)>"), + JSNull: findType("JSNull"), + JavaScriptFunction: findType("JavaScriptFunction"), + JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"), + JpegComponent: findType("JpegComponent"), + JsArray_dynamic: findType("JsArray<@>"), + JsLinkedHashMap_Symbol_dynamic: findType("JsLinkedHashMap"), + KeyBackupData: findType("KeyBackupData"), + KeyRange: findType("KeyRange"), + Length: findType("Length"), + LinkedHashMap_dynamic_dynamic: findType("LinkedHashMap<@,@>"), + List_ColorTriplet: findType("List"), + List_HTreeGroup: findType("List"), + List_Image: findType("List"), + List_Int32List: findType("List"), + List_List_List_int: findType("List>>"), + List_List_VP8FInfo: findType("List>"), + List_PsdChannel: findType("List"), + List_PsdLayer: findType("List"), + List_VP8BandProbas: findType("List"), + List_VP8FInfo: findType("List"), + List_VP8MB: findType("List"), + List_VP8MBData: findType("List"), + List_VP8TopSamples: findType("List"), + List_double: findType("List"), + List_dynamic: findType("List<@>"), + List_int: findType("List"), + List_nullable_List_int: findType("List?>"), + List_nullable_VP8FInfo: findType("List"), + List_nullable__PizChannelData: findType("List<_PizChannelData?>"), + List_nullable_int: findType("List"), + MapEntry_String_String: findType("MapEntry"), + MapEntry_of_String_and_Map_String_dynamic: findType("MapEntry>"), + MapEntry_of_String_and_Map_String_int: findType("MapEntry>"), + Map_String_String: findType("Map"), + Map_String_dynamic: findType("Map"), + Map_String_int: findType("Map"), + Map_dynamic_dynamic: findType("Map<@,@>"), + MessageEvent: findType("MessageEvent"), + MimeType: findType("MimeType"), + NativeTypedArrayOfDouble: findType("NativeTypedArrayOfDouble"), + NativeTypedArrayOfInt: findType("NativeTypedArrayOfInt"), + NativeUint8List: findType("NativeUint8List"), + Node: findType("Node"), + Null: findType("Null"), + Number: findType("Number"), + Object: findType("Object"), + Plugin: findType("Plugin"), + PsdChannel: findType("PsdChannel"), + PsdImageResource: findType("PsdImageResource"), + PsdLayerAdditionalData: findType("PsdLayerAdditionalData"), + PsdLayerData: findType("PsdLayerData"), + Rectangle_num: findType("Rectangle"), + Request: findType("Request"), + RoomKeyBackup: findType("RoomKeyBackup"), + SourceBuffer: findType("SourceBuffer"), + SpeechGrammar: findType("SpeechGrammar"), + SpeechRecognitionResult: findType("SpeechRecognitionResult"), + StackTrace: findType("StackTrace"), + String: findType("String"), + StyleSheet: findType("StyleSheet"), + Symbol: findType("Symbol0"), + TextTrack: findType("TextTrack"), + TextTrackCue: findType("TextTrackCue"), + TiffEntry: findType("TiffEntry"), + Touch: findType("Touch"), + Transform: findType("Transform"), + Type: findType("Type"), + TypeError: findType("TypeError"), + TypedData: findType("TypedData"), + Uint32List: findType("Uint32List"), + Uint8List: findType("Uint8List"), + UnknownJavaScriptObject: findType("UnknownJavaScriptObject"), + VP8BandProbas: findType("VP8BandProbas"), + VP8MB: findType("VP8MB"), + VP8MBData: findType("VP8MBData"), + VP8TopSamples: findType("VP8TopSamples"), + WhereTypeIterable_int: findType("WhereTypeIterable"), + Window: findType("Window"), + WindowBase: findType("WindowBase"), + WorkerGlobalScope: findType("WorkerGlobalScope"), + _DbInboundGroupSessionBundle: findType("_DbInboundGroupSessionBundle"), + _Future_dynamic: findType("_Future<@>"), + _IdentityHashMap_dynamic_dynamic: findType("_IdentityHashMap<@,@>"), + _PizChannelData: findType("_PizChannelData"), + _StaticTree: findType("_StaticTree"), + bool: findType("bool"), + bool_Function_Object: findType("bool(Object)"), + double: findType("double"), + dynamic: findType("@"), + dynamic_Function: findType("@()"), + dynamic_Function_Object: findType("@(Object)"), + dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"), + dynamic_Function_dynamic_dynamic: findType("@(@,@)"), + int: findType("int"), + legacy_Never: findType("0&*"), + legacy_Object: findType("Object*"), + nullable_EventTarget: findType("EventTarget?"), + nullable_Future_Null: findType("Future?"), + nullable_Gamepad: findType("Gamepad?"), + nullable_Int16List: findType("Int16List?"), + nullable_List_Uint8List: findType("List?"), + nullable_List_dynamic: findType("List<@>?"), + nullable_List_int: findType("List?"), + nullable_List_nullable_List_int: findType("List?>?"), + nullable_List_nullable_Uint32List: findType("List?"), + nullable_List_nullable_int: findType("List?"), + nullable_Map_String_String: findType("Map?"), + nullable_Object: findType("Object?"), + nullable_StackTrace: findType("StackTrace?"), + nullable_String: findType("String?"), + nullable_Uint8List: findType("Uint8List?"), + nullable_VP8BitReader: findType("VP8BitReader?"), + nullable_VP8FInfo: findType("VP8FInfo?"), + nullable_VP8QuantMatrix: findType("VP8QuantMatrix?"), + nullable__FutureListener_dynamic_dynamic: findType("_FutureListener<@,@>?"), + nullable_int: findType("int?"), + nullable_void_Function_int: findType("~(int)?"), + num: findType("num"), + void: findType("~"), + void_Function: findType("~()"), + void_Function_2_JpegComponent_and_List_int: findType("~(JpegComponent,List)"), + void_Function_3_nullable_Object_and_StackTrace_and_double: findType("~(Object?,StackTrace,double)"), + void_Function_String_String: findType("~(String,String)"), + void_Function_String_dynamic: findType("~(String,@)"), + void_Function_int: findType("~(int)") + }; + })(); + (function constants() { + var makeConstList = hunkHelpers.makeConstList; + B.Interceptor_methods = J.Interceptor.prototype; + B.JSArray_methods = J.JSArray.prototype; + B.JSInt_methods = J.JSInt.prototype; + B.JSNumber_methods = J.JSNumber.prototype; + B.JSString_methods = J.JSString.prototype; + B.JavaScriptFunction_methods = J.JavaScriptFunction.prototype; + B.JavaScriptObject_methods = J.JavaScriptObject.prototype; + B.NativeUint32List_methods = A.NativeUint32List.prototype; + B.NativeUint8List_methods = A.NativeUint8List.prototype; + B.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; + B.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; + B.BitmapCompression_0 = new A.BitmapCompression(0, "BI_BITFIELDS"); + B.BitmapCompression_1 = new A.BitmapCompression(1, "NONE"); + B.BlendMode_1 = new A.BlendMode(1, "over"); + B.CONSTANT = new A.Instantiation1(A.math__max$closure(), A.findType("Instantiation1")); + B.C_EmptyIterator = new A.EmptyIterator(A.findType("EmptyIterator<0&>")); + B.C_JS_CONST = function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +}; + B.C_JS_CONST0 = function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof navigator == "object"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +}; + B.C_JS_CONST6 = function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var ua = navigator.userAgent; + if (ua.indexOf("DumpRenderTree") >= 0) return hooks; + if (ua.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +}; + B.C_JS_CONST1 = function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +}; + B.C_JS_CONST2 = function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +}; + B.C_JS_CONST5 = function(hooks) { + var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +}; + B.C_JS_CONST4 = function(hooks) { + var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +}; + B.C_JS_CONST3 = function(hooks) { return hooks; } +; + B.C_JsonCodec = new A.JsonCodec(); + B.C_Latin1Codec = new A.Latin1Codec(); + B.C_Latin1Encoder = new A.Latin1Encoder(); + B.C_OutOfMemoryError = new A.OutOfMemoryError(); + B.C_SentinelValue = new A.SentinelValue(); + B.C_ZLibDecoder = new A.ZLibDecoder(); + B.C_ZLibEncoder = new A.ZLibEncoder(); + B.C__Required = new A._Required(); + B.C__RootZone = new A._RootZone(); + B.C__StringStackTrace = new A._StringStackTrace(); + B.C__ZLibDecoder = new A._ZLibDecoder(); + B.Channels_0 = new A.Channels(0, "rgb"); + B.Channels_1 = new A.Channels(1, "rgba"); + B.DisposeMode_1 = new A.DisposeMode(1, "clear"); + B.DitherKernel_0 = new A.DitherKernel(0, "None"); + B.DitherKernel_2 = new A.DitherKernel(2, "FloydSteinberg"); + B.Format_2 = new A.Format(2, "rgba"); + B.ICCPCompression_1 = new A.ICCPCompression(1, "deflate"); + B.Interpolation_0 = new A.Interpolation(0, "nearest"); + B.Interpolation_1 = new A.Interpolation(1, "linear"); + B.Interpolation_2 = new A.Interpolation(2, "cubic"); + B.JsonDecoder_null = new A.JsonDecoder(null); + B.JsonEncoder_null_null = new A.JsonEncoder(null, null); + B.Latin1Decoder_false = new A.Latin1Decoder(false); + B.Level_1 = new A.Level(1, "error"); + B.Level_3 = new A.Level(3, "info"); + B.List_0W6 = A._setArrayType(makeConstList([A.vp8_filter_VP8Filter_DC8uv$closure(), A.vp8_filter_VP8Filter_TM8uv$closure(), A.vp8_filter_VP8Filter_VE8uv$closure(), A.vp8_filter_VP8Filter_HE8uv$closure(), A.vp8_filter_VP8Filter_DC8uvNoTop$closure(), A.vp8_filter_VP8Filter_DC8uvNoLeft$closure(), A.vp8_filter_VP8Filter_DC8uvNoTopLeft$closure()]), type$.JSArray_of_void_Function_InputBuffer); + B.List_0_2_8 = A._setArrayType(makeConstList([0, 2, 8]), type$.JSArray_int); + B.List_0_4_2_1 = A._setArrayType(makeConstList([0, 4, 2, 1]), type$.JSArray_int); + B.List_292_260_226_226 = A._setArrayType(makeConstList([292, 260, 226, 226]), type$.JSArray_int); + B.List_2Bc = A._setArrayType(makeConstList([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8]), type$.JSArray_int); + B.List_2Vk = A._setArrayType(makeConstList([137, 80, 78, 71, 13, 10, 26, 10]), type$.JSArray_int); + B.List_2_3_7 = A._setArrayType(makeConstList([2, 3, 7]), type$.JSArray_int); + B.List_3_3_11 = A._setArrayType(makeConstList([3, 3, 11]), type$.JSArray_int); + B.List_511_1023_2047_4095 = A._setArrayType(makeConstList([511, 1023, 2047, 4095]), type$.JSArray_int); + B.List_U2p = A._setArrayType(makeConstList([231, 120, 48, 89, 115, 113, 120, 152, 112]), type$.JSArray_int); + B.List_yXZ = A._setArrayType(makeConstList([152, 179, 64, 126, 170, 118, 46, 70, 95]), type$.JSArray_int); + B.List_yXZ0 = A._setArrayType(makeConstList([175, 69, 143, 80, 85, 82, 72, 155, 103]), type$.JSArray_int); + B.List_yXZ1 = A._setArrayType(makeConstList([56, 58, 10, 171, 218, 189, 17, 13, 152]), type$.JSArray_int); + B.List_yXZ2 = A._setArrayType(makeConstList([114, 26, 17, 163, 44, 195, 21, 10, 173]), type$.JSArray_int); + B.List_yXZ3 = A._setArrayType(makeConstList([121, 24, 80, 195, 26, 62, 44, 64, 85]), type$.JSArray_int); + B.List_yXZ4 = A._setArrayType(makeConstList([144, 71, 10, 38, 171, 213, 144, 34, 26]), type$.JSArray_int); + B.List_yXZ5 = A._setArrayType(makeConstList([170, 46, 55, 19, 136, 160, 33, 206, 71]), type$.JSArray_int); + B.List_yXZ6 = A._setArrayType(makeConstList([63, 20, 8, 114, 114, 208, 12, 9, 226]), type$.JSArray_int); + B.List_yXZ7 = A._setArrayType(makeConstList([81, 40, 11, 96, 182, 84, 29, 16, 36]), type$.JSArray_int); + B.List_sty0 = A._setArrayType(makeConstList([B.List_U2p, B.List_yXZ, B.List_yXZ0, B.List_yXZ1, B.List_yXZ2, B.List_yXZ3, B.List_yXZ4, B.List_yXZ5, B.List_yXZ6, B.List_yXZ7]), type$.JSArray_List_int); + B.List_yXZ8 = A._setArrayType(makeConstList([134, 183, 89, 137, 98, 101, 106, 165, 148]), type$.JSArray_int); + B.List_yXZ9 = A._setArrayType(makeConstList([72, 187, 100, 130, 157, 111, 32, 75, 80]), type$.JSArray_int); + B.List_yXZ10 = A._setArrayType(makeConstList([66, 102, 167, 99, 74, 62, 40, 234, 128]), type$.JSArray_int); + B.List_kfn = A._setArrayType(makeConstList([41, 53, 9, 178, 241, 141, 26, 8, 107]), type$.JSArray_int); + B.List_yXZ11 = A._setArrayType(makeConstList([74, 43, 26, 146, 73, 166, 49, 23, 157]), type$.JSArray_int); + B.List_yXZ12 = A._setArrayType(makeConstList([65, 38, 105, 160, 51, 52, 31, 115, 128]), type$.JSArray_int); + B.List_eDA = A._setArrayType(makeConstList([104, 79, 12, 27, 217, 255, 87, 17, 7]), type$.JSArray_int); + B.List_yXZ13 = A._setArrayType(makeConstList([87, 68, 71, 44, 114, 51, 15, 186, 23]), type$.JSArray_int); + B.List_yXZ14 = A._setArrayType(makeConstList([47, 41, 14, 110, 182, 183, 21, 17, 194]), type$.JSArray_int); + B.List_yXZ15 = A._setArrayType(makeConstList([66, 45, 25, 102, 197, 189, 23, 18, 22]), type$.JSArray_int); + B.List_L3W = A._setArrayType(makeConstList([B.List_yXZ8, B.List_yXZ9, B.List_yXZ10, B.List_kfn, B.List_yXZ11, B.List_yXZ12, B.List_eDA, B.List_yXZ13, B.List_yXZ14, B.List_yXZ15]), type$.JSArray_List_int); + B.List_yXZ16 = A._setArrayType(makeConstList([88, 88, 147, 150, 42, 46, 45, 196, 205]), type$.JSArray_int); + B.List_yXZ17 = A._setArrayType(makeConstList([43, 97, 183, 117, 85, 38, 35, 179, 61]), type$.JSArray_int); + B.List_yXZ18 = A._setArrayType(makeConstList([39, 53, 200, 87, 26, 21, 43, 232, 171]), type$.JSArray_int); + B.List_yXZ19 = A._setArrayType(makeConstList([56, 34, 51, 104, 114, 102, 29, 93, 77]), type$.JSArray_int); + B.List_yXZ20 = A._setArrayType(makeConstList([39, 28, 85, 171, 58, 165, 90, 98, 64]), type$.JSArray_int); + B.List_yXZ21 = A._setArrayType(makeConstList([34, 22, 116, 206, 23, 34, 43, 166, 73]), type$.JSArray_int); + B.List_yXZ22 = A._setArrayType(makeConstList([107, 54, 32, 26, 51, 1, 81, 43, 31]), type$.JSArray_int); + B.List_yXZ23 = A._setArrayType(makeConstList([68, 25, 106, 22, 64, 171, 36, 225, 114]), type$.JSArray_int); + B.List_yXZ24 = A._setArrayType(makeConstList([34, 19, 21, 102, 132, 188, 16, 76, 124]), type$.JSArray_int); + B.List_yXZ25 = A._setArrayType(makeConstList([62, 18, 78, 95, 85, 57, 50, 48, 51]), type$.JSArray_int); + B.List_ECY = A._setArrayType(makeConstList([B.List_yXZ16, B.List_yXZ17, B.List_yXZ18, B.List_yXZ19, B.List_yXZ20, B.List_yXZ21, B.List_yXZ22, B.List_yXZ23, B.List_yXZ24, B.List_yXZ25]), type$.JSArray_List_int); + B.List_yXZ26 = A._setArrayType(makeConstList([193, 101, 35, 159, 215, 111, 89, 46, 111]), type$.JSArray_int); + B.List_yXZ27 = A._setArrayType(makeConstList([60, 148, 31, 172, 219, 228, 21, 18, 111]), type$.JSArray_int); + B.List_eDA0 = A._setArrayType(makeConstList([112, 113, 77, 85, 179, 255, 38, 120, 114]), type$.JSArray_int); + B.List_kfn0 = A._setArrayType(makeConstList([40, 42, 1, 196, 245, 209, 10, 25, 109]), type$.JSArray_int); + B.List_yXZ28 = A._setArrayType(makeConstList([88, 43, 29, 140, 166, 213, 37, 43, 154]), type$.JSArray_int); + B.List_yXZ29 = A._setArrayType(makeConstList([61, 63, 30, 155, 67, 45, 68, 1, 209]), type$.JSArray_int); + B.List_yXZ30 = A._setArrayType(makeConstList([100, 80, 8, 43, 154, 1, 51, 26, 71]), type$.JSArray_int); + B.List_kfn1 = A._setArrayType(makeConstList([142, 78, 78, 16, 255, 128, 34, 197, 171]), type$.JSArray_int); + B.List_yXZ31 = A._setArrayType(makeConstList([41, 40, 5, 102, 211, 183, 4, 1, 221]), type$.JSArray_int); + B.List_yXZ32 = A._setArrayType(makeConstList([51, 50, 17, 168, 209, 192, 23, 25, 82]), type$.JSArray_int); + B.List_JO4 = A._setArrayType(makeConstList([B.List_yXZ26, B.List_yXZ27, B.List_eDA0, B.List_kfn0, B.List_yXZ28, B.List_yXZ29, B.List_yXZ30, B.List_kfn1, B.List_yXZ31, B.List_yXZ32]), type$.JSArray_List_int); + B.List_knt1 = A._setArrayType(makeConstList([138, 31, 36, 171, 27, 166, 38, 44, 229]), type$.JSArray_int); + B.List_yXZ33 = A._setArrayType(makeConstList([67, 87, 58, 169, 82, 115, 26, 59, 179]), type$.JSArray_int); + B.List_yXZ34 = A._setArrayType(makeConstList([63, 59, 90, 180, 59, 166, 93, 73, 154]), type$.JSArray_int); + B.List_yXZ35 = A._setArrayType(makeConstList([40, 40, 21, 116, 143, 209, 34, 39, 175]), type$.JSArray_int); + B.List_yXZ36 = A._setArrayType(makeConstList([47, 15, 16, 183, 34, 223, 49, 45, 183]), type$.JSArray_int); + B.List_yXZ37 = A._setArrayType(makeConstList([46, 17, 33, 183, 6, 98, 15, 32, 183]), type$.JSArray_int); + B.List_yXZ38 = A._setArrayType(makeConstList([57, 46, 22, 24, 128, 1, 54, 17, 37]), type$.JSArray_int); + B.List_yXZ39 = A._setArrayType(makeConstList([65, 32, 73, 115, 28, 128, 23, 128, 205]), type$.JSArray_int); + B.List_yXZ40 = A._setArrayType(makeConstList([40, 3, 9, 115, 51, 192, 18, 6, 223]), type$.JSArray_int); + B.List_yXZ41 = A._setArrayType(makeConstList([87, 37, 9, 115, 59, 77, 64, 21, 47]), type$.JSArray_int); + B.List_wEo = A._setArrayType(makeConstList([B.List_knt1, B.List_yXZ33, B.List_yXZ34, B.List_yXZ35, B.List_yXZ36, B.List_yXZ37, B.List_yXZ38, B.List_yXZ39, B.List_yXZ40, B.List_yXZ41]), type$.JSArray_List_int); + B.List_yXZ42 = A._setArrayType(makeConstList([104, 55, 44, 218, 9, 54, 53, 130, 226]), type$.JSArray_int); + B.List_yXZ43 = A._setArrayType(makeConstList([64, 90, 70, 205, 40, 41, 23, 26, 57]), type$.JSArray_int); + B.List_yXZ44 = A._setArrayType(makeConstList([54, 57, 112, 184, 5, 41, 38, 166, 213]), type$.JSArray_int); + B.List_yXZ45 = A._setArrayType(makeConstList([30, 34, 26, 133, 152, 116, 10, 32, 134]), type$.JSArray_int); + B.List_knt2 = A._setArrayType(makeConstList([39, 19, 53, 221, 26, 114, 32, 73, 255]), type$.JSArray_int); + B.List_yXZ46 = A._setArrayType(makeConstList([31, 9, 65, 234, 2, 15, 1, 118, 73]), type$.JSArray_int); + B.List_eDA1 = A._setArrayType(makeConstList([75, 32, 12, 51, 192, 255, 160, 43, 51]), type$.JSArray_int); + B.List_yXZ47 = A._setArrayType(makeConstList([88, 31, 35, 67, 102, 85, 55, 186, 85]), type$.JSArray_int); + B.List_yXZ48 = A._setArrayType(makeConstList([56, 21, 23, 111, 59, 205, 45, 37, 192]), type$.JSArray_int); + B.List_yXZ49 = A._setArrayType(makeConstList([55, 38, 70, 124, 73, 102, 1, 34, 98]), type$.JSArray_int); + B.List_0 = A._setArrayType(makeConstList([B.List_yXZ42, B.List_yXZ43, B.List_yXZ44, B.List_yXZ45, B.List_knt2, B.List_yXZ46, B.List_eDA1, B.List_yXZ47, B.List_yXZ48, B.List_yXZ49]), type$.JSArray_List_int); + B.List_yXZ50 = A._setArrayType(makeConstList([125, 98, 42, 88, 104, 85, 117, 175, 82]), type$.JSArray_int); + B.List_yXZ51 = A._setArrayType(makeConstList([95, 84, 53, 89, 128, 100, 113, 101, 45]), type$.JSArray_int); + B.List_yXZ52 = A._setArrayType(makeConstList([75, 79, 123, 47, 51, 128, 81, 171, 1]), type$.JSArray_int); + B.List_yXZ53 = A._setArrayType(makeConstList([57, 17, 5, 71, 102, 57, 53, 41, 49]), type$.JSArray_int); + B.List_yXZ54 = A._setArrayType(makeConstList([38, 33, 13, 121, 57, 73, 26, 1, 85]), type$.JSArray_int); + B.List_yXZ55 = A._setArrayType(makeConstList([41, 10, 67, 138, 77, 110, 90, 47, 114]), type$.JSArray_int); + B.List_eDA2 = A._setArrayType(makeConstList([115, 21, 2, 10, 102, 255, 166, 23, 6]), type$.JSArray_int); + B.List_yXZ56 = A._setArrayType(makeConstList([101, 29, 16, 10, 85, 128, 101, 196, 26]), type$.JSArray_int); + B.List_yXZ57 = A._setArrayType(makeConstList([57, 18, 10, 102, 102, 213, 34, 20, 43]), type$.JSArray_int); + B.List_yXZ58 = A._setArrayType(makeConstList([117, 20, 15, 36, 163, 128, 68, 1, 26]), type$.JSArray_int); + B.List_a5W = A._setArrayType(makeConstList([B.List_yXZ50, B.List_yXZ51, B.List_yXZ52, B.List_yXZ53, B.List_yXZ54, B.List_yXZ55, B.List_eDA2, B.List_yXZ56, B.List_yXZ57, B.List_yXZ58]), type$.JSArray_List_int); + B.List_h47 = A._setArrayType(makeConstList([102, 61, 71, 37, 34, 53, 31, 243, 192]), type$.JSArray_int); + B.List_yXZ59 = A._setArrayType(makeConstList([69, 60, 71, 38, 73, 119, 28, 222, 37]), type$.JSArray_int); + B.List_h470 = A._setArrayType(makeConstList([68, 45, 128, 34, 1, 47, 11, 245, 171]), type$.JSArray_int); + B.List_yXZ60 = A._setArrayType(makeConstList([62, 17, 19, 70, 146, 85, 55, 62, 70]), type$.JSArray_int); + B.List_yXZ61 = A._setArrayType(makeConstList([37, 43, 37, 154, 100, 163, 85, 160, 1]), type$.JSArray_int); + B.List_yXZ62 = A._setArrayType(makeConstList([63, 9, 92, 136, 28, 64, 32, 201, 85]), type$.JSArray_int); + B.List_eDA3 = A._setArrayType(makeConstList([75, 15, 9, 9, 64, 255, 184, 119, 16]), type$.JSArray_int); + B.List_eDA4 = A._setArrayType(makeConstList([86, 6, 28, 5, 64, 255, 25, 248, 1]), type$.JSArray_int); + B.List_eDA5 = A._setArrayType(makeConstList([56, 8, 17, 132, 137, 255, 55, 116, 128]), type$.JSArray_int); + B.List_yXZ63 = A._setArrayType(makeConstList([58, 15, 20, 82, 135, 57, 26, 121, 40]), type$.JSArray_int); + B.List_6oq = A._setArrayType(makeConstList([B.List_h47, B.List_yXZ59, B.List_h470, B.List_yXZ60, B.List_yXZ61, B.List_yXZ62, B.List_eDA3, B.List_eDA4, B.List_eDA5, B.List_yXZ63]), type$.JSArray_List_int); + B.List_yXZ64 = A._setArrayType(makeConstList([164, 50, 31, 137, 154, 133, 25, 35, 218]), type$.JSArray_int); + B.List_yXZ65 = A._setArrayType(makeConstList([51, 103, 44, 131, 131, 123, 31, 6, 158]), type$.JSArray_int); + B.List_yXZ66 = A._setArrayType(makeConstList([86, 40, 64, 135, 148, 224, 45, 183, 128]), type$.JSArray_int); + B.List_yXZ67 = A._setArrayType(makeConstList([22, 26, 17, 131, 240, 154, 14, 1, 209]), type$.JSArray_int); + B.List_yXZ68 = A._setArrayType(makeConstList([45, 16, 21, 91, 64, 222, 7, 1, 197]), type$.JSArray_int); + B.List_yXZ69 = A._setArrayType(makeConstList([56, 21, 39, 155, 60, 138, 23, 102, 213]), type$.JSArray_int); + B.List_eDA6 = A._setArrayType(makeConstList([83, 12, 13, 54, 192, 255, 68, 47, 28]), type$.JSArray_int); + B.List_yXZ70 = A._setArrayType(makeConstList([85, 26, 85, 85, 128, 128, 32, 146, 171]), type$.JSArray_int); + B.List_yXZ71 = A._setArrayType(makeConstList([18, 11, 7, 63, 144, 171, 4, 4, 246]), type$.JSArray_int); + B.List_yXZ72 = A._setArrayType(makeConstList([35, 27, 10, 146, 174, 171, 12, 26, 128]), type$.JSArray_int); + B.List_a5W0 = A._setArrayType(makeConstList([B.List_yXZ64, B.List_yXZ65, B.List_yXZ66, B.List_yXZ67, B.List_yXZ68, B.List_yXZ69, B.List_eDA6, B.List_yXZ70, B.List_yXZ71, B.List_yXZ72]), type$.JSArray_List_int); + B.List_yXZ73 = A._setArrayType(makeConstList([190, 80, 35, 99, 180, 80, 126, 54, 45]), type$.JSArray_int); + B.List_yXZ74 = A._setArrayType(makeConstList([85, 126, 47, 87, 176, 51, 41, 20, 32]), type$.JSArray_int); + B.List_yXZ75 = A._setArrayType(makeConstList([101, 75, 128, 139, 118, 146, 116, 128, 85]), type$.JSArray_int); + B.List_yXZ76 = A._setArrayType(makeConstList([56, 41, 15, 176, 236, 85, 37, 9, 62]), type$.JSArray_int); + B.List_eDA7 = A._setArrayType(makeConstList([71, 30, 17, 119, 118, 255, 17, 18, 138]), type$.JSArray_int); + B.List_yXZ77 = A._setArrayType(makeConstList([101, 38, 60, 138, 55, 70, 43, 26, 142]), type$.JSArray_int); + B.List_eDA8 = A._setArrayType(makeConstList([146, 36, 19, 30, 171, 255, 97, 27, 20]), type$.JSArray_int); + B.List_yXZ78 = A._setArrayType(makeConstList([138, 45, 61, 62, 219, 1, 81, 188, 64]), type$.JSArray_int); + B.List_yXZ79 = A._setArrayType(makeConstList([32, 41, 20, 117, 151, 142, 20, 21, 163]), type$.JSArray_int); + B.List_yXZ80 = A._setArrayType(makeConstList([112, 19, 12, 61, 195, 128, 48, 4, 24]), type$.JSArray_int); + B.List_RrN = A._setArrayType(makeConstList([B.List_yXZ73, B.List_yXZ74, B.List_yXZ75, B.List_yXZ76, B.List_eDA7, B.List_yXZ77, B.List_eDA8, B.List_yXZ78, B.List_yXZ79, B.List_yXZ80]), type$.JSArray_List_int); + B.List_799 = A._setArrayType(makeConstList([B.List_sty0, B.List_L3W, B.List_ECY, B.List_JO4, B.List_wEo, B.List_0, B.List_a5W, B.List_6oq, B.List_a5W0, B.List_RrN]), type$.JSArray_List_List_int); + B.List_89P = A._setArrayType(makeConstList([3226, 6412, 200, 168, 38, 38, 134, 134, 100, 100, 100, 100, 68, 68, 68, 68]), type$.JSArray_int); + B.List_8_8_4_2 = A._setArrayType(makeConstList([8, 8, 4, 2]), type$.JSArray_int); + B.List_8aB = A._setArrayType(makeConstList([A.vp8_filter_VP8Filter_DC16$closure(), A.vp8_filter_VP8Filter_TM16$closure(), A.vp8_filter_VP8Filter_VE16$closure(), A.vp8_filter_VP8Filter_HE16$closure(), A.vp8_filter_VP8Filter_DC16NoTop$closure(), A.vp8_filter_VP8Filter_DC16NoLeft$closure(), A.vp8_filter_VP8Filter_DC16NoTopLeft$closure()]), type$.JSArray_of_void_Function_InputBuffer); + B.List_8co1 = A._setArrayType(makeConstList([4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157]), type$.JSArray_int); + B.List_8co0 = A._setArrayType(makeConstList([7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]), type$.JSArray_int); + B.List_8co = A._setArrayType(makeConstList([80, 88, 23, 71, 30, 30, 62, 62, 4, 4, 4, 4, 4, 4, 4, 4, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41]), type$.JSArray_int); + B.List_AKW = A._setArrayType(makeConstList([0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250]), type$.JSArray_int); + B.List_AYZ = A._setArrayType(makeConstList([24, 7, 23, 25, 40, 6, 39, 41, 22, 26, 38, 42, 56, 5, 55, 57, 21, 27, 54, 58, 37, 43, 72, 4, 71, 73, 20, 28, 53, 59, 70, 74, 36, 44, 88, 69, 75, 52, 60, 3, 87, 89, 19, 29, 86, 90, 35, 45, 68, 76, 85, 91, 51, 61, 104, 2, 103, 105, 18, 30, 102, 106, 34, 46, 84, 92, 67, 77, 101, 107, 50, 62, 120, 1, 119, 121, 83, 93, 17, 31, 100, 108, 66, 78, 118, 122, 33, 47, 117, 123, 49, 63, 99, 109, 82, 94, 0, 116, 124, 65, 79, 16, 32, 98, 110, 48, 115, 125, 81, 95, 64, 114, 126, 97, 111, 80, 113, 127, 96, 112]), type$.JSArray_int); + B.List_AZw = A._setArrayType(makeConstList([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63]), type$.JSArray_int); + B.List_AiM = A._setArrayType(makeConstList([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284]), type$.JSArray_int); + B.List_AyI = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29]), type$.JSArray_int); + B.List_B8J = A._setArrayType(makeConstList([0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918000, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117]), type$.JSArray_int); + B.List_DKo = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823, 2147483647, 4294967295]), type$.JSArray_int); + B.List_F1L0 = A._setArrayType(makeConstList([0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]), type$.JSArray_int); + B.List_F1L3 = A._setArrayType(makeConstList([0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119]), type$.JSArray_int); + B.List_F1L2 = A._setArrayType(makeConstList([0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125]), type$.JSArray_int); + B.List_F1L1 = A._setArrayType(makeConstList([0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]), type$.JSArray_int); + B.List_F1L = A._setArrayType(makeConstList([0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0]), type$.JSArray_int); + B.List_G61 = A._setArrayType(makeConstList([1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250]), type$.JSArray_int); + B.List_HHa = A._setArrayType(makeConstList([null, A.webp_filters_WebPFilters_horizontalUnfilter$closure(), A.webp_filters_WebPFilters_verticalUnfilter$closure(), A.webp_filters_WebPFilters_gradientUnfilter$closure()]), A.findType("JSArray<~(int,int,int,int,int,Uint8List)?>")); + B.WebWorkerOperations_0 = new A.WebWorkerOperations(0, "shrinkImage"); + B.WebWorkerOperations_1 = new A.WebWorkerOperations(1, "calcImageMetadata"); + B.WebWorkerOperations_2 = new A.WebWorkerOperations(2, "generateUploadKeys"); + B.List_JmU = A._setArrayType(makeConstList([B.WebWorkerOperations_0, B.WebWorkerOperations_1, B.WebWorkerOperations_2]), A.findType("JSArray")); + B.List_K2a = A._setArrayType(makeConstList([1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379]), A.findType("JSArray")); + B.List_MEg = A._setArrayType(makeConstList([28679, 28679, 31752, -32759, -31735, -30711, -29687, -28663, 29703, 29703, 30727, 30727, -27639, -26615, -25591, -24567]), type$.JSArray_int); + B.List_q8u = A._setArrayType(makeConstList([255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_2du = A._setArrayType(makeConstList([B.List_q8u, B.List_q8u, B.List_q8u]), type$.JSArray_List_int); + B.List_n3E = A._setArrayType(makeConstList([176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_U8c = A._setArrayType(makeConstList([223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_q8u0 = A._setArrayType(makeConstList([249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_EkO = A._setArrayType(makeConstList([B.List_n3E, B.List_U8c, B.List_q8u0]), type$.JSArray_List_int); + B.List_mXg = A._setArrayType(makeConstList([255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_sav = A._setArrayType(makeConstList([234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_q8u1 = A._setArrayType(makeConstList([253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_ezx = A._setArrayType(makeConstList([B.List_mXg, B.List_sav, B.List_q8u1]), type$.JSArray_List_int); + B.List_mXg0 = A._setArrayType(makeConstList([255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wX4 = A._setArrayType(makeConstList([239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_U8c0 = A._setArrayType(makeConstList([254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_Q1p = A._setArrayType(makeConstList([B.List_mXg0, B.List_wX4, B.List_U8c0]), type$.JSArray_List_int); + B.List_mXg1 = A._setArrayType(makeConstList([255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wX40 = A._setArrayType(makeConstList([251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_ycb = A._setArrayType(makeConstList([B.List_mXg1, B.List_wX40, B.List_q8u]), type$.JSArray_List_int); + B.List_wX41 = A._setArrayType(makeConstList([255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_mXg2 = A._setArrayType(makeConstList([251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_AuU = A._setArrayType(makeConstList([B.List_wX41, B.List_mXg2, B.List_U8c0]), type$.JSArray_List_int); + B.List_ekJ = A._setArrayType(makeConstList([255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_vHK = A._setArrayType(makeConstList([250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_Mic = A._setArrayType(makeConstList([254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_3oi = A._setArrayType(makeConstList([B.List_ekJ, B.List_vHK, B.List_Mic]), type$.JSArray_List_int); + B.List_uwP = A._setArrayType(makeConstList([B.List_2du, B.List_EkO, B.List_ezx, B.List_Q1p, B.List_ycb, B.List_AuU, B.List_3oi, B.List_2du]), type$.JSArray_List_List_int); + B.List_Mic0 = A._setArrayType(makeConstList([217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_ku2 = A._setArrayType(makeConstList([225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255]), type$.JSArray_int); + B.List_unK = A._setArrayType(makeConstList([234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]), type$.JSArray_int); + B.List_EuK = A._setArrayType(makeConstList([B.List_Mic0, B.List_ku2, B.List_unK]), type$.JSArray_List_int); + B.List_H37 = A._setArrayType(makeConstList([255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_sav0 = A._setArrayType(makeConstList([223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_00 = A._setArrayType(makeConstList([238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_U05 = A._setArrayType(makeConstList([B.List_H37, B.List_sav0, B.List_00]), type$.JSArray_List_int); + B.List_H370 = A._setArrayType(makeConstList([249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wEo0 = A._setArrayType(makeConstList([B.List_mXg1, B.List_H370, B.List_q8u]), type$.JSArray_List_int); + B.List_q8u2 = A._setArrayType(makeConstList([255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_H371 = A._setArrayType(makeConstList([247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_HmY = A._setArrayType(makeConstList([B.List_q8u2, B.List_H371, B.List_q8u]), type$.JSArray_List_int); + B.List_Mic1 = A._setArrayType(makeConstList([252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_qJr = A._setArrayType(makeConstList([B.List_wX41, B.List_Mic1, B.List_q8u]), type$.JSArray_List_int); + B.List_mXg3 = A._setArrayType(makeConstList([255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_oIk = A._setArrayType(makeConstList([B.List_mXg3, B.List_q8u1, B.List_q8u]), type$.JSArray_List_int); + B.List_H372 = A._setArrayType(makeConstList([255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_Mic2 = A._setArrayType(makeConstList([250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_23h = A._setArrayType(makeConstList([B.List_H372, B.List_Mic2, B.List_Mic]), type$.JSArray_List_int); + B.List_Crw = A._setArrayType(makeConstList([B.List_EuK, B.List_U05, B.List_wEo0, B.List_HmY, B.List_qJr, B.List_oIk, B.List_23h, B.List_2du]), type$.JSArray_List_List_int); + B.List_U8c1 = A._setArrayType(makeConstList([186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_01 = A._setArrayType(makeConstList([234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_IyW = A._setArrayType(makeConstList([251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]), type$.JSArray_int); + B.List_ujV = A._setArrayType(makeConstList([B.List_U8c1, B.List_01, B.List_IyW]), type$.JSArray_List_int); + B.List_U8c2 = A._setArrayType(makeConstList([236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_A8Z = A._setArrayType(makeConstList([251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_eFE = A._setArrayType(makeConstList([B.List_wX41, B.List_U8c2, B.List_A8Z]), type$.JSArray_List_int); + B.List_sav1 = A._setArrayType(makeConstList([254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_ezx0 = A._setArrayType(makeConstList([B.List_mXg3, B.List_sav1, B.List_q8u]), type$.JSArray_List_int); + B.List_n3E0 = A._setArrayType(makeConstList([254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_QXJ = A._setArrayType(makeConstList([B.List_H37, B.List_n3E0, B.List_Mic]), type$.JSArray_List_int); + B.List_yzJ = A._setArrayType(makeConstList([B.List_q8u, B.List_Mic, B.List_q8u]), type$.JSArray_List_int); + B.List_QcX = A._setArrayType(makeConstList([B.List_ujV, B.List_eFE, B.List_ezx0, B.List_QXJ, B.List_yzJ, B.List_2du, B.List_2du, B.List_2du]), type$.JSArray_List_List_int); + B.List_Mic3 = A._setArrayType(makeConstList([248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_AsR = A._setArrayType(makeConstList([250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_n3E1 = A._setArrayType(makeConstList([248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_gkc = A._setArrayType(makeConstList([B.List_Mic3, B.List_AsR, B.List_n3E1]), type$.JSArray_List_int); + B.List_q8u3 = A._setArrayType(makeConstList([255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_Mic4 = A._setArrayType(makeConstList([246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_02 = A._setArrayType(makeConstList([252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_03 = A._setArrayType(makeConstList([B.List_q8u3, B.List_Mic4, B.List_02]), type$.JSArray_List_int); + B.List_mXg4 = A._setArrayType(makeConstList([255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_n3E2 = A._setArrayType(makeConstList([248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_m9F = A._setArrayType(makeConstList([253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_C3E = A._setArrayType(makeConstList([B.List_mXg4, B.List_n3E2, B.List_m9F]), type$.JSArray_List_int); + B.List_wX42 = A._setArrayType(makeConstList([255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wX43 = A._setArrayType(makeConstList([245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wX44 = A._setArrayType(makeConstList([253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_swR = A._setArrayType(makeConstList([B.List_wX42, B.List_wX43, B.List_wX44]), type$.JSArray_List_int); + B.List_q8u4 = A._setArrayType(makeConstList([255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_U8c3 = A._setArrayType(makeConstList([252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_uQV = A._setArrayType(makeConstList([B.List_q8u4, B.List_U8c3, B.List_H37]), type$.JSArray_List_int); + B.List_H373 = A._setArrayType(makeConstList([255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wX45 = A._setArrayType(makeConstList([249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_wX46 = A._setArrayType(makeConstList([255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_46y = A._setArrayType(makeConstList([B.List_H373, B.List_wX45, B.List_wX46]), type$.JSArray_List_int); + B.List_q8u5 = A._setArrayType(makeConstList([255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255]), type$.JSArray_int); + B.List_yzJ0 = A._setArrayType(makeConstList([B.List_q8u5, B.List_Mic2, B.List_q8u]), type$.JSArray_List_int); + B.List_88p = A._setArrayType(makeConstList([B.List_gkc, B.List_03, B.List_C3E, B.List_swR, B.List_uQV, B.List_46y, B.List_yzJ0, B.List_yzJ]), type$.JSArray_List_List_int); + B.List_MIe = A._setArrayType(makeConstList([B.List_uwP, B.List_Crw, B.List_QcX, B.List_88p]), type$.JSArray_List_List_List_int); + B.List_NUU = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28]), type$.JSArray_int); + B.List_Qw3 = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095]), type$.JSArray_int); + B.List_2Vk0 = A._setArrayType(makeConstList([128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_gkc0 = A._setArrayType(makeConstList([B.List_2Vk0, B.List_2Vk0, B.List_2Vk0]), type$.JSArray_List_int); + B.List_cdS = A._setArrayType(makeConstList([253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_app = A._setArrayType(makeConstList([189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128]), type$.JSArray_int); + B.List_yFh = A._setArrayType(makeConstList([106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_y5k = A._setArrayType(makeConstList([B.List_cdS, B.List_app, B.List_yFh]), type$.JSArray_List_int); + B.List_INA = A._setArrayType(makeConstList([1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_e4d = A._setArrayType(makeConstList([181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128]), type$.JSArray_int); + B.List_app0 = A._setArrayType(makeConstList([78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]), type$.JSArray_int); + B.List_iLh = A._setArrayType(makeConstList([B.List_INA, B.List_e4d, B.List_app0]), type$.JSArray_List_int); + B.List_MOR = A._setArrayType(makeConstList([1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_iUw = A._setArrayType(makeConstList([184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_Eba = A._setArrayType(makeConstList([77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_VS7 = A._setArrayType(makeConstList([B.List_MOR, B.List_iUw, B.List_Eba]), type$.JSArray_List_int); + B.List_MOR0 = A._setArrayType(makeConstList([1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_wnc = A._setArrayType(makeConstList([170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_XwU = A._setArrayType(makeConstList([37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_HTJ = A._setArrayType(makeConstList([B.List_MOR0, B.List_wnc, B.List_XwU]), type$.JSArray_List_int); + B.List_1yC = A._setArrayType(makeConstList([1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_Eba0 = A._setArrayType(makeConstList([207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_iUw0 = A._setArrayType(makeConstList([102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_4QF = A._setArrayType(makeConstList([B.List_1yC, B.List_Eba0, B.List_iUw0]), type$.JSArray_List_int); + B.List_uXo = A._setArrayType(makeConstList([1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_iUw1 = A._setArrayType(makeConstList([177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_Eba1 = A._setArrayType(makeConstList([80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_8Pu = A._setArrayType(makeConstList([B.List_uXo, B.List_iUw1, B.List_Eba1]), type$.JSArray_List_int); + B.List_2hT = A._setArrayType(makeConstList([1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_2hT0 = A._setArrayType(makeConstList([246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_10r = A._setArrayType(makeConstList([255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_Snu = A._setArrayType(makeConstList([B.List_2hT, B.List_2hT0, B.List_10r]), type$.JSArray_List_int); + B.List_23h0 = A._setArrayType(makeConstList([B.List_gkc0, B.List_y5k, B.List_iLh, B.List_VS7, B.List_HTJ, B.List_4QF, B.List_8Pu, B.List_Snu]), type$.JSArray_List_List_int); + B.List_2hT1 = A._setArrayType(makeConstList([198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62]), type$.JSArray_int); + B.List_2Vk1 = A._setArrayType(makeConstList([131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1]), type$.JSArray_int); + B.List_kOG = A._setArrayType(makeConstList([68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]), type$.JSArray_int); + B.List_BDr = A._setArrayType(makeConstList([B.List_2hT1, B.List_2Vk1, B.List_kOG]), type$.JSArray_List_int); + B.List_qNA = A._setArrayType(makeConstList([1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_app1 = A._setArrayType(makeConstList([184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128]), type$.JSArray_int); + B.List_kr3 = A._setArrayType(makeConstList([81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]), type$.JSArray_int); + B.List_Hcu = A._setArrayType(makeConstList([B.List_qNA, B.List_app1, B.List_kr3]), type$.JSArray_List_int); + B.List_oqK = A._setArrayType(makeConstList([1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128]), type$.JSArray_int); + B.List_e4d0 = A._setArrayType(makeConstList([99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128]), type$.JSArray_int); + B.List_kr30 = A._setArrayType(makeConstList([23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]), type$.JSArray_int); + B.List_zAX = A._setArrayType(makeConstList([B.List_oqK, B.List_e4d0, B.List_kr30]), type$.JSArray_List_int); + B.List_uXo0 = A._setArrayType(makeConstList([1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_YAl = A._setArrayType(makeConstList([109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_INA0 = A._setArrayType(makeConstList([44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_QOg = A._setArrayType(makeConstList([B.List_uXo0, B.List_YAl, B.List_INA0]), type$.JSArray_List_int); + B.List_niO = A._setArrayType(makeConstList([1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128]), type$.JSArray_int); + B.List_INA1 = A._setArrayType(makeConstList([94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_app2 = A._setArrayType(makeConstList([22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]), type$.JSArray_int); + B.List_i7r = A._setArrayType(makeConstList([B.List_niO, B.List_INA1, B.List_app2]), type$.JSArray_List_int); + B.List_xw8 = A._setArrayType(makeConstList([1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_iUw2 = A._setArrayType(makeConstList([124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_app3 = A._setArrayType(makeConstList([35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]), type$.JSArray_int); + B.List_sQ3 = A._setArrayType(makeConstList([B.List_xw8, B.List_iUw2, B.List_app3]), type$.JSArray_List_int); + B.List_UkC = A._setArrayType(makeConstList([1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_qNA0 = A._setArrayType(makeConstList([121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_app4 = A._setArrayType(makeConstList([45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]), type$.JSArray_int); + B.List_ACG = A._setArrayType(makeConstList([B.List_UkC, B.List_qNA0, B.List_app4]), type$.JSArray_List_int); + B.List_xw80 = A._setArrayType(makeConstList([1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_e3N = A._setArrayType(makeConstList([203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_uXo1 = A._setArrayType(makeConstList([137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_UMT = A._setArrayType(makeConstList([B.List_xw80, B.List_e3N, B.List_uXo1]), type$.JSArray_List_int); + B.List_IJC = A._setArrayType(makeConstList([B.List_BDr, B.List_Hcu, B.List_zAX, B.List_QOg, B.List_i7r, B.List_sQ3, B.List_ACG, B.List_UMT]), type$.JSArray_List_List_int); + B.List_oyU = A._setArrayType(makeConstList([253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128]), type$.JSArray_int); + B.List_fnl = A._setArrayType(makeConstList([175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128]), type$.JSArray_int); + B.List_kOG0 = A._setArrayType(makeConstList([73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]), type$.JSArray_int); + B.List_04 = A._setArrayType(makeConstList([B.List_oyU, B.List_fnl, B.List_kOG0]), type$.JSArray_List_int); + B.List_qNA1 = A._setArrayType(makeConstList([1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_qph = A._setArrayType(makeConstList([239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_yFh0 = A._setArrayType(makeConstList([155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_S0k = A._setArrayType(makeConstList([B.List_qNA1, B.List_qph, B.List_yFh0]), type$.JSArray_List_int); + B.List_niO0 = A._setArrayType(makeConstList([1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128]), type$.JSArray_int); + B.List_Eba2 = A._setArrayType(makeConstList([201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_app5 = A._setArrayType(makeConstList([69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]), type$.JSArray_int); + B.List_gfn = A._setArrayType(makeConstList([B.List_niO0, B.List_Eba2, B.List_app5]), type$.JSArray_List_int); + B.List_8eb = A._setArrayType(makeConstList([1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_xw81 = A._setArrayType(makeConstList([223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_e3N0 = A._setArrayType(makeConstList([141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_EJ0 = A._setArrayType(makeConstList([B.List_8eb, B.List_xw81, B.List_e3N0]), type$.JSArray_List_int); + B.List_e3N1 = A._setArrayType(makeConstList([1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_uXo2 = A._setArrayType(makeConstList([190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_2hT2 = A._setArrayType(makeConstList([149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_WtZ = A._setArrayType(makeConstList([B.List_e3N1, B.List_uXo2, B.List_2hT2]), type$.JSArray_List_int); + B.List_2hT3 = A._setArrayType(makeConstList([1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_Jio = A._setArrayType(makeConstList([247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_2hT4 = A._setArrayType(makeConstList([240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_wsa = A._setArrayType(makeConstList([B.List_2hT3, B.List_Jio, B.List_2hT4]), type$.JSArray_List_int); + B.List_e3N2 = A._setArrayType(makeConstList([1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_e3N3 = A._setArrayType(makeConstList([213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_2hT5 = A._setArrayType(makeConstList([55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_OBP = A._setArrayType(makeConstList([B.List_e3N2, B.List_e3N3, B.List_2hT5]), type$.JSArray_List_int); + B.List_Net = A._setArrayType(makeConstList([B.List_04, B.List_S0k, B.List_gfn, B.List_EJ0, B.List_WtZ, B.List_wsa, B.List_OBP, B.List_gkc0]), type$.JSArray_List_List_int); + B.List_ZEx = A._setArrayType(makeConstList([202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255]), type$.JSArray_int); + B.List_kOG1 = A._setArrayType(makeConstList([126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128]), type$.JSArray_int); + B.List_kOG2 = A._setArrayType(makeConstList([61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]), type$.JSArray_int); + B.List_wsa0 = A._setArrayType(makeConstList([B.List_ZEx, B.List_kOG1, B.List_kOG2]), type$.JSArray_List_int); + B.List_kr31 = A._setArrayType(makeConstList([1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128]), type$.JSArray_int); + B.List_e4d1 = A._setArrayType(makeConstList([166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128]), type$.JSArray_int); + B.List_kr32 = A._setArrayType(makeConstList([39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]), type$.JSArray_int); + B.List_UaZ = A._setArrayType(makeConstList([B.List_kr31, B.List_e4d1, B.List_kr32]), type$.JSArray_List_int); + B.List_kr33 = A._setArrayType(makeConstList([1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128]), type$.JSArray_int); + B.List_oqK0 = A._setArrayType(makeConstList([124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128]), type$.JSArray_int); + B.List_kr34 = A._setArrayType(makeConstList([24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]), type$.JSArray_int); + B.List_i09 = A._setArrayType(makeConstList([B.List_kr33, B.List_oqK0, B.List_kr34]), type$.JSArray_List_int); + B.List_app6 = A._setArrayType(makeConstList([1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128]), type$.JSArray_int); + B.List_e4d2 = A._setArrayType(makeConstList([149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128]), type$.JSArray_int); + B.List_XT3 = A._setArrayType(makeConstList([28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]), type$.JSArray_int); + B.List_OIF = A._setArrayType(makeConstList([B.List_app6, B.List_e4d2, B.List_XT3]), type$.JSArray_List_int); + B.List_e4d3 = A._setArrayType(makeConstList([1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128]), type$.JSArray_int); + B.List_INA2 = A._setArrayType(makeConstList([123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128]), type$.JSArray_int); + B.List_app7 = A._setArrayType(makeConstList([20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]), type$.JSArray_int); + B.List_CKI = A._setArrayType(makeConstList([B.List_e4d3, B.List_INA2, B.List_app7]), type$.JSArray_List_int); + B.List_Eba3 = A._setArrayType(makeConstList([1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_IVU = A._setArrayType(makeConstList([168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_INA3 = A._setArrayType(makeConstList([47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_SnA = A._setArrayType(makeConstList([B.List_Eba3, B.List_IVU, B.List_INA3]), type$.JSArray_List_int); + B.List_INA4 = A._setArrayType(makeConstList([1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128]), type$.JSArray_int); + B.List_e4d4 = A._setArrayType(makeConstList([141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128]), type$.JSArray_int); + B.List_e4d5 = A._setArrayType(makeConstList([42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]), type$.JSArray_int); + B.List_xw82 = A._setArrayType(makeConstList([B.List_INA4, B.List_e4d4, B.List_e4d5]), type$.JSArray_List_int); + B.List_2hT6 = A._setArrayType(makeConstList([244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_2hT7 = A._setArrayType(makeConstList([238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]), type$.JSArray_int); + B.List_Q1p0 = A._setArrayType(makeConstList([B.List_2hT, B.List_2hT6, B.List_2hT7]), type$.JSArray_List_int); + B.List_uLM = A._setArrayType(makeConstList([B.List_wsa0, B.List_UaZ, B.List_i09, B.List_OIF, B.List_CKI, B.List_SnA, B.List_xw82, B.List_Q1p0]), type$.JSArray_List_List_int); + B.List_S8N = A._setArrayType(makeConstList([B.List_23h0, B.List_IJC, B.List_Net, B.List_uLM]), type$.JSArray_List_List_List_int); + B.List_UiL = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]), type$.JSArray_int); + B.List_VSP = A._setArrayType(makeConstList([6430, 6400, 6400, 6400, 3225, 3225, 3225, 3225, 944, 944, 944, 944, 976, 976, 976, 976, 1456, 1456, 1456, 1456, 1488, 1488, 1488, 1488, 718, 718, 718, 718, 718, 718, 718, 718, 750, 750, 750, 750, 750, 750, 750, 750, 1520, 1520, 1520, 1520, 1552, 1552, 1552, 1552, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 654, 654, 654, 654, 654, 654, 654, 654, 1072, 1072, 1072, 1072, 1104, 1104, 1104, 1104, 1136, 1136, 1136, 1136, 1168, 1168, 1168, 1168, 1200, 1200, 1200, 1200, 1232, 1232, 1232, 1232, 622, 622, 622, 622, 622, 622, 622, 622, 1008, 1008, 1008, 1008, 1040, 1040, 1040, 1040, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 1712, 1712, 1712, 1712, 1744, 1744, 1744, 1744, 846, 846, 846, 846, 846, 846, 846, 846, 1264, 1264, 1264, 1264, 1296, 1296, 1296, 1296, 1328, 1328, 1328, 1328, 1360, 1360, 1360, 1360, 1392, 1392, 1392, 1392, 1424, 1424, 1424, 1424, 686, 686, 686, 686, 686, 686, 686, 686, 910, 910, 910, 910, 910, 910, 910, 910, 1968, 1968, 1968, 1968, 2000, 2000, 2000, 2000, 2032, 2032, 2032, 2032, 16, 16, 16, 16, 10257, 10257, 10257, 10257, 12305, 12305, 12305, 12305, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 878, 878, 878, 878, 878, 878, 878, 878, 1904, 1904, 1904, 1904, 1936, 1936, 1936, 1936, -18413, -18413, -16365, -16365, -14317, -14317, -10221, -10221, 590, 590, 590, 590, 590, 590, 590, 590, 782, 782, 782, 782, 782, 782, 782, 782, 1584, 1584, 1584, 1584, 1616, 1616, 1616, 1616, 1648, 1648, 1648, 1648, 1680, 1680, 1680, 1680, 814, 814, 814, 814, 814, 814, 814, 814, 1776, 1776, 1776, 1776, 1808, 1808, 1808, 1808, 1840, 1840, 1840, 1840, 1872, 1872, 1872, 1872, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, -12275, 14353, 14353, 14353, 14353, 16401, 16401, 16401, 16401, 22547, 22547, 24595, 24595, 20497, 20497, 20497, 20497, 18449, 18449, 18449, 18449, 26643, 26643, 28691, 28691, 30739, 30739, -32749, -32749, -30701, -30701, -28653, -28653, -26605, -26605, -24557, -24557, -22509, -22509, -20461, -20461, 8207, 8207, 8207, 8207, 8207, 8207, 8207, 8207, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232]), type$.JSArray_int); + B.List_VvJ = A._setArrayType(makeConstList([0, -128, 64, -64, 32, -96, 96, -32, 16, -112, 80, -48, 48, -80, 112, -16, 8, -120, 72, -56, 40, -88, 104, -24, 24, -104, 88, -40, 56, -72, 120, -8, 4, -124, 68, -60, 36, -92, 100, -28, 20, -108, 84, -44, 52, -76, 116, -12, 12, -116, 76, -52, 44, -84, 108, -20, 28, -100, 92, -36, 60, -68, 124, -4, 2, -126, 66, -62, 34, -94, 98, -30, 18, -110, 82, -46, 50, -78, 114, -14, 10, -118, 74, -54, 42, -86, 106, -22, 26, -102, 90, -38, 58, -70, 122, -6, 6, -122, 70, -58, 38, -90, 102, -26, 22, -106, 86, -42, 54, -74, 118, -10, 14, -114, 78, -50, 46, -82, 110, -18, 30, -98, 94, -34, 62, -66, 126, -2, 1, -127, 65, -63, 33, -95, 97, -31, 17, -111, 81, -47, 49, -79, 113, -15, 9, -119, 73, -55, 41, -87, 105, -23, 25, -103, 89, -39, 57, -71, 121, -7, 5, -123, 69, -59, 37, -91, 101, -27, 21, -107, 85, -43, 53, -75, 117, -11, 13, -115, 77, -51, 45, -83, 109, -19, 29, -99, 93, -35, 61, -67, 125, -3, 3, -125, 67, -61, 35, -93, 99, -29, 19, -109, 83, -45, 51, -77, 115, -13, 11, -117, 75, -53, 43, -85, 107, -21, 27, -101, 91, -37, 59, -69, 123, -5, 7, -121, 71, -57, 39, -89, 103, -25, 23, -105, 87, -41, 55, -73, 119, -9, 15, -113, 79, -49, 47, -81, 111, -17, 31, -97, 95, -33, 63, -65, 127, -1]), type$.JSArray_int); + B.List_X3d0 = A._setArrayType(makeConstList([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]), type$.JSArray_int); + B.List_X3d1 = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576]), type$.JSArray_int); + B.List_X3d = A._setArrayType(makeConstList([5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5]), type$.JSArray_int); + B.List_Xg4 = A._setArrayType(makeConstList([12, 8, 140, 8, 76, 8, 204, 8, 44, 8, 172, 8, 108, 8, 236, 8, 28, 8, 156, 8, 92, 8, 220, 8, 60, 8, 188, 8, 124, 8, 252, 8, 2, 8, 130, 8, 66, 8, 194, 8, 34, 8, 162, 8, 98, 8, 226, 8, 18, 8, 146, 8, 82, 8, 210, 8, 50, 8, 178, 8, 114, 8, 242, 8, 10, 8, 138, 8, 74, 8, 202, 8, 42, 8, 170, 8, 106, 8, 234, 8, 26, 8, 154, 8, 90, 8, 218, 8, 58, 8, 186, 8, 122, 8, 250, 8, 6, 8, 134, 8, 70, 8, 198, 8, 38, 8, 166, 8, 102, 8, 230, 8, 22, 8, 150, 8, 86, 8, 214, 8, 54, 8, 182, 8, 118, 8, 246, 8, 14, 8, 142, 8, 78, 8, 206, 8, 46, 8, 174, 8, 110, 8, 238, 8, 30, 8, 158, 8, 94, 8, 222, 8, 62, 8, 190, 8, 126, 8, 254, 8, 1, 8, 129, 8, 65, 8, 193, 8, 33, 8, 161, 8, 97, 8, 225, 8, 17, 8, 145, 8, 81, 8, 209, 8, 49, 8, 177, 8, 113, 8, 241, 8, 9, 8, 137, 8, 73, 8, 201, 8, 41, 8, 169, 8, 105, 8, 233, 8, 25, 8, 153, 8, 89, 8, 217, 8, 57, 8, 185, 8, 121, 8, 249, 8, 5, 8, 133, 8, 69, 8, 197, 8, 37, 8, 165, 8, 101, 8, 229, 8, 21, 8, 149, 8, 85, 8, 213, 8, 53, 8, 181, 8, 117, 8, 245, 8, 13, 8, 141, 8, 77, 8, 205, 8, 45, 8, 173, 8, 109, 8, 237, 8, 29, 8, 157, 8, 93, 8, 221, 8, 61, 8, 189, 8, 125, 8, 253, 8, 19, 9, 275, 9, 147, 9, 403, 9, 83, 9, 339, 9, 211, 9, 467, 9, 51, 9, 307, 9, 179, 9, 435, 9, 115, 9, 371, 9, 243, 9, 499, 9, 11, 9, 267, 9, 139, 9, 395, 9, 75, 9, 331, 9, 203, 9, 459, 9, 43, 9, 299, 9, 171, 9, 427, 9, 107, 9, 363, 9, 235, 9, 491, 9, 27, 9, 283, 9, 155, 9, 411, 9, 91, 9, 347, 9, 219, 9, 475, 9, 59, 9, 315, 9, 187, 9, 443, 9, 123, 9, 379, 9, 251, 9, 507, 9, 7, 9, 263, 9, 135, 9, 391, 9, 71, 9, 327, 9, 199, 9, 455, 9, 39, 9, 295, 9, 167, 9, 423, 9, 103, 9, 359, 9, 231, 9, 487, 9, 23, 9, 279, 9, 151, 9, 407, 9, 87, 9, 343, 9, 215, 9, 471, 9, 55, 9, 311, 9, 183, 9, 439, 9, 119, 9, 375, 9, 247, 9, 503, 9, 15, 9, 271, 9, 143, 9, 399, 9, 79, 9, 335, 9, 207, 9, 463, 9, 47, 9, 303, 9, 175, 9, 431, 9, 111, 9, 367, 9, 239, 9, 495, 9, 31, 9, 287, 9, 159, 9, 415, 9, 95, 9, 351, 9, 223, 9, 479, 9, 63, 9, 319, 9, 191, 9, 447, 9, 127, 9, 383, 9, 255, 9, 511, 9, 0, 7, 64, 7, 32, 7, 96, 7, 16, 7, 80, 7, 48, 7, 112, 7, 8, 7, 72, 7, 40, 7, 104, 7, 24, 7, 88, 7, 56, 7, 120, 7, 4, 7, 68, 7, 36, 7, 100, 7, 20, 7, 84, 7, 52, 7, 116, 7, 3, 8, 131, 8, 67, 8, 195, 8, 35, 8, 163, 8, 99, 8, 227, 8]), type$.JSArray_int); + B.List_0_0_0 = A._setArrayType(makeConstList([0, 0, 0]), type$.JSArray_num); + B.List_Z3F = A._setArrayType(makeConstList([B.List_0_0_0, B.List_0_0_0, B.List_0_0_0]), type$.JSArray_List_num); + B.List_sgE = A._setArrayType(makeConstList([0.375, 1, 0]), type$.JSArray_num); + B.List_sgE0 = A._setArrayType(makeConstList([0.375, 0, 1]), type$.JSArray_num); + B.List_sgE1 = A._setArrayType(makeConstList([0.25, 1, 1]), type$.JSArray_num); + B.List_Z3F0 = A._setArrayType(makeConstList([B.List_sgE, B.List_sgE0, B.List_sgE1]), type$.JSArray_List_num); + B.List_sgE2 = A._setArrayType(makeConstList([0.4375, 1, 0]), type$.JSArray_num); + B.List_rb5 = A._setArrayType(makeConstList([0.1875, -1, 1]), type$.JSArray_num); + B.List_sgE3 = A._setArrayType(makeConstList([0.3125, 0, 1]), type$.JSArray_num); + B.List_sgE4 = A._setArrayType(makeConstList([0.0625, 1, 1]), type$.JSArray_num); + B.List_iVk = A._setArrayType(makeConstList([B.List_sgE2, B.List_rb5, B.List_sgE3, B.List_sgE4]), type$.JSArray_List_num); + B.List_sgE5 = A._setArrayType(makeConstList([0.19047619047619047, 1, 0]), type$.JSArray_num); + B.List_sgE6 = A._setArrayType(makeConstList([0.09523809523809523, 2, 0]), type$.JSArray_num); + B.List_mOq = A._setArrayType(makeConstList([0.047619047619047616, -2, 1]), type$.JSArray_num); + B.List_rb50 = A._setArrayType(makeConstList([0.09523809523809523, -1, 1]), type$.JSArray_num); + B.List_sgE7 = A._setArrayType(makeConstList([0.19047619047619047, 0, 1]), type$.JSArray_num); + B.List_sgE8 = A._setArrayType(makeConstList([0.09523809523809523, 1, 1]), type$.JSArray_num); + B.List_1YD = A._setArrayType(makeConstList([0.047619047619047616, 2, 1]), type$.JSArray_num); + B.List_ifL = A._setArrayType(makeConstList([0.023809523809523808, -2, 2]), type$.JSArray_num); + B.List_Sc1 = A._setArrayType(makeConstList([0.047619047619047616, -1, 2]), type$.JSArray_num); + B.List_sgE9 = A._setArrayType(makeConstList([0.09523809523809523, 0, 2]), type$.JSArray_num); + B.List_1YD0 = A._setArrayType(makeConstList([0.047619047619047616, 1, 2]), type$.JSArray_num); + B.List_af2 = A._setArrayType(makeConstList([0.023809523809523808, 2, 2]), type$.JSArray_num); + B.List_wAg = A._setArrayType(makeConstList([B.List_sgE5, B.List_sgE6, B.List_mOq, B.List_rb50, B.List_sgE7, B.List_sgE8, B.List_1YD, B.List_ifL, B.List_Sc1, B.List_sgE9, B.List_1YD0, B.List_af2]), type$.JSArray_List_num); + B.List_sgE10 = A._setArrayType(makeConstList([0.125, 1, 0]), type$.JSArray_num); + B.List_sgE11 = A._setArrayType(makeConstList([0.125, 2, 0]), type$.JSArray_num); + B.List_rb51 = A._setArrayType(makeConstList([0.125, -1, 1]), type$.JSArray_num); + B.List_sgE12 = A._setArrayType(makeConstList([0.125, 0, 1]), type$.JSArray_num); + B.List_sgE13 = A._setArrayType(makeConstList([0.125, 1, 1]), type$.JSArray_num); + B.List_sgE14 = A._setArrayType(makeConstList([0.125, 0, 2]), type$.JSArray_num); + B.List_qpd = A._setArrayType(makeConstList([B.List_sgE10, B.List_sgE11, B.List_rb51, B.List_sgE12, B.List_sgE13, B.List_sgE14]), type$.JSArray_List_num); + B.List_Y2m = A._setArrayType(makeConstList([B.List_Z3F, B.List_Z3F0, B.List_iVk, B.List_wAg, B.List_qpd]), A.findType("JSArray>>")); + B.List_Y3m = A._setArrayType(makeConstList([-0.0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9]), type$.JSArray_int); + B.List_cGl1 = A._setArrayType(makeConstList([0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15]), type$.JSArray_int); + B.List_cGl0 = A._setArrayType(makeConstList([0, 4, 8, 12, 128, 132, 136, 140, 256, 260, 264, 268, 384, 388, 392, 396]), type$.JSArray_int); + B.List_cGl = A._setArrayType(makeConstList([0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]), type$.JSArray_int); + B.List_eea = A._setArrayType(makeConstList([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0]), type$.JSArray_int); + B.List_empty = A._setArrayType(makeConstList([]), type$.JSArray_dynamic); + B.List_i3t = A._setArrayType(makeConstList([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577]), type$.JSArray_int); + B.List_iYO = A._setArrayType(makeConstList([0, 5, 16, 5, 8, 5, 24, 5, 4, 5, 20, 5, 12, 5, 28, 5, 2, 5, 18, 5, 10, 5, 26, 5, 6, 5, 22, 5, 14, 5, 30, 5, 1, 5, 17, 5, 9, 5, 25, 5, 5, 5, 21, 5, 13, 5, 29, 5, 3, 5, 19, 5, 11, 5, 27, 5, 7, 5, 23, 5]), type$.JSArray_int); + B.List_kcl = A._setArrayType(makeConstList([0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]), type$.JSArray_int); + B.List_kcl0 = A._setArrayType(makeConstList([16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99]), type$.JSArray_int); + B.List_kcl1 = A._setArrayType(makeConstList([17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99]), type$.JSArray_int); + B.List_knt = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255]), type$.JSArray_int); + B.List_knt0 = A._setArrayType(makeConstList([0, 128, 192, 224, 240, 248, 252, 254, 255]), type$.JSArray_int); + B.List_mC8 = A._setArrayType(makeConstList([0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8]), type$.JSArray_int); + B.List_nLG = A._setArrayType(makeConstList([62, 62, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 588, 588, 588, 588, 588, 588, 588, 588, 1680, 1680, 20499, 22547, 24595, 26643, 1776, 1776, 1808, 1808, -24557, -22509, -20461, -18413, 1904, 1904, 1936, 1936, -16365, -14317, 782, 782, 782, 782, 814, 814, 814, 814, -12269, -10221, 10257, 10257, 12305, 12305, 14353, 14353, 16403, 18451, 1712, 1712, 1744, 1744, 28691, 30739, -32749, -30701, -28653, -26605, 2061, 2061, 2061, 2061, 2061, 2061, 2061, 2061, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 750, 750, 750, 750, 1616, 1616, 1648, 1648, 1424, 1424, 1456, 1456, 1488, 1488, 1520, 1520, 1840, 1840, 1872, 1872, 1968, 1968, 8209, 8209, 524, 524, 524, 524, 524, 524, 524, 524, 556, 556, 556, 556, 556, 556, 556, 556, 1552, 1552, 1584, 1584, 2000, 2000, 2032, 2032, 976, 976, 1008, 1008, 1040, 1040, 1072, 1072, 1296, 1296, 1328, 1328, 718, 718, 718, 718, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 4113, 4113, 6161, 6161, 848, 848, 880, 880, 912, 912, 944, 944, 622, 622, 622, 622, 654, 654, 654, 654, 1104, 1104, 1136, 1136, 1168, 1168, 1200, 1200, 1232, 1232, 1264, 1264, 686, 686, 686, 686, 1360, 1360, 1392, 1392, 12, 12, 12, 12, 12, 12, 12, 12, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390]), type$.JSArray_int); + B.List_qQn0 = A._setArrayType(makeConstList([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]), type$.JSArray_int); + B.List_qQn1 = A._setArrayType(makeConstList([0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0]), type$.JSArray_int); + B.List_qQn = A._setArrayType(makeConstList([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258]), type$.JSArray_int); + B.List_173_148_140 = A._setArrayType(makeConstList([173, 148, 140]), type$.JSArray_int); + B.List_176_155_140_135 = A._setArrayType(makeConstList([176, 155, 140, 135]), type$.JSArray_int); + B.List_yTu0 = A._setArrayType(makeConstList([180, 157, 141, 134, 130]), type$.JSArray_int); + B.List_2hT8 = A._setArrayType(makeConstList([254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129]), type$.JSArray_int); + B.List_sao = A._setArrayType(makeConstList([B.List_173_148_140, B.List_176_155_140_135, B.List_yTu0, B.List_2hT8]), type$.JSArray_List_int); + B.List_sty = A._setArrayType(makeConstList([A.vp8_filter_VP8Filter_DC4$closure(), A.vp8_filter_VP8Filter_TM4$closure(), A.vp8_filter_VP8Filter_VE4$closure(), A.vp8_filter_VP8Filter_HE4$closure(), A.vp8_filter_VP8Filter_RD4$closure(), A.vp8_filter_VP8Filter_VR4$closure(), A.vp8_filter_VP8Filter_LD4$closure(), A.vp8_filter_VP8Filter_VL4$closure(), A.vp8_filter_VP8Filter_HD4$closure(), A.vp8_filter_VP8Filter_HU4$closure()]), type$.JSArray_of_void_Function_InputBuffer); + B.List_uRr = A._setArrayType(makeConstList([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535]), type$.JSArray_int); + B.List_uSC1 = A._setArrayType(makeConstList([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]), type$.JSArray_int); + B.List_uSC = A._setArrayType(makeConstList([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), type$.JSArray_int); + B.List_uSC0 = A._setArrayType(makeConstList([17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]), type$.JSArray_int); + B.List_wmc = A._setArrayType(makeConstList([127, 127, 191, 127, 159, 191, 223, 127, 143, 159, 175, 191, 207, 223, 239, 127, 135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247, 127, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 183, 187, 191, 195, 199, 203, 207, 211, 215, 219, 223, 227, 231, 235, 239, 243, 247, 251, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 127]), type$.JSArray_int); + B.List_yTu = A._setArrayType(makeConstList([280, 256, 256, 256, 40]), type$.JSArray_int); + B.List_yYQ = A._setArrayType(makeConstList([0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 0]), type$.JSArray_int); + B.List_61n = A._setArrayType(makeConstList(["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "#", "$", "%", "*", "+", ",", "-", ".", ":", ";", "=", "?", "@", "[", "]", "^", "_", "{", "|", "}", "~"]), type$.JSArray_String); + B.Map_61Q1t = new A.ConstantStringMap(83, {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, G: 16, H: 17, I: 18, J: 19, K: 20, L: 21, M: 22, N: 23, O: 24, P: 25, Q: 26, R: 27, S: 28, T: 29, U: 30, V: 31, W: 32, X: 33, Y: 34, Z: 35, a: 36, b: 37, c: 38, d: 39, e: 40, f: 41, g: 42, h: 43, i: 44, j: 45, k: 46, l: 47, m: 48, n: 49, o: 50, p: 51, q: 52, r: 53, s: 54, t: 55, u: 56, v: 57, w: 58, x: 59, y: 60, z: 61, "#": 62, $: 63, "%": 64, "*": 65, "+": 66, ",": 67, "-": 68, ".": 69, ":": 70, ";": 71, "=": 72, "?": 73, "@": 74, "[": 75, "]": 76, "^": 77, _: 78, "{": 79, "|": 80, "}": 81, "~": 82}, B.List_61n, A.findType("ConstantStringMap")); + B.Map_6zffn = new A.GeneralConstantMap([315, "artist", 258, "bitsPerSample", 265, "cellLength", 264, "cellWidth", 320, "colorMap", 259, "compression", 306, "dateTime", 34665, "exifIFD", 338, "extraSamples", 266, "fillOrder", 289, "freeByteCounts", 288, "freeOffsets", 291, "grayResponseCurve", 290, "grayResponseUnit", 316, "hostComputer", 34675, "iccProfile", 270, "imageDescription", 257, "imageLength", 256, "imageWidth", 33723, "iptc", 271, "make", 281, "maxSampleValue", 280, "minSampleValue", 272, "model", 254, "newSubfileType", 274, "orientation", 262, "photometricInterpretation", 34377, "photoshop", 284, "planarConfiguration", 317, "predictor", 296, "resolutionUnit", 278, "rowsPerStrip", 277, "samplesPerPixel", 305, "software", 279, "stripByteCounts", 273, "stropOffsets", 255, "subfileType", 292, "t4Options", 293, "t6Options", 263, "thresholding", 322, "tileWidth", 323, "tileLength", 324, "tileOffsets", 325, "tileByteCounts", 700, "xmp", 282, "xResolution", 283, "yResolution", 529, "yCbCrCoefficients", 530, "yCbCrSubsampling", 531, "yCbCrPositioning", 339, "sampleFormat"], A.findType("GeneralConstantMap")); + B.List_empty0 = A._setArrayType(makeConstList([]), A.findType("JSArray")); + B.Map_empty = new A.ConstantStringMap(0, {}, B.List_empty0, A.findType("ConstantStringMap")); + B.Symbol_call = new A.Symbol("call"); + B.Type_Object_xQ6 = A.typeLiteral("Object"); + B.Utf8Decoder_true = new A.Utf8Decoder(true); + B._IterationMarker_null_2 = new A._IterationMarker(null, 2); + })(); + (function staticFields() { + $._JS_INTEROP_INTERCEPTOR_TAG = null; + $.Primitives__identityHashCodeProperty = null; + $.BoundClosure__receiverFieldNameCache = null; + $.BoundClosure__interceptorFieldNameCache = null; + $.getTagFunction = null; + $.alternateTagFunction = null; + $.prototypeForTagFunction = null; + $.dispatchRecordsForInstanceTags = null; + $.interceptorsForUncacheableTags = null; + $.initNativeDispatchFlag = null; + $._nextCallback = null; + $._lastCallback = null; + $._lastPriorityCallback = null; + $._isInCallbackLoop = false; + $.Zone__current = B.C__RootZone; + $._toStringVisiting = A._setArrayType([], A.findType("JSArray")); + $.Deflate____config = A._Cell$named("_config"); + $._dctClip = null; + $.VP8Filter__tablesInitialized = false; + $.VP8LTransform_PREDICTORS = A._setArrayType([A.vp8l_transform_VP8LTransform__predictor0$closure(), A.vp8l_transform_VP8LTransform__predictor1$closure(), A.vp8l_transform_VP8LTransform__predictor2$closure(), A.vp8l_transform_VP8LTransform__predictor3$closure(), A.vp8l_transform_VP8LTransform__predictor4$closure(), A.vp8l_transform_VP8LTransform__predictor5$closure(), A.vp8l_transform_VP8LTransform__predictor6$closure(), A.vp8l_transform_VP8LTransform__predictor7$closure(), A.vp8l_transform_VP8LTransform__predictor8$closure(), A.vp8l_transform_VP8LTransform__predictor9$closure(), A.vp8l_transform_VP8LTransform__predictor10$closure(), A.vp8l_transform_VP8LTransform__predictor11$closure(), A.vp8l_transform_VP8LTransform__predictor12$closure(), A.vp8l_transform_VP8LTransform__predictor13$closure(), A.vp8l_transform_VP8LTransform__predictor0$closure(), A.vp8l_transform_VP8LTransform__predictor0$closure()], A.findType("JSArray")); + $.Half__toFloatUint32 = null; + $.Half__toFloatFloat32 = null; + $.Half____eLut = A._Cell$named("_eLut"); + })(); + (function lazyInitializers() { + var _lazyFinal = hunkHelpers.lazyFinal, + _lazy = hunkHelpers.lazy; + _lazyFinal($, "DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure")); + _lazyFinal($, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethodPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({ + toString: function() { + return "$receiver$"; + } + }))); + _lazyFinal($, "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({$method$: null, + toString: function() { + return "$receiver$"; + } + }))); + _lazyFinal($, "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn(null))); + _lazyFinal($, "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiteralCallPattern", () => A.TypeErrorDecoder_extractPattern(function() { + var $argumentsExpr$ = "$arguments$"; + try { + null.$method$($argumentsExpr$); + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCallPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn(void 0))); + _lazyFinal($, "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_undefinedLiteralCallPattern", () => A.TypeErrorDecoder_extractPattern(function() { + var $argumentsExpr$ = "$arguments$"; + try { + (void 0).$method$($argumentsExpr$); + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullPropertyPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokePropertyErrorOn(null))); + _lazyFinal($, "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullLiteralPropertyPattern", () => A.TypeErrorDecoder_extractPattern(function() { + try { + null.$method$; + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefinedPropertyPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokePropertyErrorOn(void 0))); + _lazyFinal($, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_undefinedLiteralPropertyPattern", () => A.TypeErrorDecoder_extractPattern(function() { + try { + (void 0).$method$; + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "_AsyncRun__scheduleImmediateClosure", "$get$_AsyncRun__scheduleImmediateClosure", () => A._AsyncRun__initializeScheduleImmediate()); + _lazyFinal($, "Utf8Decoder__decoder", "$get$Utf8Decoder__decoder", () => new A.Utf8Decoder__decoder_closure().call$0()); + _lazyFinal($, "Utf8Decoder__decoderNonfatal", "$get$Utf8Decoder__decoderNonfatal", () => new A.Utf8Decoder__decoderNonfatal_closure().call$0()); + _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_xQ6)); + _lazyFinal($, "_context", "$get$_context", () => A._wrapToDart(self)); + _lazyFinal($, "_DART_OBJECT_PROPERTY_NAME", "$get$_DART_OBJECT_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartObject")); + _lazyFinal($, "_dartProxyCtor", "$get$_dartProxyCtor", () => function DartObject(o) { + this.o = o; + }); + _lazyFinal($, "_StaticTree_staticLDesc", "$get$_StaticTree_staticLDesc", () => A._StaticTree$(B.List_Xg4, B.List_qQn0, 257, 286, 15)); + _lazyFinal($, "_StaticTree_staticDDesc", "$get$_StaticTree_staticDDesc", () => A._StaticTree$(B.List_iYO, B.List_X3d0, 0, 30, 15)); + _lazyFinal($, "_StaticTree_staticBlDesc", "$get$_StaticTree_staticBlDesc", () => A._StaticTree$(null, B.List_uSC1, 0, 19, 7)); + _lazy($, "VP8Filter_abs0", "$get$VP8Filter_abs0", () => A.NativeUint8List_NativeUint8List(511)); + _lazy($, "VP8Filter_abs1", "$get$VP8Filter_abs1", () => A.NativeUint8List_NativeUint8List(511)); + _lazy($, "VP8Filter_sclip1", "$get$VP8Filter_sclip1", () => A.NativeInt8List_NativeInt8List(2041)); + _lazy($, "VP8Filter_sclip2", "$get$VP8Filter_sclip2", () => A.NativeInt8List_NativeInt8List(225)); + _lazy($, "VP8Filter_clip1", "$get$VP8Filter_clip1", () => A.NativeUint8List_NativeUint8List(766)); + _lazyFinal($, "__uint8", "$get$__uint8", () => A.NativeUint8List_NativeUint8List(1)); + _lazyFinal($, "__uint8ToInt8", "$get$__uint8ToInt8", () => { + var t1 = $.$get$__uint8().buffer; + A._checkViewArguments(t1, 0, null); + t1 = new Int8Array(t1, 0); + return t1; + }); + _lazyFinal($, "__uint16", "$get$__uint16", () => A.NativeUint16List_NativeUint16List(1)); + _lazyFinal($, "__uint16ToInt16", "$get$__uint16ToInt16", () => { + var $length, + t1 = $.$get$__uint16().buffer; + A._checkViewArguments(t1, 0, null); + $length = B.JSInt_methods._tdivFast$1(t1.byteLength - 0, 2); + return new Int16Array(t1, 0, $length); + }); + _lazyFinal($, "__uint32", "$get$__uint32", () => A.NativeUint32List_NativeUint32List(1)); + _lazyFinal($, "__uint32ToInt32", "$get$__uint32ToInt32", () => { + var $length, + t1 = $.$get$__uint32().buffer; + A._checkViewArguments(t1, 0, null); + $length = B.JSInt_methods._tdivFast$1(t1.byteLength - 0, 4); + return new Int32Array(t1, 0, $length); + }); + _lazyFinal($, "__uint32ToFloat32", "$get$__uint32ToFloat32", () => A.Float32List_Float32List$view($.$get$__uint32().buffer)); + _lazyFinal($, "__int32", "$get$__int32", () => A.NativeInt32List_NativeInt32List(1)); + _lazyFinal($, "__int32ToUint32", "$get$__int32ToUint32", () => A.Uint32List_Uint32List$view($.$get$__int32().buffer, 0)); + _lazyFinal($, "__float32", "$get$__float32", () => A.NativeFloat32List_NativeFloat32List(1)); + _lazyFinal($, "__float32ToUint32", "$get$__float32ToUint32", () => A.Uint32List_Uint32List$view($.$get$__float32().buffer, 0)); + _lazyFinal($, "__uint64", "$get$__uint64", () => A.Uint64List_Uint64List(1)); + _lazyFinal($, "__uint64ToFloat64", "$get$__uint64ToFloat64", () => { + var t1 = $.$get$__uint64(); + return A.Float64List_Float64List$view(t1.get$buffer(t1)); + }); + _lazyFinal($, "Logs__singleton", "$get$Logs__singleton", () => new A.Logs(A._setArrayType([], A.findType("JSArray")))); + })(); + (function nativeSupport() { + !function() { + var intern = function(s) { + var o = {}; + o[s] = 1; + return Object.keys(hunkHelpers.convertToFastObject(o))[0]; + }; + init.getIsolateTag = function(name) { + return intern("___dart_" + name + init.isolateTag); + }; + var tableProperty = "___dart_isolate_tags_"; + var usedProperties = Object[tableProperty] || (Object[tableProperty] = Object.create(null)); + var rootProperty = "_ZxYxX"; + for (var i = 0;; i++) { + var property = intern(rootProperty + "_" + i + "_"); + if (!(property in usedProperties)) { + usedProperties[property] = 1; + init.isolateTag = property; + break; + } + } + init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); + }(); + hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer: J.Interceptor, WebGL: J.Interceptor, AnimationEffectReadOnly: J.JavaScriptObject, AnimationEffectTiming: J.JavaScriptObject, AnimationEffectTimingReadOnly: J.JavaScriptObject, AnimationTimeline: J.JavaScriptObject, AnimationWorkletGlobalScope: J.JavaScriptObject, AuthenticatorAssertionResponse: J.JavaScriptObject, AuthenticatorAttestationResponse: J.JavaScriptObject, AuthenticatorResponse: J.JavaScriptObject, BackgroundFetchFetch: J.JavaScriptObject, BackgroundFetchManager: J.JavaScriptObject, BackgroundFetchSettledFetch: J.JavaScriptObject, BarProp: J.JavaScriptObject, BarcodeDetector: J.JavaScriptObject, BluetoothRemoteGATTDescriptor: J.JavaScriptObject, Body: J.JavaScriptObject, BudgetState: J.JavaScriptObject, CacheStorage: J.JavaScriptObject, CanvasGradient: J.JavaScriptObject, CanvasPattern: J.JavaScriptObject, CanvasRenderingContext2D: J.JavaScriptObject, Client: J.JavaScriptObject, Clients: J.JavaScriptObject, CookieStore: J.JavaScriptObject, Coordinates: J.JavaScriptObject, Credential: J.JavaScriptObject, CredentialUserData: J.JavaScriptObject, CredentialsContainer: J.JavaScriptObject, Crypto: J.JavaScriptObject, CryptoKey: J.JavaScriptObject, CSS: J.JavaScriptObject, CSSVariableReferenceValue: J.JavaScriptObject, CustomElementRegistry: J.JavaScriptObject, DataTransfer: J.JavaScriptObject, DataTransferItem: J.JavaScriptObject, DeprecatedStorageInfo: J.JavaScriptObject, DeprecatedStorageQuota: J.JavaScriptObject, DeprecationReport: J.JavaScriptObject, DetectedBarcode: J.JavaScriptObject, DetectedFace: J.JavaScriptObject, DetectedText: J.JavaScriptObject, DeviceAcceleration: J.JavaScriptObject, DeviceRotationRate: J.JavaScriptObject, DirectoryEntry: J.JavaScriptObject, webkitFileSystemDirectoryEntry: J.JavaScriptObject, FileSystemDirectoryEntry: J.JavaScriptObject, DirectoryReader: J.JavaScriptObject, WebKitDirectoryReader: J.JavaScriptObject, webkitFileSystemDirectoryReader: J.JavaScriptObject, FileSystemDirectoryReader: J.JavaScriptObject, DocumentOrShadowRoot: J.JavaScriptObject, DocumentTimeline: J.JavaScriptObject, DOMError: J.JavaScriptObject, DOMImplementation: J.JavaScriptObject, Iterator: J.JavaScriptObject, DOMMatrix: J.JavaScriptObject, DOMMatrixReadOnly: J.JavaScriptObject, DOMParser: J.JavaScriptObject, DOMPoint: J.JavaScriptObject, DOMPointReadOnly: J.JavaScriptObject, DOMQuad: J.JavaScriptObject, DOMStringMap: J.JavaScriptObject, Entry: J.JavaScriptObject, webkitFileSystemEntry: J.JavaScriptObject, FileSystemEntry: J.JavaScriptObject, External: J.JavaScriptObject, FaceDetector: J.JavaScriptObject, FederatedCredential: J.JavaScriptObject, FileEntry: J.JavaScriptObject, webkitFileSystemFileEntry: J.JavaScriptObject, FileSystemFileEntry: J.JavaScriptObject, DOMFileSystem: J.JavaScriptObject, WebKitFileSystem: J.JavaScriptObject, webkitFileSystem: J.JavaScriptObject, FileSystem: J.JavaScriptObject, FontFace: J.JavaScriptObject, FontFaceSource: J.JavaScriptObject, FormData: J.JavaScriptObject, GamepadButton: J.JavaScriptObject, GamepadPose: J.JavaScriptObject, Geolocation: J.JavaScriptObject, Position: J.JavaScriptObject, GeolocationPosition: J.JavaScriptObject, Headers: J.JavaScriptObject, HTMLHyperlinkElementUtils: J.JavaScriptObject, IdleDeadline: J.JavaScriptObject, ImageBitmap: J.JavaScriptObject, ImageBitmapRenderingContext: J.JavaScriptObject, ImageCapture: J.JavaScriptObject, InputDeviceCapabilities: J.JavaScriptObject, IntersectionObserver: J.JavaScriptObject, IntersectionObserverEntry: J.JavaScriptObject, InterventionReport: J.JavaScriptObject, KeyframeEffect: J.JavaScriptObject, KeyframeEffectReadOnly: J.JavaScriptObject, MediaCapabilities: J.JavaScriptObject, MediaCapabilitiesInfo: J.JavaScriptObject, MediaDeviceInfo: J.JavaScriptObject, MediaError: J.JavaScriptObject, MediaKeyStatusMap: J.JavaScriptObject, MediaKeySystemAccess: J.JavaScriptObject, MediaKeys: J.JavaScriptObject, MediaKeysPolicy: J.JavaScriptObject, MediaMetadata: J.JavaScriptObject, MediaSession: J.JavaScriptObject, MediaSettingsRange: J.JavaScriptObject, MemoryInfo: J.JavaScriptObject, MessageChannel: J.JavaScriptObject, Metadata: J.JavaScriptObject, MutationObserver: J.JavaScriptObject, WebKitMutationObserver: J.JavaScriptObject, MutationRecord: J.JavaScriptObject, NavigationPreloadManager: J.JavaScriptObject, Navigator: J.JavaScriptObject, NavigatorAutomationInformation: J.JavaScriptObject, NavigatorConcurrentHardware: J.JavaScriptObject, NavigatorCookies: J.JavaScriptObject, NavigatorUserMediaError: J.JavaScriptObject, NodeFilter: J.JavaScriptObject, NodeIterator: J.JavaScriptObject, NonDocumentTypeChildNode: J.JavaScriptObject, NonElementParentNode: J.JavaScriptObject, NoncedElement: J.JavaScriptObject, OffscreenCanvasRenderingContext2D: J.JavaScriptObject, OverconstrainedError: J.JavaScriptObject, PaintRenderingContext2D: J.JavaScriptObject, PaintSize: J.JavaScriptObject, PaintWorkletGlobalScope: J.JavaScriptObject, PasswordCredential: J.JavaScriptObject, Path2D: J.JavaScriptObject, PaymentAddress: J.JavaScriptObject, PaymentInstruments: J.JavaScriptObject, PaymentManager: J.JavaScriptObject, PaymentResponse: J.JavaScriptObject, PerformanceEntry: J.JavaScriptObject, PerformanceLongTaskTiming: J.JavaScriptObject, PerformanceMark: J.JavaScriptObject, PerformanceMeasure: J.JavaScriptObject, PerformanceNavigation: J.JavaScriptObject, PerformanceNavigationTiming: J.JavaScriptObject, PerformanceObserver: J.JavaScriptObject, PerformanceObserverEntryList: J.JavaScriptObject, PerformancePaintTiming: J.JavaScriptObject, PerformanceResourceTiming: J.JavaScriptObject, PerformanceServerTiming: J.JavaScriptObject, PerformanceTiming: J.JavaScriptObject, Permissions: J.JavaScriptObject, PhotoCapabilities: J.JavaScriptObject, PositionError: J.JavaScriptObject, GeolocationPositionError: J.JavaScriptObject, Presentation: J.JavaScriptObject, PresentationReceiver: J.JavaScriptObject, PublicKeyCredential: J.JavaScriptObject, PushManager: J.JavaScriptObject, PushMessageData: J.JavaScriptObject, PushSubscription: J.JavaScriptObject, PushSubscriptionOptions: J.JavaScriptObject, Range: J.JavaScriptObject, RelatedApplication: J.JavaScriptObject, ReportBody: J.JavaScriptObject, ReportingObserver: J.JavaScriptObject, ResizeObserver: J.JavaScriptObject, ResizeObserverEntry: J.JavaScriptObject, RTCCertificate: J.JavaScriptObject, RTCIceCandidate: J.JavaScriptObject, mozRTCIceCandidate: J.JavaScriptObject, RTCLegacyStatsReport: J.JavaScriptObject, RTCRtpContributingSource: J.JavaScriptObject, RTCRtpReceiver: J.JavaScriptObject, RTCRtpSender: J.JavaScriptObject, RTCSessionDescription: J.JavaScriptObject, mozRTCSessionDescription: J.JavaScriptObject, RTCStatsResponse: J.JavaScriptObject, Screen: J.JavaScriptObject, ScrollState: J.JavaScriptObject, ScrollTimeline: J.JavaScriptObject, Selection: J.JavaScriptObject, SharedArrayBuffer: J.JavaScriptObject, SpeechRecognitionAlternative: J.JavaScriptObject, SpeechSynthesisVoice: J.JavaScriptObject, StaticRange: J.JavaScriptObject, StorageManager: J.JavaScriptObject, StyleMedia: J.JavaScriptObject, StylePropertyMap: J.JavaScriptObject, StylePropertyMapReadonly: J.JavaScriptObject, SyncManager: J.JavaScriptObject, TaskAttributionTiming: J.JavaScriptObject, TextDetector: J.JavaScriptObject, TextMetrics: J.JavaScriptObject, TrackDefault: J.JavaScriptObject, TreeWalker: J.JavaScriptObject, TrustedHTML: J.JavaScriptObject, TrustedScriptURL: J.JavaScriptObject, TrustedURL: J.JavaScriptObject, UnderlyingSourceBase: J.JavaScriptObject, URLSearchParams: J.JavaScriptObject, VRCoordinateSystem: J.JavaScriptObject, VRDisplayCapabilities: J.JavaScriptObject, VREyeParameters: J.JavaScriptObject, VRFrameData: J.JavaScriptObject, VRFrameOfReference: J.JavaScriptObject, VRPose: J.JavaScriptObject, VRStageBounds: J.JavaScriptObject, VRStageBoundsPoint: J.JavaScriptObject, VRStageParameters: J.JavaScriptObject, ValidityState: J.JavaScriptObject, VideoPlaybackQuality: J.JavaScriptObject, VideoTrack: J.JavaScriptObject, VTTRegion: J.JavaScriptObject, WindowClient: J.JavaScriptObject, WorkletAnimation: J.JavaScriptObject, WorkletGlobalScope: J.JavaScriptObject, XPathEvaluator: J.JavaScriptObject, XPathExpression: J.JavaScriptObject, XPathNSResolver: J.JavaScriptObject, XPathResult: J.JavaScriptObject, XMLSerializer: J.JavaScriptObject, XSLTProcessor: J.JavaScriptObject, Bluetooth: J.JavaScriptObject, BluetoothCharacteristicProperties: J.JavaScriptObject, BluetoothRemoteGATTServer: J.JavaScriptObject, BluetoothRemoteGATTService: J.JavaScriptObject, BluetoothUUID: J.JavaScriptObject, BudgetService: J.JavaScriptObject, Cache: J.JavaScriptObject, DOMFileSystemSync: J.JavaScriptObject, DirectoryEntrySync: J.JavaScriptObject, DirectoryReaderSync: J.JavaScriptObject, EntrySync: J.JavaScriptObject, FileEntrySync: J.JavaScriptObject, FileReaderSync: J.JavaScriptObject, FileWriterSync: J.JavaScriptObject, HTMLAllCollection: J.JavaScriptObject, Mojo: J.JavaScriptObject, MojoHandle: J.JavaScriptObject, MojoWatcher: J.JavaScriptObject, NFC: J.JavaScriptObject, PagePopupController: J.JavaScriptObject, Report: J.JavaScriptObject, Request: J.JavaScriptObject, Response: J.JavaScriptObject, SubtleCrypto: J.JavaScriptObject, USBAlternateInterface: J.JavaScriptObject, USBConfiguration: J.JavaScriptObject, USBDevice: J.JavaScriptObject, USBEndpoint: J.JavaScriptObject, USBInTransferResult: J.JavaScriptObject, USBInterface: J.JavaScriptObject, USBIsochronousInTransferPacket: J.JavaScriptObject, USBIsochronousInTransferResult: J.JavaScriptObject, USBIsochronousOutTransferPacket: J.JavaScriptObject, USBIsochronousOutTransferResult: J.JavaScriptObject, USBOutTransferResult: J.JavaScriptObject, WorkerLocation: J.JavaScriptObject, WorkerNavigator: J.JavaScriptObject, Worklet: J.JavaScriptObject, IDBCursor: J.JavaScriptObject, IDBCursorWithValue: J.JavaScriptObject, IDBFactory: J.JavaScriptObject, IDBIndex: J.JavaScriptObject, IDBObjectStore: J.JavaScriptObject, IDBObservation: J.JavaScriptObject, IDBObserver: J.JavaScriptObject, IDBObserverChanges: J.JavaScriptObject, SVGAngle: J.JavaScriptObject, SVGAnimatedAngle: J.JavaScriptObject, SVGAnimatedBoolean: J.JavaScriptObject, SVGAnimatedEnumeration: J.JavaScriptObject, SVGAnimatedInteger: J.JavaScriptObject, SVGAnimatedLength: J.JavaScriptObject, SVGAnimatedLengthList: J.JavaScriptObject, SVGAnimatedNumber: J.JavaScriptObject, SVGAnimatedNumberList: J.JavaScriptObject, SVGAnimatedPreserveAspectRatio: J.JavaScriptObject, SVGAnimatedRect: J.JavaScriptObject, SVGAnimatedString: J.JavaScriptObject, SVGAnimatedTransformList: J.JavaScriptObject, SVGMatrix: J.JavaScriptObject, SVGPoint: J.JavaScriptObject, SVGPreserveAspectRatio: J.JavaScriptObject, SVGRect: J.JavaScriptObject, SVGUnitTypes: J.JavaScriptObject, AudioListener: J.JavaScriptObject, AudioParam: J.JavaScriptObject, AudioTrack: J.JavaScriptObject, AudioWorkletGlobalScope: J.JavaScriptObject, AudioWorkletProcessor: J.JavaScriptObject, PeriodicWave: J.JavaScriptObject, WebGLActiveInfo: J.JavaScriptObject, ANGLEInstancedArrays: J.JavaScriptObject, ANGLE_instanced_arrays: J.JavaScriptObject, WebGLBuffer: J.JavaScriptObject, WebGLCanvas: J.JavaScriptObject, WebGLColorBufferFloat: J.JavaScriptObject, WebGLCompressedTextureASTC: J.JavaScriptObject, WebGLCompressedTextureATC: J.JavaScriptObject, WEBGL_compressed_texture_atc: J.JavaScriptObject, WebGLCompressedTextureETC1: J.JavaScriptObject, WEBGL_compressed_texture_etc1: J.JavaScriptObject, WebGLCompressedTextureETC: J.JavaScriptObject, WebGLCompressedTexturePVRTC: J.JavaScriptObject, WEBGL_compressed_texture_pvrtc: J.JavaScriptObject, WebGLCompressedTextureS3TC: J.JavaScriptObject, WEBGL_compressed_texture_s3tc: J.JavaScriptObject, WebGLCompressedTextureS3TCsRGB: J.JavaScriptObject, WebGLDebugRendererInfo: J.JavaScriptObject, WEBGL_debug_renderer_info: J.JavaScriptObject, WebGLDebugShaders: J.JavaScriptObject, WEBGL_debug_shaders: J.JavaScriptObject, WebGLDepthTexture: J.JavaScriptObject, WEBGL_depth_texture: J.JavaScriptObject, WebGLDrawBuffers: J.JavaScriptObject, WEBGL_draw_buffers: J.JavaScriptObject, EXTsRGB: J.JavaScriptObject, EXT_sRGB: J.JavaScriptObject, EXTBlendMinMax: J.JavaScriptObject, EXT_blend_minmax: J.JavaScriptObject, EXTColorBufferFloat: J.JavaScriptObject, EXTColorBufferHalfFloat: J.JavaScriptObject, EXTDisjointTimerQuery: J.JavaScriptObject, EXTDisjointTimerQueryWebGL2: J.JavaScriptObject, EXTFragDepth: J.JavaScriptObject, EXT_frag_depth: J.JavaScriptObject, EXTShaderTextureLOD: J.JavaScriptObject, EXT_shader_texture_lod: J.JavaScriptObject, EXTTextureFilterAnisotropic: J.JavaScriptObject, EXT_texture_filter_anisotropic: J.JavaScriptObject, WebGLFramebuffer: J.JavaScriptObject, WebGLGetBufferSubDataAsync: J.JavaScriptObject, WebGLLoseContext: J.JavaScriptObject, WebGLExtensionLoseContext: J.JavaScriptObject, WEBGL_lose_context: J.JavaScriptObject, OESElementIndexUint: J.JavaScriptObject, OES_element_index_uint: J.JavaScriptObject, OESStandardDerivatives: J.JavaScriptObject, OES_standard_derivatives: J.JavaScriptObject, OESTextureFloat: J.JavaScriptObject, OES_texture_float: J.JavaScriptObject, OESTextureFloatLinear: J.JavaScriptObject, OES_texture_float_linear: J.JavaScriptObject, OESTextureHalfFloat: J.JavaScriptObject, OES_texture_half_float: J.JavaScriptObject, OESTextureHalfFloatLinear: J.JavaScriptObject, OES_texture_half_float_linear: J.JavaScriptObject, OESVertexArrayObject: J.JavaScriptObject, OES_vertex_array_object: J.JavaScriptObject, WebGLProgram: J.JavaScriptObject, WebGLQuery: J.JavaScriptObject, WebGLRenderbuffer: J.JavaScriptObject, WebGLRenderingContext: J.JavaScriptObject, WebGL2RenderingContext: J.JavaScriptObject, WebGLSampler: J.JavaScriptObject, WebGLShader: J.JavaScriptObject, WebGLShaderPrecisionFormat: J.JavaScriptObject, WebGLSync: J.JavaScriptObject, WebGLTexture: J.JavaScriptObject, WebGLTimerQueryEXT: J.JavaScriptObject, WebGLTransformFeedback: J.JavaScriptObject, WebGLUniformLocation: J.JavaScriptObject, WebGLVertexArrayObject: J.JavaScriptObject, WebGLVertexArrayObjectOES: J.JavaScriptObject, WebGL2RenderingContextBase: J.JavaScriptObject, DataView: A.NativeTypedData, ArrayBufferView: A.NativeTypedData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List, HTMLAudioElement: A.HtmlElement, HTMLBRElement: A.HtmlElement, HTMLBaseElement: A.HtmlElement, HTMLBodyElement: A.HtmlElement, HTMLButtonElement: A.HtmlElement, HTMLCanvasElement: A.HtmlElement, HTMLContentElement: A.HtmlElement, HTMLDListElement: A.HtmlElement, HTMLDataElement: A.HtmlElement, HTMLDataListElement: A.HtmlElement, HTMLDetailsElement: A.HtmlElement, HTMLDialogElement: A.HtmlElement, HTMLDivElement: A.HtmlElement, HTMLEmbedElement: A.HtmlElement, HTMLFieldSetElement: A.HtmlElement, HTMLHRElement: A.HtmlElement, HTMLHeadElement: A.HtmlElement, HTMLHeadingElement: A.HtmlElement, HTMLHtmlElement: A.HtmlElement, HTMLIFrameElement: A.HtmlElement, HTMLImageElement: A.HtmlElement, HTMLInputElement: A.HtmlElement, HTMLLIElement: A.HtmlElement, HTMLLabelElement: A.HtmlElement, HTMLLegendElement: A.HtmlElement, HTMLLinkElement: A.HtmlElement, HTMLMapElement: A.HtmlElement, HTMLMediaElement: A.HtmlElement, HTMLMenuElement: A.HtmlElement, HTMLMetaElement: A.HtmlElement, HTMLMeterElement: A.HtmlElement, HTMLModElement: A.HtmlElement, HTMLOListElement: A.HtmlElement, HTMLObjectElement: A.HtmlElement, HTMLOptGroupElement: A.HtmlElement, HTMLOptionElement: A.HtmlElement, HTMLOutputElement: A.HtmlElement, HTMLParagraphElement: A.HtmlElement, HTMLParamElement: A.HtmlElement, HTMLPictureElement: A.HtmlElement, HTMLPreElement: A.HtmlElement, HTMLProgressElement: A.HtmlElement, HTMLQuoteElement: A.HtmlElement, HTMLScriptElement: A.HtmlElement, HTMLShadowElement: A.HtmlElement, HTMLSlotElement: A.HtmlElement, HTMLSourceElement: A.HtmlElement, HTMLSpanElement: A.HtmlElement, HTMLStyleElement: A.HtmlElement, HTMLTableCaptionElement: A.HtmlElement, HTMLTableCellElement: A.HtmlElement, HTMLTableDataCellElement: A.HtmlElement, HTMLTableHeaderCellElement: A.HtmlElement, HTMLTableColElement: A.HtmlElement, HTMLTableElement: A.HtmlElement, HTMLTableRowElement: A.HtmlElement, HTMLTableSectionElement: A.HtmlElement, HTMLTemplateElement: A.HtmlElement, HTMLTextAreaElement: A.HtmlElement, HTMLTimeElement: A.HtmlElement, HTMLTitleElement: A.HtmlElement, HTMLTrackElement: A.HtmlElement, HTMLUListElement: A.HtmlElement, HTMLUnknownElement: A.HtmlElement, HTMLVideoElement: A.HtmlElement, HTMLDirectoryElement: A.HtmlElement, HTMLFontElement: A.HtmlElement, HTMLFrameElement: A.HtmlElement, HTMLFrameSetElement: A.HtmlElement, HTMLMarqueeElement: A.HtmlElement, HTMLElement: A.HtmlElement, AccessibleNodeList: A.AccessibleNodeList, HTMLAnchorElement: A.AnchorElement, HTMLAreaElement: A.AreaElement, Blob: A.Blob, CDATASection: A.CharacterData, CharacterData: A.CharacterData, Comment: A.CharacterData, ProcessingInstruction: A.CharacterData, Text: A.CharacterData, CSSPerspective: A.CssPerspective, CSSCharsetRule: A.CssRule, CSSConditionRule: A.CssRule, CSSFontFaceRule: A.CssRule, CSSGroupingRule: A.CssRule, CSSImportRule: A.CssRule, CSSKeyframeRule: A.CssRule, MozCSSKeyframeRule: A.CssRule, WebKitCSSKeyframeRule: A.CssRule, CSSKeyframesRule: A.CssRule, MozCSSKeyframesRule: A.CssRule, WebKitCSSKeyframesRule: A.CssRule, CSSMediaRule: A.CssRule, CSSNamespaceRule: A.CssRule, CSSPageRule: A.CssRule, CSSRule: A.CssRule, CSSStyleRule: A.CssRule, CSSSupportsRule: A.CssRule, CSSViewportRule: A.CssRule, CSSStyleDeclaration: A.CssStyleDeclaration, MSStyleCSSProperties: A.CssStyleDeclaration, CSS2Properties: A.CssStyleDeclaration, CSSImageValue: A.CssStyleValue, CSSKeywordValue: A.CssStyleValue, CSSNumericValue: A.CssStyleValue, CSSPositionValue: A.CssStyleValue, CSSResourceValue: A.CssStyleValue, CSSUnitValue: A.CssStyleValue, CSSURLImageValue: A.CssStyleValue, CSSStyleValue: A.CssStyleValue, CSSMatrixComponent: A.CssTransformComponent, CSSRotation: A.CssTransformComponent, CSSScale: A.CssTransformComponent, CSSSkew: A.CssTransformComponent, CSSTranslation: A.CssTransformComponent, CSSTransformComponent: A.CssTransformComponent, CSSTransformValue: A.CssTransformValue, CSSUnparsedValue: A.CssUnparsedValue, DataTransferItemList: A.DataTransferItemList, DOMException: A.DomException, ClientRectList: A.DomRectList, DOMRectList: A.DomRectList, DOMRectReadOnly: A.DomRectReadOnly, DOMStringList: A.DomStringList, DOMTokenList: A.DomTokenList, SVGAElement: A.Element, SVGAnimateElement: A.Element, SVGAnimateMotionElement: A.Element, SVGAnimateTransformElement: A.Element, SVGAnimationElement: A.Element, SVGCircleElement: A.Element, SVGClipPathElement: A.Element, SVGDefsElement: A.Element, SVGDescElement: A.Element, SVGDiscardElement: A.Element, SVGEllipseElement: A.Element, SVGFEBlendElement: A.Element, SVGFEColorMatrixElement: A.Element, SVGFEComponentTransferElement: A.Element, SVGFECompositeElement: A.Element, SVGFEConvolveMatrixElement: A.Element, SVGFEDiffuseLightingElement: A.Element, SVGFEDisplacementMapElement: A.Element, SVGFEDistantLightElement: A.Element, SVGFEFloodElement: A.Element, SVGFEFuncAElement: A.Element, SVGFEFuncBElement: A.Element, SVGFEFuncGElement: A.Element, SVGFEFuncRElement: A.Element, SVGFEGaussianBlurElement: A.Element, SVGFEImageElement: A.Element, SVGFEMergeElement: A.Element, SVGFEMergeNodeElement: A.Element, SVGFEMorphologyElement: A.Element, SVGFEOffsetElement: A.Element, SVGFEPointLightElement: A.Element, SVGFESpecularLightingElement: A.Element, SVGFESpotLightElement: A.Element, SVGFETileElement: A.Element, SVGFETurbulenceElement: A.Element, SVGFilterElement: A.Element, SVGForeignObjectElement: A.Element, SVGGElement: A.Element, SVGGeometryElement: A.Element, SVGGraphicsElement: A.Element, SVGImageElement: A.Element, SVGLineElement: A.Element, SVGLinearGradientElement: A.Element, SVGMarkerElement: A.Element, SVGMaskElement: A.Element, SVGMetadataElement: A.Element, SVGPathElement: A.Element, SVGPatternElement: A.Element, SVGPolygonElement: A.Element, SVGPolylineElement: A.Element, SVGRadialGradientElement: A.Element, SVGRectElement: A.Element, SVGScriptElement: A.Element, SVGSetElement: A.Element, SVGStopElement: A.Element, SVGStyleElement: A.Element, SVGElement: A.Element, SVGSVGElement: A.Element, SVGSwitchElement: A.Element, SVGSymbolElement: A.Element, SVGTSpanElement: A.Element, SVGTextContentElement: A.Element, SVGTextElement: A.Element, SVGTextPathElement: A.Element, SVGTextPositioningElement: A.Element, SVGTitleElement: A.Element, SVGUseElement: A.Element, SVGViewElement: A.Element, SVGGradientElement: A.Element, SVGComponentTransferFunctionElement: A.Element, SVGFEDropShadowElement: A.Element, SVGMPathElement: A.Element, Element: A.Element, AbortPaymentEvent: A.Event, AnimationEvent: A.Event, AnimationPlaybackEvent: A.Event, ApplicationCacheErrorEvent: A.Event, BackgroundFetchClickEvent: A.Event, BackgroundFetchEvent: A.Event, BackgroundFetchFailEvent: A.Event, BackgroundFetchedEvent: A.Event, BeforeInstallPromptEvent: A.Event, BeforeUnloadEvent: A.Event, BlobEvent: A.Event, CanMakePaymentEvent: A.Event, ClipboardEvent: A.Event, CloseEvent: A.Event, CompositionEvent: A.Event, CustomEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FocusEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, KeyboardEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MouseEvent: A.Event, DragEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PointerEvent: A.Event, PopStateEvent: A.Event, PresentationConnectionAvailableEvent: A.Event, PresentationConnectionCloseEvent: A.Event, ProgressEvent: A.Event, PromiseRejectionEvent: A.Event, PushEvent: A.Event, RTCDataChannelEvent: A.Event, RTCDTMFToneChangeEvent: A.Event, RTCPeerConnectionIceEvent: A.Event, RTCTrackEvent: A.Event, SecurityPolicyViolationEvent: A.Event, SensorErrorEvent: A.Event, SpeechRecognitionError: A.Event, SpeechRecognitionEvent: A.Event, SpeechSynthesisEvent: A.Event, StorageEvent: A.Event, SyncEvent: A.Event, TextEvent: A.Event, TouchEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, UIEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, WheelEvent: A.Event, MojoInterfaceRequestEvent: A.Event, ResourceProgressEvent: A.Event, USBConnectionEvent: A.Event, AudioProcessingEvent: A.Event, OfflineAudioCompletionEvent: A.Event, WebGLContextEvent: A.Event, Event: A.Event, InputEvent: A.Event, SubmitEvent: A.Event, AbsoluteOrientationSensor: A.EventTarget, Accelerometer: A.EventTarget, AccessibleNode: A.EventTarget, AmbientLightSensor: A.EventTarget, Animation: A.EventTarget, ApplicationCache: A.EventTarget, DOMApplicationCache: A.EventTarget, OfflineResourceList: A.EventTarget, BackgroundFetchRegistration: A.EventTarget, BatteryManager: A.EventTarget, BroadcastChannel: A.EventTarget, CanvasCaptureMediaStreamTrack: A.EventTarget, EventSource: A.EventTarget, FileReader: A.EventTarget, FontFaceSet: A.EventTarget, Gyroscope: A.EventTarget, XMLHttpRequest: A.EventTarget, XMLHttpRequestEventTarget: A.EventTarget, XMLHttpRequestUpload: A.EventTarget, LinearAccelerationSensor: A.EventTarget, Magnetometer: A.EventTarget, MediaDevices: A.EventTarget, MediaKeySession: A.EventTarget, MediaQueryList: A.EventTarget, MediaRecorder: A.EventTarget, MediaSource: A.EventTarget, MediaStream: A.EventTarget, MediaStreamTrack: A.EventTarget, MessagePort: A.EventTarget, MIDIAccess: A.EventTarget, MIDIInput: A.EventTarget, MIDIOutput: A.EventTarget, MIDIPort: A.EventTarget, NetworkInformation: A.EventTarget, Notification: A.EventTarget, OffscreenCanvas: A.EventTarget, OrientationSensor: A.EventTarget, PaymentRequest: A.EventTarget, Performance: A.EventTarget, PermissionStatus: A.EventTarget, PresentationAvailability: A.EventTarget, PresentationConnection: A.EventTarget, PresentationConnectionList: A.EventTarget, PresentationRequest: A.EventTarget, RelativeOrientationSensor: A.EventTarget, RemotePlayback: A.EventTarget, RTCDataChannel: A.EventTarget, DataChannel: A.EventTarget, RTCDTMFSender: A.EventTarget, RTCPeerConnection: A.EventTarget, webkitRTCPeerConnection: A.EventTarget, mozRTCPeerConnection: A.EventTarget, ScreenOrientation: A.EventTarget, Sensor: A.EventTarget, ServiceWorker: A.EventTarget, ServiceWorkerContainer: A.EventTarget, ServiceWorkerRegistration: A.EventTarget, SharedWorker: A.EventTarget, SpeechRecognition: A.EventTarget, SpeechSynthesis: A.EventTarget, SpeechSynthesisUtterance: A.EventTarget, VR: A.EventTarget, VRDevice: A.EventTarget, VRDisplay: A.EventTarget, VRSession: A.EventTarget, VisualViewport: A.EventTarget, WebSocket: A.EventTarget, Worker: A.EventTarget, WorkerPerformance: A.EventTarget, BluetoothDevice: A.EventTarget, BluetoothRemoteGATTCharacteristic: A.EventTarget, Clipboard: A.EventTarget, MojoInterfaceInterceptor: A.EventTarget, USB: A.EventTarget, IDBDatabase: A.EventTarget, IDBTransaction: A.EventTarget, AnalyserNode: A.EventTarget, RealtimeAnalyserNode: A.EventTarget, AudioBufferSourceNode: A.EventTarget, AudioDestinationNode: A.EventTarget, AudioNode: A.EventTarget, AudioScheduledSourceNode: A.EventTarget, AudioWorkletNode: A.EventTarget, BiquadFilterNode: A.EventTarget, ChannelMergerNode: A.EventTarget, AudioChannelMerger: A.EventTarget, ChannelSplitterNode: A.EventTarget, AudioChannelSplitter: A.EventTarget, ConstantSourceNode: A.EventTarget, ConvolverNode: A.EventTarget, DelayNode: A.EventTarget, DynamicsCompressorNode: A.EventTarget, GainNode: A.EventTarget, AudioGainNode: A.EventTarget, IIRFilterNode: A.EventTarget, MediaElementAudioSourceNode: A.EventTarget, MediaStreamAudioDestinationNode: A.EventTarget, MediaStreamAudioSourceNode: A.EventTarget, OscillatorNode: A.EventTarget, Oscillator: A.EventTarget, PannerNode: A.EventTarget, AudioPannerNode: A.EventTarget, webkitAudioPannerNode: A.EventTarget, ScriptProcessorNode: A.EventTarget, JavaScriptAudioNode: A.EventTarget, StereoPannerNode: A.EventTarget, WaveShaperNode: A.EventTarget, EventTarget: A.EventTarget, File: A.File, FileList: A.FileList, FileWriter: A.FileWriter, HTMLFormElement: A.FormElement, Gamepad: A.Gamepad, History: A.History, HTMLCollection: A.HtmlCollection, HTMLFormControlsCollection: A.HtmlCollection, HTMLOptionsCollection: A.HtmlCollection, ImageData: A.ImageData, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, MIDIInputMap: A.MidiInputMap, MIDIOutputMap: A.MidiOutputMap, MimeType: A.MimeType, MimeTypeArray: A.MimeTypeArray, Document: A.Node, DocumentFragment: A.Node, HTMLDocument: A.Node, ShadowRoot: A.Node, XMLDocument: A.Node, Attr: A.Node, DocumentType: A.Node, Node: A.Node, NodeList: A.NodeList, RadioNodeList: A.NodeList, Plugin: A.Plugin, PluginArray: A.PluginArray, RTCStatsReport: A.RtcStatsReport, HTMLSelectElement: A.SelectElement, SourceBuffer: A.SourceBuffer, SourceBufferList: A.SourceBufferList, SpeechGrammar: A.SpeechGrammar, SpeechGrammarList: A.SpeechGrammarList, SpeechRecognitionResult: A.SpeechRecognitionResult, Storage: A.Storage, CSSStyleSheet: A.StyleSheet, StyleSheet: A.StyleSheet, TextTrack: A.TextTrack, TextTrackCue: A.TextTrackCue, VTTCue: A.TextTrackCue, TextTrackCueList: A.TextTrackCueList, TextTrackList: A.TextTrackList, TimeRanges: A.TimeRanges, Touch: A.Touch, TouchList: A.TouchList, TrackDefaultList: A.TrackDefaultList, URL: A.Url, VideoTrackList: A.VideoTrackList, Window: A.Window, DOMWindow: A.Window, DedicatedWorkerGlobalScope: A.WorkerGlobalScope, ServiceWorkerGlobalScope: A.WorkerGlobalScope, SharedWorkerGlobalScope: A.WorkerGlobalScope, WorkerGlobalScope: A.WorkerGlobalScope, CSSRuleList: A._CssRuleList, ClientRect: A._DomRect, DOMRect: A._DomRect, GamepadList: A._GamepadList, NamedNodeMap: A._NamedNodeMap, MozNamedAttrMap: A._NamedNodeMap, SpeechRecognitionResultList: A._SpeechRecognitionResultList, StyleSheetList: A._StyleSheetList, IDBKeyRange: A.KeyRange, IDBOpenDBRequest: A.Request, IDBVersionChangeRequest: A.Request, IDBRequest: A.Request, IDBVersionChangeEvent: A.VersionChangeEvent, SVGLength: A.Length, SVGLengthList: A.LengthList, SVGNumber: A.Number, SVGNumberList: A.NumberList, SVGPointList: A.PointList, SVGStringList: A.StringList, SVGTransform: A.Transform, SVGTransformList: A.TransformList, AudioBuffer: A.AudioBuffer, AudioParamMap: A.AudioParamMap, AudioTrackList: A.AudioTrackList, AudioContext: A.BaseAudioContext, webkitAudioContext: A.BaseAudioContext, BaseAudioContext: A.BaseAudioContext, OfflineAudioContext: A.OfflineAudioContext}); + hunkHelpers.setOrUpdateLeafTags({ArrayBuffer: true, WebGL: true, AnimationEffectReadOnly: true, AnimationEffectTiming: true, AnimationEffectTimingReadOnly: true, AnimationTimeline: true, AnimationWorkletGlobalScope: true, AuthenticatorAssertionResponse: true, AuthenticatorAttestationResponse: true, AuthenticatorResponse: true, BackgroundFetchFetch: true, BackgroundFetchManager: true, BackgroundFetchSettledFetch: true, BarProp: true, BarcodeDetector: true, BluetoothRemoteGATTDescriptor: true, Body: true, BudgetState: true, CacheStorage: true, CanvasGradient: true, CanvasPattern: true, CanvasRenderingContext2D: true, Client: true, Clients: true, CookieStore: true, Coordinates: true, Credential: true, CredentialUserData: true, CredentialsContainer: true, Crypto: true, CryptoKey: true, CSS: true, CSSVariableReferenceValue: true, CustomElementRegistry: true, DataTransfer: true, DataTransferItem: true, DeprecatedStorageInfo: true, DeprecatedStorageQuota: true, DeprecationReport: true, DetectedBarcode: true, DetectedFace: true, DetectedText: true, DeviceAcceleration: true, DeviceRotationRate: true, DirectoryEntry: true, webkitFileSystemDirectoryEntry: true, FileSystemDirectoryEntry: true, DirectoryReader: true, WebKitDirectoryReader: true, webkitFileSystemDirectoryReader: true, FileSystemDirectoryReader: true, DocumentOrShadowRoot: true, DocumentTimeline: true, DOMError: true, DOMImplementation: true, Iterator: true, DOMMatrix: true, DOMMatrixReadOnly: true, DOMParser: true, DOMPoint: true, DOMPointReadOnly: true, DOMQuad: true, DOMStringMap: true, Entry: true, webkitFileSystemEntry: true, FileSystemEntry: true, External: true, FaceDetector: true, FederatedCredential: true, FileEntry: true, webkitFileSystemFileEntry: true, FileSystemFileEntry: true, DOMFileSystem: true, WebKitFileSystem: true, webkitFileSystem: true, FileSystem: true, FontFace: true, FontFaceSource: true, FormData: true, GamepadButton: true, GamepadPose: true, Geolocation: true, Position: true, GeolocationPosition: true, Headers: true, HTMLHyperlinkElementUtils: true, IdleDeadline: true, ImageBitmap: true, ImageBitmapRenderingContext: true, ImageCapture: true, InputDeviceCapabilities: true, IntersectionObserver: true, IntersectionObserverEntry: true, InterventionReport: true, KeyframeEffect: true, KeyframeEffectReadOnly: true, MediaCapabilities: true, MediaCapabilitiesInfo: true, MediaDeviceInfo: true, MediaError: true, MediaKeyStatusMap: true, MediaKeySystemAccess: true, MediaKeys: true, MediaKeysPolicy: true, MediaMetadata: true, MediaSession: true, MediaSettingsRange: true, MemoryInfo: true, MessageChannel: true, Metadata: true, MutationObserver: true, WebKitMutationObserver: true, MutationRecord: true, NavigationPreloadManager: true, Navigator: true, NavigatorAutomationInformation: true, NavigatorConcurrentHardware: true, NavigatorCookies: true, NavigatorUserMediaError: true, NodeFilter: true, NodeIterator: true, NonDocumentTypeChildNode: true, NonElementParentNode: true, NoncedElement: true, OffscreenCanvasRenderingContext2D: true, OverconstrainedError: true, PaintRenderingContext2D: true, PaintSize: true, PaintWorkletGlobalScope: true, PasswordCredential: true, Path2D: true, PaymentAddress: true, PaymentInstruments: true, PaymentManager: true, PaymentResponse: true, PerformanceEntry: true, PerformanceLongTaskTiming: true, PerformanceMark: true, PerformanceMeasure: true, PerformanceNavigation: true, PerformanceNavigationTiming: true, PerformanceObserver: true, PerformanceObserverEntryList: true, PerformancePaintTiming: true, PerformanceResourceTiming: true, PerformanceServerTiming: true, PerformanceTiming: true, Permissions: true, PhotoCapabilities: true, PositionError: true, GeolocationPositionError: true, Presentation: true, PresentationReceiver: true, PublicKeyCredential: true, PushManager: true, PushMessageData: true, PushSubscription: true, PushSubscriptionOptions: true, Range: true, RelatedApplication: true, ReportBody: true, ReportingObserver: true, ResizeObserver: true, ResizeObserverEntry: true, RTCCertificate: true, RTCIceCandidate: true, mozRTCIceCandidate: true, RTCLegacyStatsReport: true, RTCRtpContributingSource: true, RTCRtpReceiver: true, RTCRtpSender: true, RTCSessionDescription: true, mozRTCSessionDescription: true, RTCStatsResponse: true, Screen: true, ScrollState: true, ScrollTimeline: true, Selection: true, SharedArrayBuffer: true, SpeechRecognitionAlternative: true, SpeechSynthesisVoice: true, StaticRange: true, StorageManager: true, StyleMedia: true, StylePropertyMap: true, StylePropertyMapReadonly: true, SyncManager: true, TaskAttributionTiming: true, TextDetector: true, TextMetrics: true, TrackDefault: true, TreeWalker: true, TrustedHTML: true, TrustedScriptURL: true, TrustedURL: true, UnderlyingSourceBase: true, URLSearchParams: true, VRCoordinateSystem: true, VRDisplayCapabilities: true, VREyeParameters: true, VRFrameData: true, VRFrameOfReference: true, VRPose: true, VRStageBounds: true, VRStageBoundsPoint: true, VRStageParameters: true, ValidityState: true, VideoPlaybackQuality: true, VideoTrack: true, VTTRegion: true, WindowClient: true, WorkletAnimation: true, WorkletGlobalScope: true, XPathEvaluator: true, XPathExpression: true, XPathNSResolver: true, XPathResult: true, XMLSerializer: true, XSLTProcessor: true, Bluetooth: true, BluetoothCharacteristicProperties: true, BluetoothRemoteGATTServer: true, BluetoothRemoteGATTService: true, BluetoothUUID: true, BudgetService: true, Cache: true, DOMFileSystemSync: true, DirectoryEntrySync: true, DirectoryReaderSync: true, EntrySync: true, FileEntrySync: true, FileReaderSync: true, FileWriterSync: true, HTMLAllCollection: true, Mojo: true, MojoHandle: true, MojoWatcher: true, NFC: true, PagePopupController: true, Report: true, Request: true, Response: true, SubtleCrypto: true, USBAlternateInterface: true, USBConfiguration: true, USBDevice: true, USBEndpoint: true, USBInTransferResult: true, USBInterface: true, USBIsochronousInTransferPacket: true, USBIsochronousInTransferResult: true, USBIsochronousOutTransferPacket: true, USBIsochronousOutTransferResult: true, USBOutTransferResult: true, WorkerLocation: true, WorkerNavigator: true, Worklet: true, IDBCursor: true, IDBCursorWithValue: true, IDBFactory: true, IDBIndex: true, IDBObjectStore: true, IDBObservation: true, IDBObserver: true, IDBObserverChanges: true, SVGAngle: true, SVGAnimatedAngle: true, SVGAnimatedBoolean: true, SVGAnimatedEnumeration: true, SVGAnimatedInteger: true, SVGAnimatedLength: true, SVGAnimatedLengthList: true, SVGAnimatedNumber: true, SVGAnimatedNumberList: true, SVGAnimatedPreserveAspectRatio: true, SVGAnimatedRect: true, SVGAnimatedString: true, SVGAnimatedTransformList: true, SVGMatrix: true, SVGPoint: true, SVGPreserveAspectRatio: true, SVGRect: true, SVGUnitTypes: true, AudioListener: true, AudioParam: true, AudioTrack: true, AudioWorkletGlobalScope: true, AudioWorkletProcessor: true, PeriodicWave: true, WebGLActiveInfo: true, ANGLEInstancedArrays: true, ANGLE_instanced_arrays: true, WebGLBuffer: true, WebGLCanvas: true, WebGLColorBufferFloat: true, WebGLCompressedTextureASTC: true, WebGLCompressedTextureATC: true, WEBGL_compressed_texture_atc: true, WebGLCompressedTextureETC1: true, WEBGL_compressed_texture_etc1: true, WebGLCompressedTextureETC: true, WebGLCompressedTexturePVRTC: true, WEBGL_compressed_texture_pvrtc: true, WebGLCompressedTextureS3TC: true, WEBGL_compressed_texture_s3tc: true, WebGLCompressedTextureS3TCsRGB: true, WebGLDebugRendererInfo: true, WEBGL_debug_renderer_info: true, WebGLDebugShaders: true, WEBGL_debug_shaders: true, WebGLDepthTexture: true, WEBGL_depth_texture: true, WebGLDrawBuffers: true, WEBGL_draw_buffers: true, EXTsRGB: true, EXT_sRGB: true, EXTBlendMinMax: true, EXT_blend_minmax: true, EXTColorBufferFloat: true, EXTColorBufferHalfFloat: true, EXTDisjointTimerQuery: true, EXTDisjointTimerQueryWebGL2: true, EXTFragDepth: true, EXT_frag_depth: true, EXTShaderTextureLOD: true, EXT_shader_texture_lod: true, EXTTextureFilterAnisotropic: true, EXT_texture_filter_anisotropic: true, WebGLFramebuffer: true, WebGLGetBufferSubDataAsync: true, WebGLLoseContext: true, WebGLExtensionLoseContext: true, WEBGL_lose_context: true, OESElementIndexUint: true, OES_element_index_uint: true, OESStandardDerivatives: true, OES_standard_derivatives: true, OESTextureFloat: true, OES_texture_float: true, OESTextureFloatLinear: true, OES_texture_float_linear: true, OESTextureHalfFloat: true, OES_texture_half_float: true, OESTextureHalfFloatLinear: true, OES_texture_half_float_linear: true, OESVertexArrayObject: true, OES_vertex_array_object: true, WebGLProgram: true, WebGLQuery: true, WebGLRenderbuffer: true, WebGLRenderingContext: true, WebGL2RenderingContext: true, WebGLSampler: true, WebGLShader: true, WebGLShaderPrecisionFormat: true, WebGLSync: true, WebGLTexture: true, WebGLTimerQueryEXT: true, WebGLTransformFeedback: true, WebGLUniformLocation: true, WebGLVertexArrayObject: true, WebGLVertexArrayObjectOES: true, WebGL2RenderingContextBase: true, DataView: true, ArrayBufferView: false, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false, HTMLAudioElement: true, HTMLBRElement: true, HTMLBaseElement: true, HTMLBodyElement: true, HTMLButtonElement: true, HTMLCanvasElement: true, HTMLContentElement: true, HTMLDListElement: true, HTMLDataElement: true, HTMLDataListElement: true, HTMLDetailsElement: true, HTMLDialogElement: true, HTMLDivElement: true, HTMLEmbedElement: true, HTMLFieldSetElement: true, HTMLHRElement: true, HTMLHeadElement: true, HTMLHeadingElement: true, HTMLHtmlElement: true, HTMLIFrameElement: true, HTMLImageElement: true, HTMLInputElement: true, HTMLLIElement: true, HTMLLabelElement: true, HTMLLegendElement: true, HTMLLinkElement: true, HTMLMapElement: true, HTMLMediaElement: true, HTMLMenuElement: true, HTMLMetaElement: true, HTMLMeterElement: true, HTMLModElement: true, HTMLOListElement: true, HTMLObjectElement: true, HTMLOptGroupElement: true, HTMLOptionElement: true, HTMLOutputElement: true, HTMLParagraphElement: true, HTMLParamElement: true, HTMLPictureElement: true, HTMLPreElement: true, HTMLProgressElement: true, HTMLQuoteElement: true, HTMLScriptElement: true, HTMLShadowElement: true, HTMLSlotElement: true, HTMLSourceElement: true, HTMLSpanElement: true, HTMLStyleElement: true, HTMLTableCaptionElement: true, HTMLTableCellElement: true, HTMLTableDataCellElement: true, HTMLTableHeaderCellElement: true, HTMLTableColElement: true, HTMLTableElement: true, HTMLTableRowElement: true, HTMLTableSectionElement: true, HTMLTemplateElement: true, HTMLTextAreaElement: true, HTMLTimeElement: true, HTMLTitleElement: true, HTMLTrackElement: true, HTMLUListElement: true, HTMLUnknownElement: true, HTMLVideoElement: true, HTMLDirectoryElement: true, HTMLFontElement: true, HTMLFrameElement: true, HTMLFrameSetElement: true, HTMLMarqueeElement: true, HTMLElement: false, AccessibleNodeList: true, HTMLAnchorElement: true, HTMLAreaElement: true, Blob: false, CDATASection: true, CharacterData: true, Comment: true, ProcessingInstruction: true, Text: true, CSSPerspective: true, CSSCharsetRule: true, CSSConditionRule: true, CSSFontFaceRule: true, CSSGroupingRule: true, CSSImportRule: true, CSSKeyframeRule: true, MozCSSKeyframeRule: true, WebKitCSSKeyframeRule: true, CSSKeyframesRule: true, MozCSSKeyframesRule: true, WebKitCSSKeyframesRule: true, CSSMediaRule: true, CSSNamespaceRule: true, CSSPageRule: true, CSSRule: true, CSSStyleRule: true, CSSSupportsRule: true, CSSViewportRule: true, CSSStyleDeclaration: true, MSStyleCSSProperties: true, CSS2Properties: true, CSSImageValue: true, CSSKeywordValue: true, CSSNumericValue: true, CSSPositionValue: true, CSSResourceValue: true, CSSUnitValue: true, CSSURLImageValue: true, CSSStyleValue: false, CSSMatrixComponent: true, CSSRotation: true, CSSScale: true, CSSSkew: true, CSSTranslation: true, CSSTransformComponent: false, CSSTransformValue: true, CSSUnparsedValue: true, DataTransferItemList: true, DOMException: true, ClientRectList: true, DOMRectList: true, DOMRectReadOnly: false, DOMStringList: true, DOMTokenList: true, SVGAElement: true, SVGAnimateElement: true, SVGAnimateMotionElement: true, SVGAnimateTransformElement: true, SVGAnimationElement: true, SVGCircleElement: true, SVGClipPathElement: true, SVGDefsElement: true, SVGDescElement: true, SVGDiscardElement: true, SVGEllipseElement: true, SVGFEBlendElement: true, SVGFEColorMatrixElement: true, SVGFEComponentTransferElement: true, SVGFECompositeElement: true, SVGFEConvolveMatrixElement: true, SVGFEDiffuseLightingElement: true, SVGFEDisplacementMapElement: true, SVGFEDistantLightElement: true, SVGFEFloodElement: true, SVGFEFuncAElement: true, SVGFEFuncBElement: true, SVGFEFuncGElement: true, SVGFEFuncRElement: true, SVGFEGaussianBlurElement: true, SVGFEImageElement: true, SVGFEMergeElement: true, SVGFEMergeNodeElement: true, SVGFEMorphologyElement: true, SVGFEOffsetElement: true, SVGFEPointLightElement: true, SVGFESpecularLightingElement: true, SVGFESpotLightElement: true, SVGFETileElement: true, SVGFETurbulenceElement: true, SVGFilterElement: true, SVGForeignObjectElement: true, SVGGElement: true, SVGGeometryElement: true, SVGGraphicsElement: true, SVGImageElement: true, SVGLineElement: true, SVGLinearGradientElement: true, SVGMarkerElement: true, SVGMaskElement: true, SVGMetadataElement: true, SVGPathElement: true, SVGPatternElement: true, SVGPolygonElement: true, SVGPolylineElement: true, SVGRadialGradientElement: true, SVGRectElement: true, SVGScriptElement: true, SVGSetElement: true, SVGStopElement: true, SVGStyleElement: true, SVGElement: true, SVGSVGElement: true, SVGSwitchElement: true, SVGSymbolElement: true, SVGTSpanElement: true, SVGTextContentElement: true, SVGTextElement: true, SVGTextPathElement: true, SVGTextPositioningElement: true, SVGTitleElement: true, SVGUseElement: true, SVGViewElement: true, SVGGradientElement: true, SVGComponentTransferFunctionElement: true, SVGFEDropShadowElement: true, SVGMPathElement: true, Element: false, AbortPaymentEvent: true, AnimationEvent: true, AnimationPlaybackEvent: true, ApplicationCacheErrorEvent: true, BackgroundFetchClickEvent: true, BackgroundFetchEvent: true, BackgroundFetchFailEvent: true, BackgroundFetchedEvent: true, BeforeInstallPromptEvent: true, BeforeUnloadEvent: true, BlobEvent: true, CanMakePaymentEvent: true, ClipboardEvent: true, CloseEvent: true, CompositionEvent: true, CustomEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FocusEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, KeyboardEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MouseEvent: true, DragEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PointerEvent: true, PopStateEvent: true, PresentationConnectionAvailableEvent: true, PresentationConnectionCloseEvent: true, ProgressEvent: true, PromiseRejectionEvent: true, PushEvent: true, RTCDataChannelEvent: true, RTCDTMFToneChangeEvent: true, RTCPeerConnectionIceEvent: true, RTCTrackEvent: true, SecurityPolicyViolationEvent: true, SensorErrorEvent: true, SpeechRecognitionError: true, SpeechRecognitionEvent: true, SpeechSynthesisEvent: true, StorageEvent: true, SyncEvent: true, TextEvent: true, TouchEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, UIEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, WheelEvent: true, MojoInterfaceRequestEvent: true, ResourceProgressEvent: true, USBConnectionEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, EventSource: true, FileReader: true, FontFaceSet: true, Gyroscope: true, XMLHttpRequest: true, XMLHttpRequestEventTarget: true, XMLHttpRequestUpload: true, LinearAccelerationSensor: true, Magnetometer: true, MediaDevices: true, MediaKeySession: true, MediaQueryList: true, MediaRecorder: true, MediaSource: true, MediaStream: true, MediaStreamTrack: true, MessagePort: true, MIDIAccess: true, MIDIInput: true, MIDIOutput: true, MIDIPort: true, NetworkInformation: true, Notification: true, OffscreenCanvas: true, OrientationSensor: true, PaymentRequest: true, Performance: true, PermissionStatus: true, PresentationAvailability: true, PresentationConnection: true, PresentationConnectionList: true, PresentationRequest: true, RelativeOrientationSensor: true, RemotePlayback: true, RTCDataChannel: true, DataChannel: true, RTCDTMFSender: true, RTCPeerConnection: true, webkitRTCPeerConnection: true, mozRTCPeerConnection: true, ScreenOrientation: true, Sensor: true, ServiceWorker: true, ServiceWorkerContainer: true, ServiceWorkerRegistration: true, SharedWorker: true, SpeechRecognition: true, SpeechSynthesis: true, SpeechSynthesisUtterance: true, VR: true, VRDevice: true, VRDisplay: true, VRSession: true, VisualViewport: true, WebSocket: true, Worker: true, WorkerPerformance: true, BluetoothDevice: true, BluetoothRemoteGATTCharacteristic: true, Clipboard: true, MojoInterfaceInterceptor: true, USB: true, IDBDatabase: true, IDBTransaction: true, AnalyserNode: true, RealtimeAnalyserNode: true, AudioBufferSourceNode: true, AudioDestinationNode: true, AudioNode: true, AudioScheduledSourceNode: true, AudioWorkletNode: true, BiquadFilterNode: true, ChannelMergerNode: true, AudioChannelMerger: true, ChannelSplitterNode: true, AudioChannelSplitter: true, ConstantSourceNode: true, ConvolverNode: true, DelayNode: true, DynamicsCompressorNode: true, GainNode: true, AudioGainNode: true, IIRFilterNode: true, MediaElementAudioSourceNode: true, MediaStreamAudioDestinationNode: true, MediaStreamAudioSourceNode: true, OscillatorNode: true, Oscillator: true, PannerNode: true, AudioPannerNode: true, webkitAudioPannerNode: true, ScriptProcessorNode: true, JavaScriptAudioNode: true, StereoPannerNode: true, WaveShaperNode: true, EventTarget: false, File: true, FileList: true, FileWriter: true, HTMLFormElement: true, Gamepad: true, History: true, HTMLCollection: true, HTMLFormControlsCollection: true, HTMLOptionsCollection: true, ImageData: true, Location: true, MediaList: true, MessageEvent: true, MIDIInputMap: true, MIDIOutputMap: true, MimeType: true, MimeTypeArray: true, Document: true, DocumentFragment: true, HTMLDocument: true, ShadowRoot: true, XMLDocument: true, Attr: true, DocumentType: true, Node: false, NodeList: true, RadioNodeList: true, Plugin: true, PluginArray: true, RTCStatsReport: true, HTMLSelectElement: true, SourceBuffer: true, SourceBufferList: true, SpeechGrammar: true, SpeechGrammarList: true, SpeechRecognitionResult: true, Storage: true, CSSStyleSheet: true, StyleSheet: true, TextTrack: true, TextTrackCue: true, VTTCue: true, TextTrackCueList: true, TextTrackList: true, TimeRanges: true, Touch: true, TouchList: true, TrackDefaultList: true, URL: true, VideoTrackList: true, Window: true, DOMWindow: true, DedicatedWorkerGlobalScope: true, ServiceWorkerGlobalScope: true, SharedWorkerGlobalScope: true, WorkerGlobalScope: true, CSSRuleList: true, ClientRect: true, DOMRect: true, GamepadList: true, NamedNodeMap: true, MozNamedAttrMap: true, SpeechRecognitionResultList: true, StyleSheetList: true, IDBKeyRange: true, IDBOpenDBRequest: true, IDBVersionChangeRequest: true, IDBRequest: true, IDBVersionChangeEvent: true, SVGLength: true, SVGLengthList: true, SVGNumber: true, SVGNumberList: true, SVGPointList: true, SVGStringList: true, SVGTransform: true, SVGTransformList: true, AudioBuffer: true, AudioParamMap: true, AudioTrackList: true, AudioContext: true, webkitAudioContext: true, BaseAudioContext: false, OfflineAudioContext: true}); + A.NativeTypedArray.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A.NativeTypedArrayOfDouble.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A.NativeTypedArrayOfInt.$nativeSuperclassTag = "ArrayBufferView"; + A._SourceBufferList_EventTarget_ListMixin.$nativeSuperclassTag = "EventTarget"; + A._SourceBufferList_EventTarget_ListMixin_ImmutableListMixin.$nativeSuperclassTag = "EventTarget"; + A._TextTrackList_EventTarget_ListMixin.$nativeSuperclassTag = "EventTarget"; + A._TextTrackList_EventTarget_ListMixin_ImmutableListMixin.$nativeSuperclassTag = "EventTarget"; + })(); + Function.prototype.call$1 = function(a) { + return this(a); + }; + Function.prototype.call$2 = function(a, b) { + return this(a, b); + }; + Function.prototype.call$0 = function() { + return this(); + }; + Function.prototype.call$3 = function(a, b, c) { + return this(a, b, c); + }; + Function.prototype.call$4 = function(a, b, c, d) { + return this(a, b, c, d); + }; + Function.prototype.call$1$1 = function(a) { + return this(a); + }; + Function.prototype.call$5 = function(a, b, c, d, e) { + return this(a, b, c, d, e); + }; + Function.prototype.call$6 = function(a, b, c, d, e, f) { + return this(a, b, c, d, e, f); + }; + convertAllToFastObject(holders); + convertToFastObject($); + (function(callback) { + if (typeof document === "undefined") { + callback(null); + return; + } + if (typeof document.currentScript != "undefined") { + callback(document.currentScript); + return; + } + var scripts = document.scripts; + function onLoad(event) { + for (var i = 0; i < scripts.length; ++i) + scripts[i].removeEventListener("load", onLoad, false); + callback(event.target); + } + for (var i = 0; i < scripts.length; ++i) + scripts[i].addEventListener("load", onLoad, false); + })(function(currentScript) { + init.currentScript = currentScript; + var callMain = A.main; + if (typeof dartMainRunner === "function") + dartMainRunner(callMain, []); + else + callMain([]); + }); +})(); + +//# sourceMappingURL=native_executor.js.map