fluffychat/web/native_executor.js

33446 lines
1.3 MiB

// 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, "<non-identifier-key>", table);
delete table["<non-identifier-key>"];
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<MapEntry<1,2>>")));
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<ListIterable.E>"));
},
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("@<ListIterable.E>")._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["<non-identifier-key>"] = table;
delete table["<non-identifier-key>"];
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<ListMixin.E>"));
},
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("@<ListMixin.E>")._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<ListMixin.E>")._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<ListMixin.E>")._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<MapMixin.K,MapMixin.V>"));
},
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<MapEntry<MapMixin.K,MapMixin.V>>")._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("@<MapMixin.K>")._bind$1(t2._eval$1("MapMixin.V"))._eval$1("MapEntry<1,2>"));
},
$signature() {
return A.instanceType(this.$this)._eval$1("MapEntry<MapMixin.K,MapMixin.V>(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<ImmutableListMixin.E>"));
},
setRange$4(receiver, start, end, iterable, skipCount) {
A.instanceType(receiver)._eval$1("Iterable<ImmutableListMixin.E>")._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<String,Object>>");
return A.LinkedHashMap_LinkedHashMap$_literal(["pubkey", this.pubkey, "dbSessions", A.List_List$of(new A.MappedListIterable(t1, t2._eval$1("Map<String,Object>(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<int>)", "Null(@)", "@()", "Null()", "num(num,num)", "MapEntry<String,String>(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<String,Object>(_DbInboundGroupSessionBundle)", "0^(0^,0^)<num>", "MapEntry<String,Map<String,int>>(String,@)", "MapEntry<String,String>(@,@)", "Future<Null>(MessageEvent)", "MapEntry<String,Map<String,@>>(String,KeyBackupData)", "MapEntry<String,Map<String,@>>(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<int>"]},"_UnicodeSubsetDecoder":{"Converter":["List<int>","String"]},"Encoding":{"Codec":["String","List<int>"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"]},"JsonEncoder":{"Converter":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"]},"Latin1Codec":{"Codec":["String","List<int>"]},"Latin1Encoder":{"Converter":["String","List<int>"]},"Latin1Decoder":{"Converter":["List<int>","String"]},"Utf8Decoder":{"Converter":["List<int>","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<num>"],"ImmutableListMixin":["Rectangle<num>"],"List":["Rectangle<num>"],"JavaScriptIndexingBehavior":["Rectangle<num>"],"EfficientLengthIterable":["Rectangle<num>"],"Iterable":["Rectangle<num>"],"ImmutableListMixin.E":"Rectangle<num>","ListMixin.E":"Rectangle<num>"},"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<Symbol0,@>"),
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<Null>(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<double>"),
Iterable_dynamic: findType("Iterable<@>"),
Iterable_int: findType("Iterable<int>"),
JSArray_ComponentData: findType("JSArray<ComponentData>"),
JSArray_ExrChannel: findType("JSArray<ExrChannel>"),
JSArray_GifImageDesc: findType("JSArray<GifImageDesc>"),
JSArray_HTreeGroup: findType("JSArray<HTreeGroup>"),
JSArray_Image: findType("JSArray<Image>"),
JSArray_InternalExrPart: findType("JSArray<InternalExrPart>"),
JSArray_List_List_List_int: findType("JSArray<List<List<List<int>>>>"),
JSArray_List_List_int: findType("JSArray<List<List<int>>>"),
JSArray_List_int: findType("JSArray<List<int>>"),
JSArray_List_num: findType("JSArray<List<num>>"),
JSArray_PngFrame: findType("JSArray<PngFrame>"),
JSArray_PsdChannel: findType("JSArray<PsdChannel>"),
JSArray_PsdEffect: findType("JSArray<PsdEffect>"),
JSArray_PsdLayer: findType("JSArray<PsdLayer>"),
JSArray_String: findType("JSArray<String>"),
JSArray_TiffImage: findType("JSArray<TiffImage>"),
JSArray_Uint8List: findType("JSArray<Uint8List>"),
JSArray_VP8FInfo: findType("JSArray<VP8FInfo>"),
JSArray_VP8LTransform: findType("JSArray<VP8LTransform>"),
JSArray_WebPFrame: findType("JSArray<WebPFrame>"),
JSArray__JpegHuffman: findType("JSArray<_JpegHuffman>"),
JSArray_dynamic: findType("JSArray<@>"),
JSArray_int: findType("JSArray<int>"),
JSArray_nullable_JpegFrame: findType("JSArray<JpegFrame?>"),
JSArray_nullable_List_dynamic: findType("JSArray<List<@>?>"),
JSArray_nullable_List_int: findType("JSArray<List<int>?>"),
JSArray_nullable_Uint32List: findType("JSArray<Uint32List?>"),
JSArray_num: findType("JSArray<num>"),
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<Symbol0,@>"),
KeyBackupData: findType("KeyBackupData"),
KeyRange: findType("KeyRange"),
Length: findType("Length"),
LinkedHashMap_dynamic_dynamic: findType("LinkedHashMap<@,@>"),
List_ColorTriplet: findType("List<ColorTriplet>"),
List_HTreeGroup: findType("List<HTreeGroup>"),
List_Image: findType("List<Image>"),
List_Int32List: findType("List<Int32List>"),
List_List_List_int: findType("List<List<List<int>>>"),
List_List_VP8FInfo: findType("List<List<VP8FInfo>>"),
List_PsdChannel: findType("List<PsdChannel>"),
List_PsdLayer: findType("List<PsdLayer>"),
List_VP8BandProbas: findType("List<VP8BandProbas>"),
List_VP8FInfo: findType("List<VP8FInfo>"),
List_VP8MB: findType("List<VP8MB>"),
List_VP8MBData: findType("List<VP8MBData>"),
List_VP8TopSamples: findType("List<VP8TopSamples>"),
List_double: findType("List<double>"),
List_dynamic: findType("List<@>"),
List_int: findType("List<int>"),
List_nullable_List_int: findType("List<List<int>?>"),
List_nullable_VP8FInfo: findType("List<VP8FInfo?>"),
List_nullable__PizChannelData: findType("List<_PizChannelData?>"),
List_nullable_int: findType("List<int?>"),
MapEntry_String_String: findType("MapEntry<String,String>"),
MapEntry_of_String_and_Map_String_dynamic: findType("MapEntry<String,Map<String,@>>"),
MapEntry_of_String_and_Map_String_int: findType("MapEntry<String,Map<String,int>>"),
Map_String_String: findType("Map<String,String>"),
Map_String_dynamic: findType("Map<String,@>"),
Map_String_int: findType("Map<String,int>"),
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<num>"),
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<int>"),
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<Null>?"),
nullable_Gamepad: findType("Gamepad?"),
nullable_Int16List: findType("Int16List?"),
nullable_List_Uint8List: findType("List<Uint8List>?"),
nullable_List_dynamic: findType("List<@>?"),
nullable_List_int: findType("List<int>?"),
nullable_List_nullable_List_int: findType("List<List<int>?>?"),
nullable_List_nullable_Uint32List: findType("List<Uint32List?>?"),
nullable_List_nullable_int: findType("List<int?>?"),
nullable_Map_String_String: findType("Map<String,String>?"),
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<int>)"),
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<double>"));
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<WebWorkerOperations>"));
B.List_K2a = A._setArrayType(makeConstList([1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379]), A.findType("JSArray<double>"));
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<List<List<num>>>"));
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<String,int>"));
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<int,String>"));
B.List_empty0 = A._setArrayType(makeConstList([]), A.findType("JSArray<Symbol0>"));
B.Map_empty = new A.ConstantStringMap(0, {}, B.List_empty0, A.findType("ConstantStringMap<Symbol0,@>"));
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<Object>"));
$.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<int(Uint32List,int,int)>"));
$.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<LogEvent>"))));
})();
(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